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:
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 
130 
134  const char *ReportCapabilities();
135 
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 
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 
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 
325  void CreateOffScreenWindow(int width, int height);
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
list of point or cell ids
Definition: vtkIdList.h:37
a simple class to control print indentation
Definition: vtkIndent.h:40
OpenGL rendering window.
OpenGL rendering window.
virtual void Render()
This computes the size of the render window before calling the supper classes render.
virtual void Initialize(void)
Initialize the rendering window.
const char * ReportCapabilities()
Get report of capabilities for the render window.
virtual Colormap GetDesiredColormap()
Get the X properties of an ideal rendering window.
void ResizeOffScreenWindow(int width, int height)
virtual void * GetGenericParentId()
void SetNextWindowId(Window)
Specify the X window id to use if a WindowRemap is done.
void SetForceMakeCurrent()
If called, allow MakeCurrent() to skip cache-check when called.
void SetParentInfo(char *info)
Sets the X window id of the window that WILL BE created.
int IsDirect()
Is this render window using hardware acceleration? 0-false, 1-true.
virtual void SetFullScreen(int)
Change the window to fill the entire screen.
void SetPosition(int, int)
Move the window to a new position on the display.
Window GetParentId()
Get this RenderWindow's parent X window id.
virtual void * GetGenericDisplayId()
Xwindow get set functions.
virtual int * GetPosition()
Get the position in screen coordinates (pixels) of the window.
virtual void * GetGenericWindowId()
virtual int GetDesiredDepth()
int SupportsOpenGL()
Does this render window support OpenGL? 0-false, 1-true.
virtual void SetStereoCapableWindow(int capable)
Prescribe that the window be created in a stereo-capable mode.
virtual bool IsCurrent()
Tells if this window is the current OpenGL context for the calling thread.
virtual void * GetGenericDrawable()
Window GetWindowId()
Get this RenderWindow's X window id.
virtual XVisualInfo * GetDesiredVisualInfo()
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
virtual void SetSize(int, int)
Specify the size of the rendering window in pixels.
void MakeCurrent()
Make this window the current OpenGL context.
virtual void Finalize(void)
"Deinitialize" the rendering window.
virtual int * GetScreenSize()
Get the current size of the screen in pixels.
virtual void PrefFullScreen(void)
Set the preferred window size to full screen.
virtual Visual * GetDesiredVisual()
void SetParentId(void *)
virtual void Frame(void)
End the rendering process and display the image.
void SetOffScreenRendering(int i)
Render without displaying the window.
virtual void SetCurrentCursor(int)
Change the shape of the cursor.
virtual int GetEventPending()
Check to see if a mouse button has been pressed or mouse wheel activated.
virtual void WindowRemap(void)
Resize the window.
static vtkXOpenGLRenderWindow * New()
vtkXOpenGLRenderWindowInternal * Internal
void SetDisplayId(void *)
Dummy stubs for vtkWindow API.
virtual void * GetGenericContext()
void SetWindowId(void *)
virtual void WindowInitialize(void)
Initialize the window for rendering.
void HideCursor()
Hide or Show the mouse cursor, it is nice to be able to hide the default cursor if you want VTK to di...
void SetNextWindowInfo(char *info)
Set the window info that will be used after WindowRemap()
void SetDisplayId(Display *)
Set the X display id for this RenderWindow to use to a pre-existing X display id.
virtual void Start(void)
Begin the rendering process.
void SetWindowName(const char *)
Display * GetDisplayId()
Get this RenderWindow's X display id.
void CreateAWindow()
Create a not-off-screen window.
void DestroyWindow()
Destroy a not-off-screen window.
virtual bool InitializeFromCurrentContext()
Initialize the render window from the information associated with the currently activated OpenGL cont...
void SetParentId(Window)
Sets the parent of the window that WILL BE created.
void CreateOffScreenWindow(int width, int height)
void SetWindowInfo(char *info)
Set this RenderWindow's X window id to a pre-existing window.
virtual void SetSize(int a[2])
Set the size of the window in screen coordinates in pixels.
void SetNextWindowId(void *)
Set the window id of the new window once a WindowRemap is done.
void SetWindowId(Window)
Set this RenderWindow's X window id to a pre-existing window.
@ info
Definition: vtkX3D.h:376
@ height
Definition: vtkX3D.h:254