[osg-submissions] fix DISPLAY detection in osg::GraphicsContext::ScreenIdentifier::setScreenIdentifier

Tim Moore timoore at redhat.com
Fri Jan 4 03:20:08 PST 2008


Robert Osfield wrote:
> HI Tim,
> 
> On Jan 4, 2008 10:53 AM, Tim Moore <timoore at redhat.com> wrote:
>> The problem is that users who have DISPLAY=:0, which we believe is valid, can't start
>> OSG applications that check the display value. They fail with a Error: Not able to create requested visual.
>> message.
It's more accurate to say "can't start FlightGear."
>>
>> I suppose the proper fix is to handle this case in GraphicsWindowX11.cpp.
> 
> This is most likely a bug in core osgViewer::View.cpp and perhaps the
> other setup code.  It isn't intended that one passes undefined
> ScreeenIdentifier.  Perhaps its best to add a catch block into
> GraphicsWindowX11.cpp to catch this case as well to cope with times
> when things aren't specified correctly.
> 
> Which version of the OSG is this problem occurring with?  There has
> already been some fixes to the SVN version since 2.2 which do relate
> to the handling of ScreenIdentifier.
> 
SVN as of mid-December.
> Is there are an OSG example that produces this problem?
> 
I couldn't find one. There is some code in osgViewer/View.cpp to deal with the case in
setUpViewAcrossAllScreens(), which is probably the common code path for osgviewer. I
suspect that you hit the problem if your application initializes a Traits structure and
creates a graphics context itself.

Tim



More information about the osg-submissions mailing list