VTK  9.5.2
vtkWebAssemblyOpenGLRenderWindow.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-License-Identifier: BSD-3-Clause
10
11#ifndef vtkWebAssemblyOpenGLRenderWindow_h
12#define vtkWebAssemblyOpenGLRenderWindow_h
13
15#include "vtkRenderingOpenGL2Module.h" // For export macro
16#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
17#include <stack> // for ivar
18
19VTK_ABI_NAMESPACE_BEGIN
20class VTKRENDERINGOPENGL2_EXPORT VTK_MARSHALAUTO vtkWebAssemblyOpenGLRenderWindow
22{
23public:
26 void PrintSelf(ostream& os, vtkIndent indent) override;
27
34 void Initialize() override;
35
41 void Finalize() override;
42
46 void SetFullScreen(vtkTypeBool) override;
47
49
52 void SetSize(int, int) override;
53 void SetSize(int a[2]) override { vtkOpenGLRenderWindow::SetSize(a); }
55
57
60 void SetPosition(int x, int y) override { vtkOpenGLRenderWindow::SetPosition(x, y); }
61 void SetPosition(int a[2]) override { vtkOpenGLRenderWindow::SetPosition(a); }
63
67 int* GetScreenSize() VTK_SIZEHINT(2) override;
68
72 int* GetPosition() VTK_SIZEHINT(2) override;
73
74 void* GetGenericDisplayId() override { return (void*)this->ContextId; }
75 void* GetGenericWindowId() override { return (void*)this->ContextId; }
76 void* GetGenericDrawable() override { return (void*)this->ContextId; }
77
81 void MakeCurrent() override;
82
86 void ReleaseCurrent() override;
87
91 bool IsCurrent() override;
92
96 void Clean();
97
102 void Frame() override;
103
105
112 void PushContext() override;
113 void PopContext() override;
115
125 bool SetSwapControl(int i) override;
126
131 int GetColorBufferSizes(int* rgba) override;
132
134
138 void HideCursor() override;
139 void ShowCursor() override;
141
145 vtkGetStringMacro(CanvasSelector);
146 vtkSetStringMacro(CanvasSelector);
147
153 {
154 Default,
155 LowPower,
156 HighPerformance
157 };
158
160
175
177
188
193 void SetUseOffScreenBuffers(bool) override {}
194
199 void SetShowWindow(bool) override {}
200
201protected:
204
205 unsigned long ContextId;
206 std::stack<unsigned long> ContextStack;
207 char* CanvasSelector = nullptr;
209
211 void CreateAWindow() override;
212 void DestroyWindow() override;
213
214private:
216 void operator=(const vtkWebAssemblyOpenGLRenderWindow&) = delete;
217};
218
219VTK_ABI_NAMESPACE_END
220#endif
a simple class to control print indentation
Definition vtkIndent.h:29
void SetShowWindow(bool) override
Make the setter for ShowWindow no-op.
PowerPreferenceType
These enums have a one-one correspondence with the webgpu enums.
void Frame() override
A termination method performed at the end of the rendering process to do things like swapping buffers...
void Initialize() override
Initialize the rendering window.
static vtkWebAssemblyOpenGLRenderWindow * New()
void ReleaseCurrent() override
Release the current context.
vtkSetEnumMacro(PowerPreference, PowerPreferenceType)
Set/Get the power preference of the graphics adapter.
void SetSize(int, int) override
Set the size of the window in pixels.
bool IsCurrent() override
Tells if this window is the current OpenGL context for the calling thread.
void MakeCurrent() override
Make this windows OpenGL context the current context.
void SetUseOffScreenBuffers(bool) override
Make the setter for UseOffscreenBuffers no-op.
void SetSize(int a[2]) override
Set the size of the window in pixels.
void * GetGenericDisplayId() override
Dummy stubs for vtkWindow API.
bool SetSwapControl(int i) override
Set the number of vertical syncs required between frames.
void * GetGenericWindowId() override
Dummy stubs for vtkWindow API.
void PreferHighPerformanceAdapter()
Set preference for a high-performance or low-power device.
void Clean()
Clean up device contexts, rendering contexts, etc.
int * GetPosition() override
Get the position in screen coordinates of the window.
void PushContext() override
Ability to push and pop this window's context as the current context.
void CreateAWindow() override
Create a not-off-screen window.
void DestroyWindow() override
Destroy a not-off-screen window.
int * GetScreenSize() override
Get the current size of the screen in pixels.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetPosition(int a[2]) override
Set the position of the window.
void ShowCursor() override
Hide or Show the mouse cursor, it is nice to be able to hide the default cursor if you want VTK to di...
void SetPosition(int x, int y) override
Set the position of the window.
void HideCursor() override
Hide or Show the mouse cursor, it is nice to be able to hide the default cursor if you want VTK to di...
void SetFullScreen(vtkTypeBool) override
Change the window to fill the entire screen.
int GetColorBufferSizes(int *rgba) override
Get the size of the color buffer.
void PreferLowPowerAdapter()
Set preference for a high-performance or low-power device.
vtkGetEnumMacro(PowerPreference, PowerPreferenceType)
Set/Get the power preference of the graphics adapter.
void * GetGenericDrawable() override
Dummy stubs for vtkWindow API.
void Finalize() override
Finalize the rendering window.
void PopContext() override
Ability to push and pop this window's context as the current context.
virtual void SetPosition(int x, int y)
Set the position (x and y) of the rendering window in screen coordinates (in pixels).
virtual void SetSize(int width, int height)
Set the size (width and height) of the rendering window in screen coordinates (in pixels).
int vtkTypeBool
Definition vtkABI.h:64
#define VTK_SIZEHINT(...)
#define VTK_MARSHALAUTO