diff src/video/uikit/SDL_uikitwindow.m @ 3685:64ce267332c6

Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
author Sam Lantinga <slouken@libsdl.org>
date Thu, 21 Jan 2010 06:21:52 +0000
parents 4ec48602f1db
children 8b03a20b320f
line wrap: on
line diff
--- a/src/video/uikit/SDL_uikitwindow.m	Thu Jan 21 05:49:41 2010 +0000
+++ b/src/video/uikit/SDL_uikitwindow.m	Thu Jan 21 06:21:52 2010 +0000
@@ -41,83 +41,82 @@
 static int SetupWindowData(_THIS, SDL_Window *window, UIWindow *uiwindow, SDL_bool created) {
 
     SDL_WindowData *data;
-		
+        
     /* Allocate the window data */
     data = (SDL_WindowData *)SDL_malloc(sizeof(*data));
     if (!data) {
         SDL_OutOfMemory();
         return -1;
     }
-    data->windowID = window->id;
+    data->window = window;
     data->uiwindow = uiwindow;
-	data->view = nil;
-		
+    data->view = nil;
+
     /* Fill in the SDL window with the window data */
-	{
+    {
         window->x = 0;
         window->y = 0;
         window->w = (int)uiwindow.frame.size.width;
         window->h = (int)uiwindow.frame.size.height;
     }
-	
-	window->driverdata = data;
-	
-	window->flags &= ~SDL_WINDOW_RESIZABLE;		/* window is NEVER resizeable */
-	window->flags |= SDL_WINDOW_OPENGL;			/* window is always OpenGL */
-	window->flags |= SDL_WINDOW_FULLSCREEN;		/* window is always fullscreen */
-	window->flags |= SDL_WINDOW_SHOWN;			/* only one window on iPod touch, always shown */
-	window->flags |= SDL_WINDOW_INPUT_FOCUS;	/* always has input focus */	
+    
+    window->driverdata = data;
+    
+    window->flags &= ~SDL_WINDOW_RESIZABLE;        /* window is NEVER resizeable */
+    window->flags |= SDL_WINDOW_OPENGL;            /* window is always OpenGL */
+    window->flags |= SDL_WINDOW_FULLSCREEN;        /* window is always fullscreen */
+    window->flags |= SDL_WINDOW_SHOWN;            /* only one window on iPod touch, always shown */
+    window->flags |= SDL_WINDOW_INPUT_FOCUS;    /* always has input focus */    
 
-	/* SDL_WINDOW_BORDERLESS controls whether status bar is hidden */
-	if (window->flags & SDL_WINDOW_BORDERLESS) {
-		[UIApplication sharedApplication].statusBarHidden = YES;
-	}
-	else {
-		[UIApplication sharedApplication].statusBarHidden = NO;
-	}
-	
+    /* SDL_WINDOW_BORDERLESS controls whether status bar is hidden */
+    if (window->flags & SDL_WINDOW_BORDERLESS) {
+        [UIApplication sharedApplication].statusBarHidden = YES;
+    }
+    else {
+        [UIApplication sharedApplication].statusBarHidden = NO;
+    }
+    
     return 0;
-	
+    
 }
 
 int UIKit_CreateWindow(_THIS, SDL_Window *window) {
-		
-	/* We currently only handle single window applications on iPhone */
-	if (nil != [SDLUIKitDelegate sharedAppDelegate].window) {
-		SDL_SetError("Window already exists, no multi-window support.");
-		return -1;
-	}
-	
-	/* ignore the size user requested, and make a fullscreen window */
-	UIWindow *uiwindow = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
-	
-	if (SetupWindowData(_this, window, uiwindow, SDL_TRUE) < 0) {
+        
+    /* We currently only handle single window applications on iPhone */
+    if (nil != [SDLUIKitDelegate sharedAppDelegate].window) {
+        SDL_SetError("Window already exists, no multi-window support.");
+        return -1;
+    }
+    
+    /* ignore the size user requested, and make a fullscreen window */
+    UIWindow *uiwindow = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
+    
+    if (SetupWindowData(_this, window, uiwindow, SDL_TRUE) < 0) {
         [uiwindow release];
         return -1;
-    }	
-	
-	// This saves the main window in the app delegate so event callbacks can do stuff on the window.
-	// This assumes a single window application design and needs to be fixed for multiple windows.
-	[SDLUIKitDelegate sharedAppDelegate].window = uiwindow;
-	[SDLUIKitDelegate sharedAppDelegate].windowID = window->id;
-	[uiwindow release]; /* release the window (the app delegate has retained it) */
-	
-	return 1;
-	
+    }    
+    
+    // This saves the main window in the app delegate so event callbacks can do stuff on the window.
+    // This assumes a single window application design and needs to be fixed for multiple windows.
+    [SDLUIKitDelegate sharedAppDelegate].window = window;
+    [SDLUIKitDelegate sharedAppDelegate].uiwindow = uiwindow;
+    [uiwindow release]; /* release the window (the app delegate has retained it) */
+    
+    return 1;
+    
 }
 
 void UIKit_DestroyWindow(_THIS, SDL_Window * window) {
-	/* don't worry, the delegate will automatically release the window */
-	
-	SDL_WindowData *data = (SDL_WindowData *)window->driverdata;
-	if (data) {
-		SDL_free( window->driverdata );
-	}
+    /* don't worry, the delegate will automatically release the window */
+    
+    SDL_WindowData *data = (SDL_WindowData *)window->driverdata;
+    if (data) {
+        SDL_free( window->driverdata );
+    }
 
-	/* this will also destroy the window */
-	[SDLUIKitDelegate sharedAppDelegate].window = nil;
-	[SDLUIKitDelegate sharedAppDelegate].windowID = 0;
-
+    /* this will also destroy the window */
+    [SDLUIKitDelegate sharedAppDelegate].window = NULL;
+    [SDLUIKitDelegate sharedAppDelegate].uiwindow = nil;
 }
 
 /* vi: set ts=4 sw=4 expandtab: */