Robert,

Let's graph this out:

                          object*
                            /\
                           /  \
                          /    \
     Drawable::CullCallback    NodeCallback*
                          \_  _/
                            \/
                   ClusterCullingCallback

* releaseGLObject() is implemented in this class.

I agree that the implemenation should be removed from NodeCallback since
it is trivial and it'll probably cause ambiguous inheritance problems in
the future (e.g. inheriting from Drawable::DrawCallback). For example
implementing any kind of DrawingCallback that follows this pattern would
fail as ambiguous.

It seems like introducing a Drawable::CallbackBase class might be a good
idea to encapsulate this method, unless you think that it's appropriate
for osg::Object to have a (conceptual) dependency on OpenGL. It looks
like that as long as it's in osg:Object there is going to be the
possibility of dominance warnings and ambiguous errors when people try
to implement callback objects.

ps: I guess I can answer my own question about Drawable, since the
callbacks are not derived from it it's not a potential base for the
release method.

Regards,
Marcus

On Tue, 2006-10-03 at 21:44 +0100, Robert Osfield wrote:
> On 10/3/06, Robert Osfield <[EMAIL PROTECTED]> wrote:
>         So it should be safe to strip it from the other callbacks.
>         I'll have a tinker.
> 
> I have just done this and everything is compiling ok on my linux box,
> and got past any of the likely flash points so I've checked these
> changes in. 
> 
> Fingers crossed VS2005 will compile with these warnings.
> 
> Robert.
> _______________________________________________
> osg-users mailing list
> [email protected]
> http://openscenegraph.net/mailman/listinfo/osg-users
> http://www.openscenegraph.org/

_______________________________________________
osg-users mailing list
[email protected]
http://openscenegraph.net/mailman/listinfo/osg-users
http://www.openscenegraph.org/

Reply via email to