# HG changeset patch # User koda # Date 1264362750 0 # Node ID c85ffe57d9719f9577c890317b113cfca31eb69d # Parent 71250942e95b7a25735d4f0d350e9ec8d02e8863 update iphone frontend to the new (silly) sdl api, code cleanups for other sections diff -r 71250942e95b -r c85ffe57d971 cocoaTouch/MainWindow.xib --- a/cocoaTouch/MainWindow.xib Sun Jan 24 19:01:51 2010 +0000 +++ b/cocoaTouch/MainWindow.xib Sun Jan 24 19:52:30 2010 +0000 @@ -148,11 +148,11 @@ - window + uiwindow - 24 + 25 @@ -331,7 +331,7 @@ - 24 + 25 @@ -382,7 +382,7 @@ YES controller - window + uiwindow YES @@ -398,6 +398,19 @@ SchemeEditViewController UIViewController + + YES + + YES + cell0 + table + + + YES + UITableViewCell + UITableView + + IBProjectSource ../../../hedge.build/trunk/cocoaTouch/SchemeEditViewController.h @@ -406,6 +419,42 @@ SettingsViewController UIViewController + + YES + + YES + backgroundTap: + sliderChanged: + textFieldDoneEditing: + + + YES + id + id + id + + + + YES + + YES + password + table + username + volumeCell + volumeLabel + volumeSlider + + + YES + UITextField + UITableView + UITextField + UITableViewCell + UILabel + UISlider + + IBProjectSource ../../../hedge.build/trunk/cocoaTouch/SettingsViewController.h @@ -601,6 +650,14 @@ + UIScrollView + UIView + + IBFrameworkSource + UIKit.framework/Headers/UIScrollView.h + + + UISearchBar UIView @@ -617,6 +674,14 @@ + UISlider + UIControl + + IBFrameworkSource + UIKit.framework/Headers/UISlider.h + + + UITabBar UIView @@ -641,14 +706,35 @@ - UIView + UITableView + UIScrollView IBFrameworkSource + UIKit.framework/Headers/UITableView.h + + + + UITableViewCell + UIView + + IBFrameworkSource + UIKit.framework/Headers/UITableViewCell.h + + + + UITextField + UIControl + + IBFrameworkSource UIKit.framework/Headers/UITextField.h UIView + + + + UIView UIResponder IBFrameworkSource diff -r 71250942e95b -r c85ffe57d971 cocoaTouch/SDLOverrides/SDL_uikitappdelegate.h --- a/cocoaTouch/SDLOverrides/SDL_uikitappdelegate.h Sun Jan 24 19:01:51 2010 +0000 +++ b/cocoaTouch/SDLOverrides/SDL_uikitappdelegate.h Sun Jan 24 19:52:30 2010 +0000 @@ -23,15 +23,15 @@ #import #import "SDL_video.h" -@interface SDLUIKitDelegate:NSObject { - UIWindow *window; - SDL_WindowID windowID; +@interface SDLUIKitDelegate:NSObject { + SDL_Window *window; + UIWindow *uiwindow; UITabBarController *controller; } // the outlets are set in MainWindow.xib -@property (readwrite, retain) IBOutlet UIWindow *window; -@property (readwrite, assign) SDL_WindowID windowID; +@property (readwrite, assign) SDL_Window *window; +@property (readwrite, retain) IBOutlet UIWindow *uiwindow; @property (nonatomic, retain) IBOutlet UITabBarController *controller; +(SDLUIKitDelegate *)sharedAppDelegate; diff -r 71250942e95b -r c85ffe57d971 cocoaTouch/SDLOverrides/SDL_uikitappdelegate.m --- a/cocoaTouch/SDLOverrides/SDL_uikitappdelegate.m Sun Jan 24 19:01:51 2010 +0000 +++ b/cocoaTouch/SDLOverrides/SDL_uikitappdelegate.m Sun Jan 24 19:52:30 2010 +0000 @@ -47,20 +47,30 @@ @implementation SDLUIKitDelegate -@synthesize window, windowID, controller; +@synthesize uiwindow, window, controller; /* convenience method */ +(SDLUIKitDelegate *)sharedAppDelegate { - /* the delegate is set in UIApplicationMain(), which is garaunteed to be called before this method */ + /* the delegate is set in UIApplicationMain(), which is guaranteed to be called before this method */ return (SDLUIKitDelegate *)[[UIApplication sharedApplication] delegate]; } +-(id) init { + self = [super init]; + self.uiwindow = nil; + self.window = NULL; + self.controller = nil; + return self; +} + -(void) dealloc { [controller release]; - [window release]; + [uiwindow release]; [super dealloc]; } +#pragma mark - +#pragma mark Custom stuff -(IBAction) startSDLgame { NSAutoreleasePool *internal_pool = [[NSAutoreleasePool alloc] init]; @@ -84,17 +94,16 @@ free(gameArgs); NSLog(@"Game is exting..."); - [[window viewWithTag:54867] removeFromSuperview]; [setup release]; - [window addSubview:controller.view]; - [window makeKeyAndVisible]; - [UIView beginAnimations:@"inserting main controller" context:NULL]; [UIView setAnimationDuration:1]; controller.view.alpha = 1; [UIView commitAnimations]; + [uiwindow addSubview:controller.view]; + [uiwindow makeKeyAndVisible]; + [internal_pool release]; } @@ -120,6 +129,23 @@ return isFirstRun; } +-(NSString *)dataFilePath: (NSString *)fileName { + NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); + NSString *documentsDirectory = [paths objectAtIndex:0]; + return [documentsDirectory stringByAppendingPathComponent:fileName]; +} + +-(void) applicationDidReceiveMemoryWarning:(UIApplication *)application { + UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Running low on memory" + message:@"Will try to free some memory but app may crash" + delegate:nil + cancelButtonTitle:@"Ok" + otherButtonTitles:nil ]; + [alert show]; + [alert release]; +} +#pragma mark - +#pragma mark SDLUIKitDelegate methods // override the direct execution of SDL_main to allow us to implement the frontend (even using a nib) -(void) applicationDidFinishLaunching:(UIApplication *)application { [application setStatusBarHidden:YES animated:NO]; @@ -128,8 +154,8 @@ /* Set working directory to resource path */ [[NSFileManager defaultManager] changeCurrentDirectoryPath: [[NSBundle mainBundle] resourcePath]]; - [window addSubview:controller.view]; - [window makeKeyAndVisible]; + [uiwindow addSubview:controller.view]; + [uiwindow makeKeyAndVisible]; } -(void) applicationWillTerminate:(UIApplication *)application { @@ -141,12 +167,12 @@ -(void) applicationWillResignActive:(UIApplication*)application { // NSLog(@"%@", NSStringFromSelector(_cmd)); - SDL_SendWindowEvent(self.windowID, SDL_WINDOWEVENT_MINIMIZED, 0, 0); + SDL_SendWindowEvent(self.window, SDL_WINDOWEVENT_MINIMIZED, 0, 0); } -(void) applicationDidBecomeActive:(UIApplication*)application { // NSLog(@"%@", NSStringFromSelector(_cmd)); - SDL_SendWindowEvent(self.windowID, SDL_WINDOWEVENT_RESTORED, 0, 0); + SDL_SendWindowEvent(self.window, SDL_WINDOWEVENT_RESTORED, 0, 0); } /* @@ -156,10 +182,4 @@ } */ --(NSString *)dataFilePath: (NSString *)fileName { - NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); - NSString *documentsDirectory = [paths objectAtIndex:0]; - return [documentsDirectory stringByAppendingPathComponent:fileName]; -} - @end diff -r 71250942e95b -r c85ffe57d971 cocoaTouch/SDLOverrides/SDL_uikitopengles.h --- a/cocoaTouch/SDLOverrides/SDL_uikitopengles.h Sun Jan 24 19:01:51 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -/* - SDL - Simple DirectMedia Layer - Copyright (C) 1997-2009 Sam Lantinga - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Sam Lantinga - slouken@libsdl.org -*/ - -#include "SDL_config.h" - -#ifndef _SDL_uikitopengles -#define _SDL_uikitopengles - -#include "SDL_uikitvideo.h" - -extern int UIKit_GL_MakeCurrent(_THIS, SDL_Window * window, - SDL_GLContext context); -extern void UIKit_GL_SwapWindow(_THIS, SDL_Window * window); -extern SDL_GLContext UIKit_GL_CreateContext(_THIS, SDL_Window * window); -extern void UIKit_GL_DeleteContext(_THIS, SDL_GLContext context); -extern void *UIKit_GL_GetProcAddress(_THIS, const char *proc); -extern int UIKit_GL_LoadLibrary(_THIS, const char *path); - -#endif diff -r 71250942e95b -r c85ffe57d971 cocoaTouch/SDLOverrides/SDL_uikitopengles.m --- a/cocoaTouch/SDLOverrides/SDL_uikitopengles.m Sun Jan 24 19:01:51 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,139 +0,0 @@ -/* - SDL - Simple DirectMedia Layer - Copyright (C) 1997-2009 Sam Lantinga - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Sam Lantinga - slouken@libsdl.org - */ - -#include "SDL_uikitopengles.h" -#include "SDL_uikitopenglview.h" -#include "SDL_uikitappdelegate.h" -#include "SDL_uikitwindow.h" -#include "jumphack.h" -#include "SDL_sysvideo.h" -#include "SDL_loadso.h" -#include - -static int UIKit_GL_Initialize(_THIS); - -void * -UIKit_GL_GetProcAddress(_THIS, const char *proc) -{ - /* Look through all SO's for the proc symbol. Here's why: - -Looking for the path to the OpenGL Library seems not to work in the iPhone Simulator. - -We don't know that the path won't change in the future. - */ - return SDL_LoadFunction(RTLD_DEFAULT, proc); -} - -/* - note that SDL_GL_Delete context makes it current without passing the window -*/ -int UIKit_GL_MakeCurrent(_THIS, SDL_Window * window, SDL_GLContext context) -{ - - if (context) { - SDL_WindowData *data = (SDL_WindowData *)window->driverdata; - [data->view setCurrentContext]; - } - else { - [EAGLContext setCurrentContext: nil]; - } - - return 0; -} - -int -UIKit_GL_LoadLibrary(_THIS, const char *path) -{ - /* - shouldn't be passing a path into this function - why? Because we've already loaded the library - and because the SDK forbids loading an external SO - */ - if (path != NULL) { - SDL_SetError("iPhone GL Load Library just here for compatibility"); - return -1; - } - return 0; -} - - -void UIKit_GL_SwapWindow(_THIS, SDL_Window * window) -{ - - SDL_WindowData *data = (SDL_WindowData *)window->driverdata; - - if (nil == data->view) { - return; - } - [data->view swapBuffers]; - /* since now we've got something to draw - make the window visible */ - [data->uiwindow makeKeyAndVisible]; - - /* we need to let the event cycle run, or the OS won't update the OpenGL view! */ - SDL_PumpEvents(); - -} - -SDL_GLContext UIKit_GL_CreateContext(_THIS, SDL_Window * window) -{ - - SDL_uikitopenglview *view; - - SDL_WindowData *data = (SDL_WindowData *)window->driverdata; - - /* construct our view, passing in SDL's OpenGL configuration data */ - view = [[SDL_uikitopenglview alloc] initWithFrame: [[UIScreen mainScreen] applicationFrame] \ - retainBacking: _this->gl_config.retained_backing \ - rBits: _this->gl_config.red_size \ - gBits: _this->gl_config.green_size \ - bBits: _this->gl_config.blue_size \ - aBits: _this->gl_config.alpha_size \ - depthBits: _this->gl_config.depth_size]; - - // add a tag to be able to remove from superview once finished - view.tag = 54867; - data->view = view; - - /* add the view to our window */ - [data->uiwindow addSubview: view ]; - - /* Don't worry, the window retained the view */ - [view release]; - - if ( UIKit_GL_MakeCurrent(_this, window, view) < 0 ) { - UIKit_GL_DeleteContext(_this, view); - return NULL; - } - - return view; -} - -void UIKit_GL_DeleteContext(_THIS, SDL_GLContext context) -{ - /* the delegate has retained the view, this will release him */ - SDL_uikitopenglview *view = (SDL_uikitopenglview *)context; - /* this will also delete it */ - [view removeFromSuperview]; - - return; -} - - diff -r 71250942e95b -r c85ffe57d971 cocoaTouch/SDLOverrides/SDL_uikitview.h --- a/cocoaTouch/SDLOverrides/SDL_uikitview.h Sun Jan 24 19:01:51 2010 +0000 +++ b/cocoaTouch/SDLOverrides/SDL_uikitview.h Sun Jan 24 19:52:30 2010 +0000 @@ -35,9 +35,9 @@ #endif // constants for telling which input has been received -#define kMinimumPinchDelta 100 +#define kMinimumPinchDelta 100 #define kMinimumGestureLength 10 -#define kMaximumVariance 4 +#define kMaximumVariance 4 /* *INDENT-OFF* */ //#if SDL_IPHONE_KEYBOARD diff -r 71250942e95b -r c85ffe57d971 cocoaTouch/SDLOverrides/SDL_uikitview.m --- a/cocoaTouch/SDLOverrides/SDL_uikitview.m Sun Jan 24 19:01:51 2010 +0000 +++ b/cocoaTouch/SDLOverrides/SDL_uikitview.m Sun Jan 24 19:52:30 2010 +0000 @@ -37,7 +37,7 @@ // they have to be global variables to allow showControls() to use them UIButton *attackButton, *menuButton; -- (void)dealloc { +-(void) dealloc { #if SDL_IPHONE_KEYBOARD SDL_DelKeyboard(0); [textField release]; @@ -52,7 +52,7 @@ // this object is inherited by SDL_openglesview.m which is the one allocated by SDL. // We select this class with [self superclass] and call the selectors with "+" because // they are superclass methods - self = [super initWithFrame: frame]; + self = [super initWithFrame:frame]; #if SDL_IPHONE_KEYBOARD [self initializeKeyboard]; @@ -77,7 +77,6 @@ [menuButton addTarget:[self superclass] action:@selector(attackButtonPressed) forControlEvents:UIControlEventTouchUpInside]; [self addSubview:menuButton]; - [[SDLUIKitDelegate sharedAppDelegate].window makeKeyAndVisible]; self.multipleTouchEnabled = YES; return self; @@ -87,9 +86,9 @@ #pragma mark Exported functions for FreePascal const char* IPH_getDocumentsPath() { - NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); - NSString *documentsDirectory = [paths objectAtIndex: 0]; - return [documentsDirectory UTF8String]; + NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); + NSString *documentsDirectory = [paths objectAtIndex: 0]; + return [documentsDirectory UTF8String]; } void IPH_showControls (void) { @@ -167,7 +166,7 @@ // one tap - single click if (1 == [touch tapCount] ) { - //SDL_WarpMouseInWindow([SDLUIKitDelegate sharedAppDelegate].windowID, gestureStartPoint.x, gestureStartPoint.y); + //SDL_WarpMouseInWindow([SDLUIKitDelegate sharedAppDelegate].window, gestureStartPoint.x, gestureStartPoint.y); HW_click(); } @@ -395,9 +394,7 @@ /* iPhone keyboard addition functions */ #if SDL_IPHONE_KEYBOARD -int SDL_iPhoneKeyboardShow(SDL_WindowID windowID) { - - SDL_Window *window = SDL_GetWindowFromID(windowID); +int SDL_iPhoneKeyboardShow(SDL_Window *window) { SDL_WindowData *data; SDL_uikitview *view; @@ -419,9 +416,7 @@ } } -int SDL_iPhoneKeyboardHide(SDL_WindowID windowID) { - - SDL_Window *window = SDL_GetWindowFromID(windowID); +int SDL_iPhoneKeyboardHide(SDL_Window *window) { SDL_WindowData *data; SDL_uikitview *view; @@ -443,9 +438,7 @@ } } -SDL_bool SDL_iPhoneKeyboardIsShown(SDL_WindowID windowID) { - - SDL_Window *window = SDL_GetWindowFromID(windowID); +SDL_bool SDL_iPhoneKeyboardIsShown(SDL_Window *window) { SDL_WindowData *data; SDL_uikitview *view; @@ -466,9 +459,7 @@ } } -int SDL_iPhoneKeyboardToggle(SDL_WindowID windowID) { - - SDL_Window *window = SDL_GetWindowFromID(windowID); +int SDL_iPhoneKeyboardToggle(SDL_Window *window) { SDL_WindowData *data; SDL_uikitview *view; @@ -485,11 +476,11 @@ return -1; } else { - if (SDL_iPhoneKeyboardIsShown(windowID)) { - SDL_iPhoneKeyboardHide(windowID); + if (SDL_iPhoneKeyboardIsShown(window)) { + SDL_iPhoneKeyboardHide(window); } else { - SDL_iPhoneKeyboardShow(windowID); + SDL_iPhoneKeyboardShow(window); } return 0; } @@ -499,21 +490,21 @@ /* stubs, used if compiled without keyboard support */ -int SDL_iPhoneKeyboardShow(SDL_WindowID windowID) { +int SDL_iPhoneKeyboardShow(SDL_Window *window) { SDL_SetError("Not compiled with keyboard support"); return -1; } -int SDL_iPhoneKeyboardHide(SDL_WindowID windowID) { +int SDL_iPhoneKeyboardHide(SDL_Window *window) { SDL_SetError("Not compiled with keyboard support"); return -1; } -SDL_bool SDL_iPhoneKeyboardIsShown(SDL_WindowID windowID) { +SDL_bool SDL_iPhoneKeyboardIsShown(SDL_Window *window) { return 0; } -int SDL_iPhoneKeyboardToggle(SDL_WindowID windowID) { +int SDL_iPhoneKeyboardToggle(SDL_Window *window) { SDL_SetError("Not compiled with keyboard support"); return -1; } diff -r 71250942e95b -r c85ffe57d971 cocoaTouch/SDLOverrides/SDL_uikitwindow.h --- a/cocoaTouch/SDLOverrides/SDL_uikitwindow.h Sun Jan 24 19:01:51 2010 +0000 +++ b/cocoaTouch/SDLOverrides/SDL_uikitwindow.h Sun Jan 24 19:52:30 2010 +0000 @@ -36,7 +36,7 @@ struct SDL_WindowData { - SDL_WindowID windowID; + SDL_Window *window; UIWindow *uiwindow; SDL_uikitopenglview *view; }; diff -r 71250942e95b -r c85ffe57d971 cocoaTouch/SDLOverrides/SDL_uikitwindow.m --- a/cocoaTouch/SDLOverrides/SDL_uikitwindow.m Sun Jan 24 19:01:51 2010 +0000 +++ b/cocoaTouch/SDLOverrides/SDL_uikitwindow.m Sun Jan 24 19:52:30 2010 +0000 @@ -39,26 +39,25 @@ #include 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->uiwindow = uiwindow; + SDL_WindowData *data; + + /* Allocate the window data */ + data = (SDL_WindowData *)SDL_malloc(sizeof(*data)); + if (!data) { + SDL_OutOfMemory(); + return -1; + } + data->window = window; + data->uiwindow = uiwindow; data->view = nil; - - /* Fill in the SDL window with the window data */ + + /* 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->x = 0; + window->y = 0; + window->w = (int)uiwindow.frame.size.width; + window->h = (int)uiwindow.frame.size.height; + } window->driverdata = data; @@ -67,7 +66,7 @@ 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; @@ -76,7 +75,7 @@ [UIApplication sharedApplication].statusBarHidden = NO; } - return 0; + return 0; } @@ -91,17 +90,18 @@ UIWindow *uiwindow = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];*/ // since we handle the window with a NIB, we don't need the initialization above - if (SetupWindowData(_this, window, [SDLUIKitDelegate sharedAppDelegate].window, SDL_TRUE) < 0) { + if (SetupWindowData(_this, window, [SDLUIKitDelegate sharedAppDelegate].uiwindow, SDL_TRUE) < 0) { SDL_SetError("SetupWindowData() failed"); - return -1; - } + //[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].windowID = window->id; + [SDLUIKitDelegate sharedAppDelegate].window = window; -/* [SDLUIKitDelegate sharedAppDelegate].window = uiwindow; - [uiwindow release]; /* release the window (the app delegate has retained it) */ + //[SDLUIKitDelegate sharedAppDelegate].uiwindow = uiwindow; + //[uiwindow release]; /* release the window (the app delegate has retained it) */ return 1; @@ -116,8 +116,8 @@ } /* this will also destroy the window */ - //[SDLUIKitDelegate sharedAppDelegate].window = nil; - [SDLUIKitDelegate sharedAppDelegate].windowID = 0; + [SDLUIKitDelegate sharedAppDelegate].window = NULL; + //[SDLUIKitDelegate sharedAppDelegate].uiwindow = nil; } diff -r 71250942e95b -r c85ffe57d971 hedgewars/CCHandlers.inc --- a/hedgewars/CCHandlers.inc Sun Jan 24 19:01:51 2010 +0000 +++ b/hedgewars/CCHandlers.inc Sun Jan 24 19:52:30 2010 +0000 @@ -598,9 +598,6 @@ {$IFDEF DEBUGFILE} buf: array[byte] of char; {$ENDIF} -{$IFDEF SDL13} - windowID: TSDL_WindowID; -{$ENDIF} begin if Length(s) = 0 then cFullScreen:= not cFullScreen else cFullScreen:= s = '1'; @@ -631,20 +628,9 @@ SDL_FreeSurface(SDLPrimSurface); end; -{$IFDEF SDL13} - windowID:= SDL_CreateWindow(nil, 0, 0, cScreenWidth, cScreenHeight, SDL_WINDOW_OPENGL or SDL_WINDOW_SHOWN - {$IFDEF IPHONEOS} or SDL_WINDOW_BORDERLESS{$ENDIF}); - SDL_CreateRenderer(windowID, 0, 0); - PixelFormat:=nil;// SDLPrimSurface^.format; - - SDL_SetRenderDrawColor(0, 0, 0, 255); - SDL_RenderFill(nil); - SDL_RenderPresent(); -{$ELSE} SDLPrimSurface:= SDL_SetVideoMode(cScreenWidth, cScreenHeight, cBits, flags); SDLTry(SDLPrimSurface <> nil, true); PixelFormat:= SDLPrimSurface^.format; -{$ENDIF} {$IFDEF DEBUGFILE} AddFileLog('Setting up OpenGL...'); diff -r 71250942e95b -r c85ffe57d971 hedgewars/PascalExports.pas --- a/hedgewars/PascalExports.pas Sun Jan 24 19:01:51 2010 +0000 +++ b/hedgewars/PascalExports.pas Sun Jan 24 19:52:30 2010 +0000 @@ -19,6 +19,7 @@ {$IFDEF IPHONEOS} // called by pascal code, they deal with the objc code +procedure IPH_CreateWindowsFromObjc; cdecl; external; function IPH_getDocumentsPath: PChar; cdecl; external; procedure IPH_showControls; cdecl; external; diff -r 71250942e95b -r c85ffe57d971 hedgewars/SDLh.pas --- a/hedgewars/SDLh.pas Sun Jan 24 19:01:51 2010 +0000 +++ b/hedgewars/SDLh.pas Sun Jan 24 19:52:30 2010 +0000 @@ -327,24 +327,34 @@ {* SDL_Event type definition *} {$IFDEF SDL13} - TSDL_WindowID = LongInt; - TSDL_TextureID = LongInt; + //UPDATE TSDL_Window AND TSDL_Texture before usage!!! + PSDL_Window = ^TSDL_Window; + TSDL_Window = LongInt; //not true anymore + + PSDL_Texture = ^TSDL_Texture; + TSDL_Texture = LongInt; //not true anymore TSDL_WindowEvent = record type_: byte; gain: byte; state: byte; - windowID: TSDL_WindowID; + windowID: LongInt; data1, data2: LongInt; end; // implement SDL_TextEditingEvent + SDL_TextInputEvent for sdl13 {$ELSE} + //these two are present in sdl1.3 but only for backward compatibility TSDL_ActiveEvent = record type_: byte; gain: byte; state: byte; end; + + TSDL_ResizeEvent = record + type_: Byte; + w, h: LongInt; + end; {$ENDIF} TSDL_MouseMotionEvent = record @@ -352,6 +362,7 @@ which: byte; state: byte; {$IFDEF SDL13} + windowID: LongInt; x, y, xrel, yrel : LongInt; pressure, pressure_max, pressure_min, rotation, tilt, cursor: LongInt; @@ -363,7 +374,7 @@ TSDL_KeyboardEvent = record type_: Byte; {$IFDEF SDL13} - windowID: TSDL_WindowID; + windowID: LongInt; {$ENDIF} which: Byte; state: Byte; @@ -376,6 +387,7 @@ button, state: byte; {$IFDEF SDL13} + windowID: LongInt; x, y: LongInt; {$ELSE} x, y: word; @@ -385,7 +397,7 @@ {$IFDEF SDL13} TSDL_MouseWheelEvent = record type_: Byte; - windowID: TSDL_WindowID; + windowID: LongInt; which: Byte; x, y: LongInt; end; @@ -431,13 +443,6 @@ type_: Byte; end; -{$IFNDEF SDL13} - TSDL_ResizeEvent = record - type_: Byte; - w, h: LongInt; - end; -{$ENDIF} - PSDL_Event = ^TSDL_Event; TSDL_Event = record case Byte of @@ -626,27 +631,19 @@ function SDL_SaveBMP_RW(surface: PSDL_Surface; dst: PSDL_RWops; freedst: LongInt): LongInt; cdecl; external SDLLibName; {$IFDEF SDL13} -function SDL_CreateWindow(title: PChar; x,y,w,h, flags: LongInt): TSDL_WindowID; cdecl; external SDLLibName; -function SDL_CreateRenderer(windowID: TSDL_WindowID; index, flags: LongInt): LongInt; cdecl; external SDLLibName; -function SDL_SetRenderDrawColor(r,g,b,a: byte): LongInt; cdecl; external SDLLibName; function SDL_RenderFill(rect: PSDL_Rect): LongInt; function SDL_RenderFillRect(rect: PSDL_Rect): LongInt; cdecl; external SDLLibName; function SDL_RenderClear: LongInt; cdecl; external SDLLibName; procedure SDL_RenderPresent; cdecl; external SDLLibName; -function SDL_RenderCopy(textureID: TSDL_TextureID; srcrect, dstrect: PSDL_Rect): LongInt; cdecl; external SDLLibName; procedure SDL_VideoQuit; cdecl; external SDLLibName; -function SDL_CreateTextureFromSurface(format: LongInt; surface: PSDL_Surface): TSDL_TextureID; cdecl; external SDLLibName; -procedure SDL_DestroyTexture(textureID: TSDL_TextureID); cdecl; external SDLLibName; - -function SDL_GetKeyboardState(numkeys: PLongInt): PByteArray; cdecl; external SDLLibName; function SDL_SelectMouse(index: LongInt): LongInt; cdecl; external SDLLibName; function SDL_GetRelativeMouseState(x, y: PLongInt): Byte; cdecl; external SDLLibName; function SDL_GetNumMice: LongInt; cdecl; external SDLLibName; function SDL_PixelFormatEnumToMasks(format: TSDL_ArrayByteOrder; bpp: PLongInt; Rmask, Gmask, Bmask, Amask: PLongInt): boolean; cdecl; external SDLLibName; -{$ELSE} -function SDL_GetKeyState(numkeys: PLongInt): PByteArray; cdecl; external SDLLibName; {$ENDIF} + +function SDL_GetKeyState(numkeys: PLongInt): PByteArray; cdecl; external SDLLibName {$IFDEF SDL13} name 'SDL_GetKeyboardState'{$ENDIF}; function SDL_GetMouseState(x, y: PLongInt): Byte; cdecl; external SDLLibName; function SDL_GetKeyName(key: Longword): PChar; cdecl; external SDLLibName; procedure SDL_WarpMouse(x, y: Word); cdecl; external SDLLibName; @@ -668,13 +665,6 @@ function SDL_GL_SetAttribute(attr: TSDL_GLattr; value: LongInt): LongInt; cdecl; external SDLLibName; procedure SDL_GL_SwapBuffers(); cdecl; external SDLLibName; -{$IFDEF IPHONEOS} -function SDL_iPhoneKeyboardShow(windowID: LongInt): LongInt; cdecl; external SDLLibName; -function SDL_iPhoneKeyboardHide(windowID: LongInt): LongInt; cdecl; external SDLLibName; -function SDL_iPhoneKeyboardIsShown(windowID: LongInt): boolean; cdecl; external SDLLibName; -function SDL_iPhoneKeyboardToggle(windowID: LongInt): LongInt; cdecl; external SDLLibName; -{$ENDIF} - function SDL_NumJoysticks: LongInt; cdecl; external SDLLibName; function SDL_JoystickName(idx: LongInt): PChar; cdecl; external SDLLibName; function SDL_JoystickOpen(idx: LongInt): PSDL_Joystick; cdecl; external SDLLibName; diff -r 71250942e95b -r c85ffe57d971 hedgewars/hwengine.pas --- a/hedgewars/hwengine.pas Sun Jan 24 19:01:51 2010 +0000 +++ b/hedgewars/hwengine.pas Sun Jan 24 19:52:30 2010 +0000 @@ -255,7 +255,7 @@ if p <> ptMapCurrent then Pathz[p]:= PathPrefix + '/' + Pathz[p]; WriteToConsole('Init SDL... '); - SDLTry(SDL_Init(SDL_INIT_VIDEO or SDL_INIT_NOPARACHUTE) >= 0, true); + SDLTry(SDL_Init(SDL_INIT_VIDEO) >= 0, true); WriteLnToConsole(msgOK); SDL_EnableUNICODE(1); diff -r 71250942e95b -r c85ffe57d971 hedgewars/uKeys.pas --- a/hedgewars/uKeys.pas Sun Jan 24 19:01:51 2010 +0000 +++ b/hedgewars/uKeys.pas Sun Jan 24 19:52:30 2010 +0000 @@ -108,11 +108,7 @@ movecursor(5 * CursorMovementX, 5 * CursorMovementY); k:= SDL_GetMouseState(nil, nil); -{$IFDEF SDL13} -pkbd:= SDL_GetKeyboardState(@j); -{$ELSE} pkbd:= SDL_GetKeyState(@j); -{$ENDIF} {$IFNDEF IPHONEOS} for i:= 6 to pred(j) do // first 6 will be overwritten @@ -207,11 +203,8 @@ begin k:= SDL_GetMouseState(nil, nil); -{$IFDEF SDL13} -pkbd:= SDL_GetKeyboardState(@j); -{$ELSE} pkbd:= SDL_GetKeyState(@j); -{$ENDIF} + TryDo(j < cKeyMaxIndex, 'SDL keys number is more than expected (' + inttostr(j) + ')', true); {$IFNDEF IPHONEOS} @@ -312,11 +305,7 @@ //for i:= 0 to cKeyMaxIndex do writeln(stdout,inttostr(i) + ': ' + KeyNames[i]); // get the size of keyboard array -{$IFDEF SDL13} -SDL_GetKeyboardState(@k); -{$ELSE} SDL_GetKeyState(@k); -{$ENDIF} // Controller(s) for j:= 0 to Pred(ControllerNumControllers) do