summaryrefslogtreecommitdiffstats
path: root/opengl/libs
diff options
context:
space:
mode:
authorJack Palevich <>2009-03-25 15:12:17 -0700
committerThe Android Open Source Project <initial-contribution@android.com>2009-03-25 15:12:17 -0700
commit749c63dbff0ab66223f30af1bad4ca56bd26d5d2 (patch)
tree961fe759b2b114b3cd32b51741ac82298550d4bf /opengl/libs
parent7c143aab44b562eb917ca57ed7c1eb584591b7e2 (diff)
downloadframeworks_native-749c63dbff0ab66223f30af1bad4ca56bd26d5d2.tar.gz
frameworks_native-749c63dbff0ab66223f30af1bad4ca56bd26d5d2.tar.bz2
frameworks_native-749c63dbff0ab66223f30af1bad4ca56bd26d5d2.zip
Automated import from //branches/master/...@142578,142578
Diffstat (limited to 'opengl/libs')
-rw-r--r--opengl/libs/EGL/egl.cpp35
1 files changed, 20 insertions, 15 deletions
diff --git a/opengl/libs/EGL/egl.cpp b/opengl/libs/EGL/egl.cpp
index 687c8bc1f..0b4bcce9e 100644
--- a/opengl/libs/EGL/egl.cpp
+++ b/opengl/libs/EGL/egl.cpp
@@ -725,9 +725,8 @@ EGLBoolean eglChooseConfig( EGLDisplay dpy, const EGLint *attrib_list,
egl_display_t const * const dp = get_display(dpy);
if (!dp) return setError(EGL_BAD_DISPLAY, EGL_FALSE);
- if (configs == 0) {
- *num_config = 0;
- return EGL_TRUE;
+ if (num_config==0) {
+ return setError(EGL_BAD_PARAMETER, EGL_FALSE);
}
EGLint n;
@@ -784,7 +783,9 @@ EGLBoolean eglChooseConfig( EGLDisplay dpy, const EGLint *attrib_list,
if (res && n>0) {
// n has to be 0 or 1, by construction, and we already know
// which config it will return (since there can be only one).
- configs[0] = MAKE_CONFIG(i, index);
+ if (configs) {
+ configs[0] = MAKE_CONFIG(i, index);
+ }
*num_config = 1;
}
}
@@ -798,19 +799,23 @@ EGLBoolean eglChooseConfig( EGLDisplay dpy, const EGLint *attrib_list,
if (cnx->dso) {
if (cnx->hooks->egl.eglChooseConfig(
dp->dpys[i], attrib_list, configs, config_size, &n)) {
- // now we need to convert these client EGLConfig to our
- // internal EGLConfig format. This is done in O(n log n).
- for (int j=0 ; j<n ; j++) {
- int index = binarySearch<EGLConfig>(
- dp->configs[i], 0, dp->numConfigs[i]-1, configs[j]);
- if (index >= 0) {
- configs[j] = MAKE_CONFIG(i, index);
- } else {
- return setError(EGL_BAD_CONFIG, EGL_FALSE);
+ if (configs) {
+ // now we need to convert these client EGLConfig to our
+ // internal EGLConfig format. This is done in O(n log n).
+ for (int j=0 ; j<n ; j++) {
+ int index = binarySearch<EGLConfig>(
+ dp->configs[i], 0, dp->numConfigs[i]-1, configs[j]);
+ if (index >= 0) {
+ if (configs) {
+ configs[j] = MAKE_CONFIG(i, index);
+ }
+ } else {
+ return setError(EGL_BAD_CONFIG, EGL_FALSE);
+ }
}
+ configs += n;
+ config_size -= n;
}
- configs += n;
- config_size -= n;
*num_config += n;
res = EGL_TRUE;
}