Revert "Delete HWC1"
This reverts commit 90f923493fa053655a203c34ea491086aeb07602.
Change-Id: If9da49e3bc85f8ff21ac1bd22a6bab97e9aa3103
diff --git a/services/surfaceflinger/RenderEngine/GLES11RenderEngine.cpp b/services/surfaceflinger/RenderEngine/GLES11RenderEngine.cpp
index a6d66f7..847cdb3 100644
--- a/services/surfaceflinger/RenderEngine/GLES11RenderEngine.cpp
+++ b/services/surfaceflinger/RenderEngine/GLES11RenderEngine.cpp
@@ -107,20 +107,33 @@
glMatrixMode(GL_MODELVIEW);
}
+#ifdef USE_HWC2
void GLES11RenderEngine::setupLayerBlending(bool premultipliedAlpha,
bool opaque, float alpha) {
+#else
+void GLES11RenderEngine::setupLayerBlending(
+ bool premultipliedAlpha, bool opaque, int alpha) {
+#endif
GLenum combineRGB;
GLenum combineAlpha;
GLenum src0Alpha;
GLfloat envColor[4];
+#ifdef USE_HWC2
if (CC_UNLIKELY(alpha < 1.0f)) {
+#else
+ if (CC_UNLIKELY(alpha < 0xFF)) {
+#endif
// Cv = premultiplied ? Cs*alpha : Cs
// Av = !opaque ? As*alpha : As
combineRGB = premultipliedAlpha ? GL_MODULATE : GL_REPLACE;
combineAlpha = !opaque ? GL_MODULATE : GL_REPLACE;
src0Alpha = GL_CONSTANT;
+#ifdef USE_HWC2
envColor[0] = alpha;
+#else
+ envColor[0] = alpha * (1.0f / 255.0f);
+#endif
} else {
// Cv = Cs
// Av = opaque ? 1.0 : As
@@ -152,7 +165,11 @@
glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, envColor);
}
+#ifdef USE_HWC2
if (alpha < 1.0f || !opaque) {
+#else
+ if (alpha < 0xFF || !opaque) {
+#endif
glEnable(GL_BLEND);
glBlendFunc(premultipliedAlpha ? GL_ONE : GL_SRC_ALPHA,
GL_ONE_MINUS_SRC_ALPHA);
@@ -161,16 +178,28 @@
}
}
+#ifdef USE_HWC2
void GLES11RenderEngine::setupDimLayerBlending(float alpha) {
+#else
+void GLES11RenderEngine::setupDimLayerBlending(int alpha) {
+#endif
glDisable(GL_TEXTURE_EXTERNAL_OES);
glDisable(GL_TEXTURE_2D);
+#ifdef USE_HWC2
if (alpha == 1.0f) {
+#else
+ if (alpha == 0xFF) {
+#endif
glDisable(GL_BLEND);
} else {
glEnable(GL_BLEND);
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
}
+#ifdef USE_HWC2
glColor4f(0, 0, 0, alpha);
+#else
+ glColor4f(0, 0, 0, alpha/255.0f);
+#endif
}
void GLES11RenderEngine::setupLayerTexturing(const Texture& texture) {