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 =========================================================================*/
31 #ifndef vtkXOpenGLRenderWindow_h
32 #define vtkXOpenGLRenderWindow_h
33 
34 #include "vtkRenderingOpenGLModule.h" // For export macro
35 #include "vtkOpenGLRenderWindow.h"
36 #include <X11/Xlib.h> // Needed for X types used in the public interface
37 #include <X11/Xutil.h> // Needed for X types used in the public interface
38 
39 class vtkIdList;
40 class vtkXOpenGLRenderWindowInternal;
41 
42 class VTKRENDERINGOPENGL_EXPORT vtkXOpenGLRenderWindow : public vtkOpenGLRenderWindow
43 {
44 public:
47  void PrintSelf(ostream& os, vtkIndent indent);
48 
52  virtual void Start(void);
53 
57  virtual void Frame(void);
58 
62  virtual void WindowInitialize(void);
63 
70  virtual void Initialize(void);
71 
77  virtual void Finalize(void);
78 
82  virtual void SetFullScreen(int);
83 
87  virtual void WindowRemap(void);
88 
92  virtual void PrefFullScreen(void);
93 
95 
98  virtual void SetSize(int,int);
99  virtual void SetSize(int a[2]) {this->SetSize(a[0], a[1]);};
101 
103 
106  virtual Colormap GetDesiredColormap();
107  virtual Visual *GetDesiredVisual();
108  virtual XVisualInfo *GetDesiredVisualInfo();
109  virtual int GetDesiredDepth();
111 
118  virtual void SetStereoCapableWindow(int capable);
119 
123  void MakeCurrent();
124 
128  virtual bool IsCurrent();
129 
136 
140  const char *ReportCapabilities();
141 
146 
150  int IsDirect();
151 
155  virtual void *GetGenericDisplayId()
156  {
157  return this->GetDisplayId();
158  }
159 
160  virtual void *GetGenericWindowId();
161  virtual void *GetGenericParentId()
162  {
163  return reinterpret_cast<void *>(this->ParentId);
164  }
165 
166  virtual void *GetGenericContext();
167  virtual void *GetGenericDrawable()
168  {
169  return reinterpret_cast<void *>(this->WindowId);
170  }
171 
175  virtual int *GetScreenSize();
176 
180  virtual int *GetPosition();
181 
185  Display *GetDisplayId();
186 
188 
192  void SetDisplayId(Display *);
193  void SetDisplayId(void *);
195 
199  Window GetParentId();
200 
202 
205  void SetParentId(Window);
206  void SetParentId(void *);
208 
212  Window GetWindowId();
213 
215 
218  void SetWindowId(Window);
219  void SetWindowId(void *);
221 
225  void SetNextWindowId(Window);
226 
232  void SetNextWindowId(void *);
233 
234  void SetWindowName(const char *);
235 
241 
243 
246  void SetPosition(int,int);
247  void SetPosition(int a[2]) {this->SetPosition(a[0], a[1]);};
249 
251 
255  void HideCursor();
256  void ShowCursor();
258 
262  virtual void SetCurrentCursor(int);
263 
269  virtual int GetEventPending();
270 
274  void SetWindowInfo(char *info);
275 
279  void SetNextWindowInfo(char *info);
280 
284  void SetParentInfo(char *info);
285 
290  virtual void Render();
291 
296 
297 protected:
300 
301  vtkXOpenGLRenderWindowInternal *Internal;
302 
303  Window ParentId;
304  Window WindowId;
305  Window NextWindowId;
306  Display *DisplayId;
307  Colormap ColorMap;
310  int ScreenSize[2];
315 
316  // we must keep track of the cursors we are using
317  Cursor XCCrosshair;
318  Cursor XCArrow;
319  Cursor XCSizeAll;
320  Cursor XCSizeNS;
321  Cursor XCSizeWE;
322  Cursor XCSizeNE;
323  Cursor XCSizeNW;
324  Cursor XCSizeSE;
325  Cursor XCSizeSW;
326  Cursor XCHand;
327 
328 
331  void CreateOffScreenWindow(int width, int height);
333  void ResizeOffScreenWindow(int width, int height);
334 
335 
336 private:
337  vtkXOpenGLRenderWindow(const vtkXOpenGLRenderWindow&) VTK_DELETE_FUNCTION;
338  void operator=(const vtkXOpenGLRenderWindow&) VTK_DELETE_FUNCTION;
339 };
340 
341 
342 
343 #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