/usr/include/vtk-6.3/vtkOpenGLProperty.h is in libvtk6-dev 6.3.0+dfsg1-5.
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 | /*=========================================================================
Program: Visualization Toolkit
Module: vtkOpenGLProperty.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 vtkOpenGLProperty - OpenGL property
// .SECTION Description
// vtkOpenGLProperty is a concrete implementation of the abstract class
// vtkProperty. vtkOpenGLProperty interfaces to the OpenGL rendering library.
#ifndef vtkOpenGLProperty_h
#define vtkOpenGLProperty_h
#include "vtkRenderingOpenGLModule.h" // For export macro
#include "vtkProperty.h"
class vtkGLSLShaderDeviceAdapter2;
class vtkOpenGLRenderer;
class vtkOpenGLRenderWindow;
class vtkShader2;
class vtkShader2Collection;
class vtkShaderDeviceAdapter2;
class vtkShaderProgram2;
class VTKRENDERINGOPENGL_EXPORT vtkOpenGLProperty : public vtkProperty
{
public:
static vtkOpenGLProperty *New();
vtkTypeMacro(vtkOpenGLProperty, vtkProperty);
virtual void PrintSelf(ostream& os, vtkIndent indent);
// Description:
// Implement base class method.
void Render(vtkActor *a, vtkRenderer *ren);
// Description:
// Implement base class method.
void BackfaceRender(vtkActor *a, vtkRenderer *ren);
//BTX
// Description:
// This method is called after the actor has been rendered.
// Don't call this directly. This method cleans up
// any shaders allocated.
virtual void PostRender(vtkActor *a,
vtkRenderer *r);
// Description:
// Release any graphics resources that are being consumed by this
// property. The parameter window could be used to determine which graphic
// resources to release.
virtual void ReleaseGraphicsResources(vtkWindow *win);
// Description:
// Set/Get the shader program of the vtkProp. It can be set directly or
// by defining a Material.
vtkGetObjectMacro(PropProgram, vtkShaderProgram2);
void SetPropProgram(vtkShaderProgram2 *);
// Description:
// Get the object that can pass vertex attribute to a vtkShaderProgram2.
virtual vtkShaderDeviceAdapter2* GetShaderDeviceAdapter2();
// Description:
// Get the vtkShaderProgram2 object in use.
vtkGetObjectMacro(CurrentShaderProgram2, vtkShaderProgram2);
//ETX
// Description:
// Provide values to initialize shader variables.
// Useful to initialize shader variables that change over time
// (animation, GUI widgets inputs, etc. )
// - \p name - hardware name of the uniform variable
// - \p numVars - number of variables being set
// - \p x - values
virtual void AddShaderVariable(const char *name, int numVars, int *x);
virtual void AddShaderVariable(const char *name, int numVars, float *x);
virtual void AddShaderVariable(const char *name, int numVars, double *x);
// Description:
// Helper method to set OpenGL material properties.
static void SetMaterialProperties(unsigned int face,
double ambient, const double ambient_color[3],
double diffuse, const double diffuse_color[3],
double specular, const double specular_color[3], double specular_power,
double opacity, vtkOpenGLRenderWindow* context);
protected:
vtkOpenGLProperty();
~vtkOpenGLProperty();
// Description:
// Method called in vtkOpenGLProperty::Render() to render shaders and/or
// related entities like shader variables. Returns true if any shaders were
// rendered.
bool RenderShaders(vtkActor* actor, vtkRenderer* renderer);
// Description:
// Method called in vtkOpenGLProperty::Render() to render textures.
// Last argument is the value returned from RenderShaders() call.
bool RenderTextures(vtkActor* actor, vtkRenderer* renderer,
bool using_shader_program2);
// Description:
// Load OpenGL extensions for multi texturing.
void LoadMultiTexturingExtensions(vtkRenderer* ren);
// Owned. Result of merging the shader program of the renderer
// and the PropProgram.
vtkShaderProgram2 *CachedShaderProgram2;
vtkShaderProgram2 *LastRendererShaderProgram2; // just a ref
vtkShaderProgram2 *LastPropProgram; // just a ref
vtkShaderProgram2 *PropProgram; // owned
// Point to CachedShaderProgram2 if Shading is on and the context
// supports it.
vtkShaderProgram2 *CurrentShaderProgram2;
vtkShader2 *DefaultMainVS;
vtkShader2 *DefaultMainFS;
vtkShader2 *DefaultPropVS;
vtkShader2 *DefaultPropFS;
bool UseDefaultMainVS;
bool UseDefaultMainFS;
bool UseDefaultPropVS;
bool UseDefaultPropFS;
vtkGLSLShaderDeviceAdapter2 *ShaderDeviceAdapter2;
private:
vtkOpenGLProperty(const vtkOpenGLProperty&); // Not implemented.
void operator=(const vtkOpenGLProperty&); // Not implemented.
};
#endif
|