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
vtkXOpenGLRenderWindow::GetEventPending
virtual int GetEventPending()
Check to see if a mouse button has been pressed or mouse wheel activated.
vtkXOpenGLRenderWindow::Capabilities
char * Capabilities
Definition: vtkXOpenGLRenderWindow.h:314
vtkXOpenGLRenderWindow::ForceMakeCurrent
int ForceMakeCurrent
Definition: vtkXOpenGLRenderWindow.h:312
vtkXOpenGLRenderWindow::Frame
virtual void Frame(void)
End the rendering process and display the image.
vtkXOpenGLRenderWindow::GetDesiredColormap
virtual Colormap GetDesiredColormap()
Get the X properties of an ideal rendering window.
vtkXOpenGLRenderWindow::SetWindowId
void SetWindowId(void *)
vtkXOpenGLRenderWindow::SetNextWindowInfo
void SetNextWindowInfo(char *info)
Set the window info that will be used after WindowRemap()
vtkXOpenGLRenderWindow::WindowRemap
virtual void WindowRemap(void)
Resize the window.
vtkXOpenGLRenderWindow::GetDesiredDepth
virtual int GetDesiredDepth()
vtkXOpenGLRenderWindow::OwnDisplay
int OwnDisplay
Definition: vtkXOpenGLRenderWindow.h:309
vtkXOpenGLRenderWindow::GetDesiredVisual
virtual Visual * GetDesiredVisual()
vtkXOpenGLRenderWindow::ColorMap
Colormap ColorMap
Definition: vtkXOpenGLRenderWindow.h:307
vtkXOpenGLRenderWindow::CreateAWindow
void CreateAWindow()
Create a not-off-screen window.
vtkXOpenGLRenderWindow::DestroyOffScreenWindow
void DestroyOffScreenWindow()
vtkXOpenGLRenderWindow::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
vtkXOpenGLRenderWindow::SetForceMakeCurrent
void SetForceMakeCurrent()
If called, allow MakeCurrent() to skip cache-check when called.
vtkXOpenGLRenderWindow::GetWindowId
Window GetWindowId()
Get this RenderWindow's X window id.
vtkXOpenGLRenderWindow::XCSizeSW
Cursor XCSizeSW
Definition: vtkXOpenGLRenderWindow.h:325
vtkXOpenGLRenderWindow::GetGenericDisplayId
virtual void * GetGenericDisplayId()
Xwindow get set functions.
Definition: vtkXOpenGLRenderWindow.h:155
vtkXOpenGLRenderWindow::SetWindowInfo
void SetWindowInfo(char *info)
Set this RenderWindow's X window id to a pre-existing window.
vtkXOpenGLRenderWindow::GetGenericContext
virtual void * GetGenericContext()
vtkXOpenGLRenderWindow::IsCurrent
virtual bool IsCurrent()
Tells if this window is the current OpenGL context for the calling thread.
vtkXOpenGLRenderWindow::SetPosition
void SetPosition(int, int)
Move the window to a new position on the display.
vtkXOpenGLRenderWindow::SetNextWindowId
void SetNextWindowId(void *)
Set the window id of the new window once a WindowRemap is done.
vtkXOpenGLRenderWindow::SetOffScreenRendering
void SetOffScreenRendering(int i)
Render without displaying the window.
vtkXOpenGLRenderWindow::SetStereoCapableWindow
virtual void SetStereoCapableWindow(int capable)
Prescribe that the window be created in a stereo-capable mode.
vtkXOpenGLRenderWindow::Initialize
virtual void Initialize(void)
Initialize the rendering window.
vtkXOpenGLRenderWindow::SetDisplayId
void SetDisplayId(void *)
Dummy stubs for vtkWindow API.
vtkXOpenGLRenderWindow::GetGenericParentId
virtual void * GetGenericParentId()
Definition: vtkXOpenGLRenderWindow.h:161
vtkXOpenGLRenderWindow::SetPosition
void SetPosition(int a[2])
Definition: vtkXOpenGLRenderWindow.h:247
vtkXOpenGLRenderWindow::ReportCapabilities
const char * ReportCapabilities()
Get report of capabilities for the render window.
vtkXOpenGLRenderWindow::CursorHidden
int CursorHidden
Definition: vtkXOpenGLRenderWindow.h:311
vtkXOpenGLRenderWindow::DestroyWindow
void DestroyWindow()
Destroy a not-off-screen window.
vtkXOpenGLRenderWindow::XCSizeNS
Cursor XCSizeNS
Definition: vtkXOpenGLRenderWindow.h:320
vtkXOpenGLRenderWindow::MakeCurrent
void MakeCurrent()
Make this window the current OpenGL context.
vtkXOpenGLRenderWindow::WindowId
Window WindowId
Definition: vtkXOpenGLRenderWindow.h:304
vtkOpenGLRenderWindow.h
vtkXOpenGLRenderWindow::SetWindowId
void SetWindowId(Window)
Set this RenderWindow's X window id to a pre-existing window.
vtkX3D::height
@ height
Definition: vtkX3D.h:254
vtkXOpenGLRenderWindow::GetDisplayId
Display * GetDisplayId()
Get this RenderWindow's X display id.
vtkXOpenGLRenderWindow::SetDisplayId
void SetDisplayId(Display *)
Set the X display id for this RenderWindow to use to a pre-existing X display id.
vtkXOpenGLRenderWindow::WindowInitialize
virtual void WindowInitialize(void)
Initialize the window for rendering.
vtkXOpenGLRenderWindow::SetParentId
void SetParentId(Window)
Sets the parent of the window that WILL BE created.
vtkXOpenGLRenderWindow::InitializeFromCurrentContext
virtual bool InitializeFromCurrentContext()
Initialize the render window from the information associated with the currently activated OpenGL cont...
vtkXOpenGLRenderWindow::Internal
vtkXOpenGLRenderWindowInternal * Internal
Definition: vtkXOpenGLRenderWindow.h:301
vtkXOpenGLRenderWindow::SetFullScreen
virtual void SetFullScreen(int)
Change the window to fill the entire screen.
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:40
vtkXOpenGLRenderWindow::ResizeOffScreenWindow
void ResizeOffScreenWindow(int width, int height)
vtkXOpenGLRenderWindow::CreateOffScreenWindow
void CreateOffScreenWindow(int width, int height)
vtkXOpenGLRenderWindow::GetDesiredVisualInfo
virtual XVisualInfo * GetDesiredVisualInfo()
vtkIdList
list of point or cell ids
Definition: vtkIdList.h:37
vtkXOpenGLRenderWindow::GetGenericWindowId
virtual void * GetGenericWindowId()
vtkXOpenGLRenderWindow::Render
virtual void Render()
This computes the size of the render window before calling the supper classes render.
vtkXOpenGLRenderWindow::SetCurrentCursor
virtual void SetCurrentCursor(int)
Change the shape of the cursor.
vtkXOpenGLRenderWindow::GetGenericDrawable
virtual void * GetGenericDrawable()
Definition: vtkXOpenGLRenderWindow.h:167
vtkXOpenGLRenderWindow::XCHand
Cursor XCHand
Definition: vtkXOpenGLRenderWindow.h:326
vtkXOpenGLRenderWindow::XCCrosshair
Cursor XCCrosshair
Definition: vtkXOpenGLRenderWindow.h:317
vtkXOpenGLRenderWindow::SetSize
virtual void SetSize(int, int)
Specify the size of the rendering window in pixels.
vtkXOpenGLRenderWindow::New
static vtkXOpenGLRenderWindow * New()
vtkXOpenGLRenderWindow::SetParentInfo
void SetParentInfo(char *info)
Sets the X window id of the window that WILL BE created.
vtkXOpenGLRenderWindow::XCArrow
Cursor XCArrow
Definition: vtkXOpenGLRenderWindow.h:318
vtkXOpenGLRenderWindow::IsDirect
int IsDirect()
Is this render window using hardware acceleration? 0-false, 1-true.
vtkXOpenGLRenderWindow::SetSize
virtual void SetSize(int a[2])
Set the size of the window in screen coordinates in pixels.
Definition: vtkXOpenGLRenderWindow.h:99
vtkX3D::info
@ info
Definition: vtkX3D.h:376
vtkXOpenGLRenderWindow::ParentId
Window ParentId
Definition: vtkXOpenGLRenderWindow.h:303
vtkXOpenGLRenderWindow::UsingHardware
int UsingHardware
Definition: vtkXOpenGLRenderWindow.h:313
vtkXOpenGLRenderWindow::GetScreenSize
virtual int * GetScreenSize()
Get the current size of the screen in pixels.
vtkXOpenGLRenderWindow::vtkXOpenGLRenderWindow
vtkXOpenGLRenderWindow()
vtkXOpenGLRenderWindow::DisplayId
Display * DisplayId
Definition: vtkXOpenGLRenderWindow.h:306
vtkXOpenGLRenderWindow::OwnWindow
int OwnWindow
Definition: vtkXOpenGLRenderWindow.h:308
vtkXOpenGLRenderWindow::PrefFullScreen
virtual void PrefFullScreen(void)
Set the preferred window size to full screen.
vtkXOpenGLRenderWindow::XCSizeNE
Cursor XCSizeNE
Definition: vtkXOpenGLRenderWindow.h:322
vtkXOpenGLRenderWindow::XCSizeSE
Cursor XCSizeSE
Definition: vtkXOpenGLRenderWindow.h:324
vtkXOpenGLRenderWindow
OpenGL rendering window.
Definition: vtkXOpenGLRenderWindow.h:43
vtkXOpenGLRenderWindow::Start
virtual void Start(void)
Begin the rendering process.
vtkXOpenGLRenderWindow::XCSizeAll
Cursor XCSizeAll
Definition: vtkXOpenGLRenderWindow.h:319
vtkXOpenGLRenderWindow::~vtkXOpenGLRenderWindow
~vtkXOpenGLRenderWindow()
vtkXOpenGLRenderWindow::XCSizeWE
Cursor XCSizeWE
Definition: vtkXOpenGLRenderWindow.h:321
vtkOpenGLRenderWindow
OpenGL rendering window.
Definition: vtkOpenGLRenderWindow.h:42
vtkXOpenGLRenderWindow::GetPosition
virtual int * GetPosition()
Get the position in screen coordinates (pixels) of the window.
vtkXOpenGLRenderWindow::Finalize
virtual void Finalize(void)
"Deinitialize" the rendering window.
vtkXOpenGLRenderWindow::SupportsOpenGL
int SupportsOpenGL()
Does this render window support OpenGL? 0-false, 1-true.
vtkXOpenGLRenderWindow::SetNextWindowId
void SetNextWindowId(Window)
Specify the X window id to use if a WindowRemap is done.
vtkXOpenGLRenderWindow::GetParentId
Window GetParentId()
Get this RenderWindow's parent X window id.
vtkXOpenGLRenderWindow::HideCursor
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...
vtkXOpenGLRenderWindow::SetParentId
void SetParentId(void *)
vtkXOpenGLRenderWindow::SetWindowName
void SetWindowName(const char *)
vtkXOpenGLRenderWindow::NextWindowId
Window NextWindowId
Definition: vtkXOpenGLRenderWindow.h:305
vtkXOpenGLRenderWindow::ShowCursor
void ShowCursor()
vtkXOpenGLRenderWindow::XCSizeNW
Cursor XCSizeNW
Definition: vtkXOpenGLRenderWindow.h:323