VTK
vtkXOpenGLRenderWindow.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkXOpenGLRenderWindow.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
25 #ifndef vtkXOpenGLRenderWindow_h
26 #define vtkXOpenGLRenderWindow_h
27 
28 #include "vtkRenderingOpenGLModule.h" // For export macro
29 #include "vtkOpenGLRenderWindow.h"
30 #include <X11/Xlib.h> // Needed for X types used in the public interface
31 #include <X11/Xutil.h> // Needed for X types used in the public interface
32 
33 class vtkIdList;
34 class vtkXOpenGLRenderWindowInternal;
35 
36 class VTKRENDERINGOPENGL_EXPORT vtkXOpenGLRenderWindow : public vtkOpenGLRenderWindow
37 {
38 public:
39  static vtkXOpenGLRenderWindow *New();
41  void PrintSelf(ostream& os, vtkIndent indent);
42 
46  virtual void Start(void);
47 
51  virtual void Frame(void);
52 
56  virtual void WindowInitialize(void);
57 
64  virtual void Initialize(void);
65 
71  virtual void Finalize(void);
72 
76  virtual void SetFullScreen(int);
77 
81  virtual void WindowRemap(void);
82 
86  virtual void PrefFullScreen(void);
87 
89 
92  virtual void SetSize(int,int);
93  virtual void SetSize(int a[2]) {this->SetSize(a[0], a[1]);};
95 
97 
100  virtual Colormap GetDesiredColormap();
101  virtual Visual *GetDesiredVisual();
102  virtual XVisualInfo *GetDesiredVisualInfo();
103  virtual int GetDesiredDepth();
105 
112  virtual void SetStereoCapableWindow(int capable);
113 
117  void MakeCurrent();
118 
122  virtual bool IsCurrent();
123 
129  void SetForceMakeCurrent();
130 
134  const char *ReportCapabilities();
135 
139  int SupportsOpenGL();
140 
144  int IsDirect();
145 
149  virtual void *GetGenericDisplayId()
150  {
151  return this->GetDisplayId();
152  }
153 
154  virtual void *GetGenericWindowId();
155  virtual void *GetGenericParentId()
156  {
157  return reinterpret_cast<void *>(this->ParentId);
158  }
159 
160  virtual void *GetGenericContext();
161  virtual void *GetGenericDrawable()
162  {
163  return reinterpret_cast<void *>(this->WindowId);
164  }
165 
169  virtual int *GetScreenSize();
170 
174  virtual int *GetPosition();
175 
179  Display *GetDisplayId();
180 
182 
186  void SetDisplayId(Display *);
187  void SetDisplayId(void *);
189 
193  Window GetParentId();
194 
196 
199  void SetParentId(Window);
200  void SetParentId(void *);
202 
206  Window GetWindowId();
207 
209 
212  void SetWindowId(Window);
213  void SetWindowId(void *);
215 
219  void SetNextWindowId(Window);
220 
226  void SetNextWindowId(void *);
227 
228  void SetWindowName(const char *);
229 
234  virtual bool InitializeFromCurrentContext();
235 
237 
240  void SetPosition(int,int);
241  void SetPosition(int a[2]) {this->SetPosition(a[0], a[1]);};
243 
245 
249  void HideCursor();
250  void ShowCursor();
252 
256  virtual void SetCurrentCursor(int);
257 
263  virtual int GetEventPending();
264 
268  void SetWindowInfo(char *info);
269 
273  void SetNextWindowInfo(char *info);
274 
278  void SetParentInfo(char *info);
279 
284  virtual void Render();
285 
289  void SetOffScreenRendering(int i);
290 
291 protected:
294 
295  vtkXOpenGLRenderWindowInternal *Internal;
296 
297  Window ParentId;
298  Window WindowId;
299  Window NextWindowId;
300  Display *DisplayId;
301  Colormap ColorMap;
304  int ScreenSize[2];
309 
310  // we must keep track of the cursors we are using
311  Cursor XCCrosshair;
312  Cursor XCArrow;
313  Cursor XCSizeAll;
314  Cursor XCSizeNS;
315  Cursor XCSizeWE;
316  Cursor XCSizeNE;
317  Cursor XCSizeNW;
318  Cursor XCSizeSE;
319  Cursor XCSizeSW;
320  Cursor XCHand;
321 
322 
323  void CreateAWindow();
324  void DestroyWindow();
325  void CreateOffScreenWindow(int width, int height);
326  void DestroyOffScreenWindow();
327  void ResizeOffScreenWindow(int width, int height);
328 
329 
330 private:
331  vtkXOpenGLRenderWindow(const vtkXOpenGLRenderWindow&) VTK_DELETE_FUNCTION;
332  void operator=(const vtkXOpenGLRenderWindow&) VTK_DELETE_FUNCTION;
333 };
334 
335 
336 
337 #endif
OpenGL rendering window.
virtual void SetOffScreenRendering(int)
Create a window in memory instead of on the screen.
virtual void Finalize()=0
Finalize the rendering process.
virtual void SetForceMakeCurrent()
If called, allow MakeCurrent() to skip cache-check when called.
virtual void SetWindowInfo(char *)=0
Dummy stubs for vtkWindow API.
virtual void SetSize(int a[2])
Specify the size of the rendering window in pixels.
virtual void * GetGenericParentId()
Dummy stubs for vtkWindow API.
virtual void WindowRemap()=0
Remap the rendering window.
virtual void * GetGenericContext()=0
Dummy stubs for vtkWindow API.
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
virtual void HideCursor()=0
Hide or Show the mouse cursor, it is nice to be able to hide the default cursor if you want VTK to di...
static vtkRenderWindow * New()
Construct an instance of vtkRenderWindow with its screen size set to 300x300, borders turned on...
virtual int * GetScreenSize()=0
Get the current size of the screen in pixels.
vtkXOpenGLRenderWindowInternal * Internal
virtual void SetWindowId(void *)=0
Dummy stubs for vtkWindow API.
virtual void SetCurrentCursor(int)
Change the shape of the cursor.
virtual void SetNextWindowInfo(char *)=0
Dummy stubs for vtkWindow API.
virtual void SetSize(int a[2])
Set the size of the window in screen coordinates in pixels.
virtual void SetFullScreen(int)=0
Turn on/off rendering full screen window size.
OpenGL rendering window.
virtual void * GetGenericDrawable()
Dummy stubs for vtkWindow API.
virtual int GetEventPending()=0
Check to see if a mouse button has been pressed.
virtual void SetStereoCapableWindow(int capable)
Prescribe that the window be created in a stereo-capable mode.
virtual const char * ReportCapabilities()
Get report of capabilities for the render window.
virtual int IsDirect()
Is this render window using hardware acceleration? 0-false, 1-true.
virtual void SetParentInfo(char *)=0
Dummy stubs for vtkWindow API.
virtual bool IsCurrent()=0
Tells if this window is the current graphics context for the calling thread.
virtual void SetParentId(void *)=0
Dummy stubs for vtkWindow API.
a simple class to control print indentation
Definition: vtkIndent.h:39
virtual void DestroyWindow()=0
Destroy a not-off-screen window.
list of point or cell ids
Definition: vtkIdList.h:36
virtual void SetDisplayId(void *)=0
Dummy stubs for vtkWindow API.
virtual void MakeCurrent()=0
Attempt to make this window the current graphics context for the calling thread.
virtual void SetNextWindowId(void *)=0
Dummy stubs for vtkWindow API.
virtual void * GetGenericDisplayId()
Xwindow get set functions.
virtual int * GetPosition()
Set/Get the position in screen coordinates of the rendering window.
virtual void Frame()=0
A termination method performed at the end of the rendering process to do things like swapping buffers...
void SetPosition(int a[2])
Move the window to a new position on the display.
virtual bool InitializeFromCurrentContext()
Initialize the render window from the information associated with the currently activated OpenGL cont...
virtual void Start()=0
Initialize the rendering process.
virtual void SetWindowName(const char *)
Get name of rendering window.
virtual void SetPosition(int, int)
Set/Get the position in screen coordinates of the rendering window.
virtual void Render()
Ask each renderer owned by this RenderWindow to render its image and synchronize this process...
virtual void Initialize(void)
Initialize the rendering window.
virtual void CreateAWindow()=0
Create a not-off-screen window.
virtual int SupportsOpenGL()
Does this render window support OpenGL? 0-false, 1-true.
virtual void ShowCursor()=0
Hide or Show the mouse cursor, it is nice to be able to hide the default cursor if you want VTK to di...
virtual void * GetGenericWindowId()=0
Dummy stubs for vtkWindow API.