diff options
| author | Mathias Agopian <mathias@google.com> | 2009-08-07 16:38:10 -0700 |
|---|---|---|
| committer | Mathias Agopian <mathias@google.com> | 2009-08-07 16:38:10 -0700 |
| commit | 9ca4dd6011e30cbb3bc40cf0bba7d11362b8bc38 (patch) | |
| tree | 99f450ba9637fdaa1a52d3b5a09a4d8d9bd42d5a /opengl/tests/swapinterval | |
| parent | 509dae53c54437eebd5291226e76c5456646f560 (diff) | |
| download | frameworks_base-9ca4dd6011e30cbb3bc40cf0bba7d11362b8bc38.zip frameworks_base-9ca4dd6011e30cbb3bc40cf0bba7d11362b8bc38.tar.gz frameworks_base-9ca4dd6011e30cbb3bc40cf0bba7d11362b8bc38.tar.bz2 | |
minor code clean-up
Diffstat (limited to 'opengl/tests/swapinterval')
| -rw-r--r-- | opengl/tests/swapinterval/swapinterval.cpp | 186 |
1 files changed, 101 insertions, 85 deletions
diff --git a/opengl/tests/swapinterval/swapinterval.cpp b/opengl/tests/swapinterval/swapinterval.cpp index cf908a0..80a6c21 100644 --- a/opengl/tests/swapinterval/swapinterval.cpp +++ b/opengl/tests/swapinterval/swapinterval.cpp @@ -1,21 +1,19 @@ /* -** -** Copyright 2006, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ - -#define LOG_TAG "fillrate" + ** + ** Copyright 2006, The Android Open Source Project + ** + ** Licensed under the Apache License, Version 2.0 (the "License"); + ** you may not use this file except in compliance with the License. + ** You may obtain a copy of the License at + ** + ** http://www.apache.org/licenses/LICENSE-2.0 + ** + ** Unless required by applicable law or agreed to in writing, software + ** distributed under the License is distributed on an "AS IS" BASIS, + ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ** See the License for the specific language governing permissions and + ** limitations under the License. + */ #include <stdlib.h> #include <stdio.h> @@ -33,72 +31,90 @@ using namespace android; int main(int argc, char** argv) { EGLint configAttribs[] = { - EGL_DEPTH_SIZE, 0, - EGL_NONE - }; - - EGLint majorVersion; - EGLint minorVersion; - EGLContext context; - EGLConfig config; - EGLSurface surface; - EGLint w, h; - EGLDisplay dpy; - - dpy = eglGetDisplay(EGL_DEFAULT_DISPLAY); - eglInitialize(dpy, &majorVersion, &minorVersion); - - EGLNativeWindowType window = android_createDisplaySurface(); - - status_t err = EGLUtils::selectConfigForNativeWindow( - dpy, configAttribs, window, &config); - if (err) { - fprintf(stderr, "couldn't find an EGLConfig matching the screen format\n"); - return 0; - } - - surface = eglCreateWindowSurface(dpy, config, window, NULL); - context = eglCreateContext(dpy, config, NULL, NULL); - eglMakeCurrent(dpy, surface, surface, context); - eglQuerySurface(dpy, surface, EGL_WIDTH, &w); - eglQuerySurface(dpy, surface, EGL_HEIGHT, &h); - - printf("w=%d, h=%d\n", w, h); - - glDisable(GL_DITHER); - glEnable(GL_BLEND); - - glViewport(0, 0, w, h); - glOrthof(0, w, 0, h, 0, 1); - - eglSwapInterval(dpy, 1); - - glClearColor(1,0,0,0); - glClear(GL_COLOR_BUFFER_BIT); - eglSwapBuffers(dpy, surface); - - - int time = 10; - printf("screen should flash red/green quickly for %d s...\n", time); - - int c = 0; - nsecs_t start = systemTime(); - nsecs_t t; - do { - glClearColor(1,0,0,0); - glClear(GL_COLOR_BUFFER_BIT); - eglSwapBuffers(dpy, surface); - glClearColor(0,1,0,0); - glClear(GL_COLOR_BUFFER_BIT); - eglSwapBuffers(dpy, surface); - t = systemTime() - start; - c += 2; - } while (int(ns2s(t))<=time); - - double p = (double(t) / c) / 1000000000.0; - printf("refresh-rate is %f fps (%f ms)\n", 1.0f/p, p*1000.0); - - eglTerminate(dpy); - - return 0; + EGL_SURFACE_TYPE, EGL_WINDOW_BIT, + EGL_NONE + }; + + EGLint majorVersion; + EGLint minorVersion; + EGLContext context; + EGLConfig config; + EGLint numConfigs=0; + EGLSurface surface; + EGLint w, h; + EGLDisplay dpy; + + dpy = eglGetDisplay(EGL_DEFAULT_DISPLAY); + eglInitialize(dpy, 0 ,0) ;//&majorVersion, &minorVersion); + eglGetConfigs(dpy, NULL, 0, &numConfigs); + printf("# configs = %d\n", numConfigs); + + EGLNativeWindowType window = android_createDisplaySurface(); + + status_t err = EGLUtils::selectConfigForNativeWindow( + dpy, configAttribs, window, &config); + if (err) { + fprintf(stderr, "couldn't find an EGLConfig matching the screen format\n"); + return 0; + } + + EGLint r,g,b,a; + eglGetConfigAttrib(dpy, config, EGL_RED_SIZE, &r); + eglGetConfigAttrib(dpy, config, EGL_GREEN_SIZE, &g); + eglGetConfigAttrib(dpy, config, EGL_BLUE_SIZE, &b); + eglGetConfigAttrib(dpy, config, EGL_ALPHA_SIZE, &a); + + surface = eglCreateWindowSurface(dpy, config, window, NULL); + if (surface == EGL_NO_SURFACE) { + EGLint err = eglGetError(); + fprintf(stderr, "%s, config=%p, format = %d-%d-%d-%d\n", + EGLUtils::strerror(err), config, r,g,b,a); + return 0; + } else { + printf("config=%p, format = %d-%d-%d-%d\n", config, r,g,b,a); + } + + context = eglCreateContext(dpy, config, NULL, NULL); + eglMakeCurrent(dpy, surface, surface, context); + eglQuerySurface(dpy, surface, EGL_WIDTH, &w); + eglQuerySurface(dpy, surface, EGL_HEIGHT, &h); + + printf("w=%d, h=%d\n", w, h); + + glDisable(GL_DITHER); + glEnable(GL_BLEND); + + glViewport(0, 0, w, h); + glOrthof(0, w, 0, h, 0, 1); + + eglSwapInterval(dpy, 1); + + glClearColor(1,0,0,0); + glClear(GL_COLOR_BUFFER_BIT); + eglSwapBuffers(dpy, surface); + + + int time = 10; + printf("screen should flash red/green quickly for %d s...\n", time); + + int c = 0; + nsecs_t start = systemTime(); + nsecs_t t; + do { + glClearColor(1,0,0,0); + glClear(GL_COLOR_BUFFER_BIT); + eglSwapBuffers(dpy, surface); + glClearColor(0,1,0,0); + glClear(GL_COLOR_BUFFER_BIT); + eglSwapBuffers(dpy, surface); + t = systemTime() - start; + c += 2; + } while (int(ns2s(t))<=time); + + double p = (double(t) / c) / 1000000000.0; + printf("refresh-rate is %f fps (%f ms)\n", 1.0f/p, p*1000.0); + + eglTerminate(dpy); + + return 0; } |
