|
@@ -608,12 +608,6 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
_this.info.memory.geometries --;
|
|
_this.info.memory.geometries --;
|
|
|
|
|
|
- } if ( geometry instanceof THREE.Geometry2 ) {
|
|
|
|
-
|
|
|
|
- delete _buffers[ geometry.id ];
|
|
|
|
-
|
|
|
|
- _this.info.memory.geometries --;
|
|
|
|
-
|
|
|
|
} else {
|
|
} else {
|
|
|
|
|
|
if ( geometry.geometryGroups !== undefined ) {
|
|
if ( geometry.geometryGroups !== undefined ) {
|
|
@@ -1090,27 +1084,6 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
};
|
|
};
|
|
|
|
|
|
- function initGeometry2Buffers( geometry ) {
|
|
|
|
-
|
|
|
|
- var buffers = {};
|
|
|
|
- var attributes = [ 'vertices', 'normals', 'uvs' ];
|
|
|
|
-
|
|
|
|
- for ( var key in attributes ) {
|
|
|
|
-
|
|
|
|
- var array = geometry[ attributes[ key ] ];
|
|
|
|
- var buffer = _gl.createBuffer();
|
|
|
|
-
|
|
|
|
- _gl.bindBuffer( _gl.ARRAY_BUFFER, buffer );
|
|
|
|
- _gl.bufferData( _gl.ARRAY_BUFFER, array, _gl.STATIC_DRAW );
|
|
|
|
-
|
|
|
|
- buffers[ attributes[ key ] ] = buffer;
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- _buffers[ geometry.id ] = buffers;
|
|
|
|
-
|
|
|
|
- };
|
|
|
|
-
|
|
|
|
// Buffer setting
|
|
// Buffer setting
|
|
|
|
|
|
function setParticleBuffers ( geometry, hint, object ) {
|
|
function setParticleBuffers ( geometry, hint, object ) {
|
|
@@ -2481,27 +2454,6 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- function setGeometry2Buffers( geometry, hint ) {
|
|
|
|
-
|
|
|
|
- if ( geometry.needsUpdate === false ) return;
|
|
|
|
-
|
|
|
|
- var attributes = [ 'vertices', 'normals', 'uvs' ];
|
|
|
|
- var buffers = _buffers[ geometry.id ];
|
|
|
|
-
|
|
|
|
- for ( var key in attributes ) {
|
|
|
|
-
|
|
|
|
- var array = geometry[ attributes[ key ] ];
|
|
|
|
- var buffer = buffers[ attributes[ key ] ];
|
|
|
|
-
|
|
|
|
- _gl.bindBuffer( _gl.ARRAY_BUFFER, buffer );
|
|
|
|
- _gl.bufferData( _gl.ARRAY_BUFFER, array, hint );
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- geometry.needsUpdate = false;
|
|
|
|
-
|
|
|
|
- };
|
|
|
|
-
|
|
|
|
// Buffer rendering
|
|
// Buffer rendering
|
|
|
|
|
|
this.renderBufferImmediate = function ( object, program, material ) {
|
|
this.renderBufferImmediate = function ( object, program, material ) {
|
|
@@ -2597,56 +2549,6 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
};
|
|
};
|
|
|
|
|
|
- this.renderBufferGeometry2 = function ( camera, lights, fog, material, geometry, object ) {
|
|
|
|
-
|
|
|
|
- var program = setProgram( camera, lights, fog, material, object );
|
|
|
|
-
|
|
|
|
- var programAttributes = program.attributes;
|
|
|
|
-
|
|
|
|
- var attributes = { 'position': 'vertices', 'normal': 'normals', 'uv': 'uvs' };
|
|
|
|
- var itemSizes = { 'position': 3, 'normal': 3, 'uv': 2 };
|
|
|
|
-
|
|
|
|
- var buffers = _buffers[ geometry.id ];
|
|
|
|
-
|
|
|
|
- disableAttributes();
|
|
|
|
-
|
|
|
|
- for ( var name in programAttributes ) {
|
|
|
|
-
|
|
|
|
- var attributePointer = programAttributes[ name ];
|
|
|
|
-
|
|
|
|
- if ( attributePointer >= 0 ) {
|
|
|
|
-
|
|
|
|
- var array = geometry[ attributes[ name ] ];
|
|
|
|
-
|
|
|
|
- if ( array !== undefined && array.length > 0 ) {
|
|
|
|
-
|
|
|
|
- _gl.bindBuffer( _gl.ARRAY_BUFFER, buffers[ attributes[ name ] ] );
|
|
|
|
- enableAttribute( attributePointer );
|
|
|
|
- _gl.vertexAttribPointer( attributePointer, itemSizes[ name ], _gl.FLOAT, false, 0, 0 );
|
|
|
|
-
|
|
|
|
- } else {
|
|
|
|
-
|
|
|
|
- if ( itemSizes[ name ] === 3 ) {
|
|
|
|
-
|
|
|
|
- _gl.vertexAttrib3fv( attributePointer, [ 0, 0, 0 ] );
|
|
|
|
-
|
|
|
|
- } else if ( itemSizes[ name ] === 2 ) {
|
|
|
|
-
|
|
|
|
- _gl.vertexAttrib2fv( attributePointer, [ 0, 0 ] );
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- _gl.drawArrays( _gl.TRIANGLES, 0, geometry.vertices.length / 3 );
|
|
|
|
-
|
|
|
|
- };
|
|
|
|
-
|
|
|
|
this.renderBufferDirect = function ( camera, lights, fog, material, geometry, object ) {
|
|
this.renderBufferDirect = function ( camera, lights, fog, material, geometry, object ) {
|
|
|
|
|
|
if ( material.visible === false ) return;
|
|
if ( material.visible === false ) return;
|
|
@@ -3611,10 +3513,6 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
_this.renderBufferDirect( camera, lights, fog, material, buffer, object );
|
|
_this.renderBufferDirect( camera, lights, fog, material, buffer, object );
|
|
|
|
|
|
- } else if ( buffer instanceof THREE.Geometry2 ) {
|
|
|
|
-
|
|
|
|
- _this.renderBufferGeometry2( camera, lights, fog, material, buffer, object );
|
|
|
|
-
|
|
|
|
} else {
|
|
} else {
|
|
|
|
|
|
_this.renderBuffer( camera, lights, fog, material, buffer, object );
|
|
_this.renderBuffer( camera, lights, fog, material, buffer, object );
|
|
@@ -3834,10 +3732,6 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
initDirectBuffers( geometry );
|
|
initDirectBuffers( geometry );
|
|
|
|
|
|
- } else if ( geometry instanceof THREE.Geometry2 ) {
|
|
|
|
-
|
|
|
|
- initGeometry2Buffers( geometry );
|
|
|
|
-
|
|
|
|
} else if ( object instanceof THREE.Mesh ) {
|
|
} else if ( object instanceof THREE.Mesh ) {
|
|
|
|
|
|
material = object.material;
|
|
material = object.material;
|
|
@@ -3912,10 +3806,6 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
addBuffer( scene.__webglObjects, geometry, object );
|
|
addBuffer( scene.__webglObjects, geometry, object );
|
|
|
|
|
|
- } else if ( geometry instanceof THREE.Geometry2 ) {
|
|
|
|
-
|
|
|
|
- addBuffer( scene.__webglObjects, geometry, object );
|
|
|
|
-
|
|
|
|
} else if ( geometry instanceof THREE.Geometry ) {
|
|
} else if ( geometry instanceof THREE.Geometry ) {
|
|
|
|
|
|
for ( g in geometry.geometryGroups ) {
|
|
for ( g in geometry.geometryGroups ) {
|
|
@@ -3994,10 +3884,6 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
setDirectBuffers( geometry, _gl.DYNAMIC_DRAW );
|
|
setDirectBuffers( geometry, _gl.DYNAMIC_DRAW );
|
|
|
|
|
|
- } else if ( geometry instanceof THREE.Geometry2 ) {
|
|
|
|
-
|
|
|
|
- setGeometry2Buffers( geometry, _gl.DYNAMIC_DRAW );
|
|
|
|
-
|
|
|
|
} else if ( object instanceof THREE.Mesh ) {
|
|
} else if ( object instanceof THREE.Mesh ) {
|
|
|
|
|
|
// check all geometry groups
|
|
// check all geometry groups
|