From 0529df9a8021d09f592e0a6eef0c19e148c5336e Mon Sep 17 00:00:00 2001 From: David Thompson Date: Sun, 9 Feb 2014 15:09:18 -0500 Subject: 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. --- examples/shader.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 examples/shader.scm (limited to 'examples/shader.scm') 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)) -- cgit v1.2.3