VTK  9.0.1
vtkEGLRenderWindow.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkEGLRenderWindow.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 =========================================================================*/
32 #ifndef vtkEGLRenderWindow_h
33 #define vtkEGLRenderWindow_h
34 
35 #include "vtkOpenGLRenderWindow.h"
36 #include "vtkRenderingOpenGL2Module.h" // For export macro
37 
38 class vtkIdList;
39 
40 class VTKRENDERINGOPENGL2_EXPORT vtkEGLRenderWindow : public vtkOpenGLRenderWindow
41 {
42 public:
43  static vtkEGLRenderWindow* New();
45  void PrintSelf(ostream& os, vtkIndent indent) override;
46 
50  void Frame(void) override;
51 
52  // override as some EGL systems cannot show the window
53  void SetShowWindow(bool) override;
54 
58  virtual void WindowInitialize(void);
59 
66  void Initialize(void) override;
67 
73  void Finalize(void) override;
74 
78  void SetFullScreen(vtkTypeBool) override;
79 
83  void WindowRemap(void) override;
84 
88  virtual void PrefFullScreen(void);
89 
98  void SetSize(int width, int height) override;
99  void SetSize(int a[2]) override { this->SetSize(a[0], a[1]); }
100 
107  void SetStereoCapableWindow(vtkTypeBool capable) override;
108 
112  void MakeCurrent() override;
113 
117  bool IsCurrent() override;
118 
122  vtkTypeBool IsDirect() override { return 1; }
123 
128  int* GetScreenSize() VTK_SIZEHINT(2) override;
129 
134  int* GetPosition() VTK_SIZEHINT(2) override;
135 
137 
140  void SetDisplayId(void*) override {}
141  void SetWindowId(void* window) override;
142  void SetNextWindowId(void*) override {}
143  void SetParentId(void*) override {}
144  void* GetGenericDisplayId() override;
145  void* GetGenericWindowId() override { return nullptr; }
146  void* GetGenericParentId() override { return nullptr; }
147  void* GetGenericContext() override;
148  void* GetGenericDrawable() override { return nullptr; }
149  void SetWindowInfo(const char*) override;
150  void SetNextWindowInfo(const char*) override {}
151  void SetParentInfo(const char*) override {}
153 
154  void SetWindowName(const char*) override;
155 
157 
162  void SetPosition(int x, int y) override;
163  void SetPosition(int a[2]) override { this->SetPosition(a[0], a[1]); }
165 
167 
171  void HideCursor() override;
172  void ShowCursor() override;
174 
179  void Render() override;
180 
187  vtkTypeBool GetEventPending() override { return 0; }
188 
189  vtkTypeBool GetOwnWindow() { return this->OwnWindow; }
190 
195  void GetEGLSurfaceSize(int* width, int* height);
199  int GetNumberOfDevices() override;
206  bool IsPointSpriteBugPresent() override;
207 
208 protected:
210  ~vtkEGLRenderWindow() override;
211 
215  class vtkInternals;
216  vtkInternals* Internals;
217 
218  void CreateAWindow() override;
219  void DestroyWindow() override;
220  void ResizeWindow(int width, int height);
221 
227  void SetDeviceAsDisplay(int deviceIndex);
228 
229 private:
230  vtkEGLRenderWindow(const vtkEGLRenderWindow&) = delete;
231  void operator=(const vtkEGLRenderWindow&) = delete;
232 
233  bool DeviceExtensionsPresent;
234 };
235 
236 #endif
vtkTypeBool GetOwnWindow()
OpenGL rendering window.
void * GetGenericParentId() override
Dummy stubs for vtkWindow API.
vtkInternals * Internals
void * GetGenericDrawable() override
Dummy stubs for vtkWindow API.
virtual void SetFullScreen(vtkTypeBool)
Turn on/off rendering full screen window size.
void * GetGenericDisplayId() override
Dummy stubs for vtkWindow API.
void * GetGenericContext() override
Dummy stubs for vtkWindow API.
virtual void WindowRemap()
Remap the rendering window.
virtual 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 Render() override
Handle opengl specific code and calls superclass.
static vtkRenderWindow * New()
Construct an instance of vtkRenderWindow with its screen size set to 300x300, borders turned on...
void MakeCurrent() override
Attempt to make this window the current graphics context for the calling thread.
void SetWindowInfo(const char *) override
Dummy stubs for vtkWindow API.
void SetParentInfo(const char *) override
Dummy stubs for vtkWindow API.
virtual void SetPosition(int x, int y)
Set the position (x and y) of the rendering window in screen coordinates (in pixels).
virtual bool IsCurrent()
Tells if this window is the current graphics context for the calling thread.
virtual void Finalize()
Finalize the rendering process.
virtual void SetShowWindow(bool)
Show or not Show the window.
void * GetGenericWindowId() override
Dummy stubs for vtkWindow API.
int vtkTypeBool
Definition: vtkABI.h:69
virtual void SetStereoCapableWindow(vtkTypeBool capable)
Prescribe that the window be created in a stereo-capable mode.
void SetSize(int a[2]) override
Get the size (width and height) of the rendering window in screen coordinates (in pixels)...
void SetWindowId(void *) override
Dummy stubs for vtkWindow API.
a simple class to control print indentation
Definition: vtkIndent.h:33
virtual void DestroyWindow()=0
Destroy a not-off-screen window.
void SetParentId(void *) override
Dummy stubs for vtkWindow API.
list of point or cell ids
Definition: vtkIdList.h:30
virtual void ShowCursor()
Hide or Show the mouse cursor, it is nice to be able to hide the default cursor if you want VTK to di...
virtual int * GetScreenSize()
Get the current size of the screen in pixels.
Definition: vtkWindow.h:104
#define VTK_SIZEHINT(...)
void SetSize(int width, int height) override
Set the size (width and height) of the rendering window in screen coordinates (in pixels)...
void SetNextWindowInfo(const char *) override
Dummy stubs for vtkWindow API.
void Frame() override
A termination method performed at the end of the rendering process to do things like swapping buffers...
void SetPosition(int a[2]) override
Set the position (x and y) of the rendering window in screen coordinates (in pixels).
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetNextWindowId(void *) override
Dummy stubs for vtkWindow API.
virtual void SetWindowName(const char *)
Get name of rendering window.
virtual void Initialize(void)
Initialize the rendering window.
virtual bool IsPointSpriteBugPresent()
Returns true if driver has an EGL/OpenGL bug that makes vtkChartsCoreCxx-TestChartDoubleColors and ot...
virtual void CreateAWindow()=0
Create a not-off-screen window.
vtkTypeBool GetEventPending() override
Check to see if a mouse button has been pressed.
OpenGL rendering window.
virtual int GetNumberOfDevices()
Returns the number of devices (graphics cards) on a system.
vtkTypeBool IsDirect() override
Is this render window using hardware acceleration? 0-false, 1-true.