summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSamuel Rødal <sroedal@trolltech.com>2009-08-25 16:22:09 +0200
committerSamuel Rødal <sroedal@trolltech.com>2009-08-25 16:36:48 +0200
commit22e2ba1e5e3345b99f41b62b9984ca6871579122 (patch)
treecdfaf0953a296ea016cba4598a521351185b0eed /src
parent03bfdba7d45ddbf086376a20568a49525dddf845 (diff)
Fixed documentation and use of incorrect entry point for custom shaders.
The entry point has been changed to be customShader, taking source image and texture coordinates as parameters. Reviewed-by: Tom
Diffstat (limited to 'src')
-rw-r--r--src/opengl/qglpixmapfilter.cpp2
-rw-r--r--src/opengl/qgraphicsshadereffect.cpp19
2 files changed, 9 insertions, 12 deletions
diff --git a/src/opengl/qglpixmapfilter.cpp b/src/opengl/qglpixmapfilter.cpp
index 29f6440c3..e1ee61ae4 100644
--- a/src/opengl/qglpixmapfilter.cpp
+++ b/src/opengl/qglpixmapfilter.cpp
@@ -418,7 +418,7 @@ QByteArray QGLPixmapBlurFilter::generateBlurShader(int radius, bool gaussianBlur
source.append("uniform highp vec4 clip;\n");
}
- source.append("mediump vec4 customShader(sampler2D src, vec2 srcCoords) {\n");
+ source.append("lowp vec4 customShader(sampler2D src, vec2 srcCoords) {\n");
QVector<qreal> sampleOffsets;
QVector<qreal> weights;
diff --git a/src/opengl/qgraphicsshadereffect.cpp b/src/opengl/qgraphicsshadereffect.cpp
index 22e1db848..d3f52f693 100644
--- a/src/opengl/qgraphicsshadereffect.cpp
+++ b/src/opengl/qgraphicsshadereffect.cpp
@@ -63,7 +63,9 @@ QT_BEGIN_NAMESPACE
The specific effect is defined by a fragment of GLSL source code
supplied to setPixelShaderFragment(). This source code must define a
- function called \c{srcPixel()} that returns the source pixel value
+ function with the signature
+ \c{lowp vec4 customShader(sampler2D imageTexture, vec2 textureCoords)}
+ that returns the source pixel value
to use in the paint engine's shader program. The shader fragment
is linked with the regular shader code used by the GL2 paint engine
to construct a complete QGLShaderProgram.
@@ -74,10 +76,8 @@ QT_BEGIN_NAMESPACE
\code
static char const colorizeShaderCode[] =
- "varying highp vec2 textureCoords;\n"
- "uniform sampler2D imageTexture;\n"
"uniform lowp vec4 effectColor;\n"
- "lowp vec4 srcPixel() {\n"
+ "lowp vec4 customShader(sampler2D imageTexture, vec2 textureCoords) {\n"
" vec4 src = texture2D(imageTexture, textureCoords);\n"
" float gray = dot(src.rgb, vec3(0.212671, 0.715160, 0.072169));\n"
" vec4 colorize = 1.0-((1.0-gray)*(1.0-effectColor));\n"
@@ -130,9 +130,7 @@ QT_BEGIN_NAMESPACE
*/
static const char qglslDefaultImageFragmentShader[] = "\
- varying highp vec2 textureCoords; \
- uniform sampler2D imageTexture; \
- lowp vec4 srcPixel() { \
+ lowp vec4 customShader(sampler2D imageTexture, vec2 textureCoords) { \
return texture2D(imageTexture, textureCoords); \
}\n";
@@ -216,15 +214,14 @@ QByteArray QGraphicsShaderEffect::pixelShaderFragment() const
Sets the source code for the pixel shader fragment for
this shader effect to \a code.
- The \a code must define a GLSL function called \c{srcPixel()}
+ The \a code must define a GLSL function with the signature
+ \c{lowp vec4 customShader(sampler2D imageTexture, vec2 textureCoords)}
that returns the source pixel value to use in the paint engine's
shader program. The following is the default pixel shader fragment,
which draws a pixmap with no effect applied:
\code
- varying highp vec2 textureCoords;
- uniform sampler2D imageTexture;
- lowp vec4 srcPixel() {
+ lowp vec4 customShader(sampler2D imageTexture, vec2 textureCoords) {
return texture2D(imageTexture, textureCoords);
}
\endcode