1#version 460 core 2#extension GL_ARB_separate_shader_objects : enable 3#extension GL_ARB_shading_language_420pack : enable 4 5// specialization 6 7// includes 8#include "render/shaders/common/render_compatibility_common.h" 9#include "render/shaders/common/render_blur_common.h" 10 11// sets 12 13#include "render/shaders/common/render_post_process_layout_common.h" 14 15layout(set = 1, binding = 0) uniform sampler uSampler; 16layout(set = 1, binding = 1) uniform texture2D uTex; 17 18// in / out 19 20layout(location = 0) in vec2 inUv; 21 22layout(location = 0) out vec4 outColor; 23 24void main(void) 25{ 26 if (CORE_POST_PROCESS_FLAGS == CORE_BLUR_TYPE_R) { 27 outColor.r = 28 GaussianBlurR(uTex, uSampler, gl_FragCoord.xy, inUv.xy, uPc.factor.xy, uPc.viewportSizeInvSize.zw).r; 29 } else if (CORE_POST_PROCESS_FLAGS == CORE_BLUR_TYPE_RG) { 30 outColor.rg = 31 GaussianBlurRG(uTex, uSampler, gl_FragCoord.xy, inUv.xy, uPc.factor.xy, uPc.viewportSizeInvSize.zw).rg; 32 } else if (CORE_POST_PROCESS_FLAGS == CORE_BLUR_TYPE_RGB) { 33 outColor.rgb = 34 GaussianBlurRGB(uTex, uSampler, gl_FragCoord.xy, inUv.xy, uPc.factor.xy, uPc.viewportSizeInvSize.zw).rgb; 35 } else if (CORE_POST_PROCESS_FLAGS == CORE_BLUR_TYPE_A) { 36 outColor.r = 37 GaussianBlurA(uTex, uSampler, gl_FragCoord.xy, inUv.xy, uPc.factor.xy, uPc.viewportSizeInvSize.zw).r; 38 } else if (CORE_POST_PROCESS_FLAGS == CORE_BLUR_TYPE_SOFT_DOWNSCALE_RGB) { 39 // dir not used 40 outColor.rgb = 41 SoftDownscaleRGB(uTex, uSampler, gl_FragCoord.xy, inUv.xy, uPc.factor.xy, uPc.viewportSizeInvSize.zw).rgb; 42 } else if (CORE_POST_PROCESS_FLAGS == CORE_BLUR_TYPE_DOWNSCALE_RGBA) { 43 // dir not used 44 outColor.rgba = 45 DownscaleRGBA(uTex, uSampler, gl_FragCoord.xy, inUv.xy, uPc.factor.xy, uPc.viewportSizeInvSize.zw).rgba; 46 } else if (CORE_POST_PROCESS_FLAGS == CORE_BLUR_TYPE_DOWNSCALE_RGBA_DOF) { 47 // dir not used 48 outColor.rgba = 49 DownscaleRGBADof(uTex, uSampler, gl_FragCoord.xy, inUv.xy, uPc.factor.xy, uPc.viewportSizeInvSize.zw).rgba; 50 } else if (CORE_POST_PROCESS_FLAGS == CORE_BLUR_TYPE_RGBA) { 51 outColor.rgba = 52 GaussianBlurRGBA(uTex, uSampler, gl_FragCoord.xy, inUv.xy, uPc.factor.xy, uPc.viewportSizeInvSize.zw).rgba; 53 } else if (CORE_POST_PROCESS_FLAGS == CORE_BLUR_TYPE_RGBA_DOF) { 54 // dir not used 55 outColor.rgba = 56 DownscaleRGBADof(uTex, uSampler, gl_FragCoord.xy, inUv.xy, uPc.factor.xy, uPc.viewportSizeInvSize.zw).rgba; 57 } 58} 59