Hi Colin, Sorry about the loooong delay in reviewing this submissions. I've just reviewed it and find it a good solution to the issue of adapting 3rd party windowing into sharing of contexts. The GraphicsWindowX11, PixelBufferX11 + GraphicsWindowWin32 implementations have evolved a bit since you made your changes so I've merged your changes to fit in with these.
I've only tested under X11/GLX so far, and will next test under X11/EGL to make sure no regressions have been introduced. I can't test Carbon or Win32 though so will have defer to others to help test this out. Could you do check of svn/trunk at your end to make sure that combined changes are all sound. Cheers, Robert. On Thu, Aug 20, 2009 at 3:00 PM, Colin McDonald <[email protected]> wrote: > Hi Robert, > > In my application I have a custom graphics context class, derived from > osg::GraphicsContext, in order to give good integration with the > application's GUI toolkit. This works really well. > > However, I need to share OpenGL texture resources with the standard > osgViewer GraphicsContext implementations, in particular the > PixelBuffers. This is essential for my application to conserve graphics > memory on low-end hardware. Currently the standard osg implementations > will not share resources with another derived osg::GraphicsContext, > other than the pre-defined osgViewer classes e.g. PixelBufferX11 is > hardcoded to only share resources with GraphicsWindowX11 and > PixelBufferX11 objects, and no other osg::GraphicsContext object. > > To address this in the cleanest way I could think of, I have moved the > OpenGL handle variables for each platform into a small utility class, > e.g. GraphicsHandleX11 for unix. Then GraphicsWindowX11, PixelBufferX11 > and any other derived osg::GraphicsContext class can inherit from > GraphicsHandleX11 to share OpenGL resources. > > I have updated the X11, Win32 and Carbon implementations to use this. > The changes are minor. I haven't touched the Cocoa implmentation as > I'm not familiar with it at all and couldn't test it - it will work > unchanged. > > Without this I had some horrible hacks in my application, this greatly > simplifies things for me. It also simplifies the osgViewer > implementations slightly. Perhaps it may help with other users' > desires to share resources with external graphics contexts, as was > discussed on the user list recently. > > Regards > > Colin McDonald > > _______________________________________________ > osg-submissions mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org > > _______________________________________________ osg-submissions mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
