diff options
author | David Thompson <dthompson2@worcester.edu> | 2014-02-15 12:56:47 -0500 |
---|---|---|
committer | David Thompson <dthompson2@worcester.edu> | 2014-02-15 13:02:55 -0500 |
commit | b346663c1d0b8ff6c96ac8e42c4c397e34f59378 (patch) | |
tree | 5a45342d3a6a10b346931f3827c899a6f9cd6c12 /2d/shader.scm | |
parent | 1658eca482f016844986daaa0ef9bdd07c8ce03a (diff) |
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'.
Diffstat (limited to '2d/shader.scm')
-rw-r--r-- | 2d/shader.scm | 9 |
1 files changed, 9 insertions, 0 deletions
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 |