summaryrefslogtreecommitdiff
path: root/libs/hwui/LayerRenderer.cpp
diff options
context:
space:
mode:
author John Reck <jreck@google.com> 2016-01-20 11:09:53 -0800
committer John Reck <jreck@google.com> 2016-01-20 13:16:24 -0800
commit2de7771740ee08fcaff638ec6b2e460bb72fff04 (patch)
treef175efd66cc7f81481bb61f398c3ef2041f72919 /libs/hwui/LayerRenderer.cpp
parent8020313d05f22dc1f8a7a182e6da134db17761ec (diff)
Normalize GL_UNPACK_ALIGNMENT
Several places were setting GL_UNPACK_ALIGNMENT unneccessarily, whereas other places were assuming an unpack alignment of 1. Since we never actually do explicit row-alignment, set GL_UNPACK_ALIGNMENT to 1 at context creation time and never change it Bug: 26584230 Also turns on aggressive glGetError checking to better catch potential problem zones Change-Id: I190c8f0f0494a7f046d5ed769405c75d363be59a
Diffstat (limited to 'libs/hwui/LayerRenderer.cpp')
-rw-r--r--libs/hwui/LayerRenderer.cpp18
1 files changed, 5 insertions, 13 deletions
diff --git a/libs/hwui/LayerRenderer.cpp b/libs/hwui/LayerRenderer.cpp
index 0cf643fb686e..0f219e4792f6 100644
--- a/libs/hwui/LayerRenderer.cpp
+++ b/libs/hwui/LayerRenderer.cpp
@@ -373,7 +373,6 @@ bool LayerRenderer::copyLayer(RenderState& renderState, Layer* layer, SkBitmap*
GLenum format;
GLenum type;
- GLenum error = GL_NO_ERROR;
bool status = false;
switch (bitmap->colorType()) {
@@ -408,7 +407,7 @@ bool LayerRenderer::copyLayer(RenderState& renderState, Layer* layer, SkBitmap*
renderState.bindFramebuffer(fbo);
glGenTextures(1, &texture);
- if ((error = glGetError()) != GL_NO_ERROR) goto error;
+ GL_CHECKPOINT();
caches.textureState().activateTexture(0);
caches.textureState().bindTexture(texture);
@@ -423,11 +422,11 @@ bool LayerRenderer::copyLayer(RenderState& renderState, Layer* layer, SkBitmap*
glTexImage2D(GL_TEXTURE_2D, 0, format, bitmap->width(), bitmap->height(),
0, format, type, nullptr);
- if ((error = glGetError()) != GL_NO_ERROR) goto error;
+ GL_CHECKPOINT();
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
GL_TEXTURE_2D, texture, 0);
- if ((error = glGetError()) != GL_NO_ERROR) goto error;
+ GL_CHECKPOINT();
{
LayerRenderer renderer(renderState, layer);
@@ -438,7 +437,7 @@ bool LayerRenderer::copyLayer(RenderState& renderState, Layer* layer, SkBitmap*
renderer.translate(0.0f, bitmap->height());
renderer.scale(1.0f, -1.0f);
- if ((error = glGetError()) != GL_NO_ERROR) goto error;
+ GL_CHECKPOINT();
{
Rect bounds;
@@ -448,19 +447,12 @@ bool LayerRenderer::copyLayer(RenderState& renderState, Layer* layer, SkBitmap*
glReadPixels(0, 0, bitmap->width(), bitmap->height(), format,
type, bitmap->getPixels());
- if ((error = glGetError()) != GL_NO_ERROR) goto error;
+ GL_CHECKPOINT();
}
status = true;
}
-error:
-#if DEBUG_OPENGL
- if (error != GL_NO_ERROR) {
- ALOGD("GL error while copying layer into bitmap = 0x%x", error);
- }
-#endif
-
renderState.bindFramebuffer(previousFbo);
layer->setAlpha(alpha, mode);
layer->setFbo(previousLayerFbo);