@@ -96,8 +96,16 @@ Elm.Native.Graphics.WebGL.make = function(elm) {
99+ var numIndices = List.length(bufferElems);
100+ var indices = List.toArray(List.range(0,numIndices));
101+ console.log("Created index buffer");
102+ var indexBuffer = gl.createBuffer();
103+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, indexBuffer);
104+ gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint16Array(indices), gl.STATIC_DRAW);
99 var bufferObject = {
106 var bufferObject = {
100 numIndices: List.length(bufferElems),
107 numIndices: List.length(bufferElems),
108+ indexBuffer: indexBuffer,
101 buffers: buffers
109 buffers: buffers
@@ -129,12 +137,8 @@ Elm.Native.Graphics.WebGL.make = function(elm) {
131 var numIndices = model.buffer.numIndices;
139 var numIndices = model.buffer.numIndices;
132− var indices = List.toArray(List.range(0,numIndices));
140+ var indexBuffer = model.buffer.indexBuffer;
134− console.log("Created index buffer");
135− var indexBuffer = gl.createBuffer();
136 gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, indexBuffer);
141 gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, indexBuffer);
137− gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint16Array(indices), gl.STATIC_DRAW);
139 var numAttributes = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);
143 var numAttributes = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);
140 for (var i = 0; i < numAttributes; i += 1) {
144 for (var i = 0; i < numAttributes; i += 1) {
@@ -162,14 +166,13 @@ Elm.Native.Graphics.WebGL.make = function(elm) {
165− function webgl(sDimensions, sDraw) {
169+ function webgl(sDimensions, sfDraw) {
167 var node = newNode('canvas');
171 var node = newNode('canvas');
168 var gl = node.getContext('webgl');
172 var gl = node.getContext('webgl');
169 var sGL = Signal.constant(gl);
173 var sGL = Signal.constant(gl);
171− var application = F2(function(f,x) { return f(x); });
175+ var sModels = sfDraw(sGL);
172− var sModels = A3(Signal.lift2,application,sDraw,sGL);
174 function makeGLelement(dimensions, models, gl) {
177 function makeGLelement(dimensions, models, gl) {