30        ExplicitLinking = (1 << 0)
 
 
   33    GLShader(
const QString &vertexfile, 
const QString &fragmentfile, 
unsigned int flags = NoFlags);
 
   41    void bindAttributeLocation(
const char *name, 
int index);
 
   42    void bindFragDataLocation(
const char *name, 
int index);
 
   46    int uniformLocation(
const char *name);
 
   48    bool setUniform(
const char *name, 
float value);
 
   49    bool setUniform(
const char *name, 
int value);
 
   50    bool setUniform(
const char *name, 
const QVector2D &value);
 
   51    bool setUniform(
const char *name, 
const QVector3D &value);
 
   52    bool setUniform(
const char *name, 
const QVector4D &value);
 
   53    bool setUniform(
const char *name, 
const QMatrix4x4 &value);
 
   54    bool setUniform(
const char *name, 
const QColor &color);
 
   56    bool setUniform(
int location, 
float value);
 
   57    bool setUniform(
int location, 
int value);
 
   58    bool setUniform(
int location, 
int xValue, 
int yValue, 
int zValue);
 
   59    bool setUniform(
int location, 
const QVector2D &value);
 
   60    bool setUniform(
int location, 
const QVector3D &value);
 
   61    bool setUniform(
int location, 
const QVector4D &value);
 
   62    bool setUniform(
int location, 
const QMatrix3x3 &value);
 
   63    bool setUniform(
int location, 
const QMatrix4x4 &value);
 
   64    bool setUniform(
int location, 
const QColor &value);
 
   66    int attributeLocation(
const char *name);
 
   67    bool setAttribute(
const char *name, 
float value);
 
   72    QMatrix4x4 getUniformMatrix4x4(
const char *name);
 
   81        ModelViewProjectionMatrix,
 
   84        ColorimetryTransformation,
 
 
  113        SourceNamedTransferFunction,
 
  114        DestinationNamedTransferFunction,
 
 
  125    bool setUniform(Mat3Uniform uniform, 
const QMatrix3x3 &value);
 
  126    bool setUniform(Mat4Uniform uniform, 
const QMatrix4x4 &matrix);
 
  127    bool setUniform(Vec2Uniform uniform, 
const QVector2D &value);
 
  128    bool setUniform(Vec3Uniform uniform, 
const QVector3D &value);
 
  129    bool setUniform(Vec4Uniform uniform, 
const QVector4D &value);
 
  130    bool setUniform(FloatUniform uniform, 
float value);
 
  131    bool setUniform(IntUniform uniform, 
int value);
 
  132    bool setUniform(ColorUniform uniform, 
const QVector4D &value);
 
  133    bool setUniform(ColorUniform uniform, 
const QColor &value);
 
  140    GLShader(
unsigned int flags = NoFlags);
 
  141    bool loadFromFiles(
const QString &vertexfile, 
const QString &fragmentfile);
 
  142    bool load(
const QByteArray &vertexSource, 
const QByteArray &fragmentSource);
 
  143    const QByteArray prepareSource(GLenum shaderType, 
const QByteArray &sourceCode) 
const;
 
  144    bool compile(GLuint program, GLenum shaderType, 
const QByteArray &sourceCode) 
const;
 
  147    void resolveLocations();
 
  150    unsigned int m_program;
 
  152    bool m_locationsResolved : 1;
 
  153    bool m_explicitLinking : 1;
 
  154    QHash<Mat3Uniform, int> m_matrix3Locations;
 
  155    QHash<Mat4Uniform, int> m_matrix4Locations;
 
  156    QHash<Vec2Uniform, int> m_vec2Locations;
 
  157    QHash<Vec3Uniform, int> m_vec3Locations;
 
  158    QHash<Vec4Uniform, int> m_vec4Locations;
 
  159    QHash<FloatUniform, int> m_floatLocations;
 
  160    QHash<IntUniform, int> m_intLocations;
 
  161    QHash<ColorUniform, int> m_colorLocations;