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 =========================================================================*/
22 #ifndef vtkOpenGLRenderer_h
23 #define vtkOpenGLRenderer_h
24 
25 #include "vtkRenderingOpenGL2Module.h" // For export macro
26 #include "vtkRenderer.h"
27 #include <vector> // STL Header
28 
29 class vtkRenderPass;
30 class vtkOpenGLTexture;
31 class vtkTextureObject;
33 
34 class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLRenderer : public vtkRenderer
35 {
36 public:
39  void PrintSelf(ostream& os, vtkIndent indent);
40 
42  void DeviceRender(void);
43 
48 
49  void Clear(void);
50 
52  int UpdateLights(void);
53 
59 
61 
65 
66 protected:
69 
71  void CheckCompilation(unsigned int fragmentShader);
72 
73  // Internal method to release graphics resources in any derived renderers.
75 
76  // Picking functions to be implemented by sub-classes
77  virtual void DevicePickRender();
78  virtual void StartPick(unsigned int pickFromSize);
79  virtual void UpdatePickId();
80  virtual void DonePick();
81  virtual unsigned int GetPickedId();
82  virtual unsigned int GetNumPickedIds();
83  virtual int GetPickedIds(unsigned int atMost, unsigned int *callerBuffer);
84  virtual double GetPickedZ();
85 
86  // Ivars used in picking
87  class vtkGLPickInfo* PickInfo;
88 
89  double PickedZ;
90 
91  friend class vtkOpenGLProperty;
92  friend class vtkOpenGLTexture;
93  friend class vtkOpenGLImageSliceMapper;
94  friend class vtkOpenGLImageResliceMapper;
95 
98 
99  // Is rendering at translucent geometry stage using depth peeling and
100  // rendering a layer other than the first one? (Boolean value)
101  // If so, the uniform variables UseTexture and Texture can be set.
102  // (Used by vtkOpenGLProperty or vtkOpenGLTexture)
103  int DepthPeelingHigherLayer;
104 
105  friend class vtkRenderPass;
106  vtkRenderPass *Pass;
107 
108 private:
109  vtkOpenGLRenderer(const vtkOpenGLRenderer&); // Not implemented.
110  void operator=(const vtkOpenGLRenderer&); // Not implemented.
111 };
112 
113 #endif
vtkOpenGLRenderer::GetDepthPeelingHigherLayer
int GetDepthPeelingHigherLayer()
vtkGetObjectMacro
#define vtkGetObjectMacro(name, type)
Definition: vtkSetGet.h:232
vtkOpenGLRenderer::GetNumPickedIds
virtual unsigned int GetNumPickedIds()
vtkDepthPeelingPass
Implement an Order Independent Transparency render pass.
Definition: vtkDepthPeelingPass.h:53
vtkOpenGLRenderer::DevicePickRender
virtual void DevicePickRender()
vtkOpenGLRenderer::GetPickedIds
virtual int GetPickedIds(unsigned int atMost, unsigned int *callerBuffer)
vtkOpenGLRenderer::GetPickedZ
virtual double GetPickedZ()
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkOpenGLProperty
OpenGL property.
Definition: vtkOpenGLProperty.h:37
vtkRenderer.h
vtkOpenGLRenderer::~vtkOpenGLRenderer
~vtkOpenGLRenderer()
vtkOpenGLRenderer::GetPickedId
virtual unsigned int GetPickedId()
vtkOpenGLRenderer::DepthPeelingPass
vtkDepthPeelingPass * DepthPeelingPass
Definition: vtkOpenGLRenderer.h:97
vtkWindow
window superclass for vtkRenderWindow
Definition: vtkWindow.h:34
vtkOpenGLRenderer::DeviceRender
void DeviceRender(void)
vtkOpenGLRenderer::New
static vtkOpenGLRenderer * New()
vtkOpenGLRenderer::SetPass
void SetPass(vtkRenderPass *p)
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkTextureObject
abstracts an OpenGL texture object.
Definition: vtkTextureObject.h:40
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()
vtkRenderer
abstract specification for renderers
Definition: vtkRenderer.h:64
vtkOpenGLRenderer::vtkOpenGLRenderer
vtkOpenGLRenderer()
vtkgl::p
GLfloat GLfloat p
Definition: vtkgl.h:15717
vtkOpenGLRenderer::ReleaseGraphicsResources
virtual void ReleaseGraphicsResources(vtkWindow *w)
vtkgl::w
GLubyte GLubyte GLubyte GLubyte w
Definition: vtkgl.h:12054
vtkOpenGLTexture
OpenGL texture map.
Definition: vtkOpenGLTexture.h:37
vtkOpenGLRenderer::UpdatePickId
virtual void UpdatePickId()
vtkOpenGLRenderer::UpdateLights
int UpdateLights(void)
vtkOpenGLRenderer::CheckCompilation
void CheckCompilation(unsigned int fragmentShader)
vtkOpenGLRenderer::Clear
void Clear(void)
vtkRenderPass
Perform part of the rendering of a vtkRenderer.
Definition: vtkRenderPass.h:58
vtkOpenGLRenderer::DeviceRenderTranslucentPolygonalGeometry
virtual void DeviceRenderTranslucentPolygonalGeometry()