Browse Source

Support Uint8Array in BufferAttribute

Fix #8358
Ningxin Hu 9 years ago
parent
commit
8559c8ea0f
1 changed files with 12 additions and 1 deletions
  1. 12 1
      src/renderers/WebGLRenderer.js

+ 12 - 1
src/renderers/WebGLRenderer.js

@@ -1016,8 +1016,19 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 
 						}
 						}
 
 
+						var type = _gl.FLOAT;
+						var normalized = false;
+						var array = geometryAttribute.array;
+
+						if ( array instanceof Uint8Array ) {
+
+							type = _gl.UNSIGNED_BYTE;
+							normalized = true;
+
+						}
+
 						_gl.bindBuffer( _gl.ARRAY_BUFFER, buffer );
 						_gl.bindBuffer( _gl.ARRAY_BUFFER, buffer );
-						_gl.vertexAttribPointer( programAttribute, size, _gl.FLOAT, false, 0, startIndex * size * 4 ); // 4 bytes per Float32
+						_gl.vertexAttribPointer( programAttribute, size, type, normalized, 0, startIndex * size * array.BYTES_PER_ELEMENT );
 
 
 					}
 					}