diff options
author | Samuel Rødal <sroedal@trolltech.com> | 2009-08-25 14:22:09 (GMT) |
---|---|---|
committer | Samuel Rødal <sroedal@trolltech.com> | 2009-08-25 14:36:48 (GMT) |
commit | 22e2ba1e5e3345b99f41b62b9984ca6871579122 (patch) | |
tree | cdfaf0953a296ea016cba4598a521351185b0eed /src | |
parent | 03bfdba7d45ddbf086376a20568a49525dddf845 (diff) | |
download | Qt-22e2ba1e5e3345b99f41b62b9984ca6871579122.zip Qt-22e2ba1e5e3345b99f41b62b9984ca6871579122.tar.gz Qt-22e2ba1e5e3345b99f41b62b9984ca6871579122.tar.bz2 |
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.cpp | 2 | ||||
-rw-r--r-- | src/opengl/qgraphicsshadereffect.cpp | 19 |
2 files changed, 9 insertions, 12 deletions
diff --git a/src/opengl/qglpixmapfilter.cpp b/src/opengl/qglpixmapfilter.cpp index 29f6440..e1ee61a 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 22e1db8..d3f52f6 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 |