From: <ma...@ms...> - 2005-01-10 15:45:09
|
Some time ago: > > Hmm... Did you do glMakeCurrent(context, null) before destroying? And= even more important, did you do glFinish before all this? >=20 > Yes, I *would* set the current context to null if I could (that is, it > is done in the code path that is not yet called because no gui sends > this message so far). > glFinish() is not necessary. This must be implicit: >=20 > glXMakeCurrent: > 'Pending commands to the previous context, if any, are flushed before i= t > is released.' >=20 > Hm. Now I discover I haven't read the specs completely: >=20 > glXDestroyContext: > 'If the GLX rendering context ctx is not current to any thread, > glXDestroyContext destroys it immediately. Otherwise, ctx is destroyed > when it becomes not current to any thread. In either case, the resourc= e > ID refer=E2=80=90 enced by ctx is freed immediately.' >=20 > So I guess I *could* use glXDestroyContext even without > XINE_GUI_SEND_WILL_DESTROY_DRAWABLE, the last implementation > reproducably crashed when I did that, but it wasn't thread-aware, thus > it could be easily a problem related to threads. >=20 > I guess I will try using glXDestroyContext even when I did not get a > XINE_GUI_SEND_WILL_DESTROY_DRAWABLE. Let's see whether this works. I just wanted to tell you all that I now implemented this sheme and it seems to work flawlessly. In fact, I had to implemement it because I got problems with not cleaning up contextes with HDTV playback when switching to fullscreen. So I guess this warning will go away soon. Matthias --=20 Matthias Hopf <mh...@su...> /-- /-- /-- mat@mshopf.= de Maxfeldstr. 5 / 90409 Nuernberg \-\ | | \-\ |-- www.mshopf.= de Phone +49-911-74053-715 --/ \_/ --/ \-- labs |