Logo ROOT   6.10/09
Reference Guide
TGOSXGL.h
Go to the documentation of this file.
1 #ifndef ROOT_TGOSXGL
2 #define ROOT_TGOSXGL
3 
4 #include <map>
5 
6 #include "TVirtualGL.h"
7 
8 //
9 //TGLManager is a legacy interface (gl-context/window management):
10 //at some point we had to use OpenGL in our TCanvas/TPad classes which do not
11 //have direct access to low-level APIs + on Windows we had quite tricky
12 //mt-problems to deal with.
13 //
14 
15 class TGOSXGLManager : public TGLManager {
16 public:
19 
20  //TGLManager's final-overriders (window + context management):
22  Int_t CreateGLContext(Int_t winInd);
23  void DeleteGLContext(Int_t devInd);
24  Bool_t MakeCurrent(Int_t devInd);
25  void Flush(Int_t ctxInd);
26 
27  //In case of Cocoa 'VirtulXInd' == devInd (again, legacy).
28  Int_t GetVirtualXInd(Int_t devInd);
29 
30  //These are empty overriders, we do not have/use off-screen renreding in TCanvas/TPad anymore
31  //(before we had 1) non-hardware glpixmaps/DIB sections and later 2) a hack with double buffer).
34  void SelectOffScreenDevice(Int_t devInd);
35  void MarkForDirectCopy(Int_t devInd, Bool_t);
36  void ExtractViewport(Int_t devInd, Int_t *vp);
37  void ReadGLBuffer(Int_t devInd);
38 
39  //Used by our OpenGL viewer.
40  //In the past we had to implement this functions to deal with mt-issues on Windows.
41  Bool_t SelectManip(TVirtualGLManip *manip, const TGLCamera *camera, const TGLRect *rect, const TGLBoundingBox *sceneBox);
43  char *GetPlotInfo(TVirtualGLPainter *plot, Int_t px, Int_t py);
45  void PanObject(TVirtualGLPainter *o, Int_t x, Int_t y);
46  void PrintViewer(TVirtualViewer3D *vv);
47 
48  Bool_t HighColorFormat(Int_t /*ctxInd*/){return kFALSE;}
49 
50 private:
51  typedef std::map<Handle_t, Window_t> CtxToWindowMap_t;
52  CtxToWindowMap_t fCtxToWin;
53 
56 
57  ClassDef(TGOSXGLManager, 0) //Cocoa specific version of TGLManager.
58 };
59 
60 #endif
Bool_t ResizeOffScreenDevice(Int_t devInd, Int_t x, Int_t y, UInt_t w, UInt_t h)
Definition: TGOSXGL.mm:133
Abstract base camera class - concrete classes for orthographic and perspective cameras derive from it...
Definition: TGLCamera.h:43
void Flush(Int_t ctxInd)
Definition: TGOSXGL.mm:109
Int_t GetVirtualXInd(Int_t devInd)
Definition: TGOSXGL.mm:116
TH1 * h
Definition: legend2.C:5
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
void ReadGLBuffer(Int_t devInd)
Definition: TGOSXGL.mm:160
Bool_t HighColorFormat(Int_t)
Definition: TGOSXGL.h:48
Double_t x[n]
Definition: legend1.C:17
#define ClassDef(name, id)
Definition: Rtypes.h:297
Bool_t SelectManip(TVirtualGLManip *manip, const TGLCamera *camera, const TGLRect *rect, const TGLBoundingBox *sceneBox)
Definition: TGOSXGL.mm:168
Int_t InitGLWindow(Window_t winID)
Definition: TGOSXGL.mm:46
Viewport (pixel base) 2D rectangle class.
Definition: TGLUtil.h:422
Abstract 3D shapes viewer.
Bool_t PlotSelected(TVirtualGLPainter *plot, Int_t px, Int_t py)
Definition: TGOSXGL.mm:182
void SelectOffScreenDevice(Int_t devInd)
Definition: TGOSXGL.mm:141
CtxToWindowMap_t fCtxToWin
Definition: TGOSXGL.h:52
Int_t CreateGLContext(Int_t winInd)
Definition: TGOSXGL.mm:81
Bool_t MakeCurrent(Int_t devInd)
Definition: TGOSXGL.mm:100
unsigned int UInt_t
Definition: RtypesCore.h:42
void DeleteGLContext(Int_t devInd)
Definition: TGOSXGL.mm:93
void ExtractViewport(Int_t devInd, Int_t *vp)
Definition: TGOSXGL.mm:154
void PaintSingleObject(TVirtualGLPainter *)
Definition: TGOSXGL.mm:200
const Bool_t kFALSE
Definition: RtypesCore.h:92
Bool_t AttachOffScreenDevice(Int_t ctxInd, Int_t x, Int_t y, UInt_t w, UInt_t h)
Definition: TGOSXGL.mm:125
Double_t y[n]
Definition: legend1.C:17
std::map< Handle_t, Window_t > CtxToWindowMap_t
Definition: TGOSXGL.h:51
Concrete class describing an orientated (free) or axis aligned box of 8 vertices. ...
char * GetPlotInfo(TVirtualGLPainter *plot, Int_t px, Int_t py)
Definition: TGOSXGL.mm:191
TGOSXGLManager & operator=(const TGOSXGLManager &)
Handle_t Window_t
Definition: GuiTypes.h:28
void PrintViewer(TVirtualViewer3D *vv)
Definition: TGOSXGL.mm:218
void PanObject(TVirtualGLPainter *o, Int_t x, Int_t y)
Definition: TGOSXGL.mm:209
void MarkForDirectCopy(Int_t devInd, Bool_t)
Definition: TGOSXGL.mm:148