Logo ROOT   6.16/01
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
15class TGOSXGLManager : public TGLManager {
16public:
19
20 //TGLManager's final-overriders (window + context management):
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).
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);
47
48 Bool_t HighColorFormat(Int_t /*ctxInd*/){return kFALSE;}
49
50private:
51 typedef std::map<Handle_t, Window_t> CtxToWindowMap_t;
53
56
57 ClassDef(TGOSXGLManager, 0) //Cocoa specific version of TGLManager.
58};
59
60#endif
Handle_t Window_t
Definition: GuiTypes.h:28
#define h(i)
Definition: RSha256.hxx:106
int Int_t
Definition: RtypesCore.h:41
unsigned int UInt_t
Definition: RtypesCore.h:42
const Bool_t kFALSE
Definition: RtypesCore.h:88
bool Bool_t
Definition: RtypesCore.h:59
#define ClassDef(name, id)
Definition: Rtypes.h:324
Concrete class describing an orientated (free) or axis aligned box of 8 vertices.
Abstract base camera class - concrete classes for orthographic and perspective cameras derive from it...
Definition: TGLCamera.h:44
Viewport (pixel base) 2D rectangle class.
Definition: TGLUtil.h:423
Bool_t HighColorFormat(Int_t)
Definition: TGOSXGL.h:48
TGOSXGLManager(const TGOSXGLManager &)
CtxToWindowMap_t fCtxToWin
Definition: TGOSXGL.h:52
Int_t GetVirtualXInd(Int_t devInd)
Definition: TGOSXGL.mm:116
TGOSXGLManager & operator=(const TGOSXGLManager &)
void ReadGLBuffer(Int_t devInd)
Definition: TGOSXGL.mm:160
void ExtractViewport(Int_t devInd, Int_t *vp)
Definition: TGOSXGL.mm:154
Bool_t AttachOffScreenDevice(Int_t ctxInd, Int_t x, Int_t y, UInt_t w, UInt_t h)
Definition: TGOSXGL.mm:125
Bool_t ResizeOffScreenDevice(Int_t devInd, Int_t x, Int_t y, UInt_t w, UInt_t h)
Definition: TGOSXGL.mm:133
void Flush(Int_t ctxInd)
Definition: TGOSXGL.mm:109
void PaintSingleObject(TVirtualGLPainter *)
Definition: TGOSXGL.mm:200
Int_t InitGLWindow(Window_t winID)
Definition: TGOSXGL.mm:46
Bool_t SelectManip(TVirtualGLManip *manip, const TGLCamera *camera, const TGLRect *rect, const TGLBoundingBox *sceneBox)
Definition: TGOSXGL.mm:168
void SelectOffScreenDevice(Int_t devInd)
Definition: TGOSXGL.mm:141
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
Int_t CreateGLContext(Int_t winInd)
Definition: TGOSXGL.mm:81
void PrintViewer(TVirtualViewer3D *vv)
Definition: TGOSXGL.mm:218
void DeleteGLContext(Int_t devInd)
Definition: TGOSXGL.mm:93
char * GetPlotInfo(TVirtualGLPainter *plot, Int_t px, Int_t py)
Definition: TGOSXGL.mm:191
Bool_t PlotSelected(TVirtualGLPainter *plot, Int_t px, Int_t py)
Definition: TGOSXGL.mm:182
Bool_t MakeCurrent(Int_t devInd)
Definition: TGOSXGL.mm:100
std::map< Handle_t, Window_t > CtxToWindowMap_t
Definition: TGOSXGL.h:51
Abstract 3D shapes viewer.
Double_t y[n]
Definition: legend1.C:17
Double_t x[n]
Definition: legend1.C:17