diff options
| -rw-r--r-- | libs/renderengine/gl/filters/KawaseBlurFilter.cpp | 18 | ||||
| -rw-r--r-- | libs/renderengine/gl/filters/KawaseBlurFilter.h | 2 |
2 files changed, 9 insertions, 11 deletions
diff --git a/libs/renderengine/gl/filters/KawaseBlurFilter.cpp b/libs/renderengine/gl/filters/KawaseBlurFilter.cpp index fc26bccc52..7524c6dfe2 100644 --- a/libs/renderengine/gl/filters/KawaseBlurFilter.cpp +++ b/libs/renderengine/gl/filters/KawaseBlurFilter.cpp @@ -106,21 +106,19 @@ string KawaseBlurFilter::getFragmentShader() const { precision mediump float; uniform sampler2D uTexture; - highp uniform vec2 uOffset; + uniform vec2 uOffset; highp in vec2 vUV; out vec4 fragColor; - vec4 kawaseBlur() { - return (texture(uTexture, vec2(-1.0, 1.0) * uOffset + vUV, 0.0) - + texture(uTexture, uOffset + vUV, 0.0) - + texture(uTexture, vec2(1.0, -1.0) * uOffset + vUV, 0.0) - + texture(uTexture, vec2(-1.0) * uOffset + vUV, 0.0)) - * 0.25; - } - void main() { - fragColor = kawaseBlur(); + fragColor = texture(uTexture, vUV, 0.0); + fragColor += texture(uTexture, vUV + vec2( uOffset.x, uOffset.y), 0.0); + fragColor += texture(uTexture, vUV + vec2( uOffset.x, -uOffset.y), 0.0); + fragColor += texture(uTexture, vUV + vec2(-uOffset.x, uOffset.y), 0.0); + fragColor += texture(uTexture, vUV + vec2(-uOffset.x, -uOffset.y), 0.0); + + fragColor = vec4(fragColor.rgb * 0.2, 1.0); } )SHADER"; } diff --git a/libs/renderengine/gl/filters/KawaseBlurFilter.h b/libs/renderengine/gl/filters/KawaseBlurFilter.h index ec81f81229..20009cf9bb 100644 --- a/libs/renderengine/gl/filters/KawaseBlurFilter.h +++ b/libs/renderengine/gl/filters/KawaseBlurFilter.h @@ -30,7 +30,7 @@ namespace gl { class KawaseBlurFilter : public BlurFilter { public: - static constexpr uint32_t kMaxPasses = 8; + static constexpr uint32_t kMaxPasses = 6; explicit KawaseBlurFilter(GLESRenderEngine& engine); status_t prepare() override; |