VTK
vtkOpenGLRenderer.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkOpenGLRenderer.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 =========================================================================*/
25 #ifndef vtkOpenGLRenderer_h
26 #define vtkOpenGLRenderer_h
27 
28 #include "vtkRenderingOpenGLModule.h" // For export macro
29 #include "vtkRenderer.h"
30 
31 class vtkOpenGLRendererLayerList; // Pimpl
32 class vtkRenderPass;
33 class vtkShaderProgram2;
34 
36 {
37 public:
40  void PrintSelf(ostream& os, vtkIndent indent);
41 
43  void DeviceRender(void);
44 
49 
52  void ClearLights(void);
53 
54  virtual void Clear(void);
55 
57  int UpdateLights(void);
58 
64 
65  //BTX
67  */
70  //ETX
72 
74 
78 
79 protected:
82 
84  void CheckCompilation(unsigned int fragmentShader);
85 
86  // Internal method to release graphics resources in any derived renderers.
88 
89  //BTX
90  // Picking functions to be implemented by sub-classes
91  virtual void DevicePickRender();
92  virtual void StartPick(unsigned int pickFromSize);
93  virtual void UpdatePickId();
94  virtual void DonePick();
95  virtual unsigned int GetPickedId();
96  virtual unsigned int GetNumPickedIds();
97  virtual int GetPickedIds(unsigned int atMost, unsigned int *callerBuffer);
98  virtual double GetPickedZ();
99 
100  // Ivars used in picking
101  class vtkGLPickInfo* PickInfo;
102  //ETX
103 
104  double PickedZ;
105 
111  int RenderPeel(int layer);
112 
113  //BTX
114  friend class vtkOpenGLProperty;
115  friend class vtkOpenGLTexture;
117  friend class vtkOpenGLImageResliceMapper;
118  //ETX
119 
123 
127 
131 
135 
137  vtkOpenGLRendererLayerList *LayerList;
138 
139  unsigned int OpaqueLayerZ;
140  unsigned int TransparentLayerZ;
141  unsigned int ProgramShader;
142 
144 
150 
153  unsigned int DepthFormat;
154 
155  // Is rendering at translucent geometry stage using depth peeling and
156  // rendering a layer other than the first one? (Boolean value)
157  // If so, the uniform variables UseTexture and Texture can be set.
158  // (Used by vtkOpenGLProperty or vtkOpenGLTexture)
160 
162 
163  friend class vtkRenderPass;
165 
166 private:
167  vtkOpenGLRenderer(const vtkOpenGLRenderer&); // Not implemented.
168  void operator=(const vtkOpenGLRenderer&); // Not implemented.
169 };
170 
171 #endif
vtkOpenGLRenderer::RenderPeel
int RenderPeel(int layer)
vtkOpenGLRenderer::GetDepthPeelingHigherLayer
int GetDepthPeelingHigherLayer()
vtkOpenGLRenderer::PickInfo
class vtkGLPickInfo * PickInfo
Definition: vtkOpenGLRenderer.h:101
vtkGetObjectMacro
#define vtkGetObjectMacro(name, type)
Definition: vtkSetGet.h:232
vtkOpenGLRenderer::GetNumPickedIds
virtual unsigned int GetNumPickedIds()
vtkOpenGLRenderer::DevicePickRender
virtual void DevicePickRender()
vtkOpenGLRenderer::GetPickedIds
virtual int GetPickedIds(unsigned int atMost, unsigned int *callerBuffer)
vtkOpenGLRenderer::DepthFormat
unsigned int DepthFormat
Definition: vtkOpenGLRenderer.h:153
vtkOpenGLRenderer::GetPickedZ
virtual double GetPickedZ()
vtkRenderingOpenGLModule.h
vtkOpenGLRenderer::Pass
vtkRenderPass * Pass
Definition: vtkOpenGLRenderer.h:164
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkOpenGLRenderer::ProgramShader
unsigned int ProgramShader
Definition: vtkOpenGLRenderer.h:141
vtkOpenGLProperty
OpenGL property.
Definition: vtkOpenGLProperty.h:37
vtkRenderer.h
vtkOpenGLRenderer::ViewportWidth
int ViewportWidth
Definition: vtkOpenGLRenderer.h:147
vtkOpenGLRenderer::~vtkOpenGLRenderer
~vtkOpenGLRenderer()
vtkOpenGLRenderer::GetPickedId
virtual unsigned int GetPickedId()
vtkOpenGLRenderer::SetShaderProgram
virtual void SetShaderProgram(vtkShaderProgram2 *program)
vtkOpenGLRenderer::LayerList
vtkOpenGLRendererLayerList * LayerList
Definition: vtkOpenGLRenderer.h:137
vtkgl::program
GLuint program
Definition: vtkgl.h:13011
vtkWindow
window superclass for vtkRenderWindow
Definition: vtkWindow.h:34
vtkOpenGLRenderer::DepthPeelingIsSupportedChecked
int DepthPeelingIsSupportedChecked
Definition: vtkOpenGLRenderer.h:134
vtkOpenGLRenderer::DeviceRender
void DeviceRender(void)
vtkOpenGLRenderer::New
static vtkOpenGLRenderer * New()
vtkOpenGLRenderer::ClearLights
void ClearLights(void)
vtkOpenGLRenderer::SetPass
void SetPass(vtkRenderPass *p)
vtkOpenGLRenderer::Clear
virtual void Clear(void)
vtkOpenGLRenderer::ViewportX
int ViewportX
Definition: vtkOpenGLRenderer.h:145
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkOpenGLRenderer::ViewportHeight
int ViewportHeight
Definition: vtkOpenGLRenderer.h:148
vtkOpenGLRenderer::StartPick
virtual void StartPick(unsigned int pickFromSize)
vtkOpenGLRenderer
OpenGL renderer.
Definition: vtkOpenGLRenderer.h:36
vtkOpenGLImageSliceMapper
OpenGL mapper for image slice display.
Definition: vtkOpenGLImageSliceMapper.h:41
vtkOpenGLRenderer::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkOpenGLRenderer::DonePick
virtual void DonePick()
vtkOpenGLRenderer::NumberOfLightsBound
int NumberOfLightsBound
Definition: vtkOpenGLRenderer.h:106
vtkOpenGLRenderer::ViewportY
int ViewportY
Definition: vtkOpenGLRenderer.h:146
vtkOpenGLRenderer::OpaqueLayerZ
unsigned int OpaqueLayerZ
Definition: vtkOpenGLRenderer.h:139
vtkOpenGLRenderer::GetUseTextureUniformVariable
int GetUseTextureUniformVariable()
vtkOpenGLRenderer::DepthPeelingHigherLayer
int DepthPeelingHigherLayer
Definition: vtkOpenGLRenderer.h:159
vtkShaderProgram2
GLSL Program.
Definition: vtkShaderProgram2.h:68
vtkRenderer
abstract specification for renderers
Definition: vtkRenderer.h:64
vtkOpenGLRenderer::TransparentLayerZ
unsigned int TransparentLayerZ
Definition: vtkOpenGLRenderer.h:140
vtkOpenGLRenderer::vtkOpenGLRenderer
vtkOpenGLRenderer()
vtkgl::p
GLfloat GLfloat p
Definition: vtkgl.h:15717
vtkOpenGLRenderer::ReleaseGraphicsResources
virtual void ReleaseGraphicsResources(vtkWindow *w)
vtkgl::layer
GLenum GLuint GLint GLint layer
Definition: vtkgl.h:13516
vtkgl::w
GLubyte GLubyte GLubyte GLubyte w
Definition: vtkgl.h:12054
vtkOpenGLTexture
OpenGL texture map.
Definition: vtkOpenGLTexture.h:37
vtkOpenGLRenderer::ShaderProgram
vtkShaderProgram2 * ShaderProgram
Definition: vtkOpenGLRenderer.h:161
vtkOpenGLRenderer::GetTextureUniformVariable
int GetTextureUniformVariable()
vtkOpenGLRenderer::UpdatePickId
virtual void UpdatePickId()
vtkOpenGLRenderer::UpdateLights
int UpdateLights(void)
vtkOpenGLRenderer::CheckCompilation
void CheckCompilation(unsigned int fragmentShader)
vtkOpenGLRenderer::PickedZ
double PickedZ
Definition: vtkOpenGLRenderer.h:104
vtkOpenGLRenderer::DepthPeelingIsSupported
int DepthPeelingIsSupported
Definition: vtkOpenGLRenderer.h:130
VTKRENDERINGOPENGL_EXPORT
#define VTKRENDERINGOPENGL_EXPORT
Definition: vtkRenderingOpenGLModule.h:15
vtkX3D::ShaderProgram
@ ShaderProgram
Definition: vtkX3D.h:202
vtkRenderPass
Perform part of the rendering of a vtkRenderer.
Definition: vtkRenderPass.h:58
vtkOpenGLRenderer::DeviceRenderTranslucentPolygonalGeometry
virtual void DeviceRenderTranslucentPolygonalGeometry()