diff options
author | Jack Palevich <jackpal@google.com> | 2009-09-24 12:19:05 -0700 |
---|---|---|
committer | Jack Palevich <jackpal@google.com> | 2009-09-24 12:19:05 -0700 |
commit | bc4a4177a34267ad0d039c8567bb9fe7549bb310 (patch) | |
tree | 92084995f65a4df12292a4bf4685ec0f0957637a /opengl | |
parent | 6e472890effc63430d0ab680051c10cf2cf3cdbe (diff) | |
download | frameworks_native-bc4a4177a34267ad0d039c8567bb9fe7549bb310.zip frameworks_native-bc4a4177a34267ad0d039c8567bb9fe7549bb310.tar.gz frameworks_native-bc4a4177a34267ad0d039c8567bb9fe7549bb310.tar.bz2 |
Make tritex test run with latest OpenGL driver.
Use EGLUtils::selectConfigForNativeWindow to select a legitimate
configuration. (Before now we had been selecting an incorrect
configuration, but the older drivers let us get away with it.)
Converted the source to C++ so we can call selectConfigForNativeWindow.
Diffstat (limited to 'opengl')
-rw-r--r-- | opengl/tests/tritex/Android.mk | 2 | ||||
-rw-r--r-- | opengl/tests/tritex/tritex.cpp (renamed from opengl/tests/tritex/tritex.c) | 26 |
2 files changed, 16 insertions, 12 deletions
diff --git a/opengl/tests/tritex/Android.mk b/opengl/tests/tritex/Android.mk index 76fd8dd..6db3f49 100644 --- a/opengl/tests/tritex/Android.mk +++ b/opengl/tests/tritex/Android.mk @@ -2,7 +2,7 @@ LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_SRC_FILES:= \ - tritex.c + tritex.cpp LOCAL_SHARED_LIBRARIES := \ libcutils \ diff --git a/opengl/tests/tritex/tritex.c b/opengl/tests/tritex/tritex.cpp index 60a7feb..629b53c 100644 --- a/opengl/tests/tritex/tritex.c +++ b/opengl/tests/tritex/tritex.cpp @@ -6,10 +6,16 @@ #include <EGL/egl.h>
#include <GLES/gl.h> +#include <GLES/glext.h> + +#include <ui/FramebufferNativeWindow.h> +#include <ui/EGLUtils.h> #include <stdio.h>
#include <stdlib.h> #include <math.h> + +using namespace android; EGLDisplay eglDisplay;
EGLSurface eglSurface;
@@ -117,6 +123,7 @@ int init_gl_surface(void) EGLConfig myConfig = {0};
EGLint attrib[] =
{
+ EGL_SURFACE_TYPE, EGL_PBUFFER_BIT|EGL_WINDOW_BIT, EGL_DEPTH_SIZE, 16,
EGL_NONE
};
@@ -132,15 +139,12 @@ int init_gl_surface(void) printf("eglInitialize failed\n");
return 0;
}
-
- if ( eglChooseConfig(eglDisplay, attrib, &myConfig, 1, &numConfigs) != EGL_TRUE )
- {
- printf("eglChooseConfig failed\n");
- return 0;
- }
+ + EGLNativeWindowType window = android_createDisplaySurface();
+ EGLUtils::selectConfigForNativeWindow(eglDisplay, attrib, window, &myConfig);
if ( (eglSurface = eglCreateWindowSurface(eglDisplay, myConfig, - android_createDisplaySurface(), 0)) == EGL_NO_SURFACE )
+ window, 0)) == EGL_NO_SURFACE )
{
printf("eglCreateWindowSurface failed\n");
return 0;
@@ -239,12 +243,12 @@ void render(int quads) 0, FIXED_ONE
};
- const GLushort template[] = { 0, 1, 2, 0, 2, 3 }; + const GLushort quadIndices[] = { 0, 1, 2, 0, 2, 3 }; - GLushort* indices = (GLushort*)malloc(quads*sizeof(template)); + GLushort* indices = (GLushort*)malloc(quads*sizeof(quadIndices)); for (i=0 ; i<quads ; i++) - memcpy(indices+(sizeof(template)/sizeof(indices[0]))*i, template, sizeof(template)); + memcpy(indices+(sizeof(quadIndices)/sizeof(indices[0]))*i, quadIndices, sizeof(quadIndices)); glVertexPointer(3, GL_FLOAT, 0, vertices);
glTexCoordPointer(2, GL_FIXED, 0, texCoords); @@ -262,7 +266,7 @@ void render(int quads) for (j=0 ; j<10 ; j++) { printf("loop %d / 10 (%d quads / loop)\n", j, quads); - int nelem = sizeof(template)/sizeof(template[0]); + int nelem = sizeof(quadIndices)/sizeof(quadIndices[0]); glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT); glDrawElements(GL_TRIANGLES, nelem*quads, GL_UNSIGNED_SHORT, indices); eglSwapBuffers(eglDisplay, eglSurface); |