on aa7c2fd help sign in
56 lines 1.3 kB history raw
1module Graphics.WebGL (mapTriangle, zipTriangle, loadTex, model, webgl) where
3{-| The WebGL API is for high performance drawing.
5# Triangle Convenience Functions
6@docs Triangle, mapTriangle, zipTriangle
8# Shaders
9Shaders are created using glsl blocks.
11vertex : Shader { a | pos : V3 } {} {}
12vertex = [glsl|
14attribute vec3 pos;
16void main () {
17 gl_Position = vec4(pos,1.0);
20|]
22# WebGL Element
23@docs webgl
25-}
27import Graphics.Element (Element)
28import Http (Response)
29import Native.Graphics.WebGL
30import Signal (Signal)
32unsafeCoerceGLSL : String -> Shader attr unif vary
33unsafeCoerceGLSL = Native.Graphics.WebGL.unsafeCoerceGLSL
35type Triangle a = (a,a,a)
37mapTriangle : (a -> b) -> Triangle a -> Triangle b
38mapTriangle f (x,y,z) = (f x, f y, f z)
40zipTriangle : (a -> b -> c) -> Triangle a -> Triangle b -> Triangle c
41zipTriangle f (x,y,z) (x',y',z') = (f x x', f y y', f z z')
43data Shader attr unif vary = Shader
45data Texture = Texture
47loadTex : String -> Signal (Response Texture)
48loadTex = Native.Graphics.WebGL.loadTex
50data Model = Model
52model : Shader attr unif vary -> Shader {} unif vary -> [Triangle attr] -> unif -> Model
53model = Native.Graphics.WebGL.model
55webgl : (Int,Int) -> [Model] -> Element
56webgl = Native.Graphics.WebGL.webgl