On 16/10/2012 21:34, Tim Edwards wrote: >> The current implementation of GLX using WGL takes a few shortcuts, basically >> anything that is drawn with OpenGL isn't composed into the screen, it's just >> drawn on top of it. > > I wouldn't want to sound too peevish, as I was quite happy to find that > OpenGL hardware acceleration was even possible, as it was not on the > previous version of Cygwin that I had downloaded. That it fails in > obscure applications is sort of to be expected. > >> This works well enough when the GLX window is a top-level window, or is >> non-top-level and has no occluding relatives and is drawn after anything it >> occludes, but mis-renders in more complex scenarios. >> >> This is discussed a bit more in [1] >> >> As mentioned there I have done a bit of work fix the mis-rendering in some >> cases. I can't quite tell from you description exactly what's going wrong, >> so >> I am not sure if those changes are going to help in this particular case. >> >> I have built a test release including the changes discussed there, available >> at [2], if you would like to test if it makes things better/worse/no >> difference. > > I downloaded the link, ran the X server, ran my application, and get no > difference in the behavior.
Ok. Thanks for testing, anyhow. > >> The proper solution is probably something like rendering the OpenGL to an >> offscreen buffer, and then composing it into the un-occluded area of the >> window, but that is considerably more complex to implement. > > The two problems with this approach are that (1) I have found more > buggy implementations in OpenGL servers by doing offscreen rendering; > and (2) this particular tool is a VLSI layout editor and must be > rendered directly on the front buffer. The general approach is to > render everything as fast as possible and always be willing to break > on key interrupt to start over. And I have misappropriated the back > buffer for backing store purposes. . . Sorry, I wasn't clear here. I'm not suggesting that the application should be changed. I'm just describing a possible approach to fixing this problem in the X server. -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://x.cygwin.com/docs/ FAQ: http://x.cygwin.com/docs/faq/