( object, scene )
| 21635 | // Objects updates |
| 21636 | |
| 21637 | function updateObject( object, scene ) { |
| 21638 | |
| 21639 | var geometry = object.geometry, customAttributesDirty, material; |
| 21640 | |
| 21641 | if ( geometry instanceof THREE.BufferGeometry ) { |
| 21642 | |
| 21643 | setDirectBuffers( geometry ); |
| 21644 | |
| 21645 | } else if ( object instanceof THREE.Mesh ) { |
| 21646 | |
| 21647 | // check all geometry groups |
| 21648 | |
| 21649 | if ( geometry.groupsNeedUpdate === true ) { |
| 21650 | |
| 21651 | initGeometryGroups( scene, object, geometry ); |
| 21652 | |
| 21653 | } |
| 21654 | |
| 21655 | var geometryGroupsList = geometryGroups[ geometry.id ]; |
| 21656 | |
| 21657 | for ( var i = 0, il = geometryGroupsList.length; i < il; i ++ ) { |
| 21658 | |
| 21659 | var geometryGroup = geometryGroupsList[ i ]; |
| 21660 | |
| 21661 | material = getBufferMaterial( object, geometryGroup ); |
| 21662 | |
| 21663 | if ( geometry.groupsNeedUpdate === true ) { |
| 21664 | |
| 21665 | initMeshBuffers( geometryGroup, object ); |
| 21666 | |
| 21667 | } |
| 21668 | |
| 21669 | customAttributesDirty = material.attributes && areCustomAttributesDirty( material ); |
| 21670 | |
| 21671 | if ( geometry.verticesNeedUpdate || geometry.morphTargetsNeedUpdate || geometry.elementsNeedUpdate || |
| 21672 | geometry.uvsNeedUpdate || geometry.normalsNeedUpdate || |
| 21673 | geometry.colorsNeedUpdate || geometry.tangentsNeedUpdate || customAttributesDirty ) { |
| 21674 | |
| 21675 | setMeshBuffers( geometryGroup, object, _gl.DYNAMIC_DRAW, ! geometry.dynamic, material ); |
| 21676 | |
| 21677 | } |
| 21678 | |
| 21679 | } |
| 21680 | |
| 21681 | geometry.verticesNeedUpdate = false; |
| 21682 | geometry.morphTargetsNeedUpdate = false; |
| 21683 | geometry.elementsNeedUpdate = false; |
| 21684 | geometry.uvsNeedUpdate = false; |
| 21685 | geometry.normalsNeedUpdate = false; |
| 21686 | geometry.colorsNeedUpdate = false; |
| 21687 | geometry.tangentsNeedUpdate = false; |
| 21688 | |
| 21689 | material.attributes && clearCustomAttributes( material ); |
| 21690 | |
| 21691 | } else if ( object instanceof THREE.Line ) { |
| 21692 | |
| 21693 | material = getBufferMaterial( object, geometry ); |
| 21694 |
no test coverage detected