diff --git a/src/core/geometry/Geometry.js b/src/core/geometry/Geometry.js index eaa2150..f714c71 100644 --- a/src/core/geometry/Geometry.js +++ b/src/core/geometry/Geometry.js @@ -11,6 +11,7 @@ Float32Array: Float32Array, Uint32Array: Uint32Array, Int32Array: Int32Array, + Uint8Array: Uint8Array, Uint16Array: Uint16Array, }; diff --git a/src/core/geometry/Geometry.js b/src/core/geometry/Geometry.js index eaa2150..f714c71 100644 --- a/src/core/geometry/Geometry.js +++ b/src/core/geometry/Geometry.js @@ -11,6 +11,7 @@ Float32Array: Float32Array, Uint32Array: Uint32Array, Int32Array: Int32Array, + Uint8Array: Uint8Array, Uint16Array: Uint16Array, }; diff --git a/src/core/renderers/webgl/systems/geometry/GeometrySystem.js b/src/core/renderers/webgl/systems/geometry/GeometrySystem.js index 91df41f..3a987a4 100644 --- a/src/core/renderers/webgl/systems/geometry/GeometrySystem.js +++ b/src/core/renderers/webgl/systems/geometry/GeometrySystem.js @@ -101,6 +101,10 @@ gl.drawArraysInstanced = (a, b, c, d) => instanceExt.drawArraysInstancedANGLE(a, b, c, d); } + else + { + this.hasInstance = false; + } } } diff --git a/src/core/geometry/Geometry.js b/src/core/geometry/Geometry.js index eaa2150..f714c71 100644 --- a/src/core/geometry/Geometry.js +++ b/src/core/geometry/Geometry.js @@ -11,6 +11,7 @@ Float32Array: Float32Array, Uint32Array: Uint32Array, Int32Array: Int32Array, + Uint8Array: Uint8Array, Uint16Array: Uint16Array, }; diff --git a/src/core/renderers/webgl/systems/geometry/GeometrySystem.js b/src/core/renderers/webgl/systems/geometry/GeometrySystem.js index 91df41f..3a987a4 100644 --- a/src/core/renderers/webgl/systems/geometry/GeometrySystem.js +++ b/src/core/renderers/webgl/systems/geometry/GeometrySystem.js @@ -101,6 +101,10 @@ gl.drawArraysInstanced = (a, b, c, d) => instanceExt.drawArraysInstancedANGLE(a, b, c, d); } + else + { + this.hasInstance = false; + } } } diff --git a/src/core/shader/generateUniformsSync.js b/src/core/shader/generateUniformsSync.js index 427777b..65eb250 100644 --- a/src/core/shader/generateUniformsSync.js +++ b/src/core/shader/generateUniformsSync.js @@ -59,6 +59,10 @@ vec3: `gl.uniform3fv(location, v)`, vec4: 'gl.uniform4fv(location, v)', + mat4: 'gl.uniformMatrix4fv(location, false, v)', + mat3: 'gl.uniformMatrix3fv(location, false, v)', + mat2: 'gl.uniformMatrix2fv(location, false, v)', + int: 'gl.uniform1iv(location, v)', ivec2: 'gl.uniform2iv(location, v)', ivec3: 'gl.uniform3iv(location, v)', @@ -161,13 +165,13 @@ cv = ud.${i}.value; v = uv.${i}; - if(cv[0] !== v[0] || cv[1] !== v[1]) - { - cv[0] = v[0]; - cv[1] = v[1]; - gl.uniform2f(ud.${i}.location, v[0], v[1]); - } - }\n`; + if(cv[0] !== v[0] || cv[1] !== v[1]) + { + cv[0] = v[0]; + cv[1] = v[1]; + gl.uniform2f(ud.${i}.location, v[0], v[1]); + } + \n`; } } else diff --git a/src/core/geometry/Geometry.js b/src/core/geometry/Geometry.js index eaa2150..f714c71 100644 --- a/src/core/geometry/Geometry.js +++ b/src/core/geometry/Geometry.js @@ -11,6 +11,7 @@ Float32Array: Float32Array, Uint32Array: Uint32Array, Int32Array: Int32Array, + Uint8Array: Uint8Array, Uint16Array: Uint16Array, }; diff --git a/src/core/renderers/webgl/systems/geometry/GeometrySystem.js b/src/core/renderers/webgl/systems/geometry/GeometrySystem.js index 91df41f..3a987a4 100644 --- a/src/core/renderers/webgl/systems/geometry/GeometrySystem.js +++ b/src/core/renderers/webgl/systems/geometry/GeometrySystem.js @@ -101,6 +101,10 @@ gl.drawArraysInstanced = (a, b, c, d) => instanceExt.drawArraysInstancedANGLE(a, b, c, d); } + else + { + this.hasInstance = false; + } } } diff --git a/src/core/shader/generateUniformsSync.js b/src/core/shader/generateUniformsSync.js index 427777b..65eb250 100644 --- a/src/core/shader/generateUniformsSync.js +++ b/src/core/shader/generateUniformsSync.js @@ -59,6 +59,10 @@ vec3: `gl.uniform3fv(location, v)`, vec4: 'gl.uniform4fv(location, v)', + mat4: 'gl.uniformMatrix4fv(location, false, v)', + mat3: 'gl.uniformMatrix3fv(location, false, v)', + mat2: 'gl.uniformMatrix2fv(location, false, v)', + int: 'gl.uniform1iv(location, v)', ivec2: 'gl.uniform2iv(location, v)', ivec3: 'gl.uniform3iv(location, v)', @@ -161,13 +165,13 @@ cv = ud.${i}.value; v = uv.${i}; - if(cv[0] !== v[0] || cv[1] !== v[1]) - { - cv[0] = v[0]; - cv[1] = v[1]; - gl.uniform2f(ud.${i}.location, v[0], v[1]); - } - }\n`; + if(cv[0] !== v[0] || cv[1] !== v[1]) + { + cv[0] = v[0]; + cv[1] = v[1]; + gl.uniform2f(ud.${i}.location, v[0], v[1]); + } + \n`; } } else diff --git a/src/core/utils/getBufferType.js b/src/core/utils/getBufferType.js index a4a3b29..cb988d7 100644 --- a/src/core/utils/getBufferType.js +++ b/src/core/utils/getBufferType.js @@ -20,6 +20,13 @@ return 'Uint16Array'; } } + else if (array.BYTES_PER_ELEMENT === 1) + { + if (array instanceof Uint8Array) + { + return 'Uint8Array'; + } + } // TODO map out the rest of the array elements! return null; diff --git a/src/core/geometry/Geometry.js b/src/core/geometry/Geometry.js index eaa2150..f714c71 100644 --- a/src/core/geometry/Geometry.js +++ b/src/core/geometry/Geometry.js @@ -11,6 +11,7 @@ Float32Array: Float32Array, Uint32Array: Uint32Array, Int32Array: Int32Array, + Uint8Array: Uint8Array, Uint16Array: Uint16Array, }; diff --git a/src/core/renderers/webgl/systems/geometry/GeometrySystem.js b/src/core/renderers/webgl/systems/geometry/GeometrySystem.js index 91df41f..3a987a4 100644 --- a/src/core/renderers/webgl/systems/geometry/GeometrySystem.js +++ b/src/core/renderers/webgl/systems/geometry/GeometrySystem.js @@ -101,6 +101,10 @@ gl.drawArraysInstanced = (a, b, c, d) => instanceExt.drawArraysInstancedANGLE(a, b, c, d); } + else + { + this.hasInstance = false; + } } } diff --git a/src/core/shader/generateUniformsSync.js b/src/core/shader/generateUniformsSync.js index 427777b..65eb250 100644 --- a/src/core/shader/generateUniformsSync.js +++ b/src/core/shader/generateUniformsSync.js @@ -59,6 +59,10 @@ vec3: `gl.uniform3fv(location, v)`, vec4: 'gl.uniform4fv(location, v)', + mat4: 'gl.uniformMatrix4fv(location, false, v)', + mat3: 'gl.uniformMatrix3fv(location, false, v)', + mat2: 'gl.uniformMatrix2fv(location, false, v)', + int: 'gl.uniform1iv(location, v)', ivec2: 'gl.uniform2iv(location, v)', ivec3: 'gl.uniform3iv(location, v)', @@ -161,13 +165,13 @@ cv = ud.${i}.value; v = uv.${i}; - if(cv[0] !== v[0] || cv[1] !== v[1]) - { - cv[0] = v[0]; - cv[1] = v[1]; - gl.uniform2f(ud.${i}.location, v[0], v[1]); - } - }\n`; + if(cv[0] !== v[0] || cv[1] !== v[1]) + { + cv[0] = v[0]; + cv[1] = v[1]; + gl.uniform2f(ud.${i}.location, v[0], v[1]); + } + \n`; } } else diff --git a/src/core/utils/getBufferType.js b/src/core/utils/getBufferType.js index a4a3b29..cb988d7 100644 --- a/src/core/utils/getBufferType.js +++ b/src/core/utils/getBufferType.js @@ -20,6 +20,13 @@ return 'Uint16Array'; } } + else if (array.BYTES_PER_ELEMENT === 1) + { + if (array instanceof Uint8Array) + { + return 'Uint8Array'; + } + } // TODO map out the rest of the array elements! return null; diff --git a/src/core/utils/interleaveTypedArrays.js b/src/core/utils/interleaveTypedArrays.js index 8da791f..6c80a24 100644 --- a/src/core/utils/interleaveTypedArrays.js +++ b/src/core/utils/interleaveTypedArrays.js @@ -1,7 +1,7 @@ import getBufferType from './getBufferType'; /* eslint-disable object-shorthand */ -const map = { Float32Array: Float32Array, Uint32Array: Uint32Array, Int32Array: Int32Array }; +const map = { Float32Array: Float32Array, Uint32Array: Uint32Array, Int32Array: Int32Array, Uint8Array: Uint8Array }; export default function interleaveTypedArrays(arrays, sizes) { diff --git a/src/core/geometry/Geometry.js b/src/core/geometry/Geometry.js index eaa2150..f714c71 100644 --- a/src/core/geometry/Geometry.js +++ b/src/core/geometry/Geometry.js @@ -11,6 +11,7 @@ Float32Array: Float32Array, Uint32Array: Uint32Array, Int32Array: Int32Array, + Uint8Array: Uint8Array, Uint16Array: Uint16Array, }; diff --git a/src/core/renderers/webgl/systems/geometry/GeometrySystem.js b/src/core/renderers/webgl/systems/geometry/GeometrySystem.js index 91df41f..3a987a4 100644 --- a/src/core/renderers/webgl/systems/geometry/GeometrySystem.js +++ b/src/core/renderers/webgl/systems/geometry/GeometrySystem.js @@ -101,6 +101,10 @@ gl.drawArraysInstanced = (a, b, c, d) => instanceExt.drawArraysInstancedANGLE(a, b, c, d); } + else + { + this.hasInstance = false; + } } } diff --git a/src/core/shader/generateUniformsSync.js b/src/core/shader/generateUniformsSync.js index 427777b..65eb250 100644 --- a/src/core/shader/generateUniformsSync.js +++ b/src/core/shader/generateUniformsSync.js @@ -59,6 +59,10 @@ vec3: `gl.uniform3fv(location, v)`, vec4: 'gl.uniform4fv(location, v)', + mat4: 'gl.uniformMatrix4fv(location, false, v)', + mat3: 'gl.uniformMatrix3fv(location, false, v)', + mat2: 'gl.uniformMatrix2fv(location, false, v)', + int: 'gl.uniform1iv(location, v)', ivec2: 'gl.uniform2iv(location, v)', ivec3: 'gl.uniform3iv(location, v)', @@ -161,13 +165,13 @@ cv = ud.${i}.value; v = uv.${i}; - if(cv[0] !== v[0] || cv[1] !== v[1]) - { - cv[0] = v[0]; - cv[1] = v[1]; - gl.uniform2f(ud.${i}.location, v[0], v[1]); - } - }\n`; + if(cv[0] !== v[0] || cv[1] !== v[1]) + { + cv[0] = v[0]; + cv[1] = v[1]; + gl.uniform2f(ud.${i}.location, v[0], v[1]); + } + \n`; } } else diff --git a/src/core/utils/getBufferType.js b/src/core/utils/getBufferType.js index a4a3b29..cb988d7 100644 --- a/src/core/utils/getBufferType.js +++ b/src/core/utils/getBufferType.js @@ -20,6 +20,13 @@ return 'Uint16Array'; } } + else if (array.BYTES_PER_ELEMENT === 1) + { + if (array instanceof Uint8Array) + { + return 'Uint8Array'; + } + } // TODO map out the rest of the array elements! return null; diff --git a/src/core/utils/interleaveTypedArrays.js b/src/core/utils/interleaveTypedArrays.js index 8da791f..6c80a24 100644 --- a/src/core/utils/interleaveTypedArrays.js +++ b/src/core/utils/interleaveTypedArrays.js @@ -1,7 +1,7 @@ import getBufferType from './getBufferType'; /* eslint-disable object-shorthand */ -const map = { Float32Array: Float32Array, Uint32Array: Uint32Array, Int32Array: Int32Array }; +const map = { Float32Array: Float32Array, Uint32Array: Uint32Array, Int32Array: Int32Array, Uint8Array: Uint8Array }; export default function interleaveTypedArrays(arrays, sizes) { diff --git a/src/extras/webgl/TilingSpriteRenderer.js b/src/extras/webgl/TilingSpriteRenderer.js index 3743b62..a3ca0b2 100644 --- a/src/extras/webgl/TilingSpriteRenderer.js +++ b/src/extras/webgl/TilingSpriteRenderer.js @@ -134,7 +134,9 @@ shader.uniforms.uSampler = tex; renderer.shader.bind(shader); - renderer.geometry.bind(quad, renderer.shader.getGLShader()); + renderer.geometry.bind(quad);// , renderer.shader.getGLShader()); + renderer.state.setBlendMode(ts.blendMode); + renderer.geometry.draw(this.renderer.gl.TRIANGLES, 6, 0); } }