summaryrefslogtreecommitdiffstats
path: root/services/surfaceflinger/Layer.cpp
diff options
context:
space:
mode:
authorMathias Agopian <mathias@google.com>2011-10-18 20:24:21 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2011-10-18 20:24:21 -0700
commit43d109c2c8a278c4d2a316d70a929f961837da8f (patch)
tree8943d9713544a130157817b742325862b8c7b3ec /services/surfaceflinger/Layer.cpp
parenta6f4fb1fbbaf6cb13ad6b813a4cecbc28ba02776 (diff)
parent23bf250522b7dff9acd14c5900b66b1df9c76745 (diff)
downloadframeworks_base-43d109c2c8a278c4d2a316d70a929f961837da8f.zip
frameworks_base-43d109c2c8a278c4d2a316d70a929f961837da8f.tar.gz
frameworks_base-43d109c2c8a278c4d2a316d70a929f961837da8f.tar.bz2
am 23bf2505: Merge "Make sure set GL state properly" into ics-mr0
* commit '23bf250522b7dff9acd14c5900b66b1df9c76745': Make sure set GL state properly
Diffstat (limited to 'services/surfaceflinger/Layer.cpp')
-rw-r--r--services/surfaceflinger/Layer.cpp24
1 files changed, 12 insertions, 12 deletions
diff --git a/services/surfaceflinger/Layer.cpp b/services/surfaceflinger/Layer.cpp
index b695903..944ac14 100644
--- a/services/surfaceflinger/Layer.cpp
+++ b/services/surfaceflinger/Layer.cpp
@@ -280,33 +280,33 @@ void Layer::onDraw(const Region& clip) const
return;
}
- GLenum target = GL_TEXTURE_EXTERNAL_OES;
if (!isProtected()) {
- glBindTexture(target, mTextureName);
+ glBindTexture(GL_TEXTURE_EXTERNAL_OES, mTextureName);
+ GLenum filter = GL_NEAREST;
if (getFiltering() || needsFiltering() || isFixedSize() || isCropped()) {
// TODO: we could be more subtle with isFixedSize()
- glTexParameterx(target, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- glTexParameterx(target, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- } else {
- glTexParameterx(target, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- glTexParameterx(target, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ filter = GL_LINEAR;
}
- glEnable(target);
+ glTexParameterx(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_MAG_FILTER, filter);
+ glTexParameterx(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_MIN_FILTER, filter);
glMatrixMode(GL_TEXTURE);
glLoadMatrixf(mTextureMatrix);
glMatrixMode(GL_MODELVIEW);
+ glEnable(GL_TEXTURE_EXTERNAL_OES);
+ glDisable(GL_TEXTURE_2D);
} else {
- target = GL_TEXTURE_2D;
- glBindTexture(target, mFlinger->getProtectedTexName());
- glEnable(target);
+ glBindTexture(GL_TEXTURE_2D, mFlinger->getProtectedTexName());
glMatrixMode(GL_TEXTURE);
glLoadIdentity();
glMatrixMode(GL_MODELVIEW);
+ glDisable(GL_TEXTURE_EXTERNAL_OES);
+ glEnable(GL_TEXTURE_2D);
}
drawWithOpenGL(clip);
- glDisable(target);
+ glDisable(GL_TEXTURE_EXTERNAL_OES);
+ glDisable(GL_TEXTURE_2D);
}
// As documented in libhardware header, formats in the range