VTK  9.6.1
vtkWindow.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
16
17#ifndef vtkWindow_h
18#define vtkWindow_h
19
20#include "vtkCommonCoreModule.h" // For export macro
21#include "vtkObject.h"
22#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
23
24VTK_ABI_NAMESPACE_BEGIN
25class vtkImageData;
27
28class VTKCOMMONCORE_EXPORT VTK_MARSHALAUTO vtkWindow : public vtkObject
29{
30public:
31 vtkTypeMacro(vtkWindow, vtkObject);
32 void PrintSelf(ostream& os, vtkIndent indent) override;
33
35
39 virtual void SetDisplayId(void*) {}
40 virtual void SetWindowId(void*) {}
41 virtual void SetParentId(void*) {}
42 virtual void* GetGenericDisplayId() { return nullptr; }
43 virtual void* GetGenericWindowId() { return nullptr; }
44 virtual void* GetGenericParentId() { return nullptr; }
45 virtual void* GetGenericContext() { return nullptr; }
46 virtual void* GetGenericDrawable() { return nullptr; }
47 virtual void SetWindowInfo(const char*) {}
48 virtual void SetParentInfo(const char*) {}
49 virtual bool EnsureDisplay() { return true; }
50
52
54
58 virtual int* GetPosition() VTK_SIZEHINT(2);
59
65 virtual void SetPosition(int x, int y);
66 virtual void SetPosition(int a[2]);
68
70
74 virtual int* GetSize() VTK_SIZEHINT(2);
75
84 virtual void SetSize(int width, int height);
85 virtual void SetSize(int a[2]);
87
93
97 virtual int* GetScreenSize() VTK_SIZEHINT(2) { return nullptr; }
98
100
103 vtkGetMacro(Mapped, vtkTypeBool);
105
107
110 vtkGetMacro(ShowWindow, bool);
111 vtkSetMacro(ShowWindow, bool);
112 vtkBooleanMacro(ShowWindow, bool);
114
116
121 vtkSetMacro(UseOffScreenBuffers, bool);
122 vtkGetMacro(UseOffScreenBuffers, bool);
123 vtkBooleanMacro(UseOffScreenBuffers, bool);
125
127
133 vtkSetMacro(Erase, vtkTypeBool);
134 vtkGetMacro(Erase, vtkTypeBool);
135 vtkBooleanMacro(Erase, vtkTypeBool);
137
139
144 vtkBooleanMacro(DoubleBuffer, vtkTypeBool);
146
148
151 vtkGetStringMacro(WindowName);
152 vtkSetStringMacro(WindowName);
154
159 virtual void SetIcon(vtkImageData*) {}
160
166 virtual void Render() {}
167
174
176
188 virtual unsigned char* GetPixelData(
189 int /*x*/, int /*y*/, int /*x2*/, int /*y2*/, int /*front*/, int /*right*/ = 0)
190 {
191 return nullptr;
192 }
193 virtual int GetPixelData(int /*x*/, int /*y*/, int /*x2*/, int /*y2*/, int /*front*/,
194 vtkUnsignedCharArray* /*data*/, int /*right*/ = 0)
195 {
196 return 0;
197 }
198
199
201
206 vtkGetMacro(DPI, int);
207 vtkSetClampMacro(DPI, int, 1, VTK_INT_MAX);
209
216 virtual bool DetectDPI() { return false; }
217
219
224 {
225 this->SetShowWindow(val == 0);
226 this->SetUseOffScreenBuffers(val != 0);
227 }
228 vtkBooleanMacro(OffScreenRendering, vtkTypeBool);
230
236 vtkTypeBool GetOffScreenRendering() { return this->GetShowWindow() ? 0 : 1; }
237
242 virtual void MakeCurrent() {}
243
248 virtual void ReleaseCurrent() {}
249
251
257 vtkSetVector2Macro(TileScale, int);
258 vtkGetVector2Macro(TileScale, int);
259 void SetTileScale(int s) { this->SetTileScale(s, s); }
260 vtkSetVector4Macro(TileViewport, double);
261 vtkGetVector4Macro(TileViewport, double);
263
264protected:
266 ~vtkWindow() override;
267
269 int Size[2];
270 int Position[2];
276 int DPI;
277
278 double TileViewport[4];
279 int TileSize[2];
280 int TileScale[2];
281
282private:
283 vtkWindow(const vtkWindow&) = delete;
284 void operator=(const vtkWindow&) = delete;
285};
286
287VTK_ABI_NAMESPACE_END
288#endif
topologically and geometrically regular array of data
a simple class to control print indentation
Definition vtkIndent.h:29
dynamic, self-adjusting array of unsigned char
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual bool GetShowWindow()
Show or not Show the window.
virtual int * GetScreenSize()
Get the current size of the screen in pixels.
Definition vtkWindow.h:97
virtual void * GetGenericDrawable()
These are window system independent methods that are used to help interface vtkWindow to native windo...
Definition vtkWindow.h:46
virtual unsigned char * GetPixelData(int, int, int, int, int, int=0)
Get the pixel data of an image, transmitted as RGBRGBRGB.
Definition vtkWindow.h:188
bool UseOffScreenBuffers
Definition vtkWindow.h:273
virtual bool DetectDPI()
Attempt to detect and set the DPI of the display device by querying the system.
Definition vtkWindow.h:216
vtkTypeBool GetOffScreenRendering()
Deprecated, directly use GetShowWindow and GetOffScreenBuffers instead.
Definition vtkWindow.h:236
virtual void SetIcon(vtkImageData *)
Set the icon used in title bar and task bar.
Definition vtkWindow.h:159
virtual void * GetGenericWindowId()
These are window system independent methods that are used to help interface vtkWindow to native windo...
Definition vtkWindow.h:43
virtual bool EnsureDisplay()
These are window system independent methods that are used to help interface vtkWindow to native windo...
Definition vtkWindow.h:49
virtual void SetWindowInfo(const char *)
These are window system independent methods that are used to help interface vtkWindow to native windo...
Definition vtkWindow.h:47
virtual void SetUseOffScreenBuffers(bool)
Render to an offscreen destination such as a framebuffer.
virtual void ReleaseCurrent()
Release the current context.
Definition vtkWindow.h:248
virtual void * GetGenericContext()
These are window system independent methods that are used to help interface vtkWindow to native windo...
Definition vtkWindow.h:45
vtkTypeBool DoubleBuffer
Definition vtkWindow.h:275
int * GetActualSize()
GetSize() returns the size * this->TileScale, whereas this method returns the size without multiplyin...
int TileSize[2]
Definition vtkWindow.h:279
~vtkWindow() override
int Position[2]
Definition vtkWindow.h:270
virtual void * GetGenericParentId()
These are window system independent methods that are used to help interface vtkWindow to native windo...
Definition vtkWindow.h:44
virtual void SetPosition(int x, int y)
Set the position (x and y) of the rendering window in screen coordinates (in pixels).
virtual int GetPixelData(int, int, int, int, int, vtkUnsignedCharArray *, int=0)
Get the pixel data of an image, transmitted as RGBRGBRGB.
Definition vtkWindow.h:193
double TileViewport[4]
Definition vtkWindow.h:278
virtual void SetShowWindow(bool)
Show or not Show the window.
virtual void * GetGenericDisplayId()
These are window system independent methods that are used to help interface vtkWindow to native windo...
Definition vtkWindow.h:42
virtual void SetDisplayId(void *)
These are window system independent methods that are used to help interface vtkWindow to native windo...
Definition vtkWindow.h:39
void SetOffScreenRendering(vtkTypeBool val)
Convenience to set SHowWindow and UseOffScreenBuffers in one call.
Definition vtkWindow.h:223
vtkTypeBool Mapped
Definition vtkWindow.h:271
int Size[2]
Definition vtkWindow.h:269
vtkTypeBool Erase
Definition vtkWindow.h:274
bool ShowWindow
Definition vtkWindow.h:272
char * WindowName
Definition vtkWindow.h:268
virtual int * GetPosition()
Get the position (x and y) of the rendering window in screen coordinates (in pixels).
virtual void SetParentInfo(const char *)
These are window system independent methods that are used to help interface vtkWindow to native windo...
Definition vtkWindow.h:48
virtual void ReleaseGraphicsResources(vtkWindow *)
Release any graphics resources that are being consumed by this texture.
Definition vtkWindow.h:173
int TileScale[2]
Definition vtkWindow.h:280
virtual int * GetSize()
Get the size (width and height) of the rendering window in screen coordinates (in pixels).
virtual void Render()
Ask each viewport owned by this Window to render its image and synchronize this process.
Definition vtkWindow.h:166
virtual void SetParentId(void *)
These are window system independent methods that are used to help interface vtkWindow to native windo...
Definition vtkWindow.h:41
void SetTileScale(int s)
These methods are used by vtkWindowToImageFilter to tell a VTK window to simulate a larger window by ...
Definition vtkWindow.h:259
virtual void SetSize(int width, int height)
Set the size (width and height) of the rendering window in screen coordinates (in pixels).
virtual void MakeCurrent()
Make the window current.
Definition vtkWindow.h:242
virtual void SetWindowId(void *)
These are window system independent methods that are used to help interface vtkWindow to native windo...
Definition vtkWindow.h:40
int vtkTypeBool
Definition vtkABI.h:64
#define VTK_INT_MAX
Definition vtkType.h:197
#define VTK_SIZEHINT(...)
#define VTK_MARSHAL_EXCLUDE_REASON_IS_INTERNAL
#define VTK_UNBLOCKTHREADS
#define VTK_MARSHALAUTO
#define VTK_MARSHALEXCLUDE(reason)