16 #ifndef vtkOpenGLGradientOpacityTable_h_
17 #define vtkOpenGLGradientOpacityTable_h_
70 glActiveTexture(GL_TEXTURE5);
71 glBindTexture(GL_TEXTURE_1D, this->
TextureId);
77 double sampleDistance,
80 bool linearInterpolation)
83 glActiveTexture(GL_TEXTURE5);
85 bool needUpdate=
false;
100 glBindTexture(GL_TEXTURE_1D, this->
TextureId);
103 glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_WRAP_S,
109 needUpdate || !this->
Loaded)
117 gradientOpacity->
GetTable(0, (range[1] - range[0]) * 0.25,
120 glTexImage1D(GL_TEXTURE_1D, 0, GL_ALPHA16, this->
TextureWidth,
126 needUpdate= needUpdate ||
131 GLint value = linearInterpolation ? GL_LINEAR : GL_NEAREST;
132 glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, value);
133 glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, value);
136 glActiveTexture(GL_TEXTURE0);
163 this->NumberOfTables = numberOfTables;
169 delete [] this->Tables;
176 return &this->Tables[i];
183 return this->NumberOfTables;
187 unsigned int NumberOfTables;
200 #endif // vtkOpenGLGradientOpacityTable_h_
vtkOpenGLGradientOpacityTable * GetTable(unsigned int i)
vtkOpenGLGradientOpacityTables(unsigned int numberOfTables)
bool LastLinearInterpolation
Defines a 1D piecewise function.
typedef GLuint(APIENTRYP PFNGLCREATEPROGRAMPROC)(void)
record modification and/or execution time
unsigned long int GetMTime()
double LastSampleDistance
GLsizei const GLfloat * value
~vtkOpenGLGradientOpacityTables()
void Update(vtkPiecewiseFunction *gradientOpacity, double sampleDistance, double range[2], double vtkNotUsed(unitDistance), bool linearInterpolation)
void GetTable(double x1, double x2, int size, float *table, int stride=1)
~vtkOpenGLGradientOpacityTable()
GLint GLint GLsizei width
unsigned int GetNumberOfTables()
typedef GLint(APIENTRYP PFNGLGETATTRIBLOCATIONPROC)(GLuint program
vtkOpenGLGradientOpacityTable(int width=1024)