From d38b469de66144f97c4cc9696c65081164f9f113 Mon Sep 17 00:00:00 2001 From: "Sha..om" Date: Sun, 2 Oct 2011 04:42:11 +0000 Subject: [PATCH] * Fix for "Internal error wrong operand type built in unary operator function. Type: in sampler2DMS" if multisample is not being used (old ATI driver bug) git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@8326 75d07b2b-3a1a-0410-a2c5-0572b91ccdca --- .../Common/ShaderLib/MultiSample.glsllib | 122 +++++++++--------- 1 file changed, 61 insertions(+), 61 deletions(-) diff --git a/engine/src/core-data/Common/ShaderLib/MultiSample.glsllib b/engine/src/core-data/Common/ShaderLib/MultiSample.glsllib index e4d46b40d..0e5355cea 100644 --- a/engine/src/core-data/Common/ShaderLib/MultiSample.glsllib +++ b/engine/src/core-data/Common/ShaderLib/MultiSample.glsllib @@ -1,62 +1,62 @@ -#extension GL_ARB_texture_multisample : enable - -uniform int m_NumSamples; -uniform int m_NumSamplesDepth; - -#ifdef RESOLVE_MS - #define COLORTEXTURE sampler2DMS -#else - #define COLORTEXTURE sampler2D -#endif - -#ifdef RESOLVE_DEPTH_MS - #define DEPTHTEXTURE sampler2DMS -#else - #define DEPTHTEXTURE sampler2D -#endif - -// NOTE: Only define multisample functions if multisample is being used! -#ifdef GL_ARB_texture_multisample -vec4 textureFetch(in sampler2DMS tex,in vec2 texC, in int numSamples){ - ivec2 iTexC = ivec2(texC * textureSize(tex)); - vec4 color = vec4(0.0); - for (int i = 0; i < numSamples; i++){ - color += texelFetch(tex, iTexC, i); - } - return color / numSamples; -} - -vec4 fetchTextureSample(in sampler2DMS tex,in vec2 texC,in int sample){ - ivec2 iTexC = ivec2(texC * textureSize(tex)); - return texelFetch(tex, iTexC, sample); -} - -vec4 getColor(in sampler2DMS tex, in vec2 texC){ - return textureFetch(tex, texC, m_NumSamples); -} - -vec4 getColorSingle(in sampler2DMS tex, in vec2 texC){ - ivec2 iTexC = ivec2(texC * textureSize(tex)); - return texelFetch(tex, iTexC, 0); -} - -vec4 getDepth(in sampler2DMS tex,in vec2 texC){ - return textureFetch(tex,texC,m_NumSamplesDepth); -} -#endif - -vec4 fetchTextureSample(in sampler2D tex,in vec2 texC,in int sample){ - return texture2D(tex,texC); -} - -vec4 getColor(in sampler2D tex, in vec2 texC){ - return texture2D(tex,texC); -} - -vec4 getColorSingle(in sampler2D tex, in vec2 texC){ - return texture2D(tex, texC); -} - -vec4 getDepth(in sampler2D tex,in vec2 texC){ - return texture2D(tex,texC); +#extension GL_ARB_texture_multisample : enable + +uniform int m_NumSamples; +uniform int m_NumSamplesDepth; + +#ifdef RESOLVE_MS + #define COLORTEXTURE sampler2DMS +#else + #define COLORTEXTURE sampler2D +#endif + +#ifdef RESOLVE_DEPTH_MS + #define DEPTHTEXTURE sampler2DMS +#else + #define DEPTHTEXTURE sampler2D +#endif + +// NOTE: Only define multisample functions if multisample is available and is being used! +#if defined(GL_ARB_texture_multisample) && (defined(RESOLVE_MS) || defined(RESOLVE_DEPTH_MS)) +vec4 textureFetch(in sampler2DMS tex,in vec2 texC, in int numSamples){ + ivec2 iTexC = ivec2(texC * textureSize(tex)); + vec4 color = vec4(0.0); + for (int i = 0; i < numSamples; i++){ + color += texelFetch(tex, iTexC, i); + } + return color / numSamples; +} + +vec4 fetchTextureSample(in sampler2DMS tex,in vec2 texC,in int sample){ + ivec2 iTexC = ivec2(texC * textureSize(tex)); + return texelFetch(tex, iTexC, sample); +} + +vec4 getColor(in sampler2DMS tex, in vec2 texC){ + return textureFetch(tex, texC, m_NumSamples); +} + +vec4 getColorSingle(in sampler2DMS tex, in vec2 texC){ + ivec2 iTexC = ivec2(texC * textureSize(tex)); + return texelFetch(tex, iTexC, 0); +} + +vec4 getDepth(in sampler2DMS tex,in vec2 texC){ + return textureFetch(tex,texC,m_NumSamplesDepth); +} +#endif + +vec4 fetchTextureSample(in sampler2D tex,in vec2 texC,in int sample){ + return texture2D(tex,texC); +} + +vec4 getColor(in sampler2D tex, in vec2 texC){ + return texture2D(tex,texC); +} + +vec4 getColorSingle(in sampler2D tex, in vec2 texC){ + return texture2D(tex, texC); +} + +vec4 getDepth(in sampler2D tex,in vec2 texC){ + return texture2D(tex,texC); } \ No newline at end of file