|
@@ -847,19 +847,35 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- if ( geometry.attributes.index !== undefined ) {
|
|
|
|
|
|
+ var index = geometry.attributes.index;
|
|
|
|
+
|
|
|
|
+ if ( index !== undefined ) {
|
|
|
|
+
|
|
|
|
+ var type, size;
|
|
|
|
+
|
|
|
|
+ if ( index.array instanceof Uint32Array && extensions.get( 'OES_element_index_uint' ) ) {
|
|
|
|
+
|
|
|
|
+ type = _gl.UNSIGNED_INT;
|
|
|
|
+ size = 4;
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
+
|
|
|
|
+ type = _gl.UNSIGNED_SHORT;
|
|
|
|
+ size = 2;
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
|
|
if ( object instanceof THREE.Mesh ) {
|
|
if ( object instanceof THREE.Mesh ) {
|
|
|
|
|
|
- renderIndexedMesh( material, geometry, program, updateBuffers );
|
|
|
|
|
|
+ renderIndexedMesh( type, size, material, geometry, program, updateBuffers );
|
|
|
|
|
|
} else if ( object instanceof THREE.Line ) {
|
|
} else if ( object instanceof THREE.Line ) {
|
|
|
|
|
|
- renderIndexedLine( material, geometry, object, program, updateBuffers );
|
|
|
|
|
|
+ renderIndexedLine( type, size, material, geometry, object, program, updateBuffers );
|
|
|
|
|
|
} else if ( object instanceof THREE.PointCloud ) {
|
|
} else if ( object instanceof THREE.PointCloud ) {
|
|
|
|
|
|
- renderIndexedPointCloud( material, geometry, program, updateBuffers );
|
|
|
|
|
|
+ renderIndexedPointCloud( type, size, material, geometry, program, updateBuffers );
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1014,7 +1030,7 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- function renderIndexedMesh( material, geometry, program, updateBuffers ) {
|
|
|
|
|
|
+ function renderIndexedMesh( type, size, material, geometry, program, updateBuffers ) {
|
|
|
|
|
|
var mode = _gl.TRIANGLES;
|
|
var mode = _gl.TRIANGLES;
|
|
|
|
|
|
@@ -1028,20 +1044,6 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
var index = geometry.attributes.index;
|
|
var index = geometry.attributes.index;
|
|
var indexBuffer = objects.getAttributeBuffer( index );
|
|
var indexBuffer = objects.getAttributeBuffer( index );
|
|
|
|
|
|
- var type, size;
|
|
|
|
-
|
|
|
|
- if ( index.array instanceof Uint32Array && extensions.get( 'OES_element_index_uint' ) ) {
|
|
|
|
-
|
|
|
|
- type = _gl.UNSIGNED_INT;
|
|
|
|
- size = 4;
|
|
|
|
-
|
|
|
|
- } else {
|
|
|
|
-
|
|
|
|
- type = _gl.UNSIGNED_SHORT;
|
|
|
|
- size = 2;
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
var drawcall = geometry.drawcalls;
|
|
var drawcall = geometry.drawcalls;
|
|
|
|
|
|
if ( drawcall.length === 0 ) {
|
|
if ( drawcall.length === 0 ) {
|
|
@@ -1218,7 +1220,7 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- function renderIndexedLine( material, geometry, object, program, updateBuffers ) {
|
|
|
|
|
|
+ function renderIndexedLine( type, size, material, geometry, object, program, updateBuffers ) {
|
|
|
|
|
|
var mode = object instanceof THREE.LineSegments ? _gl.LINES : _gl.LINE_STRIP;
|
|
var mode = object instanceof THREE.LineSegments ? _gl.LINES : _gl.LINE_STRIP;
|
|
|
|
|
|
@@ -1230,20 +1232,6 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
var index = geometry.attributes.index;
|
|
var index = geometry.attributes.index;
|
|
var indexBuffer = objects.getAttributeBuffer( index );
|
|
var indexBuffer = objects.getAttributeBuffer( index );
|
|
|
|
|
|
- var type, size;
|
|
|
|
-
|
|
|
|
- if ( index.array instanceof Uint32Array && extensions.get( 'OES_element_index_uint' ) ) {
|
|
|
|
-
|
|
|
|
- type = _gl.UNSIGNED_INT;
|
|
|
|
- size = 4;
|
|
|
|
-
|
|
|
|
- } else {
|
|
|
|
-
|
|
|
|
- type = _gl.UNSIGNED_SHORT;
|
|
|
|
- size = 2;
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
var drawcall = geometry.drawcalls;
|
|
var drawcall = geometry.drawcalls;
|
|
|
|
|
|
if ( drawcall.length === 0 ) {
|
|
if ( drawcall.length === 0 ) {
|
|
@@ -1330,27 +1318,13 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- function renderIndexedPointCloud( material, geometry, program, updateBuffers ) {
|
|
|
|
|
|
+ function renderIndexedPointCloud( type, size, material, geometry, program, updateBuffers ) {
|
|
|
|
|
|
var mode = _gl.POINTS;
|
|
var mode = _gl.POINTS;
|
|
|
|
|
|
var index = geometry.attributes.index;
|
|
var index = geometry.attributes.index;
|
|
var indexBuffer = objects.getAttributeBuffer( index );
|
|
var indexBuffer = objects.getAttributeBuffer( index );
|
|
|
|
|
|
- var type, size;
|
|
|
|
-
|
|
|
|
- if ( index.array instanceof Uint32Array && extensions.get( 'OES_element_index_uint' ) ) {
|
|
|
|
-
|
|
|
|
- type = _gl.UNSIGNED_INT;
|
|
|
|
- size = 4;
|
|
|
|
-
|
|
|
|
- } else {
|
|
|
|
-
|
|
|
|
- type = _gl.UNSIGNED_SHORT;
|
|
|
|
- size = 2;
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
var drawcall = geometry.drawcalls;
|
|
var drawcall = geometry.drawcalls;
|
|
|
|
|
|
if ( drawcall.length === 0 ) {
|
|
if ( drawcall.length === 0 ) {
|