[osg-users] EXTERNAL: Re: EXTERNAL: Re: Where is CreateContextAttribs() being used?

Glenn Waldron gwaldron at gmail.com
Mon Apr 15 12:33:23 PDT 2019


Here's a quick reference for building OSG (and osgEarth) for GL CORE... may
be helpful.

Glenn Waldron


On Thu, Apr 11, 2019 at 10:49 AM Sebastian Messerschmidt <
sebastian.messerschmidt at gmx.de> wrote:

> Merlin,
>
>
>
> As Chris already mentioned the complete application needs to run on
> core-profile. That means there is no fixed function pipeline and no
> backward-compatibility features.
>
> In order to get your application running in core-profile you need to write
> shaders for everything and IIRC compile OSG with GL3 enabled. I haven’t
> used OSG in a while now, but I think there is mechanism to decorate the
> scene graph with shaders automatically.
>
>
>
> I started to refactor my project some years ago to fully support core-only
> scenarios, but I gave up due to a lot features no longer working
> out-of-the-box.
>
> Can you maybe try to explain what you’re trying to debug? There might be
> some more options for you.
>
>
>
>
>
> Cheers
>
> Sebastian
>
>
>
> *From:* osg-users <osg-users-bounces at lists.openscenegraph.org> *On Behalf
> Of *Rowley, Marlin R
> *Sent:* Donnerstag, 11. April 2019 16:24
> *To:* OpenSceneGraph Users <osg-users at lists.openscenegraph.org>
> *Subject:* Re: [osg-users] EXTERNAL: Re: EXTERNAL: Re: Where is
> CreateContextAttribs() being used?
>
>
>
> Sebastian,
>
>
>
> What does “core OpenGL profile” mean with regards to the graphics
> context?  I’m still not getting it to work.
>
>
>
> Here is my code structure:
>
>
>
>>
> osg::ref_ptr<osg::GraphicsContext::Traits> traits = new osg::
> GraphicsContext::Traits;
>
>             traits->x = aXPosition;
>
>             traits->y = aYPosition;
>
>             traits->width  = aWidth;
>
>             traits->height = aHeight;
>
>             traits->stencil = 8;
>
>             traits->doubleBuffer     = true;
>
>             traits->windowDecoration = false;
>
> #if defined(WIN32)
>
>             traits->inheritedWindowData = new osgViewer::
> GraphicsWindowWin32::WindowData( aWindow );
>
> #elif defined(__linux__)
>
>            traits->inheritedWindowData = new
> osgViewer::GraphicsWindowX11::WindowData( aWindow );
>
> #endif
>
>             // gl graphics context version and profile mask
>
>             *traits**->**glContextVersion **=* *"3.3"**;*
>
>             *traits**->**glContextProfileMask = 0x1;*
>
>
>
> // create the graphics window from the context
>
>             osgViewer::GraphicsWindow* gw = dynamic_cast<osgViewer::
> GraphicsWindow*>(osg::GraphicsContext
> ::createGraphicsContext(traits.get()));
>
>
>
>>
>
>
> // set the main camera to use the window
>
> mainCamera->setGraphicsContext( gw );
>
>
>
>>
>
>
> I assume here that setting the traits variable with the major/minor
> version of OpenGL and setting the profile mask to 1 (‘core’??) would be all
> I need.  But that’s obviously not the case.
>
>
>
> -M
>
>
>
> ----------------------------------------
>
> Marlin Rowley
>
> Software Engineer, Staff
>
> [image: cid:image002.jpg at 01D39374.DEC5A2E0]
>
> *Missiles and Fire Control*
>
> 972-603-1931 (office)
>
> 214-926-0622 (mobile)
>
> marlin.r.rowley at lmco.com
>
>
>
> *From:* osg-users <osg-users-bounces at lists.openscenegraph.org> *On Behalf
> Of *sebastian.messerschmidt at gmx.de
> *Sent:* Thursday, April 11, 2019 9:01 AM
> *To:* 'OpenSceneGraph Users' <osg-users at lists.openscenegraph.org>
> *Subject:* EXTERNAL: Re: [osg-users] EXTERNAL: Re: Where is
> CreateContextAttribs() being used?
>
>
>
> Hi Marlin,
>
>
>
> In order for RenderDoc (and most tools I’m aware of) you’re application
> needs to run on core OpenGL profile.
>
> You might want to look here for some debugging options:
> https://www.khronos.org/opengl/wiki/Debugging_Tools
>
> I personally used Nvidia Nsight for quite a while, as it at least helps
> with framebuffer debugging etc.
>
>
>
> Cheers
>
> Sebastian
>
>
>
>
>
> *From:* osg-users <osg-users-bounces at lists.openscenegraph.org> *On Behalf
> Of *Rowley, Marlin R
> *Sent:* Donnerstag, 11. April 2019 14:52
> *To:* OpenSceneGraph Users <osg-users at lists.openscenegraph.org>
> *Subject:* Re: [osg-users] EXTERNAL: Re: Where is CreateContextAttribs()
> being used?
>
>
>
> We are using Win10-x64.
>
>
>
> We are trying to get RenderDoc to be able to see our application so we can
> do some graphics debugging.  It’s shouting back that the current device
> context wasn’t created using CreateContextAttrib, so I started looking. So
> since we are using Win64, doesn’t look like osg will go the WindowWin32
> route. Hmm…
>
>
>
> How are you debugging the GPU?  It’s incredibly difficult trying to solve
> realtime pipeline problems without the use of a graphics debugger.
>
>
>
> ----------------------------------------
>
> Marlin Rowley
>
> Software Engineer, Staff
>
> [image: cid:image002.jpg at 01D39374.DEC5A2E0]
>
> *Missiles and Fire Control*
>
> 972-603-1931 (office)
>
> 214-926-0622 (mobile)
>
> marlin.r.rowley at lmco.com
>
>
>
> *From:* osg-users <osg-users-bounces at lists.openscenegraph.org> *On Behalf
> Of *Robert Osfield
> *Sent:* Thursday, April 11, 2019 7:16 AM
> *To:* OpenSceneGraph Users <osg-users at lists.openscenegraph.org>
> *Subject:* EXTERNAL: Re: [osg-users] Where is CreateContextAttribs()
> being used?
>
>
>
> Hi Marlin,
>
>
>
> A great for CreateContextttribs in the OSG shows:
>
>
>
> $ grep -r CreateContextAttribs .
> Binary file ./lib/libosgViewer.so.3.6.4 matches
> Binary file
> ./src/osgViewer/CMakeFiles/osgViewer.dir/GraphicsWindowX11.cpp.o matches
> ./src/osgViewer/GraphicsWindowX11.cpp:        typedef GLXContext
> (*glXCreateContextAttribsARBProc)(Display*, GLXFBConfig, GLXContext, Bool,
> const int*);
> ./src/osgViewer/GraphicsWindowX11.cpp:
> glXCreateContextAttribsARBProc glXCreateContextAttribsARB = 0;
> ./src/osgViewer/GraphicsWindowX11.cpp:
> glXCreateContextAttribsARB = (glXCreateContextAttribsARBProc)
> glXGetProcAddress((const GLubyte*)"glXCreateContextAttribsARB");
> ./src/osgViewer/GraphicsWindowX11.cpp:        if
> (glXCreateContextAttribsARB)
> ./src/osgViewer/GraphicsWindowX11.cpp:            _context =
> glXCreateContextAttribsARB( _display, _fbConfig, sharedContext, True,
> contextAttributes.data() );
> ./src/osgViewer/GraphicsWindowWin32.cpp:extern HGLRC WINAPI
> wglCreateContextAttribsARB (HDC, HGLRC, const int *);
> ./src/osgViewer/GraphicsWindowWin32.cpp:
> PFNWGLCREATECONTEXTATTRIBSARBPROC wglCreateContextAttribsARB =
> ./src/osgViewer/GraphicsWindowWin32.cpp:                (
> PFNWGLCREATECONTEXTATTRIBSARBPROC ) wglGetProcAddress(
> "wglCreateContextAttribsARB" );
> ./src/osgViewer/GraphicsWindowWin32.cpp:            if(
> wglCreateContextAttribsARB==0 )
> ./src/osgViewer/GraphicsWindowWin32.cpp:
> reportErrorForScreen( "GL3: wglCreateContextAttribsARB not available.",
> ./src/osgViewer/GraphicsWindowWin32.cpp:                context =
> wglCreateContextAttribsARB( _hdc, 0, attribs );
> ./src/osgViewer/GraphicsWindowWin32.cpp:
> reportErrorForScreen( "GL3: wglCreateContextAttribsARB returned NULL.",
>
>
>
> So only X11 and Win32.  What platform are you using?
>
>
>
> Robert.
>
>
>
>
>
>
>
> On Thu, 11 Apr 2019 at 00:32, Rowley, Marlin R <marlin.r.rowley at lmco.com>
> wrote:
>
> We are trying to run the graphics debugger called ‘RenderDoc’.  It’s
> spitting out an error message after we create a window and it’s device
> context.  I’ve been looking through the osg code to find a function called
> CreateContextAttribs().  I can’t seem to locate it. My idea is to override
> where it’s used or refactor something into the code where we can call the
> function ourselves.
>
>
>
> In the meantime, I’m setting the traits->glContextVersion = “3.3” in our
> graphics application but RenderDoc is still shouting “Context not created
> via CreateContextAttribs.  Capturing disabled.”
>
>
>
> -M
>
>
>
> ----------------------------------------
>
> Marlin Rowley
>
> Software Engineer, Staff
>
> [image: cid:image002.jpg at 01D39374.DEC5A2E0]
>
> *Missiles and Fire Control*
>
> 972-603-1931 (office)
>
> 214-926-0622 (mobile)
>
> marlin.r.rowley at lmco.com
>
>
>
> _______________________________________________
> osg-users mailing list
> osg-users at lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
> _______________________________________________
> osg-users mailing list
> osg-users at lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20190415/574cd4be/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.jpg
Type: image/jpeg
Size: 3114 bytes
Desc: not available
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20190415/574cd4be/attachment.jpg>


More information about the osg-users mailing list