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

Commit a50c5ecf authored by Prabhanjan Kandula's avatar Prabhanjan Kandula Committed by Steve Kondik
Browse files

frameworks/base: surfaceflinger: Enable dither if needed

SF is checking if dithering is required but not enabling it.
Enable for layer drawing and  also for screenshot for 16bpp
framebuffer only.

CRs-fixed: 333721
(cherry picked from commit 85c02ed97b4a1d0cc343a452959570b379928d59)

Change-Id: I599fe5b9683db208c8b32a1d3d395d5203f78fd3
parent 197687a7
Loading
Loading
Loading
Loading
+9 −0
Original line number Original line Diff line number Diff line
@@ -373,6 +373,10 @@ void Layer::onDraw(const Region& clip) const
    }
    }


#ifdef QCOM_HARDWARE
#ifdef QCOM_HARDWARE
    if(needsDithering()) {
        glEnable(GL_DITHER);
    }

    int composeS3DFormat = mQCLayer->needsS3DCompose();
    int composeS3DFormat = mQCLayer->needsS3DCompose();
    if (composeS3DFormat)
    if (composeS3DFormat)
        drawS3DUIWithOpenGL(clip);
        drawS3DUIWithOpenGL(clip);
@@ -384,6 +388,11 @@ void Layer::onDraw(const Region& clip) const


    glDisable(GL_TEXTURE_EXTERNAL_OES);
    glDisable(GL_TEXTURE_EXTERNAL_OES);
    glDisable(GL_TEXTURE_2D);
    glDisable(GL_TEXTURE_2D);
#ifdef QCOM_HARDWARE
    if(needsDithering()) {
        glDisable(GL_DITHER);
    }
#endif
}
}


// As documented in libhardware header, formats in the range
// As documented in libhardware header, formats in the range
+10 −0
Original line number Original line Diff line number Diff line
@@ -124,6 +124,11 @@ void LayerScreenshot::onDraw(const Region& clip) const
        }
        }


        glColor4f(0, 0, 0, alpha);
        glColor4f(0, 0, 0, alpha);
#ifdef QCOM_HARDWARE
        if(hw.getFormat() == PIXEL_FORMAT_RGB_565) {
            glEnable(GL_DITHER);
        }
#endif


        glDisable(GL_TEXTURE_EXTERNAL_OES);
        glDisable(GL_TEXTURE_EXTERNAL_OES);
        glEnable(GL_TEXTURE_2D);
        glEnable(GL_TEXTURE_2D);
@@ -148,6 +153,11 @@ void LayerScreenshot::onDraw(const Region& clip) const
        glDisable(GL_BLEND);
        glDisable(GL_BLEND);
        glDisable(GL_TEXTURE_2D);
        glDisable(GL_TEXTURE_2D);
        glDisableClientState(GL_TEXTURE_COORD_ARRAY);
        glDisableClientState(GL_TEXTURE_COORD_ARRAY);
#ifdef QCOM_HARDWARE
        if(hw.getFormat() == PIXEL_FORMAT_RGB_565) {
            glDisable(GL_DITHER);
        }
#endif
    }
    }
}
}