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
31class vtkRenderPass;
36
37class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLRenderer : public vtkRenderer
38{
39public:
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
83protected:
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
148private:
149 vtkOpenGLRenderer(const vtkOpenGLRenderer&) VTK_DELETE_FUNCTION;
150 void operator=(const vtkOpenGLRenderer&) VTK_DELETE_FUNCTION;
151};
152
153#endif
Implement an Order Independent Transparency render pass.
a simple class to control print indentation
Definition: vtkIndent.h:40
Perform FXAA antialiasing on the current framebuffer.
OpenGL mapper for image slice display.
OpenGL property.
OpenGL renderer.
virtual void ReleaseGraphicsResources(vtkWindow *w)
virtual void DeviceRenderOpaqueGeometry()
Overridden to support hidden line removal.
vtkShadowMapPass * ShadowMapPass
Shadows are delegated to an instance of vtkShadowMapPass.
void DeviceRender(void)
Concrete open gl render method.
virtual void DevicePickRender()
vtkDepthPeelingPass * DepthPeelingPass
Depth peeling is delegated to an instance of vtkDepthPeelingPass.
virtual int UpdateGeometry()
Ask all props to update and draw any opaque and translucent geometry.
virtual void UpdatePickId()
virtual int GetPickedIds(unsigned int atMost, unsigned int *callerBuffer)
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
virtual double GetPickedZ()
Return the Z value for the last picked Prop.
virtual void DonePick()
void Clear(void)
Clear the image to the background color.
static vtkOpenGLRenderer * New()
vtkOpenGLFXAAFilter * FXAAFilter
FXAA is delegated to an instance of vtkOpenGLFXAAFilter.
virtual unsigned int GetNumPickedIds()
int UpdateLights(void)
Ask lights to load themselves into graphics pipeline.
bool HaveApplePrimitiveIdBug()
Indicate if this system is subject to the apple/amd bug of not having a working glPrimitiveId.
virtual unsigned int GetPickedId()
virtual void StartPick(unsigned int pickFromSize)
virtual void DeviceRenderTranslucentPolygonalGeometry()
Render translucent polygonal geometry.
void CheckCompilation(unsigned int fragmentShader)
Check the compilation status of some fragment shader source.
int GetDepthPeelingHigherLayer()
Is rendering at translucent geometry stage using depth peeling and rendering a layer other than the f...
OpenGL texture map.
Perform part of the rendering of a vtkRenderer.
Definition: vtkRenderPass.h:59
abstract specification for renderers
Definition: vtkRenderer.h:64
Implement a shadow mapping render pass.
abstracts an OpenGL texture object.
window superclass for vtkRenderWindow
Definition: vtkWindow.h:35