# HG changeset patch # User koda # Date 1297116776 -3600 # Node ID 86bd82d58a0be964f7f40ec626e1ba129be56df8 # Parent f11d80bac7edff17edf84680e37b9a616e5eaf0d update sdl apis to use the new rendering functions diff -r f11d80bac7ed -r 86bd82d58a0b hedgewars/SDLh.pas --- a/hedgewars/SDLh.pas Sun Feb 06 21:50:29 2011 +0300 +++ b/hedgewars/SDLh.pas Mon Feb 07 23:12:56 2011 +0100 @@ -358,6 +358,7 @@ {$IFDEF SDL13} PSDL_Window = pointer; + PSDL_Renderer = pointer; PSDL_Texture = pointer; TSDL_WindowEvent = record @@ -715,24 +716,23 @@ {$IFDEF SDL13} function SDL_CreateWindow(title: PChar; x,y,w,h, flags: LongInt): PSDL_Window; cdecl; external SDLLibName; -function SDL_CreateRenderer(window: PSDL_Window; index, flags: LongInt): LongInt; cdecl; external SDLLibName; -function SDL_SetRenderDrawColor(r,g,b,a: byte): LongInt; cdecl; external SDLLibName; -function SDL_DestroyRenderer(window: PSDL_Window): LongInt; cdecl; external SDLLibName; +function SDL_CreateRenderer(window: PSDL_Window; index, flags: LongInt): PSDL_Renderer; cdecl; external SDLLibName; +function SDL_DestroyRenderer(renderer: PSDL_Renderer): LongInt; cdecl; external SDLLibName; function SDL_DestroyWindow(window: PSDL_Window): LongInt; cdecl; external SDLLibName; +procedure SDL_VideoQuit; cdecl; external SDLLibName; function SDL_SelectVideoDisplay(index: LongInt): LongInt; cdecl; external SDLLibName; function SDL_GetNumVideoDisplays: 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; -procedure SDL_VideoQuit; cdecl; external SDLLibName; +function SDL_SetRenderDrawColor(renderer: PSDL_Renderer; r,g,b,a: byte): LongInt; cdecl; external SDLLibName; +function SDL_RenderFillRect(renderer: PSDL_Renderer; rect: PSDL_Rect): LongInt; cdecl; external SDLLibName; +function SDL_RenderClear(renderer: PSDL_Renderer): LongInt; cdecl; external SDLLibName; +procedure SDL_RenderPresent(renderer: PSDL_Renderer); cdecl; external SDLLibName; +function SDL_RenderReadPixels(renderer: PSDL_Renderer; rect: PSDL_Rect; format: LongInt; pixels: pointer; pitch: LongInt): LongInt; 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; -function SDL_RenderReadPixels(rect: PSDL_Rect; format: LongInt; pixels: pointer; pitch: LongInt): LongInt; cdecl; external SDLLibName; {$ENDIF} function SDL_GetKeyState(numkeys: PLongInt): PByteArray; cdecl; external SDLLibName {$IFDEF SDL13} name 'SDL_GetKeyboardState'{$ENDIF}; @@ -891,15 +891,5 @@ (PByteArray(buf)^[0] shl 24) end; -{$IFDEF SDL13} -function SDL_RenderFill(rect: PSDL_Rect): LongInt; -var res: LongInt; -begin - if (rect <> nil) then res:= SDL_RenderFillRect(rect) - else res:= SDL_RenderClear(); - exit(res); -end; -{$ENDIF} - end. diff -r f11d80bac7ed -r 86bd82d58a0b hedgewars/hwengine.pas --- a/hedgewars/hwengine.pas Sun Feb 06 21:50:29 2011 +0300 +++ b/hedgewars/hwengine.pas Mon Feb 07 23:12:56 2011 +0100 @@ -104,7 +104,7 @@ end; {$IFDEF SDL13} - SDL_RenderPresent(); + SDL_RenderPresent(SDLrender); {$ELSE} SDL_GL_SwapBuffers(); {$ENDIF} @@ -130,7 +130,8 @@ CloseIPC(); TTF_Quit(); {$IFDEF SDL13} - SDL_DestroyRenderer(SDLwindow); + SDL_RenderClear(SDLrender); + SDL_DestroyRenderer(SDLrender); SDL_DestroyWindow(SDLwindow); {$ENDIF} SDL_Quit(); diff -r f11d80bac7ed -r 86bd82d58a0b hedgewars/uStore.pas --- a/hedgewars/uStore.pas Sun Feb 06 21:50:29 2011 +0300 +++ b/hedgewars/uStore.pas Mon Feb 07 23:12:56 2011 +0100 @@ -689,7 +689,7 @@ SDL_GL_SwapBuffers(); {$IFDEF SDL13} - SDL_RenderPresent(); + SDL_RenderPresent(SDLrender); {$ENDIF} inc(Step); @@ -932,12 +932,12 @@ SDLwindow:= SDL_CreateWindow('Hedgewars', 0, 0, cScreenWidth, cScreenHeight, SDL_WINDOW_OPENGL or SDL_WINDOW_SHOWN {$IFDEF IPHONEOS} or SDL_WINDOW_BORDERLESS{$ENDIF}); - SDL_CreateRenderer(SDLwindow, -1, 0); + SDLrender:= SDL_CreateRenderer(SDLwindow, -1, 1 and 2); end; - SDL_SetRenderDrawColor(0, 0, 0, 255); - SDL_RenderFill(nil); - SDL_RenderPresent(); + SDL_SetRenderDrawColor(SDLrender,0, 0, 0, 255); + SDL_RenderClear(SDLrender); + SDL_RenderPresent(SDLrender); {$ELSE} SDLPrimSurface:= SDL_SetVideoMode(cScreenWidth, cScreenHeight, cBits, flags); SDLTry(SDLPrimSurface <> nil, true); diff -r f11d80bac7ed -r 86bd82d58a0b hedgewars/uVariables.pas --- a/hedgewars/uVariables.pas Sun Feb 06 21:50:29 2011 +0300 +++ b/hedgewars/uVariables.pas Mon Feb 07 23:12:56 2011 +0100 @@ -141,6 +141,7 @@ {$IFDEF SDL13} SDLwindow : PSDL_Window; + SDLrender : PSDL_Renderer; {$ENDIF} WorldDx: LongInt; @@ -2337,6 +2338,7 @@ {$IFDEF SDL13} SDLwindow := nil; + SDLrender := nil; {$ENDIF} // those values still are not perfect diff -r f11d80bac7ed -r 86bd82d58a0b project_files/HedgewarsMobile/SDL.patch --- a/project_files/HedgewarsMobile/SDL.patch Sun Feb 06 21:50:29 2011 +0300 +++ b/project_files/HedgewarsMobile/SDL.patch Mon Feb 07 23:12:56 2011 +0100 @@ -1,7 +1,7 @@ -diff -r f2c2f0ecba5f Xcode-iPhoneOS/SDL/SDLiPhoneOS.xcodeproj/project.pbxproj ---- a/Xcode-iPhoneOS/SDL/SDLiPhoneOS.xcodeproj/project.pbxproj Sun Jan 30 13:42:05 2011 -0800 -+++ b/Xcode-iPhoneOS/SDL/SDLiPhoneOS.xcodeproj/project.pbxproj Mon Jan 31 23:57:58 2011 +0100 -@@ -1564,11 +1564,15 @@ +diff -r 1fbe1c202501 Xcode-iPhoneOS/SDL/SDLiPhoneOS.xcodeproj/project.pbxproj +--- a/Xcode-iPhoneOS/SDL/SDLiPhoneOS.xcodeproj/project.pbxproj Mon Feb 07 10:40:21 2011 -0800 ++++ b/Xcode-iPhoneOS/SDL/SDLiPhoneOS.xcodeproj/project.pbxproj Mon Feb 07 23:10:55 2011 +0100 +@@ -1603,11 +1603,15 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -17,7 +17,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 3.1; ONLY_ACTIVE_ARCH = NO; PREBINDING = NO; -@@ -1581,12 +1585,18 @@ +@@ -1620,12 +1624,18 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -37,20 +37,9 @@ PREBINDING = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; -diff -r f2c2f0ecba5f Xcode-iPhoneOS/SDL/testsdl-Info.plist ---- a/Xcode-iPhoneOS/SDL/testsdl-Info.plist Sun Jan 30 13:42:05 2011 -0800 -+++ b/Xcode-iPhoneOS/SDL/testsdl-Info.plist Mon Jan 31 23:57:58 2011 +0100 -@@ -16,7 +16,5 @@ - ???? - CFBundleVersion - 1.0 -- NSMainNibFile -- MainWindow - - -diff -r f2c2f0ecba5f include/SDL_config_iphoneos.h ---- a/include/SDL_config_iphoneos.h Sun Jan 30 13:42:05 2011 -0800 -+++ b/include/SDL_config_iphoneos.h Mon Jan 31 23:57:58 2011 +0100 +diff -r 1fbe1c202501 include/SDL_config_iphoneos.h +--- a/include/SDL_config_iphoneos.h Mon Feb 07 10:40:21 2011 -0800 ++++ b/include/SDL_config_iphoneos.h Mon Feb 07 23:10:55 2011 +0100 @@ -119,7 +119,7 @@ /* enable iPhone version of Core Audio driver */ #define SDL_AUDIO_DRIVER_COREAUDIOIPHONE 1 @@ -60,7 +49,7 @@ /* Enable the stub haptic driver (src/haptic/dummy/\*.c) */ #define SDL_HAPTIC_DISABLED 1 -@@ -140,14 +140,17 @@ +@@ -140,15 +140,18 @@ /* Supported video drivers */ #define SDL_VIDEO_DRIVER_UIKIT 1 @@ -70,6 +59,8 @@ /* enable OpenGL ES */ #define SDL_VIDEO_OPENGL_ES 1 #define SDL_VIDEO_RENDER_OGL_ES 1 +-#define SDL_VIDEO_RENDER_OGL_ES2 1 ++#define SDL_VIDEO_RENDER_OGL_ES2 0 /* Enable system power support */ -#define SDL_POWER_UIKIT 1 @@ -80,7 +71,7 @@ /* enable iPhone keyboard support */ #define SDL_IPHONE_KEYBOARD 1 -@@ -157,4 +160,7 @@ +@@ -158,4 +161,7 @@ */ #define SDL_IPHONE_MAX_GFORCE 5.0 @@ -88,182 +79,3 @@ +#define SDL_VIEW_TAG 456987 + #endif /* _SDL_config_iphoneos_h */ -diff -r f2c2f0ecba5f src/video/SDL_video.c ---- a/src/video/SDL_video.c Sun Jan 30 13:42:05 2011 -0800 -+++ b/src/video/SDL_video.c Mon Jan 31 23:57:58 2011 +0100 -@@ -1414,9 +1414,9 @@ - SDL_MinimizeWindow(window); - } - -- if (display->gamma && _this->SetDisplayGammaRamp) { -+ /*if (display->gamma && _this->SetDisplayGammaRamp) { - _this->SetDisplayGammaRamp(_this, display, display->saved_gamma); -- } -+ }*/ - if ((window->flags & (SDL_WINDOW_INPUT_GRABBED | SDL_WINDOW_FULLSCREEN)) - && _this->SetWindowGrab) { - _this->SetWindowGrab(_this, window); -diff -r f2c2f0ecba5f src/video/uikit/SDL_uikitopengles.m ---- a/src/video/uikit/SDL_uikitopengles.m Sun Jan 30 13:42:05 2011 -0800 -+++ b/src/video/uikit/SDL_uikitopengles.m Mon Jan 31 23:57:58 2011 +0100 -@@ -115,6 +115,7 @@ - aBits: _this->gl_config.alpha_size \ - depthBits: _this->gl_config.depth_size]; - -+ view.tag = SDL_VIEW_TAG; - data->view = view; - - /* add the view to our window */ -diff -r f2c2f0ecba5f src/video/uikit/SDL_uikitopenglview.m ---- a/src/video/uikit/SDL_uikitopenglview.m Sun Jan 30 13:42:05 2011 -0800 -+++ b/src/video/uikit/SDL_uikitopenglview.m Mon Jan 31 23:57:58 2011 +0100 -@@ -117,6 +117,8 @@ - return NO; - } - /* end create buffers */ -+ if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) -+ self.contentScaleFactor = [UIScreen mainScreen].scale; - } - return self; - } -diff -r f2c2f0ecba5f src/video/uikit/SDL_uikitview.h ---- a/src/video/uikit/SDL_uikitview.h Sun Jan 30 13:42:05 2011 -0800 -+++ b/src/video/uikit/SDL_uikitview.h Mon Jan 31 23:57:58 2011 +0100 -@@ -23,11 +23,11 @@ - #include "SDL_stdinc.h" - #include "SDL_events.h" - --#define IPHONE_TOUCH_EFFICIENT_DANGEROUS --#define FIXED_MULTITOUCH -+#undef IPHONE_TOUCH_EFFICIENT_DANGEROUS -+#undef FIXED_MULTITOUCH - - #ifndef IPHONE_TOUCH_EFFICIENT_DANGEROUS --#define MAX_SIMULTANEOUS_TOUCHES 5 -+#define MAX_SIMULTANEOUS_TOUCHES 0 - #endif - - /* *INDENT-OFF* */ -diff -r f2c2f0ecba5f src/video/uikit/SDL_uikitview.m ---- a/src/video/uikit/SDL_uikitview.m Sun Jan 30 13:42:05 2011 -0800 -+++ b/src/video/uikit/SDL_uikitview.m Mon Jan 31 23:57:58 2011 +0100 -@@ -298,6 +298,7 @@ - - /* Terminates the editing session */ - - (BOOL)textFieldShouldReturn:(UITextField*)_textField { -+ SDL_SendKeyboardKey(SDL_PRESSED, SDL_SCANCODE_RETURN); - [self hideKeyboard]; - return YES; - } -@@ -312,7 +313,7 @@ - int SDL_iPhoneKeyboardShow(SDL_Window * window) { - - SDL_WindowData *data; -- SDL_uikitview *view; -+ SDL_uikitview *view = NULL; - - if (NULL == window) { - SDL_SetError("Window does not exist"); -@@ -320,7 +321,8 @@ - } - - data = (SDL_WindowData *)window->driverdata; -- view = data->view; -+ if (data != NULL) -+ view = data->view; - - if (nil == view) { - SDL_SetError("Window has no view"); -@@ -335,7 +337,7 @@ - int SDL_iPhoneKeyboardHide(SDL_Window * window) { - - SDL_WindowData *data; -- SDL_uikitview *view; -+ SDL_uikitview *view = NULL; - - if (NULL == window) { - SDL_SetError("Window does not exist"); -@@ -343,7 +345,8 @@ - } - - data = (SDL_WindowData *)window->driverdata; -- view = data->view; -+ if (data != NULL) -+ view = data->view; - - if (NULL == view) { - SDL_SetError("Window has no view"); -@@ -358,7 +361,7 @@ - SDL_bool SDL_iPhoneKeyboardIsShown(SDL_Window * window) { - - SDL_WindowData *data; -- SDL_uikitview *view; -+ SDL_uikitview *view = NULL; - - if (NULL == window) { - SDL_SetError("Window does not exist"); -@@ -366,7 +369,8 @@ - } - - data = (SDL_WindowData *)window->driverdata; -- view = data->view; -+ if (data != NULL) -+ view = data->view; - - if (NULL == view) { - SDL_SetError("Window has no view"); -@@ -380,7 +384,7 @@ - int SDL_iPhoneKeyboardToggle(SDL_Window * window) { - - SDL_WindowData *data; -- SDL_uikitview *view; -+ SDL_uikitview *view = NULL; - - if (NULL == window) { - SDL_SetError("Window does not exist"); -@@ -388,7 +392,8 @@ - } - - data = (SDL_WindowData *)window->driverdata; -- view = data->view; -+ if (data != NULL) -+ view = data->view; - - if (NULL == view) { - SDL_SetError("Window has no view"); -diff -r f2c2f0ecba5f src/video/uikit/SDL_uikitwindow.m ---- a/src/video/uikit/SDL_uikitwindow.m Sun Jan 30 13:42:05 2011 -0800 -+++ b/src/video/uikit/SDL_uikitwindow.m Mon Jan 31 23:57:58 2011 +0100 -@@ -145,7 +145,10 @@ - if (SDL_UIKit_supports_multiple_displays) { - [uiwindow setScreen:uiscreen]; - } -- -+ -+ if ([UIScreen respondsToSelector:@selector(screens)] && [[UIScreen screens] count] > 1) -+ uiwindow.screen = [[UIScreen screens] objectAtIndex:1]; -+ - if (SetupWindowData(_this, window, uiwindow, SDL_TRUE) < 0) { - [uiwindow release]; - return -1; -diff -r f2c2f0ecba5f src/video/uikit/keyinfotable.h ---- a/src/video/uikit/keyinfotable.h Sun Jan 30 13:42:05 2011 -0800 -+++ b/src/video/uikit/keyinfotable.h Mon Jan 31 23:57:58 2011 +0100 -@@ -54,7 +54,7 @@ - /* 10 */ { SDL_SCANCODE_UNKNOWN, 0 }, - /* 11 */ { SDL_SCANCODE_UNKNOWN, 0 }, - /* 12 */ { SDL_SCANCODE_UNKNOWN, 0 }, --/* 13 */ { SDL_SCANCODE_UNKNOWN, 0 }, -+/* 13 */ { SDL_SCANCODE_RETURN, 0 }, - /* 14 */ { SDL_SCANCODE_UNKNOWN, 0 }, - /* 15 */ { SDL_SCANCODE_UNKNOWN, 0 }, - /* 16 */ { SDL_SCANCODE_UNKNOWN, 0 }, -@@ -137,7 +137,7 @@ - /* 93 */ { SDL_SCANCODE_RIGHTBRACKET, 0 }, - /* 94 */ { SDL_SCANCODE_6, KMOD_SHIFT }, /* plus shift modifier '^' */ - /* 95 */ { SDL_SCANCODE_MINUS, KMOD_SHIFT }, /* plus shift modifier '_' */ --/* 96 */ { SDL_SCANCODE_GRAVE, KMOD_SHIFT }, /* '`' -+/* 96 */ { SDL_SCANCODE_GRAVE, KMOD_SHIFT }, /* '`' */ - /* 97 */ { SDL_SCANCODE_A, 0 }, - /* 98 */ { SDL_SCANCODE_B, 0 }, - /* 99 */ { SDL_SCANCODE_C, 0 },