VTK  9.6.20260130
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
13
14#ifndef vtkWebAssemblyOpenGLRenderWindow_h
15#define vtkWebAssemblyOpenGLRenderWindow_h
16
18#include "vtkRenderingOpenGL2Module.h" // For export macro
19#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
20#include <stack> // for ivar
21
22VTK_ABI_NAMESPACE_BEGIN
24class VTKRENDERINGOPENGL2_EXPORT VTK_MARSHALAUTO vtkWebAssemblyOpenGLRenderWindow
26{
27public:
32 void PrintSelf(ostream& os, vtkIndent indent) override;
33
40 void Initialize() override;
41
47 void Finalize() override;
48
52 void SetFullScreen(vtkTypeBool) override;
53
55
58 void SetSize(int, int) override;
59 void SetSize(int a[2]) override { vtkOpenGLRenderWindow::SetSize(a); }
61
63
66 void SetPosition(int x, int y) override { vtkOpenGLRenderWindow::SetPosition(x, y); }
67 void SetPosition(int a[2]) override { vtkOpenGLRenderWindow::SetPosition(a); }
69
73 int* GetScreenSize() VTK_SIZEHINT(2) override;
74
78 int* GetPosition() VTK_SIZEHINT(2) override;
79
80 void* GetGenericDisplayId() override { return (void*)this->ContextId; }
81 void* GetGenericWindowId() override { return (void*)this->ContextId; }
82 void* GetGenericDrawable() override { return (void*)this->ContextId; }
83
87 void MakeCurrent() override;
88
92 void ReleaseCurrent() override;
93
97 bool IsCurrent() override;
98
102 void Clean();
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
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
219#define vtkWebAssemblyOpenGLRenderWindow_OVERRIDE_ATTRIBUTES \
220 vtkWebAssemblyOpenGLRenderWindow::CreateOverrideAttributes()
221VTK_ABI_NAMESPACE_END
222#endif
a simple class to control print indentation
Definition vtkIndent.h:108
Attribute for vtkObjectFactory overrides.
void SetShowWindow(bool) override
Make the setter for ShowWindow no-op.
PowerPreferenceType
These enums have a one-one correspondence with the webgpu enums.
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.
static vtkOverrideAttribute * CreateOverrideAttributes()
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
#define VTK_NEWINSTANCE