Skip to content

Commit

Permalink
Added debug labels for the OpenGL ES objects created with SDL_GL_Crea…
Browse files Browse the repository at this point in the history
…teContext on iOS.

More misc. code cleanup.
  • Loading branch information
slime73 committed Nov 21, 2014
1 parent feb2ab1 commit 38c6e9d
Show file tree
Hide file tree
Showing 6 changed files with 39 additions and 14 deletions.
1 change: 0 additions & 1 deletion src/video/uikit/SDL_uikitmodes.m
Expand Up @@ -150,7 +150,6 @@ @implementation SDL_DisplayModeData
display.driverdata = (void *) CFBridgingRetain(data);
SDL_AddVideoDisplay(&display);


return 0;
}

Expand Down
2 changes: 2 additions & 0 deletions src/video/uikit/SDL_uikitopenglview.h
Expand Up @@ -57,6 +57,8 @@

- (void)updateFrame;

- (void)setDebugLabels;

- (void)setAnimationCallback:(int)interval
callback:(void (*)(void*))callback
callbackParam:(void*)callbackParam;
Expand Down
25 changes: 24 additions & 1 deletion src/video/uikit/SDL_uikitopenglview.m
Expand Up @@ -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.");
Expand Down Expand Up @@ -164,6 +164,8 @@ - (id)initWithFrame:(CGRect)frame
}

glBindRenderbuffer(GL_RENDERBUFFER, viewRenderbuffer);

[self setDebugLabels];
}

return self;
Expand Down Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion src/video/uikit/SDL_uikitvideo.h
Expand Up @@ -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 */
Expand Down
7 changes: 3 additions & 4 deletions src/video/uikit/SDL_uikitvideo.m
Expand Up @@ -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+. */
Expand Down
16 changes: 9 additions & 7 deletions src/video/uikit/SDL_uikitview.m
Expand Up @@ -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;

Expand All @@ -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) */
}

Expand Down

0 comments on commit 38c6e9d

Please sign in to comment.