Spaces:
Running
Running
| function WebGLBufferRenderer(gl, extensions, info, capabilities) { | |
| const isWebGL2 = capabilities.isWebGL2; | |
| let mode; | |
| function setMode(value) { | |
| mode = value; | |
| } | |
| function render(start, count) { | |
| gl.drawArrays(mode, start, count); | |
| info.update(count, mode, 1); | |
| } | |
| function renderInstances(start, count, primcount) { | |
| if (primcount === 0) return; | |
| let extension, methodName; | |
| if (isWebGL2) { | |
| extension = gl; | |
| methodName = 'drawArraysInstanced'; | |
| } else { | |
| extension = extensions.get('ANGLE_instanced_arrays'); | |
| methodName = 'drawArraysInstancedANGLE'; | |
| if (extension === null) { | |
| console.error('THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.'); | |
| return; | |
| } | |
| } | |
| extension[methodName](mode, start, count, primcount); | |
| info.update(count, mode, primcount); | |
| } | |
| // | |
| this.setMode = setMode; | |
| this.render = render; | |
| this.renderInstances = renderInstances; | |
| } | |
| export { WebGLBufferRenderer }; | |