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 "vtkRenderingOpenGL2Module.h" // For export macro
29#include <stack> // for ivar
31#include <X11/Xlib.h> // Needed for X types used in the public interface
32#include <X11/Xutil.h> // Needed for X types used in the public interface
33
34class vtkIdList;
35class vtkXOpenGLRenderWindowInternal;
36
37class VTKRENDERINGOPENGL2_EXPORT vtkXOpenGLRenderWindow : public vtkOpenGLRenderWindow
38{
39public:
42 void PrintSelf(ostream& os, vtkIndent indent);
43
47 virtual void Start(void);
48
52 virtual void Frame(void);
53
57 virtual void WindowInitialize(void);
58
65 virtual void Initialize(void);
66
72 virtual void Finalize(void);
73
77 virtual void SetFullScreen(int);
78
82 virtual void WindowRemap(void);
83
87 virtual void PrefFullScreen(void);
88
92 virtual void SetSize(int,int);
93 virtual void SetSize(int a[2]) {this->SetSize(a[0], a[1]);}
94
96
99 virtual Colormap GetDesiredColormap();
100 virtual Visual *GetDesiredVisual();
101 virtual XVisualInfo *GetDesiredVisualInfo();
102 virtual int GetDesiredDepth();
104
111 virtual void SetStereoCapableWindow(int capable);
112
117
121 virtual bool IsCurrent();
122
129
133 const char *ReportCapabilities();
134
138 int IsDirect();
139
143 virtual void *GetGenericDisplayId()
144 {
145 return this->GetDisplayId();
146 }
147
148 virtual void *GetGenericWindowId();
149 virtual void *GetGenericParentId()
150 {
151 return reinterpret_cast<void *>(this->ParentId);
152 }
153
154 virtual void *GetGenericContext();
155 virtual void *GetGenericDrawable()
156 {
157 return reinterpret_cast<void *>(this->WindowId);
158 }
159
163 virtual int *GetScreenSize();
164
168 virtual int *GetPosition();
169
173 Display *GetDisplayId();
174
176
180 void SetDisplayId(Display *);
181 void SetDisplayId(void *);
183
187 Window GetParentId();
188
190
193 void SetParentId(Window);
194 void SetParentId(void *);
196
200 Window GetWindowId();
201
203
206 void SetWindowId(Window);
207 void SetWindowId(void *);
209
213 void SetNextWindowId(Window);
214
220 void SetNextWindowId(void *);
221
222 void SetWindowName(const char *);
223
229
231
234 void SetPosition(int,int);
235 void SetPosition(int a[2]) {this->SetPosition(a[0], a[1]);};
237
239
246
250 virtual void SetCurrentCursor(int);
251
257 virtual int GetEventPending();
258
262 void SetWindowInfo(char *info);
263
268
272 void SetParentInfo(char *info);
273
278 void Render();
279
284
286
293 virtual void PushContext();
294 virtual void PopContext();
296
297protected:
300
301 vtkXOpenGLRenderWindowInternal *Internal;
302
303 Window ParentId;
304 Window WindowId;
305 Window NextWindowId;
306 Display *DisplayId;
307 Colormap ColorMap;
308 int OwnWindow;
309 int OwnDisplay;
310 int ScreenSize[2];
311 int CursorHidden;
312 int ForceMakeCurrent;
313 int UsingHardware;
314 char *Capabilities;
315
316 std::stack<Display *> DisplayStack;
317 std::stack<Drawable> DrawableStack;
318 std::stack<void *> ContextStack;
319
320 // we must keep track of the cursors we are using
321 Cursor XCCrosshair;
322 Cursor XCArrow;
323 Cursor XCSizeAll;
324 Cursor XCSizeNS;
325 Cursor XCSizeWE;
326 Cursor XCSizeNE;
327 Cursor XCSizeNW;
328 Cursor XCSizeSE;
329 Cursor XCSizeSW;
330 Cursor XCHand;
331
332
335 void CreateOffScreenWindow(int width, int height);
337 void ResizeOffScreenWindow(int width, int height);
339
340
341private:
342 vtkXOpenGLRenderWindow(const vtkXOpenGLRenderWindow&) VTK_DELETE_FUNCTION;
343 void operator=(const vtkXOpenGLRenderWindow&) VTK_DELETE_FUNCTION;
344};
345
346
347
348#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 Initialize(void)
Initialize the rendering window.
virtual void PushContext()
Ability to push and pop this window's context as the current context.
virtual void * GetGenericDrawable()
virtual void * GetGenericWindowId()
virtual Colormap GetDesiredColormap()
Get the X properties of an ideal rendering window.
void ResizeOffScreenWindow(int width, int height)
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.
void Render()
This computes the size of the render window before calling the supper classes render.
virtual XVisualInfo * GetDesiredVisualInfo()
int IsDirect()
Is this render window using hardware acceleration? 0-false, 1-true.
virtual Visual * GetDesiredVisual()
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 int * GetPosition()
Get the position in screen coordinates (pixels) of the window.
virtual void * GetGenericParentId()
std::stack< void * > ContextStack
virtual int * GetScreenSize()
Get the current size of the screen in pixels.
virtual int GetDesiredDepth()
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.
const char * ReportCapabilities()
Get report of capabilities for the render window.
Window GetWindowId()
Get this RenderWindow's X window id.
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.
Display * GetDisplayId()
Get this RenderWindow's X display id.
void MakeCurrent()
Make this window the current OpenGL context.
virtual void Finalize(void)
"Deinitialize" the rendering window.
virtual void PrefFullScreen(void)
Set the preferred window size to full screen.
virtual void * GetGenericDisplayId()
Xwindow get set functions.
void SetParentId(void *)
std::stack< Drawable > DrawableStack
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.
void SetDisplayId(void *)
Dummy stubs for vtkWindow API.
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 *)
static vtkXOpenGLRenderWindow * New()
void CreateAWindow()
Create a not-off-screen window.
void DestroyWindow()
Destroy a not-off-screen window.
virtual void * GetGenericContext()
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.
virtual void PopContext()
std::stack< Display * > DisplayStack
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