[osg-submissions] SharedStateManager updated for all DataVariance modes

Terry Welsh mogumbo at gmail.com
Wed Jul 2 11:22:03 PDT 2008


Looks like it's working fine.  Thanks.....

>
> Hi Terry,
>
> Thanks for the changes.  I've done a review and found the changes a
> little more complex (in terms of if statment size) so I have changed
> the way that comparisons are done using a
> shareTextures()/shareStateSets() helper function, that wraps up a
> boo[3] vector, one bool for each of DYNAMIC, STATIC and UNSPECIFIED.
> The resulting code is cleaner and hopefully more maintainable with it.
>
> I've checked in my changes, could you do an svn update and let me know
> if these changes work out fine.
>
> Cheers,
> Robert.
>
> On Wed, Jul 2, 2008 at 1:01 AM, Terry Welsh <mogumbo at gmail.com> wrote:
>> It sounded like nobody was opposed to this update, so here is the
>> code.  I didn't change the value of SHARE_ALL for the sake of backward
>> compatibility even though it probably should be different.  I still
>> consider that possibility open for discussion.
>>
>> Per Robert's suggestion, the default share mode was SHARE_TEXTURES and
>> is now SHARE_STATIC_TEXTURES | SHARE_UNSPECIFIED_TEXTURES.  I'm not
>> sure why textures were the default share mode instead of StateSets.
>> Maybe the original author will comment on that?  I kept SHARE_TEXTURES
>> equal to SHARE_STATIC_TEXTURES for backward compatibility, and did the
>> same for StateSets.
>>
>> After doing this I think SharedStateManager could be expanded a lot,
>> but I don't know how much it would help performance.  For example, you
>> could share individual StateAttributes instead of whole StateSets.
>> More specifically, a StateSet is not equal to another StateSet if only
>> its texture is different.  Seems like there would be a lot of
>> opportunities in typical OSG usage to share most attributes in
>> StateSets that only differ by their texture.
>> - Terry
>>


More information about the osg-submissions mailing list