From ef0490a741ab3a0fd331b8dfb34d1233bce59397 Mon Sep 17 00:00:00 2001 From: Alex Szpakowski Date: Wed, 23 Jul 2014 03:05:31 -0300 Subject: [PATCH] More cleanup of the iOS Objective-C code. --- src/video/uikit/SDL_uikitappdelegate.m | 13 ++++--- src/video/uikit/SDL_uikitmessagebox.m | 12 +++--- src/video/uikit/SDL_uikitopenglview.h | 46 ++++++----------------- src/video/uikit/SDL_uikitopenglview.m | 24 +++++++++--- src/video/uikit/SDL_uikitview.h | 18 ++------- src/video/uikit/SDL_uikitview.m | 33 +++++++++------- src/video/uikit/SDL_uikitviewcontroller.h | 7 +--- src/video/uikit/SDL_uikitwindow.m | 1 - 8 files changed, 69 insertions(+), 85 deletions(-) diff --git a/src/video/uikit/SDL_uikitappdelegate.m b/src/video/uikit/SDL_uikitappdelegate.m index 212d57691..b72a52c2b 100644 --- a/src/video/uikit/SDL_uikitappdelegate.m +++ b/src/video/uikit/SDL_uikitappdelegate.m @@ -75,17 +75,18 @@ SDL_IdleTimerDisabledChanged(void *userdata, const char *name, const char *oldVa [UIApplication sharedApplication].idleTimerDisabled = disable; } -@interface SDL_splashviewcontroller : UIViewController { +@interface SDL_splashviewcontroller : UIViewController + +- (void)updateSplashImage:(UIInterfaceOrientation)interfaceOrientation; + +@end + +@implementation SDL_splashviewcontroller { UIImageView *splash; UIImage *splashPortrait; UIImage *splashLandscape; } -- (void)updateSplashImage:(UIInterfaceOrientation)interfaceOrientation; -@end - -@implementation SDL_splashviewcontroller - - (id)init { self = [super init]; diff --git a/src/video/uikit/SDL_uikitmessagebox.m b/src/video/uikit/SDL_uikitmessagebox.m index 0fa4bda2e..4a1d32b7b 100644 --- a/src/video/uikit/SDL_uikitmessagebox.m +++ b/src/video/uikit/SDL_uikitmessagebox.m @@ -30,17 +30,16 @@ static SDL_bool s_showingMessageBox = SDL_FALSE; -@interface UIKit_UIAlertViewDelegate : NSObject { -@private - int *clickedButtonIndex; -} +@interface UIKit_UIAlertViewDelegate : NSObject - (id)initWithButtonIndex:(int *)_buttonIndex; - (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex; @end -@implementation UIKit_UIAlertViewDelegate +@implementation UIKit_UIAlertViewDelegate { + int *clickedButtonIndex; +} - (id)initWithButtonIndex:(int *)buttonIndex { @@ -48,7 +47,8 @@ static SDL_bool s_showingMessageBox = SDL_FALSE; if (self == nil) { return nil; } - self->clickedButtonIndex = buttonIndex; + + clickedButtonIndex = buttonIndex; return self; } diff --git a/src/video/uikit/SDL_uikitopenglview.h b/src/video/uikit/SDL_uikitopenglview.h index b951ac50e..4f40514cd 100644 --- a/src/video/uikit/SDL_uikitopenglview.h +++ b/src/video/uikit/SDL_uikitopenglview.h @@ -29,38 +29,7 @@ The view content is basically an EAGL surface you render your OpenGL scene into. Note that setting the view non-opaque will only work if the EAGL surface has an alpha channel. */ -@interface SDL_uikitopenglview : SDL_uikitview { - -@private - /* The pixel dimensions of the backbuffer */ - GLint backingWidth; - GLint backingHeight; - - EAGLContext *context; - - /* OpenGL names for the renderbuffer and framebuffers used to render to this view */ - GLuint viewRenderbuffer, viewFramebuffer; - - /* OpenGL name for the depth buffer that is attached to viewFramebuffer, if it exists (0 if it does not exist) */ - GLuint depthRenderbuffer; - - /* format of depthRenderbuffer */ - GLenum depthBufferFormat; - - id displayLink; - int animationInterval; - void (*animationCallback)(void*); - void *animationCallbackParam; -} - -@property (nonatomic, retain, readonly) EAGLContext *context; - -/* The width and height of the drawable in pixels (as opposed to points.) */ -@property (nonatomic, readonly) int backingWidth; -@property (nonatomic, readonly) int backingHeight; - -- (void)swapBuffers; -- (void)setCurrentContext; +@interface SDL_uikitopenglview : SDL_uikitview - (id)initWithFrame:(CGRect)frame scale:(CGFloat)scale @@ -75,11 +44,20 @@ majorVersion:(int)majorVersion shareGroup:(EAGLSharegroup*)shareGroup; +@property (nonatomic, retain, readonly) EAGLContext *context; + +/* The width and height of the drawable in pixels (as opposed to points.) */ +@property (nonatomic, readonly) int backingWidth; +@property (nonatomic, readonly) int backingHeight; + +- (void)swapBuffers; +- (void)setCurrentContext; + - (void)updateFrame; - (void)setAnimationCallback:(int)interval - callback:(void (*)(void*))callback - callbackParam:(void*)callbackParam; + callback:(void (*)(void*))callback + callbackParam:(void*)callbackParam; - (void)startAnimation; - (void)stopAnimation; diff --git a/src/video/uikit/SDL_uikitopenglview.m b/src/video/uikit/SDL_uikitopenglview.m index f388fa31a..40127c055 100644 --- a/src/video/uikit/SDL_uikitopenglview.m +++ b/src/video/uikit/SDL_uikitopenglview.m @@ -28,12 +28,28 @@ #include "SDL_uikitmessagebox.h" -@implementation SDL_uikitopenglview +@implementation SDL_uikitopenglview { + + /* OpenGL names for the renderbuffer and framebuffers used to render to this view */ + GLuint viewRenderbuffer, viewFramebuffer; + + /* OpenGL name for the depth buffer that is attached to viewFramebuffer, if it exists (0 if it does not exist) */ + GLuint depthRenderbuffer; + + /* format of depthRenderbuffer */ + GLenum depthBufferFormat; + + id displayLink; + int animationInterval; + void (*animationCallback)(void*); + void *animationCallbackParam; + +} @synthesize context; -@synthesize backingWidth = backingWidth; -@synthesize backingHeight = backingHeight; +@synthesize backingWidth; +@synthesize backingHeight; + (Class)layerClass { @@ -53,8 +69,6 @@ majorVersion:(int)majorVersion shareGroup:(EAGLSharegroup*)shareGroup { - depthBufferFormat = 0; - if ((self = [super initWithFrame:frame])) { const BOOL useStencilBuffer = (stencilBits != 0); const BOOL useDepthBuffer = (depthBits != 0); diff --git a/src/video/uikit/SDL_uikitview.h b/src/video/uikit/SDL_uikitview.h index 8191915b3..417a68f41 100644 --- a/src/video/uikit/SDL_uikitview.h +++ b/src/video/uikit/SDL_uikitview.h @@ -35,23 +35,10 @@ #else @interface SDL_uikitview : UIView { #endif - - SDL_TouchID touchId; - UITouch *leftFingerDown; -#ifndef IPHONE_TOUCH_EFFICIENT_DANGEROUS - UITouch *finger[MAX_SIMULTANEOUS_TOUCHES]; -#endif - -#if SDL_IPHONE_KEYBOARD - UITextField *textField; - BOOL keyboardVisible; - SDL_Rect textInputRect; - int keyboardHeight; -#endif - @public SDL_uikitviewcontroller *viewcontroller; } + - (CGPoint)touchLocation:(UITouch *)touch shouldNormalize:(BOOL)normalize; - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event; - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event; @@ -61,7 +48,8 @@ - (void)showKeyboard; - (void)hideKeyboard; - (void)initializeKeyboard; -@property (nonatomic, readonly) BOOL keyboardVisible; + +@property (nonatomic, readonly, assign, getter=isKeyboardVisible) BOOL keyboardVisible; @property (nonatomic, assign) SDL_Rect textInputRect; @property (nonatomic, assign) int keyboardHeight; diff --git a/src/video/uikit/SDL_uikitview.m b/src/video/uikit/SDL_uikitview.m index 0f790169d..18a0538d6 100644 --- a/src/video/uikit/SDL_uikitview.m +++ b/src/video/uikit/SDL_uikitview.m @@ -37,7 +37,19 @@ void _uikit_keyboard_init(); -@implementation SDL_uikitview +@implementation SDL_uikitview { + + SDL_TouchID touchId; + UITouch *leftFingerDown; +#ifndef IPHONE_TOUCH_EFFICIENT_DANGEROUS + UITouch *finger[MAX_SIMULTANEOUS_TOUCHES]; +#endif + +#if SDL_IPHONE_KEYBOARD + UITextField *textField; +#endif + +} - (void)dealloc { @@ -66,7 +78,7 @@ void _uikit_keyboard_init(); CGPoint point = [touch locationInView: self]; if (normalize) { - CGRect bounds = [self bounds]; + CGRect bounds = self.bounds; point.x /= bounds.size.width; point.y /= bounds.size.height; } @@ -122,7 +134,7 @@ void _uikit_keyboard_init(); CGPoint locationInView = [self touchLocation:touch shouldNormalize:YES]; #ifdef IPHONE_TOUCH_EFFICIENT_DANGEROUS - SDL_SendTouch(touchId, (long)touch, + SDL_SendTouch(touchId, (SDL_FingerID)((size_t)touch), SDL_FALSE, locationInView.x, locationInView.y, 1.0f); #else int i; @@ -160,7 +172,7 @@ void _uikit_keyboard_init(); CGPoint locationInView = [self touchLocation:touch shouldNormalize:YES]; #ifdef IPHONE_TOUCH_EFFICIENT_DANGEROUS - SDL_SendTouchMotion(touchId, (long)touch, + SDL_SendTouchMotion(touchId, (SDL_FingerID)((size_t)touch), locationInView.x, locationInView.y, 1.0f); #else int i; @@ -180,14 +192,9 @@ void _uikit_keyboard_init(); */ #if SDL_IPHONE_KEYBOARD -@synthesize textInputRect = textInputRect; -@synthesize keyboardHeight = keyboardHeight; - -/* Is the iPhone virtual keyboard visible onscreen? */ -- (BOOL)keyboardVisible -{ - return keyboardVisible; -} +@synthesize textInputRect; +@synthesize keyboardHeight; +@synthesize keyboardVisible; /* Set ourselves up as a UITextFieldDelegate */ - (void)initializeKeyboard @@ -337,7 +344,7 @@ SDL_bool UIKit_IsScreenKeyboardShown(_THIS, SDL_Window *window) return 0; } - return view.keyboardVisible; + return view.isKeyboardVisible; } diff --git a/src/video/uikit/SDL_uikitviewcontroller.h b/src/video/uikit/SDL_uikitviewcontroller.h index 64cb47e82..0ca98eb40 100644 --- a/src/video/uikit/SDL_uikitviewcontroller.h +++ b/src/video/uikit/SDL_uikitviewcontroller.h @@ -23,12 +23,9 @@ #include "../SDL_sysvideo.h" -@interface SDL_uikitviewcontroller : UIViewController { -@private - SDL_Window *window; -} +@interface SDL_uikitviewcontroller : UIViewController -@property (nonatomic, readwrite) SDL_Window *window; +@property (nonatomic, assign) SDL_Window *window; - (id)initWithSDLWindow:(SDL_Window *)_window; - (void)loadView; diff --git a/src/video/uikit/SDL_uikitwindow.m b/src/video/uikit/SDL_uikitwindow.m index 9d5f0eeff..b636ed7da 100644 --- a/src/video/uikit/SDL_uikitwindow.m +++ b/src/video/uikit/SDL_uikitwindow.m @@ -239,7 +239,6 @@ UIKit_SetWindowFullscreen(_THIS, SDL_Window * window, SDL_VideoDisplay * display SDL_DisplayData *displaydata = (SDL_DisplayData *) display->driverdata; SDL_WindowData *windowdata = (SDL_WindowData *) window->driverdata; SDL_uikitviewcontroller *viewcontroller = windowdata->viewcontroller; - UIWindow *uiwindow = windowdata->uiwindow; CGRect bounds; if (fullscreen || (window->flags & SDL_WINDOW_BORDERLESS)) {