Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Added debug labels for the OpenGL ES objects created with SDL_GL_Crea…
…teContext on iOS.
More misc. code cleanup.
- Loading branch information
|
@@ -150,7 +150,6 @@ @implementation SDL_DisplayModeData |
|
|
display.driverdata = (void *) CFBridgingRetain(data); |
|
|
SDL_AddVideoDisplay(&display); |
|
|
|
|
|
|
|
|
return 0; |
|
|
} |
|
|
|
|
|
|
@@ -57,6 +57,8 @@ |
|
|
|
|
|
- (void)updateFrame; |
|
|
|
|
|
- (void)setDebugLabels; |
|
|
|
|
|
- (void)setAnimationCallback:(int)interval |
|
|
callback:(void (*)(void*))callback |
|
|
callbackParam:(void*)callbackParam; |
|
|
|
@@ -93,7 +93,7 @@ - (id)initWithFrame:(CGRect)frame |
|
|
|
|
|
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 @@ - (id)initWithFrame:(CGRect)frame |
|
|
} |
|
|
|
|
|
glBindRenderbuffer(GL_RENDERBUFFER, viewRenderbuffer); |
|
|
|
|
|
[self setDebugLabels]; |
|
|
} |
|
|
|
|
|
return self; |
|
@@ -200,6 +202,27 @@ - (void)updateFrame |
|
|
} |
|
|
|
|
|
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 |
|
|
|
@@ -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 */ |
|
|
|
@@ -130,16 +130,15 @@ static void UIKit_DeleteDevice(SDL_VideoDevice * device) |
|
|
} |
|
|
|
|
|
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+. */ |
|
|
|
@@ -193,19 +193,17 @@ - (void)hideKeyboard |
|
|
/* 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 @@ - (BOOL)textField:(UITextField *)_textField shouldChangeCharactersInRange:(NSRan |
|
|
/* 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) */ |
|
|
} |
|
|
|
|
|