on master help sign in
unsafe coerce GLSL shaders - for eDSL writers!
commitda47a7ff03254b1d75c08147d1dbbabdf2208574 authorJohn P Mayer Jr <john.p.mayer.jr@gmail.com> dateMon 31 Mar 2014, 23:23 (13 years ago) parent5c830e1
2 files changed+10−2
libraries/Graphics/WebGL.elm+3 libraries/Native/Graphics/WebGL.js+7−2
libraries/Graphics/WebGL.elm+3
@@ -29,6 +29,9 @@ import Http (Response)
2929import Native.Graphics.WebGL
3030import Signal (Signal)
3131
32+unsafeCoerceGLSL : String -> Shader attr unif vary
33+unsafeCoerceGLSL = Native.Graphics.WebGL.unsafeCoerceGLSL
34+
3235type Triangle a = (a,a,a)
3336
3437mapTriangle : (a -> b) -> Triangle a -> Triangle b
libraries/Native/Graphics/WebGL.js+7−2
@@ -17,6 +17,10 @@ Elm.Native.Graphics.WebGL.make = function(elm) {
1717 var Signal = Elm.Signal.make(elm);
1818 var Tuple2 = Utils.Tuple2;
1919
20+ function unsafeCoerceGLSL(src) {
21+ return { src : src };
22+ }
23+
2024 function loadTex(source) {
2125
2226 var response = Signal.constant(elm.Http.values.Waiting);
@@ -172,7 +176,7 @@ Elm.Native.Graphics.WebGL.make = function(elm) {
172176 var progid = m.vert.id + '#' + m.frag.id;
173177 program = model.cache.programs[progid];
174178 }
175−
179+
176180 if (!program) {
177181
178182 var vshader = undefined;
@@ -181,7 +185,7 @@ Elm.Native.Graphics.WebGL.make = function(elm) {
181185 } else {
182186 m.vert.id = Utils.guid();
183187 }
184−
188+
185189 if (!vshader) {
186190 vshader = do_compile(gl, m.vert.src, gl.VERTEX_SHADER);
187191 model.cache.shaders[m.vert.id] = vshader;
@@ -353,6 +357,7 @@ Elm.Native.Graphics.WebGL.make = function(elm) {
353357 }
354358
355359 return elm.Native.Graphics.WebGL.values = {
360+ unsafeCoerceGLSL:unsafeCoerceGLSL,
356361 loadTex:loadTex,
357362 model:F4(model),
358363 webgl:F2(webgl)