From a8a9c3962e78e01ca04e8f67115c15ea0a74592f Mon Sep 17 00:00:00 2001 From: David Thompson Date: Thu, 25 Oct 2018 08:46:25 -0400 Subject: render: buffer: Add render-vertices/instanced procedure. * chickadee/render/buffer.scm (render-vertices/instanced): New procedure. --- chickadee/render/buffer.scm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/chickadee/render/buffer.scm b/chickadee/render/buffer.scm index 83a2925..5d13c2e 100644 --- a/chickadee/render/buffer.scm +++ b/chickadee/render/buffer.scm @@ -77,7 +77,8 @@ vertex-array-mode null-vertex-array *vertex-array-state* - render-vertices)) + render-vertices + render-vertices/instanced)) ;;; ;;; Buffers @@ -529,3 +530,13 @@ which attributes advance when rendering multiple instances." (typed-buffer-length indices)) (typed-buffer-type-gl indices) %null-pointer))) + +(define* (render-vertices/instanced array instances #:optional count) + (gpu-state-set! *vertex-array-state* array) + (let ((indices (vertex-array-indices array))) + (gl-draw-elements-instanced (vertex-array-mode-gl array) + (or count + (typed-buffer-length indices)) + (typed-buffer-type-gl indices) + %null-pointer + instances))) -- cgit v1.2.3