/usr/include/vtk-5.10/vtkOpenGLRenderer.h is in libvtk5-dev 5.10.1+dfsg-2.1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 | /*=========================================================================
Program: Visualization Toolkit
Module: vtkOpenGLRenderer.h
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
// .NAME vtkOpenGLRenderer - OpenGL renderer
// .SECTION Description
// vtkOpenGLRenderer is a concrete implementation of the abstract class
// vtkRenderer. vtkOpenGLRenderer interfaces to the OpenGL graphics library.
#ifndef __vtkOpenGLRenderer_h
#define __vtkOpenGLRenderer_h
#include "vtkRenderer.h"
class vtkOpenGLRendererLayerList; // Pimpl
class vtkShaderProgram2;
class VTK_RENDERING_EXPORT vtkOpenGLRenderer : public vtkRenderer
{
protected:
int NumberOfLightsBound;
public:
static vtkOpenGLRenderer *New();
vtkTypeMacro(vtkOpenGLRenderer,vtkRenderer);
void PrintSelf(ostream& os, vtkIndent indent);
// Description:
// Concrete open gl render method.
void DeviceRender(void);
// Description:
// Render translucent polygonal geometry. Default implementation just call
// UpdateTranslucentPolygonalGeometry().
// Subclasses of vtkRenderer that can deal with depth peeling must
// override this method.
virtual void DeviceRenderTranslucentPolygonalGeometry();
// Description:
// Internal method temporarily removes lights before reloading them
// into graphics pipeline.
void ClearLights(void);
void Clear(void);
// Description:
// Ask lights to load themselves into graphics pipeline.
int UpdateLights(void);
// Description:
// Is rendering at translucent geometry stage using depth peeling and
// rendering a layer other than the first one? (Boolean value)
// If so, the uniform variables UseTexture and Texture can be set.
// (Used by vtkOpenGLProperty or vtkOpenGLTexture)
int GetDepthPeelingHigherLayer();
//BTX
// Description:
//
vtkGetObjectMacro(ShaderProgram,vtkShaderProgram2);
virtual void SetShaderProgram(vtkShaderProgram2 *program);
//ETX
protected:
vtkOpenGLRenderer();
~vtkOpenGLRenderer();
// Description:
// Check the compilation status of some fragment shader source.
void CheckCompilation(unsigned int fragmentShader);
//BTX
// Picking functions to be implemented by sub-classes
virtual void DevicePickRender();
virtual void StartPick(unsigned int pickFromSize);
virtual void UpdatePickId();
virtual void DonePick();
virtual unsigned int GetPickedId();
virtual unsigned int GetNumPickedIds();
virtual int GetPickedIds(unsigned int atMost, unsigned int *callerBuffer);
virtual double GetPickedZ();
// Ivars used in picking
class vtkGLPickInfo* PickInfo;
//ETX
double PickedZ;
// Description:
// Render a peel layer. If there is no more GPU RAM to save the texture,
// return false otherwise returns true. Also if layer==0 and no prop have
// been rendered (there is no translucent geometry), it returns false.
// \pre positive_layer: layer>=0
int RenderPeel(int layer);
//BTX
friend class vtkOpenGLProperty;
friend class vtkOpenGLTexture;
friend class vtkOpenGLImageSliceMapper;
friend class vtkOpenGLImageResliceMapper;
//ETX
// Description:
// Access to the OpenGL program shader uniform variable "useTexture" from the
// vtkOpenGLProperty or vtkOpenGLTexture.
int GetUseTextureUniformVariable();
// Description:
// Access to the OpenGL program shader uniform variable "texture" from the
// vtkOpenGLProperty or vtkOpenGLTexture.
int GetTextureUniformVariable();
// Description:
// This flag is on if the current OpenGL context supports extensions
// required by the depth peeling technique.
int DepthPeelingIsSupported;
// Description:
// This flag is on once the OpenGL extensions required by the depth peeling
// technique have been checked.
int DepthPeelingIsSupportedChecked;
// Description:
// Used by the depth peeling technique to store the transparency layers.
vtkOpenGLRendererLayerList *LayerList;
unsigned int OpaqueLayerZ;
unsigned int TransparentLayerZ;
unsigned int ProgramShader;
// Description:
// Cache viewport values for depth peeling.
int ViewportX;
int ViewportY;
int ViewportWidth;
int ViewportHeight;
// Description:
// Actual depth format: vtkgl::DEPTH_COMPONENT16_ARB
// or vtkgl::DEPTH_COMPONENT24_ARB
unsigned int DepthFormat;
// Is rendering at translucent geometry stage using depth peeling and
// rendering a layer other than the first one? (Boolean value)
// If so, the uniform variables UseTexture and Texture can be set.
// (Used by vtkOpenGLProperty or vtkOpenGLTexture)
int DepthPeelingHigherLayer;
vtkShaderProgram2 *ShaderProgram;
private:
vtkOpenGLRenderer(const vtkOpenGLRenderer&); // Not implemented.
void operator=(const vtkOpenGLRenderer&); // Not implemented.
};
#endif
|