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