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 =========================================================================*/
33 #ifndef __vtkXOpenGLRenderWindow_h
34 #define __vtkXOpenGLRenderWindow_h
35 
36 #include "vtkOpenGLRenderWindow.h"
37 #include <X11/Xlib.h> // Needed for X types used in the public interface
38 #include <X11/Xutil.h> // Needed for X types used in the public interface
39 
40 class vtkIdList;
41 class vtkXOpenGLRenderWindowInternal;
42 
44 {
45 public:
46  static vtkXOpenGLRenderWindow *New();
48  void PrintSelf(ostream& os, vtkIndent indent);
49 
51  virtual void Start(void);
52 
54  virtual void Frame(void);
55 
57  virtual void WindowInitialize(void);
58 
63  virtual void Initialize(void);
64 
69  virtual void Finalize(void);
70 
72  virtual void SetFullScreen(int);
73 
75  virtual void WindowRemap(void);
76 
78  virtual void PrefFullScreen(void);
79 
81 
82  virtual void SetSize(int,int);
83  virtual void SetSize(int a[2]) {this->SetSize(a[0], a[1]);};
85 
87 
88  virtual Colormap GetDesiredColormap();
89  virtual Visual *GetDesiredVisual();
90  virtual XVisualInfo *GetDesiredVisualInfo();
91  virtual int GetDesiredDepth();
93 
98  virtual void SetStereoCapableWindow(int capable);
99 
101  void MakeCurrent();
102 
105  virtual bool IsCurrent();
106 
110  void SetForceMakeCurrent();
111 
113  const char *ReportCapabilities();
114 
116  int SupportsOpenGL();
117 
119  int IsDirect();
120 
122 
123  virtual void *GetGenericDisplayId()
124  {
125  return this->GetDisplayId();
126  }
128 
129  virtual void *GetGenericWindowId();
130  virtual void *GetGenericParentId()
131  {
132  return reinterpret_cast<void *>(this->ParentId);
133  }
134 
135  virtual void *GetGenericContext();
136  virtual void *GetGenericDrawable()
137  {
138  return reinterpret_cast<void *>(this->WindowId);
139  }
140 
142  virtual int *GetScreenSize();
143 
145  virtual int *GetPosition();
146 
148  Display *GetDisplayId();
149 
151 
153  void SetDisplayId(Display *);
154  void SetDisplayId(void *);
156 
158  Window GetParentId();
159 
161 
162  void SetParentId(Window);
163  void SetParentId(void *);
165 
167  Window GetWindowId();
168 
170 
171  void SetWindowId(Window);
172  void SetWindowId(void *);
174 
176  void SetNextWindowId(Window);
177 
180  void SetNextWindowId(void *);
181 
182  void SetWindowName(const char *);
183 
185 
186  void SetPosition(int,int);
187  void SetPosition(int a[2]) {this->SetPosition(a[0], a[1]);};
189 
191 
193  void HideCursor();
194  void ShowCursor();
196 
198  virtual void SetCurrentCursor(int);
199 
203  virtual int GetEventPending();
204 
206  void SetWindowInfo(char *info);
207 
209  void SetNextWindowInfo(char *info);
210 
212  void SetParentInfo(char *info);
213 
216  void Render();
217 
219  void SetOffScreenRendering(int i);
220 
221 protected:
224 
225  vtkXOpenGLRenderWindowInternal *Internal;
226 
227  Window ParentId;
228  Window WindowId;
229  Window NextWindowId;
230  Display *DisplayId;
231  Colormap ColorMap;
234  int ScreenSize[2];
239 
240  // we must keep track of the cursors we are using
241  Cursor XCArrow;
242  Cursor XCSizeAll;
243  Cursor XCSizeNS;
244  Cursor XCSizeWE;
245  Cursor XCSizeNE;
246  Cursor XCSizeNW;
247  Cursor XCSizeSE;
248  Cursor XCSizeSW;
249  Cursor XCHand;
250 
251 
252  void CreateAWindow();
253  void DestroyWindow();
254  void CreateOffScreenWindow(int width, int height);
255  void DestroyOffScreenWindow();
256  void ResizeOffScreenWindow(int width, int height);
257 
258 
259 private:
260  vtkXOpenGLRenderWindow(const vtkXOpenGLRenderWindow&); // Not implemented.
261  void operator=(const vtkXOpenGLRenderWindow&); // Not implemented.
262 };
263 
264 
265 
266 #endif
OpenGL rendering window.
virtual void SetOffScreenRendering(int)
virtual void Finalize()=0
virtual void SetForceMakeCurrent()
virtual void SetWindowInfo(char *)=0
virtual void SetSize(int a[2])
virtual void * GetGenericParentId()
virtual void WindowRemap()=0
virtual void * GetGenericContext()=0
vtkXOpenGLRenderWindowInternal * Internal
void PrintSelf(ostream &os, vtkIndent indent)
virtual void HideCursor()=0
static vtkRenderWindow * New()
virtual int * GetScreenSize()=0
virtual void SetWindowId(void *)=0
virtual void SetCurrentCursor(int)
virtual void SetNextWindowInfo(char *)=0
virtual void SetFullScreen(int)=0
OpenGL rendering window.
virtual void * GetGenericDrawable()
virtual int GetEventPending()=0
virtual void SetSize(int, int)
virtual void SetStereoCapableWindow(int capable)
virtual const char * ReportCapabilities()
virtual int IsDirect()
virtual int SupportsOpenGL()
virtual void SetParentInfo(char *)=0
virtual bool IsCurrent()=0
virtual void SetParentId(void *)=0
a simple class to control print indentation
Definition: vtkIndent.h:37
virtual void DestroyWindow()=0
list of point or cell ids
Definition: vtkIdList.h:34
virtual void SetDisplayId(void *)=0
virtual void MakeCurrent()=0
virtual void SetNextWindowId(void *)=0
virtual void * GetGenericDisplayId()
virtual int * GetPosition()
virtual void Frame()=0
#define VTK_RENDERING_EXPORT
virtual void Start()=0
virtual void SetWindowName(const char *)
virtual void SetPosition(int, int)
virtual void Render()
virtual void CreateAWindow()=0
virtual void ShowCursor()=0
virtual void * GetGenericWindowId()=0