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 =========================================================================*/
23 #ifndef vtkOpenGLRenderer_h
24 #define vtkOpenGLRenderer_h
25 
26 #include "vtkRenderingOpenGL2Module.h" // For export macro
27 #include "vtkRenderer.h"
28 #include <vector> // STL Header
29 
31 class vtkRenderPass;
32 class vtkOpenGLTexture;
33 class vtkTextureObject;
35 class vtkShadowMapPass;
36 
37 class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLRenderer : public vtkRenderer
38 {
39 public:
42  void PrintSelf(ostream& os, vtkIndent indent);
43 
47  void DeviceRender(void);
48 
53 
61 
62  void Clear(void);
63 
67  int UpdateLights(void);
68 
76 
82 
83 protected:
86 
90  void CheckCompilation(unsigned int fragmentShader);
91 
92  // Internal method to release graphics resources in any derived renderers.
94 
100  virtual int UpdateGeometry();
101 
102  // Picking functions to be implemented by sub-classes
103  virtual void DevicePickRender();
104  virtual void StartPick(unsigned int pickFromSize);
105  virtual void UpdatePickId();
106  virtual void DonePick();
107  virtual unsigned int GetPickedId();
108  virtual unsigned int GetNumPickedIds();
109  virtual int GetPickedIds(unsigned int atMost, unsigned int *callerBuffer);
110  virtual double GetPickedZ();
111 
112  // Ivars used in picking
113  class vtkGLPickInfo* PickInfo;
114 
115  double PickedZ;
116 
117  friend class vtkOpenGLProperty;
118  friend class vtkOpenGLTexture;
119  friend class vtkOpenGLImageSliceMapper;
120  friend class vtkOpenGLImageResliceMapper;
121 
126 
131 
136 
137  // Is rendering at translucent geometry stage using depth peeling and
138  // rendering a layer other than the first one? (Boolean value)
139  // If so, the uniform variables UseTexture and Texture can be set.
140  // (Used by vtkOpenGLProperty or vtkOpenGLTexture)
141  int DepthPeelingHigherLayer;
142 
143  friend class vtkRenderPass;
144 
147 
148 private:
149  vtkOpenGLRenderer(const vtkOpenGLRenderer&) VTK_DELETE_FUNCTION;
150  void operator=(const vtkOpenGLRenderer&) VTK_DELETE_FUNCTION;
151 };
152 
153 #endif
vtkOpenGLRenderer::GetDepthPeelingHigherLayer
int GetDepthPeelingHigherLayer()
Is rendering at translucent geometry stage using depth peeling and rendering a layer other than the f...
vtkOpenGLRenderer::GetNumPickedIds
virtual unsigned int GetNumPickedIds()
vtkDepthPeelingPass
Implement an Order Independent Transparency render pass.
Definition: vtkDepthPeelingPass.h:54
vtkOpenGLRenderer::DevicePickRender
virtual void DevicePickRender()
vtkOpenGLRenderer::GetPickedIds
virtual int GetPickedIds(unsigned int atMost, unsigned int *callerBuffer)
vtkOpenGLRenderer::FXAAFilter
vtkOpenGLFXAAFilter * FXAAFilter
FXAA is delegated to an instance of vtkOpenGLFXAAFilter.
Definition: vtkOpenGLRenderer.h:125
vtkOpenGLRenderer::GetPickedZ
virtual double GetPickedZ()
Return the Z value for the last picked Prop.
vtkOpenGLProperty
OpenGL property.
Definition: vtkOpenGLProperty.h:38
vtkRenderer.h
vtkOpenGLRenderer::~vtkOpenGLRenderer
~vtkOpenGLRenderer()
vtkOpenGLRenderer::GetPickedId
virtual unsigned int GetPickedId()
vtkOpenGLRenderer::DepthPeelingPass
vtkDepthPeelingPass * DepthPeelingPass
Depth peeling is delegated to an instance of vtkDepthPeelingPass.
Definition: vtkOpenGLRenderer.h:130
vtkShadowMapPass
Implement a shadow mapping render pass.
Definition: vtkShadowMapPass.h:65
vtkWindow
window superclass for vtkRenderWindow
Definition: vtkWindow.h:35
vtkOpenGLRenderer::DeviceRender
void DeviceRender(void)
Concrete open gl render method.
vtkOpenGLRenderer::HaveApplePrimitiveIdBug
bool HaveApplePrimitiveIdBug()
Indicate if this system is subject to the apple/amd bug of not having a working glPrimitiveId.
vtkOpenGLRenderer::DeviceRenderOpaqueGeometry
virtual void DeviceRenderOpaqueGeometry()
Overridden to support hidden line removal.
vtkOpenGLRenderer::New
static vtkOpenGLRenderer * New()
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:40
vtkTextureObject
abstracts an OpenGL texture object.
Definition: vtkTextureObject.h:44
vtkOpenGLRenderer::StartPick
virtual void StartPick(unsigned int pickFromSize)
vtkOpenGLRenderer
OpenGL renderer.
Definition: vtkOpenGLRenderer.h:37
vtkOpenGLFXAAFilter
Perform FXAA antialiasing on the current framebuffer.
Definition: vtkOpenGLFXAAFilter.h:58
vtkOpenGLImageSliceMapper
OpenGL mapper for image slice display.
Definition: vtkOpenGLImageSliceMapper.h:42
vtkOpenGLRenderer::UpdateGeometry
virtual int UpdateGeometry()
Ask all props to update and draw any opaque and translucent geometry.
vtkOpenGLRenderer::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
vtkOpenGLRenderer::DonePick
virtual void DonePick()
vtkOpenGLRenderer::HaveApplePrimitiveIdBugValue
bool HaveApplePrimitiveIdBugValue
Definition: vtkOpenGLRenderer.h:145
vtkOpenGLRenderer::HaveApplePrimitiveIdBugChecked
bool HaveApplePrimitiveIdBugChecked
Definition: vtkOpenGLRenderer.h:146
vtkRenderer
abstract specification for renderers
Definition: vtkRenderer.h:64
vtkOpenGLRenderer::vtkOpenGLRenderer
vtkOpenGLRenderer()
vtkOpenGLRenderer::ReleaseGraphicsResources
virtual void ReleaseGraphicsResources(vtkWindow *w)
vtkOpenGLTexture
OpenGL texture map.
Definition: vtkOpenGLTexture.h:40
vtkOpenGLRenderer::UpdatePickId
virtual void UpdatePickId()
vtkOpenGLRenderer::UpdateLights
int UpdateLights(void)
Ask lights to load themselves into graphics pipeline.
vtkOpenGLRenderer::CheckCompilation
void CheckCompilation(unsigned int fragmentShader)
Check the compilation status of some fragment shader source.
vtkOpenGLRenderer::Clear
void Clear(void)
Clear the image to the background color.
vtkOpenGLRenderer::ShadowMapPass
vtkShadowMapPass * ShadowMapPass
Shadows are delegated to an instance of vtkShadowMapPass.
Definition: vtkOpenGLRenderer.h:135
vtkRenderPass
Perform part of the rendering of a vtkRenderer.
Definition: vtkRenderPass.h:59
vtkOpenGLRenderer::DeviceRenderTranslucentPolygonalGeometry
virtual void DeviceRenderTranslucentPolygonalGeometry()
Render translucent polygonal geometry.