Changeset 10621 for OpenSceneGraph/trunk/src/osg/State.cpp
- Timestamp:
- 10/09/09 15:39:11 (4 years ago)
- Files:
-
- 1 modified
-
OpenSceneGraph/trunk/src/osg/State.cpp (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
OpenSceneGraph/trunk/src/osg/State.cpp
r10614 r10621 45 45 _modelView = _identity; 46 46 47 _modelViewMatrixUniform = new Uniform(Uniform::FLOAT_MAT4,"osg_ModelViewMatrix"); 48 _projectionMatrixUniform = new Uniform(Uniform::FLOAT_MAT4,"osg_ProjectionMatrix"); 49 _modelViewProjectionMatrixUniform = new Uniform(Uniform::FLOAT_MAT4,"osg_ModelViewProjectionMatrix"); 50 47 51 _abortRenderingPtr = false; 48 52 … … 91 95 _maxTexturePoolSize = 0; 92 96 _maxBufferObjectPoolSize = 0; 97 98 93 99 } 94 100 … … 421 427 //popStateSet(); 422 428 //return; 423 429 424 430 if (dstate) 425 431 { … … 441 447 if (unit<ds_textureModeList.size()) applyModeList(getOrCreateTextureModeMap(unit),ds_textureModeList[unit]); 442 448 else if (unit<_textureModeMapList.size()) applyModeMap(_textureModeMapList[unit]); 443 449 444 450 if (unit<ds_textureAttributeList.size()) applyAttributeList(getOrCreateTextureAttributeMap(unit),ds_textureAttributeList[unit]); 445 451 else if (unit<_textureAttributeMapList.size()) applyAttributeMap(_textureAttributeMapList[unit]); 446 452 } 447 453 } 448 449 #if 1 454 450 455 applyUniformList(_uniformMap,dstate->getUniformList()); 451 #else452 if (_lastAppliedProgramObject)453 {454 for(StateSetStack::iterator sitr=_stateStateStack.begin();455 sitr!=_stateStateStack.end();456 ++sitr)457 {458 const StateSet* stateset = *sitr;459 const StateSet::UniformList& uniformList = stateset->getUniformList();460 for(StateSet::UniformList::const_iterator itr=uniformList.begin();461 itr!=uniformList.end();462 ++itr)463 {464 _lastAppliedProgramObject->apply(*(itr->second.first));465 }466 }467 468 const StateSet::UniformList& uniformList = dstate->getUniformList();469 for(StateSet::UniformList::const_iterator itr=uniformList.begin();470 itr!=uniformList.end();471 ++itr)472 {473 _lastAppliedProgramObject->apply(*(itr->second.first));474 }475 }476 #endif477 478 456 } 479 457 else … … 509 487 } 510 488 511 #if 1512 489 applyUniformMap(_uniformMap); 513 #else514 if (_lastAppliedProgramObject && !_stateStateStack.empty())515 {516 for(StateSetStack::iterator sitr=_stateStateStack.begin();517 sitr!=_stateStateStack.end();518 ++sitr)519 {520 const StateSet* stateset = *sitr;521 const StateSet::UniformList& uniformList = stateset->getUniformList();522 for(StateSet::UniformList::const_iterator itr=uniformList.begin();523 itr!=uniformList.end();524 ++itr)525 {526 _lastAppliedProgramObject->apply(*(itr->second.first));527 }528 }529 }530 #endif531 532 490 533 491 if (_checkGLErrors==ONCE_PER_ATTRIBUTE) checkGLErrors("end of State::apply()"); … … 1034 992 1035 993 994 void State::applyModelViewAndProjectionUniformsIfRequired() 995 { 996 if (!_lastAppliedProgramObject) return; 997 998 if (_modelViewMatrixUniform.valid()) _lastAppliedProgramObject->apply(*_modelViewMatrixUniform); 999 if (_projectionMatrixUniform) _lastAppliedProgramObject->apply(*_projectionMatrixUniform); 1000 if (_modelViewProjectionMatrixUniform) _lastAppliedProgramObject->apply(*_modelViewProjectionMatrixUniform); 1001 }
