VTK
vtkOpenGLRenderWindow.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkOpenGLRenderWindow.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=========================================================================*/
28#ifndef vtkOpenGLRenderWindow_h
29#define vtkOpenGLRenderWindow_h
30
31#include "vtkRenderingOpenGLModule.h" // For export macro
32#include "vtkRenderWindow.h"
33#include "vtkOpenGL.h" // Needed for GLuint.
34
35class vtkIdList;
39class vtkStdString;
40
41class VTKRENDERINGOPENGL_EXPORT vtkOpenGLRenderWindow : public vtkRenderWindow
42{
43public:
45 void PrintSelf(ostream& os, vtkIndent indent);
46
48
54
58 virtual const char *GetRenderingBackend();
59
63 virtual void StereoUpdate();
64
66
69 virtual unsigned char *GetPixelData(int x,int y,int x2,int y2,int front);
70 virtual int GetPixelData(int x,int y,int x2,int y2, int front,
72 virtual int SetPixelData(int x,int y,int x2,int y2,unsigned char *data,
73 int front);
74 virtual int SetPixelData(int x,int y,int x2,int y2,
75 vtkUnsignedCharArray *data, int front);
77
79
82 virtual float *GetRGBAPixelData(int x,int y,int x2,int y2,int front);
83 virtual int GetRGBAPixelData(int x,int y,int x2,int y2, int front,
85 virtual int SetRGBAPixelData(int x,int y,int x2,int y2, float *data,
86 int front, int blend=0);
87 virtual int SetRGBAPixelData(int x,int y,int x2,int y2, vtkFloatArray *data,
88 int front, int blend=0);
89 virtual void ReleaseRGBAPixelData(float *data);
90 virtual unsigned char *GetRGBACharPixelData(int x,int y,int x2,int y2,
91 int front);
92 virtual int GetRGBACharPixelData(int x,int y,int x2,int y2, int front,
94 virtual int SetRGBACharPixelData(int x, int y, int x2, int y2,
95 unsigned char *data, int front,
96 int blend=0);
97 virtual int SetRGBACharPixelData(int x,int y,int x2,int y2,
98 vtkUnsignedCharArray *data, int front,
99 int blend=0);
101
103
106 virtual float *GetZbufferData( int x1, int y1, int x2, int y2 );
107 virtual int GetZbufferData( int x1, int y1, int x2, int y2, float* z );
108 virtual int GetZbufferData( int x1, int y1, int x2, int y2,
109 vtkFloatArray* z );
110 virtual int SetZbufferData( int x1, int y1, int x2, int y2, float *buffer );
111 virtual int SetZbufferData( int x1, int y1, int x2, int y2,
112 vtkFloatArray *buffer );
114
118 void RegisterTextureResource (GLuint id);
119
124
129 int GetColorBufferSizes(int *rgba);
130
132
135 virtual void SetSize(int a[2]);
136 virtual void SetSize(int,int);
138
142 virtual void OpenGLInit();
143
144 // Initialize the state of OpenGL that VTK wants for this window
145 virtual void OpenGLInitState();
146
147 // Initialize VTK for rendering in a new OpenGL context
148 virtual void OpenGLInitContext();
149
157 unsigned int GetBackLeftBuffer();
158
166 unsigned int GetBackRightBuffer();
167
175 unsigned int GetFrontLeftBuffer();
176
184 unsigned int GetFrontRightBuffer();
185
193 unsigned int GetBackBuffer();
194
202 unsigned int GetFrontBuffer();
203
208
214
220
226
231 virtual void WaitForCompletion();
232
234
242 virtual int SetUseOffScreenBuffers(bool offScreen);
245
246protected:
249
252
253 int GetPixelData(int x, int y, int x2, int y2, int front, unsigned char* data);
254 int GetRGBAPixelData(int x, int y, int x2, int y2, int front, float* data);
255 int GetRGBACharPixelData(int x, int y, int x2, int y2, int front,
256 unsigned char* data);
257
268
269 int CreateHardwareOffScreenBuffers(int width, int height, bool bind = false);
271
278
281
286
288
292 unsigned int TextureObjects[4]; // really GLuint
293 unsigned int FrameBufferObject; // really GLuint
294 unsigned int DepthRenderBufferObject; // really GLuint
295 int HardwareBufferSize[2];
298
302 virtual void CreateAWindow() = 0;
303
307 virtual void DestroyWindow() = 0;
308
313
314 unsigned int BackLeftBuffer;
315 unsigned int BackRightBuffer;
316 unsigned int FrontLeftBuffer;
317 unsigned int FrontRightBuffer;
318 unsigned int FrontBuffer;
319 unsigned int BackBuffer;
320
325
327
329
330private:
331 vtkOpenGLRenderWindow(const vtkOpenGLRenderWindow&) VTK_DELETE_FUNCTION;
332 void operator=(const vtkOpenGLRenderWindow&) VTK_DELETE_FUNCTION;
333
334 void SetExtensionManager(vtkOpenGLExtensionManager*);
335 void SetHardwareSupport(vtkOpenGLHardwareSupport * renderWindow);
336
337 vtkOpenGLExtensionManager* ExtensionManager;
338 vtkOpenGLHardwareSupport* HardwareSupport;
339};
340
341#endif
dynamic, self-adjusting array of float
Definition: vtkFloatArray.h:42
list of point or cell ids
Definition: vtkIdList.h:37
a simple class to control print indentation
Definition: vtkIndent.h:40
Interface class for querying and using OpenGL extensions.
OpenGL rendering window.
OpenGL rendering window.
virtual int GetZbufferData(int x1, int y1, int x2, int y2, vtkFloatArray *z)
vtkTextureUnitManager * GetTextureUnitManager()
Returns its texture unit manager object.
virtual bool GetUseOffScreenBuffers()
vtkTextureUnitManager * TextureUnitManager
int GetColorBufferSizes(int *rgba)
Get the size of the color buffer.
virtual int GetRGBAPixelData(int x, int y, int x2, int y2, int front, vtkFloatArray *data)
virtual void SetSize(int a[2])
Set the size of the window in screen coordinates in pixels.
virtual unsigned char * GetRGBACharPixelData(int x, int y, int x2, int y2, int front)
void SetTextureUnitManager(vtkTextureUnitManager *textureUnitManager)
Set the texture unit manager.
int OwnContext
Flag telling if the context has been created here or was inherited.
unsigned int GetBackRightBuffer()
Return the OpenGL name of the back right buffer.
virtual void DestroyWindow()=0
Destroy a not-off-screen window.
virtual const char * GetRenderingBackend()
What rendering backend has the user requested.
virtual void WaitForCompletion()
Block the thread until the actual rendering is finished().
virtual int SetZbufferData(int x1, int y1, int x2, int y2, float *buffer)
virtual void ReleaseRGBAPixelData(float *data)
static void SetGlobalMaximumNumberOfMultiSamples(int val)
Set/Get the maximum number of multisamples.
int GetRGBACharPixelData(int x, int y, int x2, int y2, int front, unsigned char *data)
virtual int SetRGBAPixelData(int x, int y, int x2, int y2, vtkFloatArray *data, int front, int blend=0)
void BindHardwareOffScreenBuffers()
void DestroyHardwareOffScreenBuffers()
virtual int SetPixelData(int x, int y, int x2, int y2, unsigned char *data, int front)
Set/Get the pixel data of an image, transmitted as RGBRGBRGB.
int GetDepthBufferSize()
Get the size of the depth buffer.
void RegisterTextureResource(GLuint id)
Register a texture name with this render window.
unsigned int GetBackBuffer()
Return the OpenGL name of the back left buffer.
virtual void SetSize(int, int)
virtual int SetRGBACharPixelData(int x, int y, int x2, int y2, unsigned char *data, int front, int blend=0)
int OffScreenUseFrameBuffer
Flag telling if a framebuffer-based offscreen is currently in use.
virtual int SetRGBACharPixelData(int x, int y, int x2, int y2, vtkUnsignedCharArray *data, int front, int blend=0)
int CreateHardwareOffScreenBuffers(int width, int height, bool bind=false)
unsigned int GetFrontRightBuffer()
Return the OpenGL name of the front right buffer.
unsigned int GetFrontBuffer()
Return the OpenGL name of the front left buffer.
int NumberOfFrameBuffers
Variables used by the framebuffer-based offscreen method.
virtual void OpenGLInitContext()
vtkOpenGLHardwareSupport * GetHardwareSupport()
Returns an Hardware Support object.
virtual int GetPixelData(int x, int y, int x2, int y2, int front, vtkUnsignedCharArray *data)
virtual int SetRGBAPixelData(int x, int y, int x2, int y2, float *data, int front, int blend=0)
unsigned int GetBackLeftBuffer()
Return the OpenGL name of the back left buffer.
virtual float * GetRGBAPixelData(int x, int y, int x2, int y2, int front)
Set/Get the pixel data of an image, transmitted as RGBARGBA...
virtual void OpenGLInitState()
static int GetGlobalMaximumNumberOfMultiSamples()
virtual void CreateAWindow()=0
Create a not-off-screen window.
int GetRGBAPixelData(int x, int y, int x2, int y2, int front, float *data)
int CreateHardwareOffScreenWindow(int width, int height)
Create an offScreen window based on OpenGL framebuffer extension.
unsigned int GetFrontLeftBuffer()
Return the OpenGL name of the front left buffer.
virtual vtkMTimeType GetContextCreationTime()
Get the time when the OpenGL context was created.
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
virtual void StereoUpdate()
Update system if needed due to stereo rendering.
void UnbindHardwareOffScreenBuffers()
int GetPixelData(int x, int y, int x2, int y2, int front, unsigned char *data)
virtual int SetZbufferData(int x1, int y1, int x2, int y2, vtkFloatArray *buffer)
vtkOpenGLExtensionManager * GetExtensionManager()
Returns the extension manager.
virtual void OpenGLInit()
Initialize OpenGL for this window.
void DestroyHardwareOffScreenWindow()
Destroy an offscreen window based on OpenGL framebuffer extension.
virtual int GetRGBACharPixelData(int x, int y, int x2, int y2, int front, vtkUnsignedCharArray *data)
virtual int SetUseOffScreenBuffers(bool offScreen)
Create and bind offscreen rendering buffers without destroying the current OpenGL context.
virtual float * GetZbufferData(int x1, int y1, int x2, int y2)
Set/Get the zbuffer data from an image.
virtual int GetZbufferData(int x1, int y1, int x2, int y2, float *z)
virtual int SetPixelData(int x, int y, int x2, int y2, vtkUnsignedCharArray *data, int front)
virtual unsigned char * GetPixelData(int x, int y, int x2, int y2, int front)
Set/Get the pixel data of an image, transmitted as RGBRGB...
create a window for renderers to draw into
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:49
allocate/free texture units.
record modification and/or execution time
Definition: vtkTimeStamp.h:36
dynamic, self-adjusting array of unsigned char
@ height
Definition: vtkX3D.h:254
@ data
Definition: vtkX3D.h:315
vtkTypeUInt64 vtkMTimeType
Definition: vtkType.h:248