VTK  9.2.6
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 =========================================================================*/
36 #ifndef vtkGenericOpenGLRenderWindow_h
37 #define vtkGenericOpenGLRenderWindow_h
38 
39 #include "vtkOpenGLRenderWindow.h"
40 #include "vtkRenderingOpenGL2Module.h" // For export macro
41 
42 class VTKRENDERINGOPENGL2_EXPORT vtkGenericOpenGLRenderWindow : public vtkOpenGLRenderWindow
43 {
44 public:
47  void PrintSelf(ostream& os, vtkIndent indent) override;
48 
49 protected:
51  ~vtkGenericOpenGLRenderWindow() override;
52 
53 public:
55  void Finalize() override;
56 
59  void Frame() override;
60 
63  void MakeCurrent() override;
64 
68  bool IsCurrent() override;
69 
73  int SupportsOpenGL() override;
74 
78  vtkTypeBool IsDirect() override;
79 
80  // {@
82  void SetFrontLeftBuffer(unsigned int);
83  void SetFrontRightBuffer(unsigned int);
84  void SetBackLeftBuffer(unsigned int);
85  void SetBackRightBuffer(unsigned int);
86  // }@
87 
88  void SetOwnContext(vtkTypeBool);
89 
91  void PushState() {}
93  void PopState() {}
94 
95  // {@
97  void SetWindowId(void*) override;
98  void* GetGenericWindowId() override;
99  void SetDisplayId(void*) override;
100  void SetParentId(void*) override;
101  void* GetGenericDisplayId() override;
102  void* GetGenericParentId() override;
103  void* GetGenericContext() override;
104  void* GetGenericDrawable() override;
105  void SetWindowInfo(const char*) override;
106  void SetParentInfo(const char*) override;
107  int* GetScreenSize() VTK_SIZEHINT(2) override;
108  void HideCursor() override;
109  void ShowCursor() override;
110  void SetFullScreen(vtkTypeBool) override;
111  void WindowRemap() override;
112  vtkTypeBool GetEventPending() override;
113  void SetNextWindowId(void*) override;
114  void SetNextWindowInfo(const char*) override;
115  void CreateAWindow() override;
116  void DestroyWindow() override;
117  // }@
118 
120 
124  void SetIsDirect(vtkTypeBool newValue);
125  void SetSupportsOpenGL(int newValue);
126  void SetIsCurrent(bool newValue);
128 
136  void Render() override;
137 
141  float GetMaximumHardwareLineWidth() override;
142 
144 
148  vtkSetClampMacro(ForceMaximumHardwareLineWidth, float, 0, VTK_FLOAT_MAX);
149  vtkGetMacro(ForceMaximumHardwareLineWidth, float);
151 
153 
158  vtkSetMacro(ReadyForRendering, bool);
159  vtkGetMacro(ReadyForRendering, bool);
160 
165  vtkSetVector2Macro(ScreenSize, int);
166 
170  void SetCurrentCursor(int cShape) override;
171 
172  // since we are using an external context it must
173  // specify if the window is mapped or not.
174  vtkSetMacro(Mapped, vtkTypeBool);
175 
180  "Deprecated in 9.1 because no one knows what it's for and nothing uses it")
181  bool IsDrawable() override;
182 
186  void OpenGLInit() override;
187 
188 protected:
194  int ReadPixels(
195  const vtkRecti& rect, int front, int glFormat, int glType, void* data, int right) override;
196 
197  int SetPixelData(
198  int x1, int y1, int x2, int y2, unsigned char* data, int front, int right) override;
199  int SetPixelData(
200  int x1, int y1, int x2, int y2, vtkUnsignedCharArray* data, int front, int right) override;
201  int SetRGBACharPixelData(
202  int x1, int y1, int x2, int y2, unsigned char* data, int front, int blend, int right) override;
203  int SetRGBACharPixelData(int x, int y, int x2, int y2, vtkUnsignedCharArray* data, int front,
204  int blend = 0, int right = 0) override;
205 
206  int DirectStatus;
207  int SupportsOpenGLStatus;
208  bool CurrentStatus;
209  float ForceMaximumHardwareLineWidth;
210  bool ReadyForRendering;
211 
212 private:
214  void operator=(const vtkGenericOpenGLRenderWindow&) = delete;
215 };
216 
217 #endif
OpenGL rendering window.
#define VTK_DEPRECATED_IN_9_1_0(reason)
void * GetGenericDisplayId() override
Dummy stubs for vtkWindow API.
void * GetGenericContext() override
Dummy stubs for vtkWindow API.
void SetDisplayId(void *) override
Dummy stubs for vtkWindow API.
static vtkRenderWindow * New()
Construct an instance of vtkRenderWindow with its screen size set to 300x300, borders turned on...
void * GetGenericWindowId() override
Dummy stubs for vtkWindow API.
void PushState()
no-op (for API compat with OpenGL1).
void SetWindowInfo(const char *) override
Dummy stubs for vtkWindow API.
virtual bool IsCurrent()
Tells if this window is the current graphics context for the calling thread.
virtual void Finalize()
Finalize the rendering process.
void SetParentId(void *) override
Dummy stubs for vtkWindow API.
int vtkTypeBool
Definition: vtkABI.h:69
#define VTK_FLOAT_MAX
Definition: vtkType.h:163
void SetWindowId(void *) override
Dummy stubs for vtkWindow API.
platform independent render window
a simple class to control print indentation
Definition: vtkIndent.h:39
virtual int * GetScreenSize()
Get the current size of the screen in pixels.
Definition: vtkWindow.h:105
int SupportsOpenGL() override
Does this render window support OpenGL? 0-false, 1-true.
void * GetGenericParentId() override
Dummy stubs for vtkWindow API.
virtual void MakeCurrent()
Make the window current.
Definition: vtkWindow.h:246
#define VTK_SIZEHINT(...)
dynamic, self-adjusting array of unsigned char
void Frame() override
A termination method performed at the end of the rendering process to do things like swapping buffers...
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void PopState()
no-op (for API compat with OpenGL1).
void SetParentInfo(const char *) override
Dummy stubs for vtkWindow API.
void * GetGenericDrawable() override
Dummy stubs for vtkWindow API.
virtual vtkTypeBool IsDirect()
Is this render window using hardware acceleration? 0-false, 1-true.