summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
author Mathias Agopian <mathias@google.com> 2009-08-12 21:24:53 -0700
committer Mathias Agopian <mathias@google.com> 2009-08-12 21:24:53 -0700
commit8458a3140f51275d6b78b5879f942163c0d618e2 (patch)
treef392a5f457572aef8b4626d722210aa016fc3a37 /libs
parent24e5f5290195e1c02c18730d0639efda65d64914 (diff)
make sure EGL_ANDROID_swap_rectangle is actually supported before using it
Diffstat (limited to 'libs')
-rw-r--r--libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp b/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
index ecd1202d2b..3f607f6dbb 100644
--- a/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
+++ b/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
@@ -166,9 +166,17 @@ void DisplayHardware::init(uint32_t dpy)
}
}
+ eglQuerySurface(display, surface, EGL_WIDTH, &mWidth);
+ eglQuerySurface(display, surface, EGL_HEIGHT, &mHeight);
+
#ifdef EGL_ANDROID_swap_rectangle
if (strstr(egl_extensions, "EGL_ANDROID_swap_rectangle")) {
- mFlags |= SWAP_RECTANGLE;
+ if (eglSetSwapRectangleANDROID(display, surface,
+ 0, 0, mWidth, mHeight) == EGL_TRUE) {
+ // This could fail if this extension is not supported by this
+ // specific surface (of config)
+ mFlags |= SWAP_RECTANGLE;
+ }
}
// when we have the choice between UPDATE_ON_DEMAND and SWAP_RECTANGLE
// choose UPDATE_ON_DEMAND, which is more efficient
@@ -177,6 +185,8 @@ void DisplayHardware::init(uint32_t dpy)
#endif
+ LOGI("flags : %08x", mFlags);
+
mDpiX = mNativeWindow->xdpi;
mDpiY = mNativeWindow->ydpi;
mRefreshRate = fbDev->fps;
@@ -204,9 +214,6 @@ void DisplayHardware::init(uint32_t dpy)
context = eglCreateContext(display, config, NULL, NULL);
//checkEGLErrors("eglCreateContext");
- eglQuerySurface(display, surface, EGL_WIDTH, &mWidth);
- eglQuerySurface(display, surface, EGL_HEIGHT, &mHeight);
-
/*
* Gather OpenGL ES extensions