| | 93 | for(AppliedProgramObjectSet::iterator itr = _appliedProgramObjectSet.begin(); |
| | 94 | itr != _appliedProgramObjectSet.end(); |
| | 95 | ++itr) |
| | 96 | { |
| | 97 | (*itr)->removeObserver(this); |
| | 98 | } |
| | 99 | } |
| | 100 | |
| | 101 | void State::objectDeleted(void* object) |
| | 102 | { |
| | 103 | const Program::PerContextProgram* ppcp = reinterpret_cast<const Program::PerContextProgram*>(object); |
| | 104 | AppliedProgramObjectSet::iterator itr = _appliedProgramObjectSet.find(ppcp); |
| | 105 | if (itr != _appliedProgramObjectSet.end()) |
| | 106 | { |
| | 107 | osg::notify(osg::NOTICE)<<"Removing _appliedProgramObjectSet entry "<<ppcp<<std::endl; |
| | 108 | _appliedProgramObjectSet.erase(itr); |
| | 109 | } |