Added debug labels for the OpenGL ES objects created with SDL_GL_CreateContext on iOS. iOS-improvements
authorAlex Szpakowski <slime73@gmail.com>
Fri, 21 Nov 2014 03:29:57 -0400
branchiOS-improvements
changeset 9525 64e3f446d6d7
parent 9524 9de159f9cefd
child 9526 b1e51123fbea
Added debug labels for the OpenGL ES objects created with SDL_GL_CreateContext on iOS. More misc. code cleanup.
src/video/uikit/SDL_uikitmodes.m
src/video/uikit/SDL_uikitopenglview.h
src/video/uikit/SDL_uikitopenglview.m
src/video/uikit/SDL_uikitvideo.h
src/video/uikit/SDL_uikitvideo.m
src/video/uikit/SDL_uikitview.m
--- a/src/video/uikit/SDL_uikitmodes.m	Thu Nov 20 18:45:04 2014 -0400
+++ b/src/video/uikit/SDL_uikitmodes.m	Fri Nov 21 03:29:57 2014 -0400
@@ -150,7 +150,6 @@
     display.driverdata = (void *) CFBridgingRetain(data);
     SDL_AddVideoDisplay(&display);
 
-
     return 0;
 }
 
--- a/src/video/uikit/SDL_uikitopenglview.h	Thu Nov 20 18:45:04 2014 -0400
+++ b/src/video/uikit/SDL_uikitopenglview.h	Fri Nov 21 03:29:57 2014 -0400
@@ -57,6 +57,8 @@
 
 - (void)updateFrame;
 
+- (void)setDebugLabels;
+
 - (void)setAnimationCallback:(int)interval
                     callback:(void (*)(void*))callback
                callbackParam:(void*)callbackParam;
--- a/src/video/uikit/SDL_uikitopenglview.m	Thu Nov 20 18:45:04 2014 -0400
+++ b/src/video/uikit/SDL_uikitopenglview.m	Fri Nov 21 03:29:57 2014 -0400
@@ -93,7 +93,7 @@
 
         if (sRGB) {
             /* sRGB EAGL drawable support was added in iOS 7. */
-            if (UIKit_IsSystemVersionAtLeast(@"7.0")) {
+            if (UIKit_IsSystemVersionAtLeast(7.0)) {
                 colorFormat = kEAGLColorFormatSRGBA8;
             } else {
                 SDL_SetError("sRGB drawables are not supported.");
@@ -164,6 +164,8 @@
         }
 
         glBindRenderbuffer(GL_RENDERBUFFER, viewRenderbuffer);
+
+        [self setDebugLabels];
     }
 
     return self;
@@ -200,6 +202,27 @@
     }
 
     glBindRenderbuffer(GL_RENDERBUFFER, viewRenderbuffer);
+
+    [self setDebugLabels];
+}
+
+- (void)setDebugLabels
+{
+    if (viewFramebuffer != 0) {
+        glLabelObjectEXT(GL_FRAMEBUFFER, viewFramebuffer, 0, "context FBO");
+    }
+
+    if (viewRenderbuffer != 0) {
+        glLabelObjectEXT(GL_RENDERBUFFER, viewRenderbuffer, 0, "context color buffer");
+    }
+
+    if (depthRenderbuffer != 0) {
+        if (depthBufferFormat == GL_DEPTH24_STENCIL8_OES) {
+            glLabelObjectEXT(GL_RENDERBUFFER, depthRenderbuffer, 0, "context depth-stencil buffer");
+        } else {
+            glLabelObjectEXT(GL_RENDERBUFFER, depthRenderbuffer, 0, "context depth buffer");
+        }
+    }
 }
 
 - (void)setAnimationCallback:(int)interval
--- a/src/video/uikit/SDL_uikitvideo.h	Thu Nov 20 18:45:04 2014 -0400
+++ b/src/video/uikit/SDL_uikitvideo.h	Fri Nov 21 03:29:57 2014 -0400
@@ -25,7 +25,7 @@
 
 #include "../SDL_sysvideo.h"
 
-BOOL UIKit_IsSystemVersionAtLeast(NSString *version);
+BOOL UIKit_IsSystemVersionAtLeast(double version);
 CGRect UIKit_ComputeViewFrame(SDL_Window *window, UIScreen *screen);
 
 #endif /* _SDL_uikitvideo_h */
--- a/src/video/uikit/SDL_uikitvideo.m	Thu Nov 20 18:45:04 2014 -0400
+++ b/src/video/uikit/SDL_uikitvideo.m	Fri Nov 21 03:29:57 2014 -0400
@@ -130,16 +130,15 @@
 }
 
 BOOL
-UIKit_IsSystemVersionAtLeast(NSString *version)
+UIKit_IsSystemVersionAtLeast(double version)
 {
-    NSString *sysversion = [UIDevice currentDevice].systemVersion;
-    return [sysversion compare:version options:NSNumericSearch] != NSOrderedAscending;
+    return [[UIDevice currentDevice].systemVersion doubleValue] >= version;
 }
 
 CGRect
 UIKit_ComputeViewFrame(SDL_Window *window, UIScreen *screen)
 {
-    BOOL hasiOS7 = UIKit_IsSystemVersionAtLeast(@"7.0");
+    BOOL hasiOS7 = UIKit_IsSystemVersionAtLeast(7.0);
 
     if (hasiOS7 || (window->flags & (SDL_WINDOW_BORDERLESS|SDL_WINDOW_FULLSCREEN))) {
         /* The view should always show behind the status bar in iOS 7+. */
--- a/src/video/uikit/SDL_uikitview.m	Thu Nov 20 18:45:04 2014 -0400
+++ b/src/video/uikit/SDL_uikitview.m	Fri Nov 21 03:29:57 2014 -0400
@@ -193,19 +193,17 @@
 /* UITextFieldDelegate method.  Invoked when user types something. */
 - (BOOL)textField:(UITextField *)_textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
 {
-    if ([string length] == 0) {
+    NSUInteger len = string.length;
+
+    if (len == 0) {
         /* it wants to replace text with nothing, ie a delete */
         SDL_SendKeyboardKey(SDL_PRESSED, SDL_SCANCODE_BACKSPACE);
         SDL_SendKeyboardKey(SDL_RELEASED, SDL_SCANCODE_BACKSPACE);
-    }
-    else {
+    } else {
         /* go through all the characters in the string we've been sent
            and convert them to key presses */
-        int i;
-        for (i = 0; i < [string length]; i++) {
-
+        for (int i = 0; i < len; i++) {
             unichar c = [string characterAtIndex:i];
-
             Uint16 mod = 0;
             SDL_Scancode code;
 
@@ -224,16 +222,20 @@
                 /* If character uses shift, press shift down */
                 SDL_SendKeyboardKey(SDL_PRESSED, SDL_SCANCODE_LSHIFT);
             }
+
             /* send a keydown and keyup even for the character */
             SDL_SendKeyboardKey(SDL_PRESSED, code);
             SDL_SendKeyboardKey(SDL_RELEASED, code);
+
             if (mod & KMOD_SHIFT) {
                 /* If character uses shift, press shift back up */
                 SDL_SendKeyboardKey(SDL_RELEASED, SDL_SCANCODE_LSHIFT);
             }
         }
+
         SDL_SendKeyboardText([string UTF8String]);
     }
+
     return NO; /* don't allow the edit! (keep placeholder text there) */
 }