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;