1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- /**
- * @author mrdoob / http://mrdoob.com/
- */
- function WebGLObjects( gl, geometries, attributes, info ) {
- var updateList = {};
- function update( object ) {
- var frame = info.render.frame;
- var geometry = object.geometry;
- var buffergeometry = geometries.get( object, geometry );
- // Update once per frame
- if ( updateList[ buffergeometry.id ] !== frame ) {
- if ( geometry.isGeometry ) {
- buffergeometry.updateFromObject( object );
- }
- geometries.update( buffergeometry );
- updateList[ buffergeometry.id ] = frame;
- }
- if ( object.isInstancedMesh ) {
- attributes.update( object.instanceMatrix, gl.ARRAY_BUFFER );
- attributes.update( object.instanceNormalMatrix, gl.ARRAY_BUFFER );
- }
- return buffergeometry;
- }
- function dispose() {
- updateList = {};
- }
- return {
- update: update,
- dispose: dispose
- };
- }
- export { WebGLObjects };
|