workaround a bug in the SGX driver that would prevent eglGetConfig to work properly

This commit is contained in:
Mathias Agopian
2009-08-10 16:48:22 -07:00
parent 07cbacc117
commit e6f0f5c8fb
7 changed files with 25 additions and 16 deletions

View File

@@ -133,11 +133,11 @@ static int initGraphics()
EGLint w, h;
EGLDisplay dpy;
EGLNativeWindowType window = android_createDisplaySurface();
dpy = eglGetDisplay(EGL_DEFAULT_DISPLAY);
eglInitialize(dpy, &majorVersion, &minorVersion);
EGLNativeWindowType window = android_createDisplaySurface();
status_t err = EGLUtils::selectConfigForNativeWindow(
dpy, configAttribs, window, &config);
if (err) {

View File

@@ -23,6 +23,9 @@
#include <hardware/gralloc.h>
#include <hardware/hardware.h>
#include <ui/FramebufferNativeWindow.h>
#include <ui/EGLUtils.h>
#define EGL_EGLEXT_PROTOTYPES
#define GL_GLEXT_PROTOTYPES
@@ -32,8 +35,6 @@
#include <GLES/gl.h>
#include <GLES/glext.h>
extern "C" EGLNativeWindowType android_createDisplaySurface(void);
using namespace android;
EGLDisplay eglDisplay;
@@ -268,6 +269,8 @@ int init_gl_surface(void)
EGL_NONE
};
EGLNativeWindowType window = android_createDisplaySurface();
printf("init_gl_surface\n");
if ( (eglDisplay = eglGetDisplay(EGL_DEFAULT_DISPLAY)) == EGL_NO_DISPLAY )
{
@@ -281,14 +284,15 @@ int init_gl_surface(void)
return 0;
}
if ( eglChooseConfig(eglDisplay, attrib, &myConfig, 1, &numConfigs) != EGL_TRUE )
if ( EGLUtils::selectConfigForNativeWindow(eglDisplay, attrib, window, &myConfig) != 0)
{
printf("eglChooseConfig failed\n");
printf("EGLUtils::selectConfigForNativeWindow failed\n");
return 0;
}
if ( (eglSurface = eglCreateWindowSurface(eglDisplay, myConfig,
android_createDisplaySurface(), 0)) == EGL_NO_SURFACE )
window, 0)) == EGL_NO_SURFACE )
{
printf("eglCreateWindowSurface failed\n");
return 0;

View File

@@ -45,11 +45,11 @@ int main(int argc, char** argv)
EGLint w, h;
EGLDisplay dpy;
EGLNativeWindowType window = android_createDisplaySurface();
dpy = eglGetDisplay(EGL_DEFAULT_DISPLAY);
eglInitialize(dpy, &majorVersion, &minorVersion);
EGLNativeWindowType window = android_createDisplaySurface();
status_t err = EGLUtils::selectConfigForNativeWindow(
dpy, configAttribs, window, &config);
if (err) {

View File

@@ -37,10 +37,14 @@ int main(int argc, char** argv)
EGLDisplay dpy;
EGLNativeWindowType window = 0;
if (!usePbuffer) {
window = android_createDisplaySurface();
}
dpy = eglGetDisplay(EGL_DEFAULT_DISPLAY);
eglInitialize(dpy, &majorVersion, &minorVersion);
if (!usePbuffer) {
EGLNativeWindowType window = android_createDisplaySurface();
surface = eglCreateWindowSurface(dpy, config, window, NULL);
EGLUtils::selectConfigForNativeWindow(
dpy, s_configAttribs, window, &config);

View File

@@ -46,11 +46,11 @@ int main(int argc, char** argv)
EGLint w, h;
EGLDisplay dpy;
EGLNativeWindowType window = android_createDisplaySurface();
dpy = eglGetDisplay(EGL_DEFAULT_DISPLAY);
eglInitialize(dpy, &majorVersion, &minorVersion);
EGLNativeWindowType window = android_createDisplaySurface();
status_t err = EGLUtils::selectConfigForNativeWindow(
dpy, configAttribs, window, &config);
if (err) {

View File

@@ -44,12 +44,13 @@ int main(int argc, char** argv)
EGLint w, h;
EGLDisplay dpy;
EGLNativeWindowType window = android_createDisplaySurface();
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);

View File

@@ -42,11 +42,11 @@ int main(int argc, char** argv)
EGLint w, h;
EGLDisplay dpy;
EGLNativeWindowType window = android_createDisplaySurface();
dpy = eglGetDisplay(EGL_DEFAULT_DISPLAY);
eglInitialize(dpy, &majorVersion, &minorVersion);
EGLNativeWindowType window = android_createDisplaySurface();
status_t err = EGLUtils::selectConfigForNativeWindow(
dpy, configAttribs, window, &config);
if (err) {