VTK  9.0.2
vtkIOSRenderWindow.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3 Program: Visualization Toolkit
4 Module: vtkIOSRenderWindow.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 =========================================================================*/
42 #ifndef vtkIOSRenderWindow_h
43 #define vtkIOSRenderWindow_h
44 
45 #include "vtkOpenGLRenderWindow.h"
46 #include "vtkRenderingOpenGL2Module.h" // For export macro
47 
48 class VTKRENDERINGOPENGL2_EXPORT vtkIOSRenderWindow : public vtkOpenGLRenderWindow
49 {
50 public:
53  void PrintSelf(ostream& os, vtkIndent indent) override;
54 
58  void Start() override;
59 
63  void Frame() override;
64 
68  virtual void WindowConfigure();
69 
78  void Initialize() override;
79 
86  void SetFullScreen(vtkTypeBool) override;
87 
91  void WindowRemap() override;
92 
97  virtual void PrefFullScreen();
98 
100 
108  void SetSize(int width, int height) override;
109  void SetSize(int a[2]) override { this->SetSize(a[0], a[1]); }
111 
116  int* GetSize() VTK_SIZEHINT(2) override;
117 
119 
124  void SetPosition(int x, int y) override;
125  void SetPosition(int a[2]) override { this->SetPosition(a[0], a[1]); }
127 
132  int* GetScreenSize() VTK_SIZEHINT(2) override;
133 
138  int* GetPosition() VTK_SIZEHINT(2) override;
139 
144  void SetWindowName(const char*) override;
145 
146  void SetNextWindowInfo(const char*) override
147  {
148  vtkWarningMacro("SetNextWindowInfo not implemented (WindowRemap not implemented).");
149  }
150  void* GetGenericDrawable() override
151  {
152  vtkWarningMacro("Method not implemented.");
153  return 0;
154  }
155  void SetDisplayId(void*) override { vtkWarningMacro("Method not implemented."); }
156  void* GetGenericDisplayId() override
157  {
158  vtkWarningMacro("Method not implemented.");
159  return 0;
160  }
161 
167  void SetWindowInfo(const char*) override;
168 
174  void SetParentInfo(const char*) override;
175 
176  void SetNextWindowId(void*) override
177  {
178  vtkWarningMacro("SetNextWindowId not implemented (WindowRemap not implemented).");
179  }
180 
186 
193  void SetStereoCapableWindow(vtkTypeBool capable) override;
194 
198  void MakeCurrent() override;
199 
203  bool IsCurrent() override;
204 
211  VTK_LEGACY(bool IsDrawable() override);
212 
217 
221  const char* ReportCapabilities() override;
222 
226  int SupportsOpenGL() override;
227 
231  vtkTypeBool IsDirect() override;
232 
238  void SetForceMakeCurrent() override;
239 
245 
247 
250  virtual void SetupPalette(void* hDC);
251  virtual void SetupPixelFormat(void* hDC, void* dwFlags, int debug, int bpp = 16, int zbpp = 16);
253 
257  void Finalize() override;
258 
262  int GetDepthBufferSize() override;
263 
265 
271  void HideCursor() override;
272  void ShowCursor() override;
273  void SetCursorPosition(int x, int y) override;
275 
279  void SetCurrentCursor(int) override;
280 
285  virtual int GetWindowCreated();
286 
288 
291  void SetContextId(void*);
292  void* GetContextId();
293  void* GetGenericContext() override { return this->GetContextId(); }
295 
306  virtual void SetRootWindow(void*);
307 
311  virtual void* GetRootWindow();
312 
323  void SetWindowId(void*) override;
324 
328  virtual void* GetWindowId();
329  void* GetGenericWindowId() override { return this->GetWindowId(); }
330 
337  void SetParentId(void* UIView) override;
338 
344  virtual void* GetParentId();
345  void* GetGenericParentId() override { return this->GetParentId(); }
346 
348 
351  void SetPixelFormat(void* pixelFormat);
352  void* GetPixelFormat();
354 
355 protected:
358 
360 
361  void CreateAWindow() override;
362  void DestroyWindow() override;
364 
367 
368  // IOS seems to have issues with getting RGB data
370  const vtkRecti& rect, int front, int glFormat, int glType, void* data, int right = 0) override;
371 
372 private:
373  vtkIOSRenderWindow(const vtkIOSRenderWindow&) = delete;
374  void operator=(const vtkIOSRenderWindow&) = delete;
375 
376 private:
377  vtkTypeBool WindowCreated;
378  vtkTypeBool ViewCreated;
379  vtkTypeBool CursorHidden;
380 
381  vtkTypeBool ForceMakeCurrent;
382 };
383 
384 #endif
IOS OpenGL rendering window.
void SetPixelFormat(void *pixelFormat)
Accessors for the pixel format object (Really an NSOpenGLPixelFormat*).
void * GetGenericWindowId() override
void * GetGenericContext() override
void SetNextWindowId(void *) override
void Frame() override
Finish the rendering process.
void ShowCursor() override
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
void DestroyWindow() override
Destroy a not-off-screen window.
virtual void SetRootWindow(void *)
Sets the NSWindow* associated with this vtkRenderWindow.
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 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.
void * GetGenericParentId() override
vtkTypeBool IsDirect() override
Is this render window using hardware acceleration? 0-false, 1-true.
vtkTypeBool OnScreenInitialized
void SetForceMakeCurrent() override
If called, allow MakeCurrent() to skip cache-check when called.
void SetCursorPosition(int x, int y) override
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)
int * GetSize() override
Get the size (width and height) of the rendering window in screen coordinates (in pixels).
int SupportsOpenGL() override
Does this render window support OpenGL? 0-false, 1-true.
virtual void * GetRootWindow()
Returns the NSWindow* associated with this vtkRenderWindow.
bool IsCurrent() override
Tells if this window is the current OpenGL context for the calling thread.
int * GetScreenSize() override
Get the current size of the screen in pixels.
virtual void * GetWindowId()
Returns the UIView* associated with this vtkRenderWindow.
virtual void * GetParentId()
Get the parent UIView* for this vtkRenderWindow.
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 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
bool InitializeFromCurrentContext() override
Initialize the render window from the information associated with the currently activated OpenGL cont...
static vtkIOSRenderWindow * New()
void * GetPixelFormat()
int GetDepthBufferSize() override
Get the size of the depth buffer.
void SetCurrentCursor(int) override
Change the shape of the cursor.
const char * ReportCapabilities() override
Get report of capabilities for the render window.
vtkTypeBool OffScreenInitialized
void * GetGenericDisplayId() override
void Start() override
Begin the rendering process.
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 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
bool IsDrawable() override
Test if the window has a valid drawable.
void * GetGenericDrawable() override
virtual void WindowConfigure()
Specify various window parameters.
void SetDisplayId(void *) override
Dummy stubs for vtkWindow API.
a simple class to control print indentation
Definition: vtkIndent.h:34
OpenGL rendering window.
@ height
Definition: vtkX3D.h:260
@ data
Definition: vtkX3D.h:321
int vtkTypeBool
Definition: vtkABI.h:69
#define VTK_SIZEHINT(...)