Added debug labels for the OpenGL ES objects created with SDL_GL_CreateContext on iOS.
More misc. code cleanup.
--- 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) */
}