From b346663c1d0b8ff6c96ac8e42c4c397e34f59378 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Sat, 15 Feb 2014 12:56:47 -0500 Subject: Add 4x4 transformation matrix module. * 2d/transform.scm: New module. * 2d/shader.scm: Add uniform setter for transforms. * Makefile.am (SOURCES): Add '2d/transform.scm'. --- 2d/shader.scm | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to '2d/shader.scm') diff --git a/2d/shader.scm b/2d/shader.scm index 86fc1e2..fb03439 100644 --- a/2d/shader.scm +++ b/2d/shader.scm @@ -8,6 +8,7 @@ #:use-module (figl gl) #:use-module (figl gl low-level) #:use-module (2d helpers) + #:use-module (2d transform) #:use-module (2d vector2) #:use-module (2d color) #:export (make-shader @@ -224,6 +225,14 @@ location." ;; vec4s. (glUniform4f location (vx v) (vy v) 0 0))) +(register-uniform-setter! transform? + (lambda (location t) + (let ((pointer + (bytevector->pointer + (array-contents (transform-matrix t))))) + (glUniformMatrix4fv location 1 #f + pointer)))) + (register-uniform-setter! color? (lambda (location c) (glUniform4f location -- cgit v1.2.3