VTK
vtkGenericOpenGLRenderWindow.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkRenderWindow.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 =========================================================================*/
33 #ifndef vtkGenericOpenGLRenderWindow_h
34 #define vtkGenericOpenGLRenderWindow_h
35 
36 #include "vtkRenderingOpenGL2Module.h" // For export macro
37 #include "vtkOpenGLRenderWindow.h"
38 
39 class VTKRENDERINGOPENGL2_EXPORT vtkGenericOpenGLRenderWindow :
41 {
42 public:
45  void PrintSelf(ostream& os, vtkIndent indent) override;
46 protected:
48  ~vtkGenericOpenGLRenderWindow() override;
49 
50 public:
51 
53  void Finalize() override;
54 
57  void Frame() override;
58 
61  void MakeCurrent() override;
62 
66  bool IsCurrent() override;
67 
71  int SupportsOpenGL() override;
72 
76  int IsDirect() override;
77 
78  // {@
80  void SetFrontBuffer(unsigned int);
81  void SetFrontLeftBuffer(unsigned int);
82  void SetFrontRightBuffer(unsigned int);
83  void SetBackBuffer(unsigned int);
84  void SetBackLeftBuffer(unsigned int);
85  void SetBackRightBuffer(unsigned int);
86  // }@
87 
89  void PushState() {}
91  void PopState() {}
92 
93  // {@
95  void SetWindowId(void*) override;
96  void* GetGenericWindowId() override;
97  void SetDisplayId(void*) override;
98  void SetParentId(void*) override;
99  void* GetGenericDisplayId() override;
100  void* GetGenericParentId() override;
101  void* GetGenericContext() override;
102  void* GetGenericDrawable() override;
103  void SetWindowInfo(const char*) override;
104  void SetParentInfo(const char*) override;
105  int* GetScreenSize() VTK_SIZEHINT(2) override;
106  void Start() override;
107  void HideCursor() override;
108  void ShowCursor() override;
109  void SetFullScreen(vtkTypeBool) override;
110  void WindowRemap() override;
111  int GetEventPending() override;
112  void SetNextWindowId(void*) override;
113  void SetNextWindowInfo(const char*) override;
114  void CreateAWindow() override;
115  void DestroyWindow() override;
116  // }@
117 
119 
123  void SetIsDirect(int newValue);
124  void SetSupportsOpenGL(int newValue);
125  void SetIsCurrent(bool newValue);
127 
135  void Render() override;
136 
140  float GetMaximumHardwareLineWidth() override;
141 
143 
147  vtkSetClampMacro(ForceMaximumHardwareLineWidth, float, 0, VTK_FLOAT_MAX);
148  vtkGetMacro(ForceMaximumHardwareLineWidth, float);
150 
152 
157  vtkSetMacro(ReadyForRendering, bool);
158  vtkGetMacro(ReadyForRendering, bool);
159 
163  vtkSetVector2Macro(ScreenSize,int);
164 
169  void SetIsPicking(vtkTypeBool isPicking) override;
170 
174  void SetCurrentCursor(int cShape) override;
175 
176 protected:
177  int DirectStatus;
178  int SupportsOpenGLStatus;
179  bool CurrentStatus;
180  float ForceMaximumHardwareLineWidth;
181  bool ReadyForRendering;
182  int ScreenSize[2];
183 
184 private:
186  void operator=(const vtkGenericOpenGLRenderWindow&) = delete;
187 };
188 
189 #endif
vtkOpenGLRenderWindow::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkOpenGLRenderWindow::SupportsOpenGL
int SupportsOpenGL() override
Does this render window support OpenGL? 0-false, 1-true.
vtkGenericOpenGLRenderWindow
platform independent render window
Definition: vtkGenericOpenGLRenderWindow.h:39
vtkRenderWindow::Finalize
virtual void Finalize()=0
Finalize the rendering process.
vtkRenderWindow::SetDisplayId
void SetDisplayId(void *) override=0
Dummy stubs for vtkWindow API.
vtkWindow::GetScreenSize
virtual int * GetScreenSize()=0
Get the current size of the screen in pixels.
vtkRenderWindow::IsCurrent
virtual bool IsCurrent()=0
Tells if this window is the current graphics context for the calling thread.
vtkRenderWindow::SetWindowId
void SetWindowId(void *) override=0
vtkRenderWindow::SetParentId
void SetParentId(void *) override=0
VTK_SIZEHINT
#define VTK_SIZEHINT(...)
Definition: vtkWrappingHints.h:42
vtkRenderWindow::GetGenericParentId
void * GetGenericParentId() override=0
vtkRenderWindow::GetGenericDrawable
void * GetGenericDrawable() override=0
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkRenderWindow::GetGenericContext
void * GetGenericContext() override=0
vtkRenderWindow::SetWindowInfo
void SetWindowInfo(const char *) override=0
vtkRenderWindow::GetGenericDisplayId
void * GetGenericDisplayId() override=0
vtkRenderWindow::GetGenericWindowId
void * GetGenericWindowId() override=0
vtkGenericOpenGLRenderWindow::PushState
void PushState()
no-op (for API compat with OpenGL1).
Definition: vtkGenericOpenGLRenderWindow.h:89
VTK_FLOAT_MAX
#define VTK_FLOAT_MAX
Definition: vtkType.h:167
vtkRenderWindow::MakeCurrent
void MakeCurrent() override=0
Attempt to make this window the current graphics context for the calling thread.
vtkGenericOpenGLRenderWindow::PopState
void PopState()
no-op (for API compat with OpenGL1).
Definition: vtkGenericOpenGLRenderWindow.h:91
vtkRenderWindow::IsDirect
virtual int IsDirect()
Is this render window using hardware acceleration? 0-false, 1-true.
Definition: vtkRenderWindow.h:628
vtkOpenGLRenderWindow
OpenGL rendering window.
Definition: vtkOpenGLRenderWindow.h:53
vtkRenderWindow::Frame
virtual void Frame()=0
A termination method performed at the end of the rendering process to do things like swapping buffers...
vtkRenderWindow::New
static vtkRenderWindow * New()
Construct an instance of vtkRenderWindow with its screen size set to 300x300, borders turned on,...
vtkTypeBool
int vtkTypeBool
Definition: vtkABI.h:69
vtkOpenGLRenderWindow.h
vtkRenderWindow::SetParentInfo
void SetParentInfo(const char *) override=0