From 3d44f870911c3cf904b5b59c94eed33255baa4a8 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Wed, 13 Jul 2022 12:10:00 -0400 Subject: graphics: shader: Use SGLSL. --- chickadee/graphics/shader.scm | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/chickadee/graphics/shader.scm b/chickadee/graphics/shader.scm index 94c6bfc..73c8136 100644 --- a/chickadee/graphics/shader.scm +++ b/chickadee/graphics/shader.scm @@ -33,6 +33,7 @@ #:use-module (chickadee graphics color) #:use-module (chickadee graphics engine) #:use-module (chickadee graphics gl) + #:use-module (chickadee graphics sglsl) #:use-module (chickadee graphics texture) #:use-module (chickadee utils) #:export (shader-data-type? @@ -59,6 +60,7 @@ current-shader load-shader strings->shader + make-shader* shader-uniform shader-uniforms shader-attributes @@ -790,6 +792,20 @@ shader program." (lambda (fragment-port) (make-shader vertex-port fragment-port)))))) +(define-syntax make-shader* + (lambda (x) + (syntax-case x () + ((_ vertex fragment) + (with-syntax ((vert-glsl (datum->syntax x + (with-output-to-string + (lambda () + (sglsl->glsl (syntax->datum #'vertex)))))) + (frag-glsl (datum->syntax x + (with-output-to-string + (lambda () + (sglsl->glsl (syntax->datum #'fragment))))))) + #'(strings->shader (pk vert-glsl) (pk frag-glsl))))))) + (define (shader-uniform shader name) "Return the metadata for the uniform NAME in SHADER." (let ((uniform (uniform-namespace-ref (shader-uniforms shader) name))) -- cgit v1.2.3