Loading libs/renderengine/Android.bp +1 −1 Original line number Diff line number Diff line Loading @@ -59,7 +59,7 @@ filegroup { "gl/Program.cpp", "gl/ProgramCache.cpp", "gl/filters/BlurFilter.cpp", "gl/filters/LensBlurFilter.cpp", "gl/filters/KawaseBlurFilter.cpp", "gl/filters/GaussianBlurFilter.cpp", "gl/filters/GenericProgram.cpp", ], Loading libs/renderengine/gl/GLESRenderEngine.cpp +6 −3 Original line number Diff line number Diff line Loading @@ -51,7 +51,7 @@ #include "ProgramCache.h" #include "filters/BlurFilter.h" #include "filters/GaussianBlurFilter.h" #include "filters/LensBlurFilter.h" #include "filters/KawaseBlurFilter.h" extern "C" EGLAPI const char* eglQueryStringImplementationANDROID(EGLDisplay dpy, EGLint name); Loading Loading @@ -285,6 +285,9 @@ std::unique_ptr<GLESRenderEngine> GLESRenderEngine::create(const RenderEngineCre // now figure out what version of GL did we actually get GlesVersion version = parseGlesVersion(extensions.getVersion()); LOG_ALWAYS_FATAL_IF(args.supportsBackgroundBlur && version < GLES_VERSION_3_0, "Blurs require OpenGL ES 3.0. Please unset ro.surface_flinger.supports_background_blur"); // initialize the renderer while GL is current std::unique_ptr<GLESRenderEngine> engine; switch (version) { Loading Loading @@ -428,11 +431,11 @@ GLESRenderEngine::GLESRenderEngine(const RenderEngineCreationArgs& args, EGLDisp if (args.supportsBackgroundBlur) { char isGaussian[PROPERTY_VALUE_MAX]; property_get("debug.sf.gaussianBlur", isGaussian, "1"); property_get("debug.sf.gaussianBlur", isGaussian, "0"); if (atoi(isGaussian)) { mBlurFilter = new GaussianBlurFilter(*this); } else { mBlurFilter = new LensBlurFilter(*this); mBlurFilter = new KawaseBlurFilter(*this); } checkErrors("BlurFilter creation"); } Loading libs/renderengine/gl/GLESRenderEngine.h +1 −1 Original line number Diff line number Diff line Loading @@ -262,7 +262,7 @@ private: friend class GLFramebuffer; friend class BlurFilter; friend class GaussianBlurFilter; friend class LensBlurFilter; friend class KawaseBlurFilter; friend class GenericProgram; std::unique_ptr<FlushTracer> mFlushTracer; std::unique_ptr<ImageManager> mImageManager = std::make_unique<ImageManager>(this); Loading libs/renderengine/gl/filters/BlurFilter.cpp +13 −3 Original line number Diff line number Diff line Loading @@ -71,8 +71,18 @@ status_t BlurFilter::setAsDrawTarget(const DisplaySettings& display, uint32_t ra } void BlurFilter::drawMesh(GLuint uv, GLuint position) { GLfloat positions[] = {-1.0f, -1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, -1.0f}; GLfloat texCoords[] = {0.0, 0.0, 0.0, 1.0f, 1.0f, 1.0f, 1.0f, 0}; static constexpr auto size = 2.0f; static constexpr auto translation = 1.0f; GLfloat positions[] = { translation-size, -translation-size, translation-size, -translation+size, translation+size, -translation+size }; GLfloat texCoords[] = { 0.0f, 0.0f-translation, 0.0f, size-translation, size, size-translation }; // set attributes glEnableVertexAttribArray(uv); Loading @@ -82,7 +92,7 @@ void BlurFilter::drawMesh(GLuint uv, GLuint position) { positions); // draw mesh glDrawArrays(GL_TRIANGLE_FAN, 0 /* first */, 4 /* count */); glDrawArrays(GL_TRIANGLES, 0 /* first */, 3 /* count */); mEngine.checkErrors("Drawing blur mesh"); } Loading libs/renderengine/gl/filters/BlurFilter.h +1 −1 Original line number Diff line number Diff line Loading @@ -33,7 +33,7 @@ public: static constexpr float kFboScale = 0.25f; // To avoid downscaling artifacts, we interpolate the blurred fbo with the full composited // image, up to this radius. static constexpr float kMaxCrossFadeRadius = 15.0f; static constexpr float kMaxCrossFadeRadius = 30.0f; explicit BlurFilter(GLESRenderEngine& engine); virtual ~BlurFilter(){}; Loading Loading
libs/renderengine/Android.bp +1 −1 Original line number Diff line number Diff line Loading @@ -59,7 +59,7 @@ filegroup { "gl/Program.cpp", "gl/ProgramCache.cpp", "gl/filters/BlurFilter.cpp", "gl/filters/LensBlurFilter.cpp", "gl/filters/KawaseBlurFilter.cpp", "gl/filters/GaussianBlurFilter.cpp", "gl/filters/GenericProgram.cpp", ], Loading
libs/renderengine/gl/GLESRenderEngine.cpp +6 −3 Original line number Diff line number Diff line Loading @@ -51,7 +51,7 @@ #include "ProgramCache.h" #include "filters/BlurFilter.h" #include "filters/GaussianBlurFilter.h" #include "filters/LensBlurFilter.h" #include "filters/KawaseBlurFilter.h" extern "C" EGLAPI const char* eglQueryStringImplementationANDROID(EGLDisplay dpy, EGLint name); Loading Loading @@ -285,6 +285,9 @@ std::unique_ptr<GLESRenderEngine> GLESRenderEngine::create(const RenderEngineCre // now figure out what version of GL did we actually get GlesVersion version = parseGlesVersion(extensions.getVersion()); LOG_ALWAYS_FATAL_IF(args.supportsBackgroundBlur && version < GLES_VERSION_3_0, "Blurs require OpenGL ES 3.0. Please unset ro.surface_flinger.supports_background_blur"); // initialize the renderer while GL is current std::unique_ptr<GLESRenderEngine> engine; switch (version) { Loading Loading @@ -428,11 +431,11 @@ GLESRenderEngine::GLESRenderEngine(const RenderEngineCreationArgs& args, EGLDisp if (args.supportsBackgroundBlur) { char isGaussian[PROPERTY_VALUE_MAX]; property_get("debug.sf.gaussianBlur", isGaussian, "1"); property_get("debug.sf.gaussianBlur", isGaussian, "0"); if (atoi(isGaussian)) { mBlurFilter = new GaussianBlurFilter(*this); } else { mBlurFilter = new LensBlurFilter(*this); mBlurFilter = new KawaseBlurFilter(*this); } checkErrors("BlurFilter creation"); } Loading
libs/renderengine/gl/GLESRenderEngine.h +1 −1 Original line number Diff line number Diff line Loading @@ -262,7 +262,7 @@ private: friend class GLFramebuffer; friend class BlurFilter; friend class GaussianBlurFilter; friend class LensBlurFilter; friend class KawaseBlurFilter; friend class GenericProgram; std::unique_ptr<FlushTracer> mFlushTracer; std::unique_ptr<ImageManager> mImageManager = std::make_unique<ImageManager>(this); Loading
libs/renderengine/gl/filters/BlurFilter.cpp +13 −3 Original line number Diff line number Diff line Loading @@ -71,8 +71,18 @@ status_t BlurFilter::setAsDrawTarget(const DisplaySettings& display, uint32_t ra } void BlurFilter::drawMesh(GLuint uv, GLuint position) { GLfloat positions[] = {-1.0f, -1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, -1.0f}; GLfloat texCoords[] = {0.0, 0.0, 0.0, 1.0f, 1.0f, 1.0f, 1.0f, 0}; static constexpr auto size = 2.0f; static constexpr auto translation = 1.0f; GLfloat positions[] = { translation-size, -translation-size, translation-size, -translation+size, translation+size, -translation+size }; GLfloat texCoords[] = { 0.0f, 0.0f-translation, 0.0f, size-translation, size, size-translation }; // set attributes glEnableVertexAttribArray(uv); Loading @@ -82,7 +92,7 @@ void BlurFilter::drawMesh(GLuint uv, GLuint position) { positions); // draw mesh glDrawArrays(GL_TRIANGLE_FAN, 0 /* first */, 4 /* count */); glDrawArrays(GL_TRIANGLES, 0 /* first */, 3 /* count */); mEngine.checkErrors("Drawing blur mesh"); } Loading
libs/renderengine/gl/filters/BlurFilter.h +1 −1 Original line number Diff line number Diff line Loading @@ -33,7 +33,7 @@ public: static constexpr float kFboScale = 0.25f; // To avoid downscaling artifacts, we interpolate the blurred fbo with the full composited // image, up to this radius. static constexpr float kMaxCrossFadeRadius = 15.0f; static constexpr float kMaxCrossFadeRadius = 30.0f; explicit BlurFilter(GLESRenderEngine& engine); virtual ~BlurFilter(){}; Loading