Hi All,

As part of the work on porting the OpenSceneGraph to OpenGL ES-2.0 I
have had to loosen the OpenSceneGraph's reliance on GLU.  Yesterday I
implemented a Cmake and associated #define of OSG_GLU_AVAILABLE.  If
you don't have GLU installed when you first run cmake it'll
automatically set this to OFF, and it'll also comment out the new
#define OSG_GLU_AVAILABLE from include/osg/Config.

Within the source code the new #define OSG_GLU_AVAILABLE is used to
protect all GLU calls, with a fallback of simply issuing of a "feature
unsupported message" as  console warning when those now optional code
paths aren't available.  The OSG can actually be used pretty easily
without touching the GLU dependent features, but it does require you
to prepare you scene graphs so that don't require image resizing, or
rely on mipmap generation that GLU provides.  You'll also have to
avoid using the glu dependent tessellation codes in
osgUtil::Tessellator or the lwo and dw plugins with both use the glu
tessellation.

If you do have GLU installed on your system then the changes I checked
into svn/trunk yesterday evening shouldn't effect you in any way.  If
you do wish to test out a GLU free existence then even on these GLU
capable systems you can switch off the need for GLU by running "ccmake
." or CMakeSetup and setting the OSG_GLU_AVAILABLE to OFF (it's an
advanced option so you'll need to press 't' to toggle on the advanced
options.)

For systems without GLU libs and headers installed Cmake will now
automatically set OSG_GLU_AVAILABLE to OFF and not both to compile or
link against GLU.  It would be worth being mindful of moving to a new
system and forgetting to install GLU if you actually need it as right
now the OSG build system won't shout at you that you don't have GLU,
it'll just silently get on with compiling without GLU.  What you will
notice is that if you require GLU the features highlighted above won't
work, and you might get erroneous tessellations or white textures
where you'd expect valid ones.  The with GLU and without GLU versions
of the OSG are binary compatible (there are no interface changes
between the two) so just compiling the OSG against GLU will allow you
app to work without a need to recompile your application.

In the longer term I'd like to get to a point where we replace the
current GLU usage with equivalent functions, this is not a small task
though, so it's not one I'll tackle right away.  If you are curious
about what needs replacing just do a recursive grep through the OSG
sources for OSG_GLU_AVAILABLE.  Assistance in developing/integrating
these equivalent functions would be greatly appreciated :-)

Cheers,
Robert.
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to