Skip to content

Commit

Permalink
Minor Objective-C code tweaks.
Browse files Browse the repository at this point in the history
  • Loading branch information
slime73 committed Nov 28, 2014
1 parent 6df55c6 commit bc4b6f0
Show file tree
Hide file tree
Showing 8 changed files with 46 additions and 40 deletions.
34 changes: 18 additions & 16 deletions src/video/uikit/SDL_uikitopengles.m
Expand Up @@ -58,7 +58,8 @@
return 0;
}

void UIKit_GL_GetDrawableSize(_THIS, SDL_Window * window, int * w, int * h)
void
UIKit_GL_GetDrawableSize(_THIS, SDL_Window * window, int * w, int * h)
{
@autoreleasepool {
SDL_WindowData *data = (__bridge SDL_WindowData *)window->driverdata;
Expand Down Expand Up @@ -157,16 +158,15 @@ void UIKit_GL_SwapWindow(_THIS, SDL_Window * window)
return NULL;
}

view.sdlwindow = window;
data.view = view;
view.viewcontroller = data.viewcontroller;
if (view.viewcontroller != nil) {
view.viewcontroller.view = view;
}
[uiwindow addSubview:view];
data.viewcontroller.view = view;

/* The view controller needs to be the root in order to control rotation on iOS 6.0 */
/* The view controller needs to be the root in order to control rotation */
if (uiwindow.rootViewController == nil) {
uiwindow.rootViewController = view.viewcontroller;
uiwindow.rootViewController = data.viewcontroller;
} else {
[uiwindow addSubview:view];
}

EAGLContext *context = view.context;
Expand Down Expand Up @@ -199,25 +199,26 @@ void UIKit_GL_SwapWindow(_THIS, SDL_Window * window)
SDL_WindowData *data = (__bridge SDL_WindowData *) window->driverdata;
SDL_uikitopenglview *view = data.view;
if (view.context == eaglcontext) {
/* the delegate has retained the view, this will release him */
if (view.viewcontroller) {
/* the view controller has retained the view */
if (data.viewcontroller) {
UIWindow *uiwindow = (UIWindow *)view.superview;
if (uiwindow.rootViewController == view.viewcontroller) {
if (uiwindow.rootViewController == data.viewcontroller) {
uiwindow.rootViewController = nil;
}
view.viewcontroller.view = nil;
view.viewcontroller = nil;
data.viewcontroller.view = nil;
}
[view removeFromSuperview];

[view removeFromSuperview];
view.sdlwindow = NULL;
data.view = nil;
return;
}
}
}
}

Uint32 SDL_iPhoneGetViewRenderbuffer(SDL_Window * window)
Uint32
SDL_iPhoneGetViewRenderbuffer(SDL_Window * window)
{
if (!window) {
SDL_SetError("Invalid window");
Expand All @@ -234,7 +235,8 @@ Uint32 SDL_iPhoneGetViewRenderbuffer(SDL_Window * window)
}
}

