VTK  9.1.0
vtkGenericOpenGLRenderWindow.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkRenderWindow.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 =========================================================================*/
115 #ifndef vtkGenericOpenGLRenderWindow_h
116 #define vtkGenericOpenGLRenderWindow_h
117 
118 #include "vtkOpenGLRenderWindow.h"
119 #include "vtkRenderingOpenGL2Module.h" // For export macro
120 
121 class VTKRENDERINGOPENGL2_EXPORT vtkGenericOpenGLRenderWindow : public vtkOpenGLRenderWindow
122 {
123 public:
126  void PrintSelf(ostream& os, vtkIndent indent) override;
127 
128 protected:
131 
132 public:
134  void Finalize() override;
135 
138  void Frame() override;
139 
142  void MakeCurrent() override;
143 
147  bool IsCurrent() override;
148 
152  int SupportsOpenGL() override;
153 
157  vtkTypeBool IsDirect() override;
158 
159  // {@
161  void SetFrontLeftBuffer(unsigned int);
162  void SetFrontRightBuffer(unsigned int);
163  void SetBackLeftBuffer(unsigned int);
164  void SetBackRightBuffer(unsigned int);
165  // }@
166 
168 
170  void PushState() {}
172  void PopState() {}
173 
174  // {@
176  void SetWindowId(void*) override;
177  void* GetGenericWindowId() override;
178  void SetDisplayId(void*) override;
179  void SetParentId(void*) override;
180  void* GetGenericDisplayId() override;
181  void* GetGenericParentId() override;
182  void* GetGenericContext() override;
183  void* GetGenericDrawable() override;
184  void SetWindowInfo(const char*) override;
185  void SetParentInfo(const char*) override;
186  int* GetScreenSize() VTK_SIZEHINT(2) override;
187  void HideCursor() override;
188  void ShowCursor() override;
189  void SetFullScreen(vtkTypeBool) override;
190  void WindowRemap() override;
191  vtkTypeBool GetEventPending() override;
192  void SetNextWindowId(void*) override;
193  void SetNextWindowInfo(const char*) override;
194  void CreateAWindow() override;
195  void DestroyWindow() override;
196  // }@
197 
199 
203  void SetIsDirect(vtkTypeBool newValue);
204  void SetSupportsOpenGL(int newValue);
205  void SetIsCurrent(bool newValue);
207 
215  void Render() override;
216 
220  float GetMaximumHardwareLineWidth() override;
221 
223 
227  vtkSetClampMacro(ForceMaximumHardwareLineWidth, float, 0, VTK_FLOAT_MAX);
228  vtkGetMacro(ForceMaximumHardwareLineWidth, float);
230 
232 
237  vtkSetMacro(ReadyForRendering, bool);
238  vtkGetMacro(ReadyForRendering, bool);
239 
244  vtkSetVector2Macro(ScreenSize, int);
245 
249  void SetCurrentCursor(int cShape) override;
250 
251  // since we are using an external context it must
252  // specify if the window is mapped or not.
253  vtkSetMacro(Mapped, vtkTypeBool);
254 
259  "Deprecated in 9.1 because no one knows what it's for and nothing uses it")
260  bool IsDrawable() override;
261 
265  void OpenGLInit() override;
266 
267 protected:
273  int ReadPixels(
274  const vtkRecti& rect, int front, int glFormat, int glType, void* data, int right) override;
275 
276  int SetPixelData(
277  int x1, int y1, int x2, int y2, unsigned char* data, int front, int right) override;
278  int SetPixelData(
279  int x1, int y1, int x2, int y2, vtkUnsignedCharArray* data, int front, int right) override;
280  int SetRGBACharPixelData(
281  int x1, int y1, int x2, int y2, unsigned char* data, int front, int blend, int right) override;
282  int SetRGBACharPixelData(int x, int y, int x2, int y2, vtkUnsignedCharArray* data, int front,
283  int blend = 0, int right = 0) override;
284 
285  int DirectStatus;
286  int SupportsOpenGLStatus;
287  bool CurrentStatus;
288  float ForceMaximumHardwareLineWidth;
289  bool ReadyForRendering;
290 
291 private:
293  void operator=(const vtkGenericOpenGLRenderWindow&) = delete;
294 };
295 
296 #endif
vtkGenericOpenGLRenderWindow::SetDisplayId
void SetDisplayId(void *) override
Dummy stubs for vtkWindow API.
vtkGenericOpenGLRenderWindow::SupportsOpenGL
int SupportsOpenGL() override
Returns if OpenGL is supported.
vtkGenericOpenGLRenderWindow::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkX3D::data
@ data
Definition: vtkX3D.h:321
vtkGenericOpenGLRenderWindow::SetOwnContext
void SetOwnContext(vtkTypeBool)
vtkGenericOpenGLRenderWindow::New
static vtkGenericOpenGLRenderWindow * New()
vtkGenericOpenGLRenderWindow::~vtkGenericOpenGLRenderWindow
~vtkGenericOpenGLRenderWindow() override
vtkUnsignedCharArray
dynamic, self-adjusting array of unsigned char
Definition: vtkUnsignedCharArray.h:145
vtkGenericOpenGLRenderWindow
platform independent render window
Definition: vtkGenericOpenGLRenderWindow.h:122
VTK_DEPRECATED_IN_9_1_0
#define VTK_DEPRECATED_IN_9_1_0(reason)
Definition: vtkDeprecation.h:117
vtkGenericOpenGLRenderWindow::GetScreenSize
int * GetScreenSize() override
Get the current size of the screen in pixels.
vtkGenericOpenGLRenderWindow::GetGenericParentId
void * GetGenericParentId() override
Dummy stubs for vtkWindow API.
vtkGenericOpenGLRenderWindow::GetGenericDisplayId
void * GetGenericDisplayId() override
Dummy stubs for vtkWindow API.
vtkGenericOpenGLRenderWindow::GetGenericDrawable
void * GetGenericDrawable() override
Dummy stubs for vtkWindow API.
vtkGenericOpenGLRenderWindow::IsDirect
vtkTypeBool IsDirect() override
Returns if the context is direct.
vtkGenericOpenGLRenderWindow::SetBackRightBuffer
void SetBackRightBuffer(unsigned int)
VTK_SIZEHINT
#define VTK_SIZEHINT(...)
Definition: vtkWrappingHints.h:48
vtkGenericOpenGLRenderWindow::GetGenericContext
void * GetGenericContext() override
Dummy stubs for vtkWindow API.
vtkGenericOpenGLRenderWindow::Frame
void Frame() override
flush the pending drawing operations Class user may to watch for WindowFrameEvent and act on it
vtkGenericOpenGLRenderWindow::SetParentInfo
void SetParentInfo(const char *) override
Dummy stubs for vtkWindow API.
vtkGenericOpenGLRenderWindow::MakeCurrent
void MakeCurrent() override
Makes the context current.
vtkGenericOpenGLRenderWindow::SetWindowInfo
void SetWindowInfo(const char *) override
Dummy stubs for vtkWindow API.
vtkGenericOpenGLRenderWindow::SetBackLeftBuffer
void SetBackLeftBuffer(unsigned int)
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:113
vtkGenericOpenGLRenderWindow::Finalize
void Finalize() override
Cleans up graphics resources allocated in the context for this VTK scene.
vtkGenericOpenGLRenderWindow::PushState
void PushState()
no-op (for API compat with OpenGL1).
Definition: vtkGenericOpenGLRenderWindow.h:170
VTK_FLOAT_MAX
#define VTK_FLOAT_MAX
Definition: vtkType.h:163
vtkGenericOpenGLRenderWindow::SetWindowId
void SetWindowId(void *) override
does nothing
vtkGenericOpenGLRenderWindow::SetParentId
void SetParentId(void *) override
Dummy stubs for vtkWindow API.
vtkGenericOpenGLRenderWindow::GetGenericWindowId
void * GetGenericWindowId() override
Dummy stubs for vtkWindow API.
vtkGenericOpenGLRenderWindow::SetFrontLeftBuffer
void SetFrontLeftBuffer(unsigned int)
set the drawing buffers to use
vtkGenericOpenGLRenderWindow::PopState
void PopState()
no-op (for API compat with OpenGL1).
Definition: vtkGenericOpenGLRenderWindow.h:172
vtkGenericOpenGLRenderWindow::SetFrontRightBuffer
void SetFrontRightBuffer(unsigned int)
vtkRecti
Definition: vtkRect.h:322
vtkOpenGLRenderWindow
OpenGL rendering window.
Definition: vtkOpenGLRenderWindow.h:83
vtkGenericOpenGLRenderWindow::IsCurrent
bool IsCurrent() override
Returns if the context is current.
vtkTypeBool
int vtkTypeBool
Definition: vtkABI.h:69
vtkOpenGLRenderWindow.h
vtkGenericOpenGLRenderWindow::vtkGenericOpenGLRenderWindow
vtkGenericOpenGLRenderWindow()