27 #ifndef vtkOpenGLRenderWindow_h 28 #define vtkOpenGLRenderWindow_h 30 #include "vtkRenderingOpenGL2Module.h" 47 class VertexArrayObject;
54 void PrintSelf(ostream& os,
vtkIndent indent);
58 static void SetGlobalMaximumNumberOfMultiSamples(
int val);
59 static int GetGlobalMaximumNumberOfMultiSamples();
63 virtual void StereoUpdate();
67 virtual unsigned char *GetPixelData(
int x,
int y,
int x2,
int y2,
int front);
68 virtual int GetPixelData(
int x,
int y,
int x2,
int y2,
int front,
70 virtual int SetPixelData(
int x,
int y,
int x2,
int y2,
unsigned char *
data,
72 virtual int SetPixelData(
int x,
int y,
int x2,
int y2,
78 virtual float *GetRGBAPixelData(
int x,
int y,
int x2,
int y2,
int front);
79 virtual int GetRGBAPixelData(
int x,
int y,
int x2,
int y2,
int front,
81 virtual int SetRGBAPixelData(
int x,
int y,
int x2,
int y2,
float *
data,
82 int front,
int blend=0);
84 int front,
int blend=0);
85 virtual void ReleaseRGBAPixelData(
float *
data);
86 virtual unsigned char *GetRGBACharPixelData(
int x,
int y,
int x2,
int y2,
88 virtual int GetRGBACharPixelData(
int x,
int y,
int x2,
int y2,
int front,
90 virtual int SetRGBACharPixelData(
int x,
int y,
int x2,
int y2,
91 unsigned char *
data,
int front,
93 virtual int SetRGBACharPixelData(
int x,
int y,
int x2,
int y2,
100 virtual float *GetZbufferData(
int x1,
int y1,
int x2,
int y2 );
101 virtual int GetZbufferData(
int x1,
int y1,
int x2,
int y2,
float*
z );
102 virtual int GetZbufferData(
int x1,
int y1,
int x2,
int y2,
104 virtual int SetZbufferData(
int x1,
int y1,
int x2,
int y2,
float *
buffer );
105 virtual int SetZbufferData(
int x1,
int y1,
int x2,
int y2,
120 int GetDepthBufferSize();
124 int GetColorBufferSizes(
int *rgba);
127 virtual void OpenGLInit();
130 virtual void OpenGLInitState();
133 virtual void OpenGLInitContext();
137 static bool GetContextSupportsOpenGL32();
138 void SetContextSupportsOpenGL32(
bool val);
146 unsigned int GetBackLeftBuffer();
153 unsigned int GetBackRightBuffer();
160 unsigned int GetFrontLeftBuffer();
167 unsigned int GetFrontRightBuffer();
174 unsigned int GetBackBuffer();
181 unsigned int GetFrontBuffer();
187 VTK_LEGACY(
virtual const char *GetLastGraphicErrorString());
191 virtual unsigned long GetContextCreationTime();
204 virtual void WaitForCompletion();
210 static void RenderQuad(
211 float *verts,
float *tcoords,
217 virtual void DrawPixels(
int x1,
int y1,
int x2,
int y2,
218 int numComponents,
int dataType,
void *
data);
224 virtual void DrawPixels(
225 int dstXmin,
int dstYmin,
int dstXmax,
int dstYmax,
226 int srcXmin,
int srcYmin,
int srcXmax,
int srcYmax,
227 int srcWidth,
int srcHeight,
int numComponents,
int dataType,
void *
data);
233 virtual void DrawPixels(
234 int srcWidth,
int srcHeight,
int numComponents,
int dataType,
void *
data);
243 long OldMonitorSetting;
247 int GetPixelData(
int x,
int y,
int x2,
int y2,
int front,
unsigned char*
data);
248 int GetRGBAPixelData(
int x,
int y,
int x2,
int y2,
int front,
float*
data);
249 int GetRGBACharPixelData(
int x,
int y,
int x2,
int y2,
int front,
250 unsigned char*
data);
257 int CreateHardwareOffScreenWindow(
int width,
int height);
262 void DestroyHardwareOffScreenWindow();
265 int OffScreenUseFrameBuffer;
269 int NumberOfFrameBuffers;
270 unsigned int TextureObjects[4];
271 unsigned int FrameBufferObject;
272 unsigned int DepthRenderBufferObject;
276 virtual void CreateAWindow() = 0;
282 virtual void ReleaseGraphicsResources();
287 unsigned int BackLeftBuffer;
288 unsigned int BackRightBuffer;
289 unsigned int FrontLeftBuffer;
290 unsigned int FrontRightBuffer;
291 unsigned int FrontBuffer;
292 unsigned int BackBuffer;
294 #ifndef VTK_LEGACY_REMOVE 297 unsigned int LastGraphicError;
GLsizei GLsizei GLenum GLenum const GLvoid * data
VTKRENDERINGOPENGL_EXPORT PFNGLXDESTROYWINDOWPROC DestroyWindow
Wrapper around std::string to keep symbols short.
manage Shader Programs within a context
record modification and/or execution time
dynamic, self-adjusting array of float
GLint GLint GLint GLint GLint GLint y
#define vtkTypeMacro(thisClass, superclass)
GLint GLint GLsizei GLsizei height
GLint GLint GLint GLint GLint x
std::map< const vtkTextureObject *, int > TextureResourceIds
a simple class to control print indentation
vtkTextureObject * DrawPixelsTextureObject
list of point or cell ids
GLint GLint GLsizei width
handles properties associated with a texture map
The VertexArrayObject class uses, or emulates, vertex array objects.
#define vtkGetObjectMacro(name, type)
dynamic, self-adjusting array of unsigned char
#define VTK_LEGACY(method)
allocate/free texture units.
vtkOpenGLShaderCache * ShaderCache
abstracts an OpenGL texture object.
create a window for renderers to draw into
The ShaderProgram uses one or more Shader objects.