Uint32 SDL_iPhoneGetViewFramebuffer(SDL_Window * window)
Uint32
SDL_iPhoneGetViewFramebuffer(SDL_Window * window)
{
if (!window) {
SDL_SetError("Invalid window");
Expand Down
1 change: 0 additions & 1 deletion src/video/uikit/SDL_uikitopenglview.m
Expand Up @@ -46,7 +46,6 @@ @implementation SDL_uikitopenglview {
int animationInterval;
void (*animationCallback)(void*);
void *animationCallbackParam;

}

@synthesize context;
Expand Down
1 change: 1 addition & 0 deletions src/video/uikit/SDL_uikitvideo.m
Expand Up @@ -75,6 +75,7 @@ static void UIKit_DeleteDevice(SDL_VideoDevice * device)
device->SetDisplayMode = UIKit_SetDisplayMode;
device->PumpEvents = UIKit_PumpEvents;
device->CreateWindow = UIKit_CreateWindow;
device->SetWindowTitle = UIKit_SetWindowTitle;
device->ShowWindow = UIKit_ShowWindow;
device->HideWindow = UIKit_HideWindow;
device->RaiseWindow = UIKit_RaiseWindow;
Expand Down
4 changes: 2 additions & 2 deletions src/video/uikit/SDL_uikitview.h
Expand Up @@ -20,7 +20,7 @@
*/

#import <UIKit/UIKit.h>
#import "SDL_uikitviewcontroller.h"
#include "../SDL_sysvideo.h"

#include "SDL_touch.h"

Expand All @@ -30,7 +30,7 @@
@interface SDL_uikitview : UIView
#endif

@property (nonatomic, weak) SDL_uikitviewcontroller *viewcontroller;
@property (nonatomic, assign) SDL_Window *sdlwindow;

- (CGPoint)touchLocation:(UITouch *)touch shouldNormalize:(BOOL)normalize;
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
Expand Down
10 changes: 5 additions & 5 deletions src/video/uikit/SDL_uikitview.m
Expand Up @@ -46,7 +46,7 @@ @implementation SDL_uikitview {

}

@synthesize viewcontroller;
@synthesize sdlwindow;

- (id)initWithFrame:(CGRect)frame
{
Expand Down Expand Up @@ -92,10 +92,10 @@ - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
CGPoint locationInView = [self touchLocation:touch shouldNormalize:NO];

/* send moved event */
SDL_SendMouseMotion(self.viewcontroller.window, SDL_TOUCH_MOUSEID, 0, locationInView.x, locationInView.y);
SDL_SendMouseMotion(sdlwindow, SDL_TOUCH_MOUSEID, 0, locationInView.x, locationInView.y);

/* send mouse down event */
SDL_SendMouseButton(self.viewcontroller.window, SDL_TOUCH_MOUSEID, SDL_PRESSED, SDL_BUTTON_LEFT);
SDL_SendMouseButton(sdlwindow, SDL_TOUCH_MOUSEID, SDL_PRESSED, SDL_BUTTON_LEFT);

leftFingerDown = touch;
}
Expand All @@ -111,7 +111,7 @@ - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
for (UITouch *touch in touches) {
if (touch == leftFingerDown) {
/* send mouse up */
SDL_SendMouseButton(self.viewcontroller.window, SDL_TOUCH_MOUSEID, SDL_RELEASED, SDL_BUTTON_LEFT);
SDL_SendMouseButton(sdlwindow, SDL_TOUCH_MOUSEID, SDL_RELEASED, SDL_BUTTON_LEFT);
leftFingerDown = nil;
}

Expand All @@ -138,7 +138,7 @@ - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
CGPoint locationInView = [self touchLocation:touch shouldNormalize:NO];

/* send moved event */
SDL_SendMouseMotion(self.viewcontroller.window, SDL_TOUCH_MOUSEID, 0, locationInView.x, locationInView.y);
SDL_SendMouseMotion(sdlwindow, SDL_TOUCH_MOUSEID, 0, locationInView.x, locationInView.y);
}

CGPoint locationInView = [self touchLocation:touch shouldNormalize:YES];
Expand Down
6 changes: 1 addition & 5 deletions src/video/uikit/SDL_uikitviewcontroller.m
Expand Up @@ -73,11 +73,7 @@ - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orient

- (BOOL)prefersStatusBarHidden
{
if (window->flags & (SDL_WINDOW_FULLSCREEN|SDL_WINDOW_BORDERLESS)) {
return YES;
} else {
return NO;
}
return (window->flags & (SDL_WINDOW_FULLSCREEN|SDL_WINDOW_BORDERLESS)) != 0;
}

- (UIStatusBarStyle)preferredStatusBarStyle
Expand Down
1 change: 1 addition & 0 deletions src/video/uikit/SDL_uikitwindow.h
Expand Up @@ -27,6 +27,7 @@
#import "SDL_uikitviewcontroller.h"

extern int UIKit_CreateWindow(_THIS, SDL_Window * window);
extern void UIKit_SetWindowTitle(_THIS, SDL_Window * window);
extern void UIKit_ShowWindow(_THIS, SDL_Window * window);
extern void UIKit_HideWindow(_THIS, SDL_Window * window);
extern void UIKit_RaiseWindow(_THIS, SDL_Window * window);
Expand Down
29 changes: 18 additions & 11 deletions src/video/uikit/SDL_uikitwindow.m
Expand Up @@ -55,7 +55,6 @@ static int SetupWindowData(_THIS, SDL_Window *window, UIWindow *uiwindow, SDL_bo
SDL_VideoDisplay *display = SDL_GetDisplayForWindow(window);
SDL_DisplayData *displaydata = (__bridge SDL_DisplayData *) display->driverdata;

/* Allocate the window data */
SDL_WindowData *data = [[SDL_WindowData alloc] init];
if (!data) {
return SDL_OutOfMemory();
Expand All @@ -67,7 +66,6 @@ static int SetupWindowData(_THIS, SDL_Window *window, UIWindow *uiwindow, SDL_bo
{
CGRect frame = UIKit_ComputeViewFrame(window, displaydata.uiscreen);

/* Get frame dimensions */
int width = (int) frame.size.width;
int height = (int) frame.size.height;

Expand Down Expand Up @@ -114,7 +112,7 @@ static int SetupWindowData(_THIS, SDL_Window *window, UIWindow *uiwindow, SDL_bo
* appropriate.
*/
data.viewcontroller = [[SDL_uikitviewcontroller alloc] initWithSDLWindow:window];
data.viewcontroller.title = @"SDL App"; /* !!! FIXME: hook up SDL_SetWindowTitle() */
data.viewcontroller.title = @"";

return 0;
}
Expand Down Expand Up @@ -186,11 +184,9 @@ static int SetupWindowData(_THIS, SDL_Window *window, UIWindow *uiwindow, SDL_bo
} else {
if (!(orientations & (UIInterfaceOrientationMaskPortrait|UIInterfaceOrientationMaskPortraitUpsideDown))) {
UIInterfaceOrientation orient = UIInterfaceOrientationLandscapeLeft;

if (orientations & UIInterfaceOrientationMaskLandscapeRight) {
orient = UIInterfaceOrientationLandscapeRight;
}

[app setStatusBarOrientation:orient animated:NO];
}
}
Expand All @@ -212,12 +208,24 @@ static int SetupWindowData(_THIS, SDL_Window *window, UIWindow *uiwindow, SDL_bo
if (SetupWindowData(_this, window, uiwindow, SDL_TRUE) < 0) {
return -1;
}

}

return 1;
}

void
UIKit_SetWindowTitle(_THIS, SDL_Window * window)
{
@autoreleasepool {
SDL_uikitviewcontroller *vc = ((__bridge SDL_WindowData *) window->driverdata).viewcontroller;
if (window->title) {
vc.title = @(window->title);
} else {
vc.title = @"";
}
}
}

void
UIKit_ShowWindow(_THIS, SDL_Window * window)
{
Expand Down Expand Up @@ -275,16 +283,16 @@ static int SetupWindowData(_THIS, SDL_Window *window, UIWindow *uiwindow, SDL_bo
[windowdata.view layoutIfNeeded];

/* Get frame dimensions */
int width = (int) frame.size.width;
int height = (int) frame.size.height;
int w = (int) frame.size.width;
int h = (int) frame.size.height;

/* We can pick either width or height here and we'll rotate the
screen to match, so we pick the closest to what we wanted.
*/
if (window->w >= window->h) {
SDL_SendWindowEvent(window, SDL_WINDOWEVENT_RESIZED, SDL_max(width, height), SDL_min(width, height));
SDL_SendWindowEvent(window, SDL_WINDOWEVENT_RESIZED, SDL_max(w, h), SDL_min(w, h));
} else {
SDL_SendWindowEvent(window, SDL_WINDOWEVENT_RESIZED, SDL_min(width, height), SDL_max(width, height));
SDL_SendWindowEvent(window, SDL_WINDOWEVENT_RESIZED, SDL_min(w, h), SDL_max(w, h));
}
}

Expand Down Expand Up @@ -312,7 +320,6 @@ static int SetupWindowData(_THIS, SDL_Window *window, UIWindow *uiwindow, SDL_bo
CFRelease(window->driverdata);
}
}

window->driverdata = NULL;
}

Expand Down

0 comments on commit bc4b6f0

Please sign in to comment.