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 =========================================================================*/
26 #ifndef vtkOpenGLRenderer_h
27 #define vtkOpenGLRenderer_h
28 
29 #include "vtkRenderingOpenGL2Module.h" // For export macro
30 #include "vtkRenderer.h"
31 #include <vector> // STL Header
32 
34 class vtkRenderPass;
35 class vtkOpenGLTexture;
36 class vtkTextureObject;
38 class vtkShadowMapPass;
39 
40 class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLRenderer : public vtkRenderer
41 {
42 public:
43  static vtkOpenGLRenderer *New();
45  void PrintSelf(ostream& os, vtkIndent indent);
46 
50  void DeviceRender(void);
51 
55  virtual void DeviceRenderOpaqueGeometry();
56 
64 
65  void Clear(void);
66 
70  int UpdateLights(void);
71 
78  int GetDepthPeelingHigherLayer();
79 
84  bool HaveApplePrimitiveIdBug();
85 
86 protected:
89 
93  void CheckCompilation(unsigned int fragmentShader);
94 
95  // Internal method to release graphics resources in any derived renderers.
96  virtual void ReleaseGraphicsResources(vtkWindow *w);
97 
103  virtual int UpdateGeometry();
104 
105  // Picking functions to be implemented by sub-classes
106  virtual void DevicePickRender();
107  virtual void StartPick(unsigned int pickFromSize);
108  virtual void UpdatePickId();
109  virtual void DonePick();
110  virtual unsigned int GetPickedId();
111  virtual unsigned int GetNumPickedIds();
112  virtual int GetPickedIds(unsigned int atMost, unsigned int *callerBuffer);
113  virtual double GetPickedZ();
114 
115  // Ivars used in picking
116  class vtkGLPickInfo* PickInfo;
117 
118  double PickedZ;
119 
120  friend class vtkOpenGLProperty;
121  friend class vtkOpenGLTexture;
122  friend class vtkOpenGLImageSliceMapper;
123  friend class vtkOpenGLImageResliceMapper;
124 
129 
134 
139 
140  // Is rendering at translucent geometry stage using depth peeling and
141  // rendering a layer other than the first one? (Boolean value)
142  // If so, the uniform variables UseTexture and Texture can be set.
143  // (Used by vtkOpenGLProperty or vtkOpenGLTexture)
144  int DepthPeelingHigherLayer;
145 
146  friend class vtkRenderPass;
147 
150 
151 private:
152  vtkOpenGLRenderer(const vtkOpenGLRenderer&) VTK_DELETE_FUNCTION;
153  void operator=(const vtkOpenGLRenderer&) VTK_DELETE_FUNCTION;
154 };
155 
156 #endif
vtkDepthPeelingPass
Implement an Order Independent Transparency render pass.
Definition: vtkDepthPeelingPass.h:50
vtkRenderer::Clear
virtual void Clear()
Clear the image to the background color.
Definition: vtkRenderer.h:324
vtkRenderer::UpdateGeometry
virtual int UpdateGeometry()
Ask all props to update and draw any opaque and translucent geometry.
vtkRenderer::UpdateLights
virtual int UpdateLights(void)
Ask all lights to load themselves into rendering pipeline.
Definition: vtkRenderer.h:862
vtkViewport::GetPickedZ
virtual double GetPickedZ()=0
Return the Z value for the last picked Prop.
vtkOpenGLRenderer::FXAAFilter
vtkOpenGLFXAAFilter * FXAAFilter
FXAA is delegated to an instance of vtkOpenGLFXAAFilter.
Definition: vtkOpenGLRenderer.h:128
vtkViewport::GetPickedIds
virtual int GetPickedIds(unsigned int atMost, unsigned int *callerBuffer)=0
vtkRenderer::ReleaseGraphicsResources
virtual void ReleaseGraphicsResources(vtkWindow *)
vtkOpenGLProperty
OpenGL property.
Definition: vtkOpenGLProperty.h:37
vtkRenderer.h
vtkOpenGLRenderer::DepthPeelingPass
vtkDepthPeelingPass * DepthPeelingPass
Depth peeling is delegated to an instance of vtkDepthPeelingPass.
Definition: vtkOpenGLRenderer.h:133
vtkShadowMapPass
Implement a shadow mapping render pass.
Definition: vtkShadowMapPass.h:61
vtkWindow
window superclass for vtkRenderWindow
Definition: vtkWindow.h:34
vtkRenderer::DeviceRenderOpaqueGeometry
virtual void DeviceRenderOpaqueGeometry()
Render opaque polygonal geometry.
vtkViewport::UpdatePickId
virtual void UpdatePickId()=0
vtkRenderer::DeviceRenderTranslucentPolygonalGeometry
virtual void DeviceRenderTranslucentPolygonalGeometry()
Render translucent polygonal geometry.
vtkRenderer::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkTextureObject
abstracts an OpenGL texture object.
Definition: vtkTextureObject.h:40
vtkViewport::StartPick
virtual void StartPick(unsigned int pickFromSize)=0
vtkOpenGLRenderer
OpenGL renderer.
Definition: vtkOpenGLRenderer.h:33
vtkOpenGLFXAAFilter
Perform FXAA antialiasing on the current framebuffer.
Definition: vtkOpenGLFXAAFilter.h:57
vtkOpenGLImageSliceMapper
OpenGL mapper for image slice display.
Definition: vtkOpenGLImageSliceMapper.h:40
vtkRenderer::DeviceRender
virtual void DeviceRender()=0
Create an image.
vtkOpenGLRenderer::HaveApplePrimitiveIdBugValue
bool HaveApplePrimitiveIdBugValue
Definition: vtkOpenGLRenderer.h:148
vtkOpenGLRenderer::HaveApplePrimitiveIdBugChecked
bool HaveApplePrimitiveIdBugChecked
Definition: vtkOpenGLRenderer.h:149
vtkViewport::GetNumPickedIds
virtual unsigned int GetNumPickedIds()=0
vtkRenderer
abstract specification for renderers
Definition: vtkRenderer.h:63
vtkViewport::DonePick
virtual void DonePick()=0
vtkViewport::DevicePickRender
virtual void DevicePickRender()=0
vtkViewport::GetPickedId
virtual unsigned int GetPickedId()=0
vtkOpenGLTexture
OpenGL texture map.
Definition: vtkOpenGLTexture.h:36
vtkRenderer::New
static vtkRenderer * New()
Create a vtkRenderer with a black background, a white ambient light, two-sided lighting turned on,...
vtkOpenGLRenderer::ShadowMapPass
vtkShadowMapPass * ShadowMapPass
Shadows are delegated to an instance of vtkShadowMapPass.
Definition: vtkOpenGLRenderer.h:138
vtkRenderPass
Perform part of the rendering of a vtkRenderer.
Definition: vtkRenderPass.h:58