diff options
| author | Romain Guy <romainguy@google.com> | 2010-08-11 19:38:40 -0700 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-08-11 19:38:40 -0700 |
| commit | 831cffa572a9228e95528c4a1f6ada7f45f5d2fb (patch) | |
| tree | 5db84708f3fd6ed7b8f0bb92f9153425da6806bc /core | |
| parent | 949dbf7629eacfa02f267ade4643c98aef8e42a9 (diff) | |
| parent | 959c91f7f7b4f921d341264f5b4ef54e702a0df0 (diff) | |
| download | frameworks_base-831cffa572a9228e95528c4a1f6ada7f45f5d2fb.zip frameworks_base-831cffa572a9228e95528c4a1f6ada7f45f5d2fb.tar.gz frameworks_base-831cffa572a9228e95528c4a1f6ada7f45f5d2fb.tar.bz2 | |
Merge "Bunch of fixes."
Diffstat (limited to 'core')
| -rw-r--r-- | core/java/android/view/HardwareRenderer.java | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/core/java/android/view/HardwareRenderer.java b/core/java/android/view/HardwareRenderer.java index cd6b820..44bd6d4 100644 --- a/core/java/android/view/HardwareRenderer.java +++ b/core/java/android/view/HardwareRenderer.java @@ -300,7 +300,6 @@ public abstract class HardwareRenderer { */ if (!mEgl.eglMakeCurrent(mEglDisplay, mEglSurface, mEglSurface, mEglContext)) { throw new RuntimeException("eglMakeCurrent failed"); - } return mEglContext.getGL(); @@ -374,6 +373,15 @@ public abstract class HardwareRenderer { attachInfo.mIgnoreDirtyState = true; view.mPrivateFlags |= View.DRAWN; + // TODO: Don't check the current context when we have one per UI thread + // TODO: Use a threadlocal flag to know whether the surface has changed + if (mEgl.eglGetCurrentContext() != mEglContext || + mEgl.eglGetCurrentSurface(EGL10.EGL_DRAW) != mEglSurface) { + if (!mEgl.eglMakeCurrent(mEglDisplay, mEglSurface, mEglSurface, mEglContext)) { + throw new RuntimeException("eglMakeCurrent failed"); + } + } + onPreDraw(); Canvas canvas = mCanvas; |
