Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 19ce655e authored by Lucas Dupin's avatar Lucas Dupin
Browse files

Apply display translation to blurred result

Test: on notched device, hide cutout, swipe down the shade
Fixes: 155130038
Change-Id: I216c77d2c6695c8faf8a0502f9d403a76403a2f6
parent eeff9de9
Loading
Loading
Loading
Loading
+4 −2
Original line number Original line Diff line number Diff line
@@ -68,6 +68,8 @@ BlurFilter::BlurFilter(GLESRenderEngine& engine)
status_t BlurFilter::setAsDrawTarget(const DisplaySettings& display, uint32_t radius) {
status_t BlurFilter::setAsDrawTarget(const DisplaySettings& display, uint32_t radius) {
    ATRACE_NAME("BlurFilter::setAsDrawTarget");
    ATRACE_NAME("BlurFilter::setAsDrawTarget");
    mRadius = radius;
    mRadius = radius;
    mDisplayX = display.physicalDisplay.left;
    mDisplayY = display.physicalDisplay.top;


    if (mDisplayWidth < display.physicalDisplay.width() ||
    if (mDisplayWidth < display.physicalDisplay.width() ||
        mDisplayHeight < display.physicalDisplay.height()) {
        mDisplayHeight < display.physicalDisplay.height()) {
@@ -182,8 +184,8 @@ status_t BlurFilter::render(bool multiPass) {
    if (mix >= 1 || multiPass) {
    if (mix >= 1 || multiPass) {
        mLastDrawTarget->bindAsReadBuffer();
        mLastDrawTarget->bindAsReadBuffer();
        glBlitFramebuffer(0, 0, mLastDrawTarget->getBufferWidth(),
        glBlitFramebuffer(0, 0, mLastDrawTarget->getBufferWidth(),
                          mLastDrawTarget->getBufferHeight(), 0, 0, mDisplayWidth, mDisplayHeight,
                          mLastDrawTarget->getBufferHeight(), mDisplayX, mDisplayY, mDisplayWidth,
                          GL_COLOR_BUFFER_BIT, GL_LINEAR);
                          mDisplayHeight, GL_COLOR_BUFFER_BIT, GL_LINEAR);
        return NO_ERROR;
        return NO_ERROR;
    }
    }


+2 −0
Original line number Original line Diff line number Diff line
@@ -68,6 +68,8 @@ private:
    GLFramebuffer mPongFbo;
    GLFramebuffer mPongFbo;
    uint32_t mDisplayWidth = 0;
    uint32_t mDisplayWidth = 0;
    uint32_t mDisplayHeight = 0;
    uint32_t mDisplayHeight = 0;
    uint32_t mDisplayX = 0;
    uint32_t mDisplayY = 0;
    // Buffer holding the final blur pass.
    // Buffer holding the final blur pass.
    GLFramebuffer* mLastDrawTarget;
    GLFramebuffer* mLastDrawTarget;