This class encapsulates window-system specific information about a GL-context and alows their proper management in ROOT.
Definition at line 30 of file TGLContext.h.
Public Member Functions | |
TGLContext (TGLWidget *glWidget, Bool_t shareDefault=kTRUE, const TGLContext *shareList=0) | |
TGLContext ctor "from" TGLWidget. More... | |
virtual | ~TGLContext () |
TGLContext dtor. More... | |
Bool_t | ClearCurrent () |
Reset current context. More... | |
TGLContextIdentity * | GetIdentity () const |
We can have several shared contexts, and gl-scene wants to know, if some context (defined by its identity) can be used. More... | |
Bool_t | IsValid () const |
Bool_t | MakeCurrent () |
If context is valid (TGLPaintDevice, for which context was created still exists), make it current. More... | |
void | Release () |
Make the context invalid and (do thread switch, if needed) free resources. More... | |
void | SetContext (TGLWidget *widget, const TGLContext *shareList) |
X11 gl-context creation. More... | |
void | SwapBuffers () |
If context is valid (TGLPaintDevice, for which context was created still exists), swap buffers (in case of P-buffer call glFinish()). More... | |
Static Public Member Functions | |
static TGLContext * | GetCurrent () |
Ask TGLContextPrivate to lookup context in its internal map. More... | |
static void | GlewInit () |
Initialize GLEW - static private function. More... | |
Private Member Functions | |
TGLContext (const TGLContext &) | |
TGLContext & | operator= (const TGLContext &) |
Private Attributes | |
TGLPaintDevice * | fDevice |
Bool_t | fFromCtor |
TGLContextIdentity * | fIdentity |
std::unique_ptr< TGLContextPrivate > | fPimpl |
Bool_t | fValid |
Static Private Attributes | |
static Bool_t | fgGlewInitDone = kFALSE |
Friends | |
class | TGLContextPrivate |
class | TGLWidget |
#include <TGLContext.h>
TGLContext::TGLContext | ( | TGLWidget * | wid, |
Bool_t | shareDefault = kTRUE , |
||
const TGLContext * | shareList = 0 |
||
) |
TGLContext ctor "from" TGLWidget.
Is shareDefault is true, the shareList is set from default context-identity. Otherwise the given shareList is used (can be null). Makes thread switching.
Definition at line 51 of file TGLContext.cxx.
|
virtual |
TGLContext dtor.
If it's called before TGLPaintDevice's dtor (context is valid) resource will be freed and context un-registered.
Definition at line 428 of file TGLContext.cxx.
|
private |
Bool_t TGLContext::ClearCurrent | ( | ) |
Reset current context.
Definition at line 386 of file TGLContext.cxx.
|
static |
Ask TGLContextPrivate to lookup context in its internal map.
Definition at line 451 of file TGLContext.cxx.
TGLContextIdentity * TGLContext::GetIdentity | ( | ) | const |
We can have several shared contexts, and gl-scene wants to know, if some context (defined by its identity) can be used.
Definition at line 443 of file TGLContext.cxx.
|
static |
Initialize GLEW - static private function.
Called immediately after creation of the first GL context.
Definition at line 85 of file TGLContext.cxx.
|
inline |
Definition at line 65 of file TGLContext.h.
Bool_t TGLContext::MakeCurrent | ( | ) |
If context is valid (TGLPaintDevice, for which context was created still exists), make it current.
Definition at line 362 of file TGLContext.cxx.
|
private |
void TGLContext::Release | ( | ) |
Make the context invalid and (do thread switch, if needed) free resources.
Definition at line 412 of file TGLContext.cxx.
void TGLContext::SetContext | ( | TGLWidget * | widget, |
const TGLContext * | shareList | ||
) |
X11 gl-context creation.
Defined as a member-function (this code removed from ctor) to make WIN32/X11 separation cleaner. This function is public only for calls via gROOT and called from ctor.
Definition at line 329 of file TGLContext.cxx.
void TGLContext::SwapBuffers | ( | ) |
If context is valid (TGLPaintDevice, for which context was created still exists), swap buffers (in case of P-buffer call glFinish()).
Definition at line 395 of file TGLContext.cxx.
|
friend |
Definition at line 32 of file TGLContext.h.
|
friend |
Definition at line 33 of file TGLContext.h.
|
private |
Definition at line 37 of file TGLContext.h.
|
private |
Definition at line 40 of file TGLContext.h.
Definition at line 45 of file TGLContext.h.
|
private |
Definition at line 43 of file TGLContext.h.
|
private |
Definition at line 38 of file TGLContext.h.
|
private |
Definition at line 41 of file TGLContext.h.