On Monday 17 March 2003 00:10, Daniel Heckenberg wrote:
After a bit of digging into the word of Device contexts (DCs - Windows Drawing surface more/less) and Rendering contexts (RCs - openGL) this seems to be the state of play (on Windows at least):
- textures can't be shared between rendering contexts
- display lists can be shared between rendering contexts
- a single DC can have multiple RCs (with only one active at a time)
- Multiple DCs can be used with a single RC as long as they have the same
pixel format (only one DC, RC pair active at a time)
- RC switches are slow
- DC switches are fast
- There are pixel formats (and hence DCs) which support accelerated, double
buffered, openGL display and pbuffer output (at least on nVidia hardware)
So hopefully we should be able to use a single RC for all rendering in GEM, with a DC for each output window or pbuffer. This should allow display lists and textures to be used on any output window without duplication.
Of course, there are reasons why you might not like to do this - pbuffer formats different to the display format could be useful.
Is the above all true/make sense? What's the situtation with agl and glx?
hi daniel,
it seems the same is true for glx, only that on glx textures can be shared between different contexts. i completely overlooked the fact that one RC can have several DC (this seems to be possible on glx too). this would eliminate the need for the expensive context switch entirely. good!
tom