Re: Pf and OpenGL

New Message Reply Date view Thread view Subject view Author view

Chris Chuter (cchuter++at++yahoo.com)
Thu, 16 Sep 1999 16:27:21 -0700 (PDT)


I feel your pain. We have seen the exact same behavior when integrating OpenGL
widgets with performer. To get around it I not only do a glXMakeCurrent (Set
the context when I enter the widget), but I also set the context to Null when
I'm done with my widget function - glXMakeCurrent(getDisplay(), None, NULL).
So, Performer doesn't munch on the OpenGl context I'm using for my OpenGL
widget and and (I guess) is forced to get it's own. I'm not sure this will fix
your sigchild, but it's worth a shot.

Comments from the big guys on why we see this behavior?

-chris

--- Dirk Scheffter <scheff++at++ue.iff.fhg.de> wrote:
> Hi there,
>
> I tried to mix Performer and OpenGL in one app.
> That means: a main window contains a glwMDrawingAreaWidget which is filled
> using Performer and some others which are filled using OpenGL directly to
> display some 2D graphs in extra windows.
>
> First problem was that other users reported to me that Performer output
> appeared in these widgets instead of the desired 2D graphs.
> Until then I never had seen this on my systems. Thinking about this let me
> assume the following: The other users used single proc. and me allways multi
> proc. *grin* Switching my app to single proc. produced the same result on my
> systems.
>
> Thus, I assumed that Performer doesn't make current its own GL context
> because
> normally it doesn't change. (I guess - to save time.)
>
> Thus, I placed a GLwDrawingAreaMakeCurrent() at the beginning of channel draw
> callbacks. Now the result was fine in single proc. but in multi proc. I got a
> mystical SigChild before the first frame.
>
> Debugging and wondering a certain time I concluded that the first arg. of
> GLwDrawingAreaMakeCurrent() - the Widget) is not available in draw process
> because this widget is created in APP process and the internal contents of it
> is usually not stored in Performers shared memory arena.
>
> Replacing GLwDrawingAreaMakeCurrent() with glXMakeCurrent() (whereby I
> requested all parameters from Performer) solved this. :-) :-) :-)
>
> Any hints or comments?
>
> Greetings,
> Dirk.
>
>
> --
> -----------------------------------------------------------
> Dipl.-Inf. Dirk Scheffter scheff++at++iff.fhg.de
> Fraunhofer IFF fon: +49 (0) 391/40 90-854
> Sandtorstr. 22 fax: +49 (0) 391/40 90-870
> D-39106 Magdeburg http://wwwue.iff.fhg.de/~scheff
> Germany
> ----------< Try this: http://wwwue.iff.fhg.de/ibft/mowib >-
> -----------------------------------------------------------------------
> List Archives, FAQ, FTP: http://www.sgi.com/software/performer/
> Submissions: info-performer++at++sgi.com
> Admin. requests: info-performer-request++at++sgi.com
>

===
Chris Chuter
Software Engineer
Mojave Computer Graphics
cchuter++at++texas.net
http://www.texas.net/~cchuter/
__________________________________________________
Do You Yahoo!?
Bid and sell for free at http://auctions.yahoo.com


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2.0b2 on Thu Sep 16 1999 - 16:26:39 PDT

This message has been cleansed for anti-spam protection. Replace '++at++' in any mail addresses with the '@' symbol.