Browse Source

Merge pull request #11412 from aardgoose/index-discard

allow index attributes to be dropped using index.onUpload() mechanism.
Mr.doob 8 years ago
parent
commit
62057e59a5
2 changed files with 8 additions and 19 deletions
  1. 5 2
      src/renderers/WebGLRenderer.js
  2. 3 17
      src/renderers/webgl/WebGLIndexedBufferRenderer.js

+ 5 - 2
src/renderers/WebGLRenderer.js

@@ -784,11 +784,14 @@ function WebGLRenderer( parameters ) {
 		}
 
 		var renderer = bufferRenderer;
+		var indexProperties;
 
 		if ( index !== null ) {
 
+			indexProperties = attributes.get( index );
+
 			renderer = indexedBufferRenderer;
-			renderer.setIndex( index );
+			renderer.setIndex( indexProperties );
 
 		}
 
@@ -798,7 +801,7 @@ function WebGLRenderer( parameters ) {
 
 			if ( index !== null ) {
 
-				_gl.bindBuffer( _gl.ELEMENT_ARRAY_BUFFER, attributes.get( index ).buffer );
+				_gl.bindBuffer( _gl.ELEMENT_ARRAY_BUFFER, indexProperties.buffer );
 
 			}
 

+ 3 - 17
src/renderers/webgl/WebGLIndexedBufferRenderer.js

@@ -14,24 +14,10 @@ function WebGLIndexedBufferRenderer( gl, extensions, infoRender ) {
 
 	var type, size;
 
-	function setIndex( index ) {
+	function setIndex( indexProperties ) {
 
-		if ( index.array instanceof Uint32Array && extensions.get( 'OES_element_index_uint' ) ) {
-
-			type = gl.UNSIGNED_INT;
-			size = 4;
-
-		} else if ( index.array instanceof Uint16Array ) {
-
-			type = gl.UNSIGNED_SHORT;
-			size = 2;
-
-		} else {
-
-			type = gl.UNSIGNED_BYTE;
-			size = 1;
-
-		}
+		type = indexProperties.type;
+		size = indexProperties.bytesPerElement;
 
 	}