|
@@ -2,23 +2,32 @@
|
|
|
* @author mrdoob / http://mrdoob.com/
|
|
|
*/
|
|
|
|
|
|
-function WebGLObjects( gl, geometries ) {
|
|
|
+function WebGLObjects( gl, geometries, infoRender ) {
|
|
|
|
|
|
function update( object ) {
|
|
|
|
|
|
- // TODO: Avoid updating twice (when using shadowMap). Maybe add frame counter.
|
|
|
+ var frame = infoRender.frame;
|
|
|
|
|
|
- var geometry = geometries.get( object );
|
|
|
+ var geometry = object.geometry;
|
|
|
+ var buffergeometry = geometries.get( object, geometry );
|
|
|
|
|
|
- if ( object.geometry.isGeometry ) {
|
|
|
+ // Update once per frame
|
|
|
|
|
|
- geometry.updateFromObject( object );
|
|
|
+ if ( buffergeometry.__frame !== frame ) {
|
|
|
|
|
|
- }
|
|
|
+ if ( geometry.isGeometry ) {
|
|
|
+
|
|
|
+ buffergeometry.updateFromObject( object );
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
- geometries.update( geometry );
|
|
|
+ geometries.update( buffergeometry );
|
|
|
+
|
|
|
+ buffergeometry.__frame = frame;
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
- return geometry;
|
|
|
+ return buffergeometry;
|
|
|
|
|
|
}
|
|
|
|