Added debug labels for the OpenGL ES objects created with SDL_GL_CreateContext on iOS.

More misc. code cleanup.
This commit is contained in:
Alex Szpakowski 2014-11-21 03:29:57 -04:00
parent feb2ab1e85
commit 38c6e9d13b
6 changed files with 39 additions and 14 deletions

View File

@ -150,7 +150,6 @@ UIKit_AddDisplay(UIScreen *uiscreen)
display.driverdata = (void *) CFBridgingRetain(data);
SDL_AddVideoDisplay(&display);
return 0;
}

View File

@ -57,6 +57,8 @@
- (void)updateFrame;
- (void)setDebugLabels;
- (void)setAnimationCallback:(int)interval
callback:(void (*)(void*))callback
callbackParam:(void*)callbackParam;

View File

@ -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

View File

@ -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 */

View File

@ -130,16 +130,15 @@ UIKit_VideoQuit(_THIS)
}
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+. */

View File

@ -193,19 +193,17 @@ void _uikit_keyboard_init();
/* 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 @@ void _uikit_keyboard_init();
/* 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) */
}