Canvas troubleshooting: Difference between revisions

Jump to navigation Jump to search
m
Line 224: Line 224:
osg::StateSet *state = getOrCreateStateSet();
osg::StateSet *state = getOrCreateStateSet();
state->setTextureMode(0,GL_TEXTURE_2D,osg::StateAttribute::PROTECTED | osg::StateAttribute::OFF);
state->setTextureMode(0,GL_TEXTURE_2D,osg::StateAttribute::PROTECTED | osg::StateAttribute::OFF);
</syntaxhighlight>
We can use a helper object to wrap the enable/disable logic, i.e. using a struct (pseudo code):
<syntaxhighlight lang="cpp">
struct CanvasElementOption {
// abstract
virtual void enable() = 0;
virtual void disable() = 0;
private:
osg::StateSet _state = _element->getOrCreateStateSet();
};
struct CanvasElementTextureOption : public CanvasElementOption {
CanvasElementOption(CanvasElement* element) : _element(element) {}
void enable() {
_state->setTextureMode(0,GL_TEXTURE_2D,osg::StateAttribute::PROTECTED | osg::StateAttribute::ON);
}
void disable() {
_state->setTextureMode(0,GL_TEXTURE_2D,osg::StateAttribute::PROTECTED | osg::StateAttribute::OFF);
}
};
</syntaxhighlight>
</syntaxhighlight>


Navigation menu