diff options
author | David Thompson <dthompson2@worcester.edu> | 2014-02-09 15:09:18 -0500 |
---|---|---|
committer | David Thompson <dthompson2@worcester.edu> | 2014-02-09 15:15:27 -0500 |
commit | 0529df9a8021d09f592e0a6eef0c19e148c5336e (patch) | |
tree | 2cc030a1a9d17bd1ae6441e5733cabf14f363a56 /examples/shader.scm | |
parent | 2d7d9ad02e22adcb5461d96a3e558f0b45da910c (diff) |
Add shader module.
* 2d/shader.scm: New module.
* Makefile.am: Add 2d/shader.scm to SOURCES.
* examples/shader.scm: New example.
* examples/shaders/fragment-shader.glsl: New shader.
* examples/shaders/vertex-shader.glsl: New shader.
Diffstat (limited to 'examples/shader.scm')
-rw-r--r-- | examples/shader.scm | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/examples/shader.scm b/examples/shader.scm new file mode 100644 index 0000000..49893ad --- /dev/null +++ b/examples/shader.scm @@ -0,0 +1,33 @@ +(use-modules (2d game) + (2d shader) + (2d sprite) + (2d vector2) + (2d window)) + +(load "common.scm") + +(define vertex-shader + (load-vertex-shader "shaders/vertex-shader.glsl")) +(define fragment-shader + (load-fragment-shader "shaders/fragment-shader.glsl")) +(define program (make-shader-program vertex-shader fragment-shader)) + +(define window-width 800) +(define window-height 600) +(define sprite + (load-sprite "images/p1_front.png" + #:position (vector2 (/ window-width 2) + (/ window-height 2)))) + +(define (draw dt alpha) + (with-shader-program program + ;; Shake the sprite around a bit. + (uniforms ((angle (/ (random:uniform) 100))) + (draw-sprite sprite)))) + +(add-hook! draw-hook draw) + +(with-window (make-window #:title "Shaders" + #:resolution (vector2 window-width + window-height)) + (run-game-loop)) |