diff options
| author | 2020-04-30 14:45:23 -0700 | |
|---|---|---|
| committer | 2020-04-30 14:45:23 -0700 | |
| commit | 19ce655ecf577d2ebb8e0936eb1a987f27ce46ac (patch) | |
| tree | ba9696d9a4e289b4901e31ed7ce4e53ea4716b3c /libs | |
| parent | eeff9de91c28ff8ea69072260b9ed67444b969a1 (diff) | |
Apply display translation to blurred result
Test: on notched device, hide cutout, swipe down the shade
Fixes: 155130038
Change-Id: I216c77d2c6695c8faf8a0502f9d403a76403a2f6
Diffstat (limited to 'libs')
| -rw-r--r-- | libs/renderengine/gl/filters/BlurFilter.cpp | 6 | ||||
| -rw-r--r-- | libs/renderengine/gl/filters/BlurFilter.h | 2 |
2 files changed, 6 insertions, 2 deletions
diff --git a/libs/renderengine/gl/filters/BlurFilter.cpp b/libs/renderengine/gl/filters/BlurFilter.cpp index db55d17aec..19f18c0a7f 100644 --- a/libs/renderengine/gl/filters/BlurFilter.cpp +++ b/libs/renderengine/gl/filters/BlurFilter.cpp @@ -68,6 +68,8 @@ BlurFilter::BlurFilter(GLESRenderEngine& engine) status_t BlurFilter::setAsDrawTarget(const DisplaySettings& display, uint32_t radius) { ATRACE_NAME("BlurFilter::setAsDrawTarget"); mRadius = radius; + mDisplayX = display.physicalDisplay.left; + mDisplayY = display.physicalDisplay.top; if (mDisplayWidth < display.physicalDisplay.width() || mDisplayHeight < display.physicalDisplay.height()) { @@ -182,8 +184,8 @@ status_t BlurFilter::render(bool multiPass) { if (mix >= 1 || multiPass) { mLastDrawTarget->bindAsReadBuffer(); glBlitFramebuffer(0, 0, mLastDrawTarget->getBufferWidth(), - mLastDrawTarget->getBufferHeight(), 0, 0, mDisplayWidth, mDisplayHeight, - GL_COLOR_BUFFER_BIT, GL_LINEAR); + mLastDrawTarget->getBufferHeight(), mDisplayX, mDisplayY, mDisplayWidth, + mDisplayHeight, GL_COLOR_BUFFER_BIT, GL_LINEAR); return NO_ERROR; } diff --git a/libs/renderengine/gl/filters/BlurFilter.h b/libs/renderengine/gl/filters/BlurFilter.h index 9d3fc60e48..593a8fd54e 100644 --- a/libs/renderengine/gl/filters/BlurFilter.h +++ b/libs/renderengine/gl/filters/BlurFilter.h @@ -68,6 +68,8 @@ private: GLFramebuffer mPongFbo; uint32_t mDisplayWidth = 0; uint32_t mDisplayHeight = 0; + uint32_t mDisplayX = 0; + uint32_t mDisplayY = 0; // Buffer holding the final blur pass. GLFramebuffer* mLastDrawTarget; |