Fixed testgles on iOS (bug 1136)
authorSam Lantinga <slouken@libsdl.org>
Sun, 20 Feb 2011 14:16:11 -0800
changeset 5363 96799a165806
parent 5362 074fc8730031
child 5364 fec676157db5
Fixed testgles on iOS (bug 1136)
src/video/uikit/SDL_uikitopengles.m
test/common.c
test/testgles.c
--- a/src/video/uikit/SDL_uikitopengles.m	Sun Feb 20 13:56:57 2011 -0800
+++ b/src/video/uikit/SDL_uikitopengles.m	Sun Feb 20 14:16:11 2011 -0800
@@ -40,7 +40,7 @@
        -Looking for the path to the OpenGL Library seems not to work in the iPhone Simulator.
        -We don't know that the path won't change in the future.
     */
-    return SDL_LoadFunction(RTLD_DEFAULT, proc);
+    return dlsym(RTLD_DEFAULT, proc);
 }
 
 /*
--- a/test/common.c	Sun Feb 20 13:56:57 2011 -0800
+++ b/test/common.c	Sun Feb 20 14:16:11 2011 -0800
@@ -53,8 +53,6 @@
     state->gl_multisamplesamples = 0;
     state->gl_retained_backing = 1;
     state->gl_accelerated = -1;
-    state->gl_major_version = 2;
-    state->gl_minor_version = 1;
 
     return state;
 }
@@ -590,8 +588,10 @@
                                 state->gl_accelerated);
         }
         SDL_GL_SetAttribute(SDL_GL_RETAINED_BACKING, state->gl_retained_backing);
-        SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, state->gl_major_version);
-        SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, state->gl_minor_version);
+        if (state->gl_major_version) {
+            SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, state->gl_major_version);
+            SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, state->gl_minor_version);
+        }
 
         if (state->verbose & VERBOSE_MODES) {
             SDL_DisplayMode mode;
@@ -712,6 +712,7 @@
                         SDL_GetError());
                 return SDL_FALSE;
             }
+            SDL_GetWindowSize(state->windows[i], &state->window_w, &state->window_h);
 
             if (SDL_SetWindowDisplayMode(state->windows[i], &fullscreen_mode) < 0) {
                 fprintf(stderr, "Can't set up fullscreen display mode: %s\n",
--- a/test/testgles.c	Sun Feb 20 13:56:57 2011 -0800
+++ b/test/testgles.c	Sun Feb 20 14:16:11 2011 -0800
@@ -177,7 +177,7 @@
         SDL_GL_SetSwapInterval(0);
     }
 
-    SDL_GetCurrentDisplayMode(&mode);
+    SDL_GetCurrentDisplayMode(0, &mode);
     printf("Screen bpp: %d\n", SDL_BITSPERPIXEL(mode.format));
     printf("\n");
     printf("Vendor     : %s\n", glGetString(GL_VENDOR));
@@ -243,6 +243,8 @@
 
     /* Set rendering settings for each context */
     for (i = 0; i < state->num_windows; ++i) {
+        float aspectAdjust;
+
         status = SDL_GL_MakeCurrent(state->windows[i], context[i]);
         if (status) {
             printf("SDL_GL_MakeCurrent(): %s\n", SDL_GetError());
@@ -251,10 +253,11 @@
             continue;
         }
 
+        aspectAdjust = (4.0f / 3.0f) / ((float)state->window_w / state->window_h);
         glViewport(0, 0, state->window_w, state->window_h);
         glMatrixMode(GL_PROJECTION);
         glLoadIdentity();
-        glOrthof(-2.0, 2.0, -2.0, 2.0, -20.0, 20.0);
+        glOrthof(-2.0, 2.0, -2.0 * aspectAdjust, 2.0 * aspectAdjust, -20.0, 20.0);
         glMatrixMode(GL_MODELVIEW);
         glLoadIdentity();
         glEnable(GL_DEPTH_TEST);
@@ -275,7 +278,7 @@
                 switch (event.window.event) {
                     case SDL_WINDOWEVENT_RESIZED:
                         for (i = 0; i < state->num_windows; ++i) {
-                            if (event.window.windowID == state->windows[i]) {
+                            if (event.window.windowID == SDL_GetWindowID(state->windows[i])) {
                                 status = SDL_GL_MakeCurrent(state->windows[i], context[i]);
                                 if (status) {
                                     printf("SDL_GL_MakeCurrent(): %s\n", SDL_GetError());
@@ -327,3 +330,5 @@
 }
 
 #endif /* HAVE_OPENGLES */
+
+/* vi: set ts=4 sw=4 expandtab: */