From 13291951ca55c16347ad0fd900371d034c734b87 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Tue, 16 May 2023 18:59:37 -0400 Subject: graphics: buffer: Reduce closure allocation. --- chickadee/graphics/buffer.scm | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'chickadee') diff --git a/chickadee/graphics/buffer.scm b/chickadee/graphics/buffer.scm index fff1a88..f2fbfe0 100644 --- a/chickadee/graphics/buffer.scm +++ b/chickadee/graphics/buffer.scm @@ -790,23 +790,23 @@ argument may be overridden. The following values are supported: body ... (geometry-end* geometry type) ...)) +(define (begin:map buffer-pair) + (dynamic-buffer-map! (cdr buffer-pair))) + (define (geometry-begin! geometry) (let ((index-buffer (geometry-index-buffer geometry))) - (for-each (match-lambda - ((_ . buffer) - (dynamic-buffer-map! buffer))) - (geometry-vertex-buffers geometry)) + (for-each begin:map (geometry-vertex-buffers geometry)) (when index-buffer (dynamic-buffer-map! index-buffer)))) +(define (end:unmap buffer-pair) + (dynamic-buffer-unmap! (cdr buffer-pair))) + (define (geometry-end! geometry) (let ((index-buffer (geometry-index-buffer geometry))) (when index-buffer (dynamic-buffer-unmap! index-buffer)) - (for-each (match-lambda - ((_ . buffer) - (dynamic-buffer-unmap! buffer))) - (geometry-vertex-buffers geometry)))) + (for-each end:unmap (geometry-vertex-buffers geometry)))) (define-syntax-rule (with-geometry geometry body ...) (begin -- cgit v1.2.3