Hello,
Ive encountered repeated problems with the OVERRIDE flag value on 
StateAttribute (seams not taken into account).
 And as I developped my own runtime environment, I have to debug my own code 
before to sure. After that i will debug osg and write back my investigations 
result here.
Cheers.

robertosfield wrote:
> Hi Julien,
> 
> 
> I don't recall the why and wherefores of this particular bit of code in 
> StateSet.cpp (i.e. line 1662 and associated code) but it's a loooong time 
> since I wrote it ;-)
> 
> 
> My best guess right now is that the ON/OFF for StateAttribute doesn't affect 
> anything, a StateAttribute isn't like a GL Mode that can be switched on/off. 
> All you can do with a StateAttribute is call it or not, and if you don't want 
> to call it you remove it from the StateSet.  This means all StateAttribute 
> attached to StateSet are implicitly ON if you wanted to think it about a mode 
> but in the end it's not a mode so it's probably best not to try and treat it 
> like one.
> 
> 
> In the case of the StateSet API we reuse the OverrideValue as a bit mask so 
> it's used for the mode ON/OFF and the OVERRIDE and PROTECTED switches.  The 
> ON/OFF is only relevant to store for the Mode which StateAttribute and 
> Uniform's only the OVERRIDE and PROTECTED are significant to store.
> 
> 
> Does this make sense?
> 
> Robert.
> 
> 
> 
> 
> 
> 
> 
> On 9 September 2015 at 18:45, Julien Valentin < ()> wrote:
> 
> > Hi,
> > Iwould like to introspect StateSet in order to know which override value is 
> > activated for a particular stateset.
> > I parse AttributeList for this
> > 
> > Code:
> > for( osg::StateSet::AttributeList::const_iterator 
> > it=ss->getAttributeList().begin();it!=ss->getAttributeList().end() ; it++)
> > {
> >             if((*it).second.first ==stateattribute)
> >             {
> >                 if( (*it).second.second & osg::StateAttribute::ON)
> >                 return(1);
> >                 else return(0);
> > }
> > 
> > 
> > 
> > but according to StateSet.cpp l.1662
> > 
> > Code:
> > attributeList[attribute->getTypeMemberPair()] = 
> > RefAttributePair(attribute,value&(StateAttribute::OVERRIDE|StateAttribute::PROTECTED));
> > 
> > 
> > 
> > the ON OFF bit is removed from the given user value. So I can't determine 
> > if an osg::Attribute is ON or OFF but only if it's OVERRIDE or PROTECTED
> > I would like to know if there's a known reason behind this logic & and 
> > further if you know a mean to retrieve the ON/OFF bit.
> > 
> > Thank you!
> > 
> > Cheers,
> > Julien
> > 
> > ------------------
> > Read this topic online here:
> > http://forum.openscenegraph.org/viewtopic.php?p=65081#65081 
> > (http://forum.openscenegraph.org/viewtopic.php?p=65081#65081)
> > 
> > 
> > 
> > 
> > 
> > _______________________________________________
> > osg-users mailing list
> >  ()
> > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org 
> > (http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org)
> > 
> 
> 
>  ------------------
> Post generated by Mail2Forum


------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=65167#65167





_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to