12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- /**
- * @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 );
- }
- return buffergeometry;
- }
- function dispose() {
- updateList = {};
- }
- return {
- update: update,
- dispose: dispose
- };
- }
- export { WebGLObjects };
|