Logo ROOT   6.08/07
Reference Guide
TGWin32GL.h
Go to the documentation of this file.
1 // @(#)root/win32gdk:$Id$
2 // Author: Valeriy Onuchin 05/08/04
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TGWin32GL
13 #define ROOT_TGWin32GL
14 
15 
16 #ifndef ROOT_TVirtualGL
17 #include "TVirtualGL.h"
18 #endif
19 #ifndef ROOT_TVirtualViewer3D
20 #include "TVirtualViewer3D.h"
21 #endif
22 
23 
24 class TGWin32GLManager : public TGLManager {
25 private:
26  class TGWin32GLImpl;
27  TGWin32GLImpl *fPimpl;
28 
29 public:
32 
33  //All public functions are TGLManager's final-overriders
34 
35  //index returned can be used as a result of gVirtualX->InitWindow
37  //winInd is the index, returned by InitGLWindow
38  Int_t CreateGLContext(Int_t winInd);
39 
40  //[ Off-screen rendering part
41  //create DIB section to read GL buffer into it,
42  //ctxInd is the index, returned by CreateGLContext
45  //analog of gVirtualX->SelectWindow(fPixmapID) => gVirtualGL->SelectOffScreenDevice(fPixmapID)
46  void SelectOffScreenDevice(Int_t devInd);
47  //Index of DIB, valid for gVirtualX
48  Int_t GetVirtualXInd(Int_t devInd);
49  //copy DIB into window directly/by pad
50  void MarkForDirectCopy(Int_t devInd, Bool_t);
51  //Off-screen device holds sizes for glViewport
52  void ExtractViewport(Int_t devInd, Int_t *vp);
53  //Read GL buffer into DIB
54  void ReadGLBuffer(Int_t devInd);
55  //]
56 
57  //Make the gl context current
58  Bool_t MakeCurrent(Int_t devInd);
59  //Swap buffers or "blits" DIB
60  void Flush(Int_t ctxInd);
61  //Generic function for gl context and off-screen device deletion
62  void DeleteGLContext(Int_t devInd);
63 
64  //functions to switch between threads in win32
65  //used by viewer
66  Bool_t SelectManip(TVirtualGLManip *manip, const TGLCamera *camera, const TGLRect *rect, const TGLBoundingBox *sceneBox);
67 
69  char *GetPlotInfo(TVirtualGLPainter *plot, Int_t px, Int_t py);
70 
73  void PrintViewer(TVirtualViewer3D *vv);
74 
76 
77 private:
78  struct TGLContext;
79  Bool_t CreateDIB(TGLContext &ctx)const;
80 
83 
85 };
86 
87 #endif
char * GetPlotInfo(TVirtualGLPainter *plot, Int_t px, Int_t py)
Definition: TGWin32GL.cxx:521
Int_t GetVirtualXInd(Int_t devInd)
Definition: TGWin32GL.cxx:406
Abstract base camera class - concrete classes for orthographic and perspective cameras derive from it...
Definition: TGLCamera.h:43
void DeleteGLContext(Int_t devInd)
Definition: TGWin32GL.cxx:450
void MarkForDirectCopy(Int_t devInd, Bool_t)
Definition: TGWin32GL.cxx:385
Int_t CreateGLContext(Int_t winInd)
winInd is TGWin32 index, returned by previous call gGLManager->InitGLWindow returns descripto (index)...
Definition: TGWin32GL.cxx:253
TH1 * h
Definition: legend2.C:5
void ExtractViewport(Int_t devInd, Int_t *vp)
Definition: TGWin32GL.cxx:472
Int_t InitGLWindow(Window_t winID)
Definition: TGWin32GL.cxx:244
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
Bool_t CreateDIB(TGLContext &ctx) const
Create DIB section to read GL buffer into.
Definition: TGWin32GL.cxx:303
Double_t x[n]
Definition: legend1.C:17
Bool_t AttachOffScreenDevice(Int_t ctxInd, Int_t x, Int_t y, UInt_t w, UInt_t h)
Definition: TGWin32GL.cxx:336
#define ClassDef(name, id)
Definition: Rtypes.h:254
Bool_t ResizeOffScreenDevice(Int_t devInd, Int_t x, Int_t y, UInt_t w, UInt_t h)
Create new DIB if needed.
Definition: TGWin32GL.cxx:352
Viewport (pixel base) 2D rectangle class.
Definition: TGLUtil.h:426
Bool_t HighColorFormat(Int_t ctx)
Definition: TGWin32GL.cxx:528
Abstract 3D shapes viewer.
void PrintViewer(TVirtualViewer3D *vv)
Definition: TGWin32GL.cxx:493
void Flush(Int_t ctxInd)
Definition: TGWin32GL.cxx:421
TGLContext(TGLWidget *glWidget, Bool_t shareDefault=kTRUE, const TGLContext *shareList=0)
TGLContext ctor "from" TGLWidget.
Definition: TGLContext.cxx:51
unsigned int UInt_t
Definition: RtypesCore.h:42
Bool_t MakeCurrent(Int_t devInd)
Definition: TGWin32GL.cxx:413
Bool_t PlotSelected(TVirtualGLPainter *plot, Int_t px, Int_t py)
Definition: TGWin32GL.cxx:514
void SelectOffScreenDevice(Int_t devInd)
Definition: TGWin32GL.cxx:378
Double_t y[n]
Definition: legend1.C:17
Bool_t SelectManip(TVirtualGLManip *manip, const TGLCamera *camera, const TGLRect *rect, const TGLBoundingBox *sceneBox)
Definition: TGWin32GL.cxx:500
TGWin32GLManager & operator=(const TGWin32GLManager &)
Concrete class describing an orientated (free) or axis aligned box of 8 vertices. ...
void ReadGLBuffer(Int_t devInd)
Definition: TGWin32GL.cxx:393
TGWin32GLImpl * fPimpl
Definition: TGWin32GL.h:26
Handle_t Window_t
Definition: GuiTypes.h:30
void PanObject(TVirtualGLPainter *o, Int_t x, Int_t y)
Definition: TGWin32GL.cxx:507
void PaintSingleObject(TVirtualGLPainter *)
Definition: TGWin32GL.cxx:486