VTK  9.3.20240424
vtkIOSRenderWindow.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
30#ifndef vtkIOSRenderWindow_h
31#define vtkIOSRenderWindow_h
32
34#include "vtkRenderingOpenGL2Module.h" // For export macro
35
36VTK_ABI_NAMESPACE_BEGIN
37class VTKRENDERINGOPENGL2_EXPORT vtkIOSRenderWindow : public vtkOpenGLRenderWindow
38{
39public:
42 void PrintSelf(ostream& os, vtkIndent indent) override;
43
47 void Frame() override;
48
52 virtual void WindowConfigure();
53
62 void Initialize() override;
63
70 void SetFullScreen(vtkTypeBool) override;
71
75 void WindowRemap() override;
76
81 virtual void PrefFullScreen();
82
84
92 void SetSize(int width, int height) override;
93 void SetSize(int a[2]) override { this->SetSize(a[0], a[1]); }
95
100 int* GetSize() VTK_SIZEHINT(2) override;
101
103
108 void SetPosition(int x, int y) override;
109 void SetPosition(int a[2]) override { this->SetPosition(a[0], a[1]); }
111
116 int* GetScreenSize() VTK_SIZEHINT(2) override;
117
122 int* GetPosition() VTK_SIZEHINT(2) override;
123
128 void SetWindowName(const char*) override;
129
130 void SetNextWindowInfo(const char*) override
131 {
132 vtkWarningMacro("SetNextWindowInfo not implemented (WindowRemap not implemented).");
133 }
134 void* GetGenericDrawable() override
135 {
136 vtkWarningMacro("Method not implemented.");
137 return 0;
138 }
139 void SetDisplayId(void*) override { vtkWarningMacro("Method not implemented."); }
140 void* GetGenericDisplayId() override
141 {
142 vtkWarningMacro("Method not implemented.");
143 return 0;
144 }
145
151 void SetWindowInfo(const char*) override;
152
158 void SetParentInfo(const char*) override;
159
160 void SetNextWindowId(void*) override
161 {
162 vtkWarningMacro("SetNextWindowId not implemented (WindowRemap not implemented).");
163 }
164
170
177 void SetStereoCapableWindow(vtkTypeBool capable) override;
178
182 void MakeCurrent() override;
183
187 bool IsCurrent() override;
188
193
197 const char* ReportCapabilities() override;
198
202 int SupportsOpenGL() override;
203
208
214 void SetForceMakeCurrent() override;
215
221
223
226 virtual void SetupPalette(void* hDC);
227 virtual void SetupPixelFormat(void* hDC, void* dwFlags, int debug, int bpp = 16, int zbpp = 16);
229
233 void Finalize() override;
234
238 int GetDepthBufferSize() override;
239
241
247 void HideCursor() override;
248 void ShowCursor() override;
249 void SetCursorPosition(int x, int y) override;
251
255 void SetCurrentCursor(int) override;
256
261 virtual int GetWindowCreated();
262
264
267 void SetContextId(void*);
269 void* GetGenericContext() override { return this->GetContextId(); }
271
282 virtual void SetRootWindow(void*);
283
287 virtual void* GetRootWindow();
288
299 void SetWindowId(void*) override;
300
304 virtual void* GetWindowId();
305 void* GetGenericWindowId() override { return this->GetWindowId(); }
306
313 void SetParentId(void* UIView) override;
314
320 virtual void* GetParentId();
321 void* GetGenericParentId() override { return this->GetParentId(); }
322
324
327 void SetPixelFormat(void* pixelFormat);
330
331protected:
334
336
337 // blits the display buffers to the appropriate hardware buffers
339
340 void CreateAWindow() override;
341 void DestroyWindow() override;
343
346
347 // IOS seems to have issues with getting RGB data
349 const vtkRecti& rect, int front, int glFormat, int glType, void* data, int right = 0) override;
350
351private:
352 vtkIOSRenderWindow(const vtkIOSRenderWindow&) = delete;
353 void operator=(const vtkIOSRenderWindow&) = delete;
354
355private:
356 vtkTypeBool WindowCreated;
357 vtkTypeBool ViewCreated;
358 vtkTypeBool CursorHidden;
359
360 vtkTypeBool ForceMakeCurrent;
361};
362
363VTK_ABI_NAMESPACE_END
364#endif
IOS OpenGL rendering window.
void SetPixelFormat(void *pixelFormat)
Accessors for the pixel format object (Really an NSOpenGLPixelFormat*).
void SetNextWindowId(void *) override
Dummy stubs for vtkWindow API.
void Frame() override
Finish the rendering process.
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 CreateAWindow() override
Create a not-off-screen window.
~vtkIOSRenderWindow() override
virtual void PrefFullScreen()
Set the preferred window size to full screen.
void SetSize(int a[2]) override
Set the size (width and height) of the rendering window in screen coordinates (in pixels).
void DestroyWindow() override
Destroy a not-off-screen window.
virtual void SetRootWindow(void *)
Sets the NSWindow* associated with this vtkRenderWindow.
void BlitDisplayFramebuffersToHardware() override
void SetContextId(void *)
Accessors for the OpenGL context (Really an NSOpenGLContext*).
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void * GetContextId()
Accessors for the OpenGL context (Really an NSOpenGLContext*).
void SetFullScreen(vtkTypeBool) override
Change the window to fill the entire screen.
void SetParentId(void *UIView) override
Set the UIView* for the vtkRenderWindow to be parented within.
vtkTypeBool IsDirect() override
Is this render window using hardware acceleration? 0-false, 1-true.
int * GetSize() override
Get the size (width and height) of the rendering window in screen coordinates (in pixels).
vtkTypeBool OnScreenInitialized
void SetForceMakeCurrent() override
If called, allow MakeCurrent() to skip cache-check when called.
void SetCursorPosition(int x, int y) 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 Initialize() override
Initialize the window for rendering.
void DestroyOffScreenWindow()
void Finalize() override
Clean up device contexts, rendering contexts, etc.
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...
virtual void SetupPixelFormat(void *hDC, void *dwFlags, int debug, int bpp=16, int zbpp=16)
Initialize OpenGL for this window.
static vtkIOSRenderWindow * New()
void * GetGenericDrawable() override
These are window system independent methods that are used to help interface vtkWindow to native windo...
int SupportsOpenGL() override
Does this render window support OpenGL? 0-false, 1-true.
bool IsCurrent() override
Tells if this window is the current OpenGL context for the calling thread.
vtkTypeBool GetEventPending() override
Check to see if an event is pending for this window.
void SetStereoCapableWindow(vtkTypeBool capable) override
Prescribe that the window be created in a stereo-capable mode.
void WindowRemap() override
Remap the window.
virtual int GetWindowCreated()
Get the WindowCreated flag.
void * GetPixelFormat()
Accessors for the pixel format object (Really an NSOpenGLPixelFormat*).
void * GetGenericWindowId() override
These are window system independent methods that are used to help interface vtkWindow to native windo...
void * GetGenericDisplayId() override
These are window system independent methods that are used to help interface vtkWindow to native windo...
void * GetGenericContext() override
Accessors for the OpenGL context (Really an NSOpenGLContext*).
void MakeCurrent() override
Make this windows OpenGL context the current context.
void UpdateContext()
Update this window's OpenGL context, e.g.
void SetPosition(int a[2]) override
Set the position (x and y) of the rendering window in screen coordinates (in pixels).
bool InitializeFromCurrentContext() override
Initialize the render window from the information associated with the currently activated OpenGL cont...
const char * ReportCapabilities() override
Get report of capabilities for the render window.
int GetDepthBufferSize() override
Get the size of the depth buffer.
void SetCurrentCursor(int) override
Change the shape of the cursor.
int * GetScreenSize() override
Get the current size of the screen in pixels.
virtual void * GetRootWindow()
Returns the NSWindow* associated with this vtkRenderWindow.
virtual void * GetParentId()
Get the parent UIView* for this vtkRenderWindow.
vtkTypeBool OffScreenInitialized
void SetWindowInfo(const char *) override
Set this RenderWindow's window id to a pre-existing window.
void SetParentInfo(const char *) override
See the documentation for SetParentId().
void SetSize(int width, int height) override
Set the size (width and height) of the rendering window in screen coordinates (in pixels).
void SetWindowId(void *) override
Sets the UIView* associated with this vtkRenderWindow.
virtual void * GetWindowId()
Returns the UIView* associated with this vtkRenderWindow.
void * GetGenericParentId() override
These are window system independent methods that are used to help interface vtkWindow to native windo...
virtual void SetupPalette(void *hDC)
Initialize OpenGL for this window.
int ReadPixels(const vtkRecti &rect, int front, int glFormat, int glType, void *data, int right=0) override
virtual void WindowConfigure()
Specify various window parameters.
void SetDisplayId(void *) override
These are window system independent methods that are used to help interface vtkWindow to native windo...
a simple class to control print indentation
Definition vtkIndent.h:108
OpenGL rendering window.
int vtkTypeBool
Definition vtkABI.h:64
#define VTK_SIZEHINT(...)