Hi, What do you refer to by "modern OpenGL features"? Personally, I would say that avaibility of GL features where related to GLContext version. However I always use compatiblity profile and not core profile, so don't have experience with coreprofile in osg. Can you tell me why you would require core profile in osg?
heandreas wrote: > Hi, > I am currently porting an application so that it uses the OpenGL core > profile, mainly in order to gain access to modern OpenGL features under OS X. > I had to make some changes to osg so that it does not use deprecated > functions. However, the changes are not OS X specific (in fact I tested only > Windows so far). > > Texture::getModeUsage now only adds the texture mode if > FIXED_FUNCTION_AVAILABLE is defined > PolygonMode now can still be used to achieve wireframe rendering in GL3 core > profile (previously it was ignored completely) > State::initializeExtensionProcs now only queries GL_MAX_TEXTURE_COORDS if > FIXED_FUNCTION_AVAILABLE is defined > Texture::applyTexParameters: CLAMP is translated to CLAMP_TO_EDGE if > OSG_GL3_AVAILABLE is defined > Texture::applyTexParameters: GL_DEPTH_TEXTURE_MODE_ARB is not set if neither > GL1 nor GL2 is available > > > These changes eliminate the warnings and errors I was getting and my > applications seems to work. So far, I only tested under Windows, but I will > try out OS X and Linux soon. One thing that is missing is VAO support, I > simply bind a VAO using QT right before rendering as a workaround. > > I also made a change that is completely unrelated to core profile > compatibility in State.cpp. Previously, State created a GLExtensions object > in its constructor and deleted it in its destructor. It also called > GLExtensions::Set when creating and deleting the extension object, which in > my opinion is problematic because it may delete an extension object that was > not created by the State object. I changed State so that it simply uses > GLExtensions::Get(_contextID, true) to get its extension object and removed > the calls to GLExtensions::Set. I did this because I had a strange and > unpredictable problem with the extension object in another part of my code > and wanted to simplify the initialization process. > > My patch is based on the current github repository (osg116). > > My application also uses osgText, which required much more changes to work > with the core profile. Most notably I had to change the Glyph class so that > it uses VBOs. It was also necessary to change the font texture format, > because GL_ALPHA is deprecated. You probably do not want to merge my changes > to osgText yet, because additional testing is required under different > platforms. I could submit the files later after additional testing. > > Cheers, > Andreas ------------------ Read this topic online here: http://forum.openscenegraph.org/viewtopic.php?p=62286#62286 _______________________________________________ osg-submissions mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
