needsUpdate method
bool
needsUpdate(
- Object3D object,
- BufferGeometry geometry,
- WebGLProgram program,
- BufferAttribute<
NativeArray< ? index,num> >
Implementation
bool needsUpdate(Object3D object, BufferGeometry geometry, WebGLProgram program, BufferAttribute? index) {
var cachedAttributes = currentState["attributes"];
var geometryAttributes = geometry.attributes;
var attributesNum = 0;
var programAttributes = program.getAttributes();
for ( final name in programAttributes.keys ) {
Map programAttribute = programAttributes[ name ];
if ( programAttribute["location"] >= 0 ) {
var cachedAttribute = cachedAttributes[ name ];
var geometryAttribute = geometryAttributes[ name ];
if ( geometryAttribute == undefined ) {
if ( name == 'instanceMatrix' && object.instanceMatrix != null ) geometryAttribute = object.instanceMatrix;
if ( name == 'instanceColor' && object.instanceColor != null ) geometryAttribute = object.instanceColor;
}
if ( cachedAttribute == undefined ) return true;
if ( cachedAttribute["attribute"] != geometryAttribute ) return true;
if ( geometryAttribute != null && cachedAttribute["data"] != geometryAttribute.data ) return true;
attributesNum ++;
}
}
if (currentState["attributesNum"] != attributesNum) return true;
if (currentState["index"] != index) return true;
return false;
}