diff options
| author | Mathias Agopian <mathias@google.com> | 2011-10-18 20:24:21 -0700 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2011-10-18 20:24:21 -0700 |
| commit | 43d109c2c8a278c4d2a316d70a929f961837da8f (patch) | |
| tree | 8943d9713544a130157817b742325862b8c7b3ec /services/surfaceflinger/Layer.cpp | |
| parent | a6f4fb1fbbaf6cb13ad6b813a4cecbc28ba02776 (diff) | |
| parent | 23bf250522b7dff9acd14c5900b66b1df9c76745 (diff) | |
| download | frameworks_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.cpp | 24 |
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 |
