Browse Source

Add count to InterleavedBuffer

dubejf 10 years ago
parent
commit
1753badade

+ 6 - 0
src/core/InterleavedBuffer.js

@@ -26,6 +26,12 @@ THREE.InterleavedBuffer.prototype = {
 
 
 	},
 	},
 
 
+	get count () {
+
+		return this.array.length / this.stride;
+
+	},
+
 	copyAt: function ( index1, attribute, index2 ) {
 	copyAt: function ( index1, attribute, index2 ) {
 
 
 		index1 *= this.stride;
 		index1 *= this.stride;

+ 2 - 2
src/core/InterleavedBufferAttribute.js

@@ -19,8 +19,8 @@ THREE.InterleavedBufferAttribute.prototype = {
 
 
 	get length() {
 	get length() {
 
 
-		console.warn( 'THREE.InterleavedBufferAttribute: .length has been renamed to .count.' );
-		return this.count;
+		console.warn( 'THREE.BufferAttribute: .length has been deprecated. Please use .count.' );
+		return this.array.length;
 
 
 	},
 	},
 
 

+ 8 - 8
src/renderers/WebGLRenderer.js

@@ -929,7 +929,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 
 							if ( geometry.maxInstancedCount === undefined ) {
 							if ( geometry.maxInstancedCount === undefined ) {
 
 
-								geometry.maxInstancedCount = data.meshPerAttribute * ( data.array.length / data.stride );
+								geometry.maxInstancedCount = data.meshPerAttribute * data.count;
 
 
 							}
 							}
 
 
@@ -953,7 +953,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 
 							if ( geometry.maxInstancedCount === undefined ) {
 							if ( geometry.maxInstancedCount === undefined ) {
 
 
-								geometry.maxInstancedCount = geometryAttribute.meshPerAttribute * ( geometryAttribute.array.length / geometryAttribute.itemSize );
+								geometry.maxInstancedCount = geometryAttribute.meshPerAttribute * geometryAttribute.count;
 
 
 							}
 							}
 
 
@@ -1184,11 +1184,11 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 
 					if ( position instanceof THREE.InterleavedBufferAttribute ) {
 					if ( position instanceof THREE.InterleavedBufferAttribute ) {
 
 
-						extension.drawArraysInstancedANGLE( mode, 0, position.data.array.length / position.data.stride, geometry.maxInstancedCount ); // Draw the instanced meshes
+						extension.drawArraysInstancedANGLE( mode, 0, position.data.count, geometry.maxInstancedCount ); // Draw the instanced meshes
 
 
 					} else {
 					} else {
 
 
-						extension.drawArraysInstancedANGLE( mode, 0, position.array.length / position.itemSize, geometry.maxInstancedCount ); // Draw the instanced meshes
+						extension.drawArraysInstancedANGLE( mode, 0, position.count, geometry.maxInstancedCount ); // Draw the instanced meshes
 
 
 					}
 					}
 
 
@@ -1196,19 +1196,19 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 
 					if ( position instanceof THREE.InterleavedBufferAttribute ) {
 					if ( position instanceof THREE.InterleavedBufferAttribute ) {
 
 
-						_gl.drawArrays( mode, 0, position.data.array.length / position.data.stride );
+						_gl.drawArrays( mode, 0, position.data.count );
 
 
 					} else {
 					} else {
 
 
-						_gl.drawArrays( mode, 0, position.array.length / position.itemSize );
+						_gl.drawArrays( mode, 0, position.count );
 
 
 					}
 					}
 
 
 				}
 				}
 
 
 				_this.info.render.calls++;
 				_this.info.render.calls++;
-				_this.info.render.vertices += position.array.length / position.itemSize;
-				_this.info.render.faces += position.array.length / ( 3 * position.itemSize );
+				_this.info.render.vertices += position.count;
+				_this.info.render.faces += position.count / 3;
 
 
 			} else {
 			} else {