From 969df1ba10c5e7e4648ca8ed7b92685a9126db64 Mon Sep 17 00:00:00 2001 From: pelya Date: Wed, 23 Nov 2011 20:27:49 +0200 Subject: [PATCH] Updated the tiny zoom mode, updated fheroes2 --- .../fheroes2/AndroidAppSettings.cfg | 4 +- .../fheroes2/AndroidData/data12.zip | Bin 528361 -> 528493 bytes project/jni/application/src | 2 +- .../src/video/android/SDL_androidvideo-1.2.c | 3 +- .../src/video/android/SDL_androidinput.c | 63 ++++++++++++------ 5 files changed, 47 insertions(+), 25 deletions(-) diff --git a/project/jni/application/fheroes2/AndroidAppSettings.cfg b/project/jni/application/fheroes2/AndroidAppSettings.cfg index 68d6f0c87..cb04346cf 100644 --- a/project/jni/application/fheroes2/AndroidAppSettings.cfg +++ b/project/jni/application/fheroes2/AndroidAppSettings.cfg @@ -32,8 +32,8 @@ StartupMenuButtonTimeout=3000 HiddenMenuOptions='KeyboardConfigMainMenu ScreenKeyboardThemeConfig ScreenKeyboardTransparencyConfig' FirstStartMenuOptions='' MultiABI=n -AppVersionCode=269918 -AppVersionName="2699.18" +AppVersionCode=271618 +AppVersionName="2716.18" ResetSdlConfigForThisVersion=y CompiledLibraries="sdl_net sdl_mixer sdl_image sdl_ttf png intl" CustomBuildScript=n diff --git a/project/jni/application/fheroes2/AndroidData/data12.zip b/project/jni/application/fheroes2/AndroidData/data12.zip index a574e06e4fffef2ddbe087e3c1251f82e12d7b43..e8aeb1f26a55363c8ce3e6cda6f9c3e7b9771d83 100644 GIT binary patch delta 12230 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≪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 diff --git a/project/jni/application/src b/project/jni/application/src index 104f796a6..59d41f41e 120000 --- a/project/jni/application/src +++ b/project/jni/application/src @@ -1 +1 @@ -ballfield \ No newline at end of file +fheroes2 \ No newline at end of file diff --git a/project/jni/sdl-1.2/src/video/android/SDL_androidvideo-1.2.c b/project/jni/sdl-1.2/src/video/android/SDL_androidvideo-1.2.c index e7d73a5aa..9f4f1e5c0 100644 --- a/project/jni/sdl-1.2/src/video/android/SDL_androidvideo-1.2.c +++ b/project/jni/sdl-1.2/src/video/android/SDL_androidvideo-1.2.c @@ -1019,7 +1019,8 @@ static void ANDROID_UpdateRects(_THIS, int numrects, SDL_Rect *rects) return; } - ANDROID_FlipHWSurfaceInternal(numrects, rects); + // ANDROID_FlipHWSurfaceInternal(numrects, rects); // Fails for fheroes2, I'll add a compatibility option later. + ANDROID_FlipHWSurfaceInternal(0, NULL); SDL_ANDROID_CallJavaSwapBuffers(); } diff --git a/project/jni/sdl-1.3/src/video/android/SDL_androidinput.c b/project/jni/sdl-1.3/src/video/android/SDL_androidinput.c index 75d466881..14cb47163 100644 --- a/project/jni/sdl-1.3/src/video/android/SDL_androidinput.c +++ b/project/jni/sdl-1.3/src/video/android/SDL_androidinput.c @@ -197,27 +197,6 @@ void UpdateScreenUnderFingerRect(int x, int y) } if( SDL_ANDROID_ShowScreenUnderFinger == ZOOM_WHOLE_SCREEN ) { - SDL_ANDROID_ShowScreenUnderFingerRect.w = screenX * 2 / 3; - SDL_ANDROID_ShowScreenUnderFingerRect.h = screenY * 2 / 3; - SDL_ANDROID_ShowScreenUnderFingerRect.x = x * (screenX - SDL_ANDROID_ShowScreenUnderFingerRect.w) / screenX; - SDL_ANDROID_ShowScreenUnderFingerRect.y = y * (screenY - SDL_ANDROID_ShowScreenUnderFingerRect.h) / screenY; - - if( SDL_ANDROID_ShowScreenUnderFingerRect.x < 0 ) - SDL_ANDROID_ShowScreenUnderFingerRect.x = 0; - if( SDL_ANDROID_ShowScreenUnderFingerRect.y < 0 ) - SDL_ANDROID_ShowScreenUnderFingerRect.y = 0; - if( SDL_ANDROID_ShowScreenUnderFingerRect.x > screenX - SDL_ANDROID_ShowScreenUnderFingerRect.w ) - SDL_ANDROID_ShowScreenUnderFingerRect.x = screenX - SDL_ANDROID_ShowScreenUnderFingerRect.w; - if( SDL_ANDROID_ShowScreenUnderFingerRect.y > screenY - SDL_ANDROID_ShowScreenUnderFingerRect.h ) - SDL_ANDROID_ShowScreenUnderFingerRect.y = screenY - SDL_ANDROID_ShowScreenUnderFingerRect.h; - - /* - SDL_ANDROID_ShowScreenUnderFingerRectSrc.w = SDL_ANDROID_ShowScreenUnderFingerRect.w / 2; - SDL_ANDROID_ShowScreenUnderFingerRectSrc.h = SDL_ANDROID_ShowScreenUnderFingerRect.h / 2; - SDL_ANDROID_ShowScreenUnderFingerRectSrc.x = SDL_ANDROID_ShowScreenUnderFingerRect.x + (SDL_ANDROID_ShowScreenUnderFingerRect.w - SDL_ANDROID_ShowScreenUnderFingerRectSrc.w) / 2; - SDL_ANDROID_ShowScreenUnderFingerRectSrc.x = SDL_ANDROID_ShowScreenUnderFingerRect.y + (SDL_ANDROID_ShowScreenUnderFingerRect.h - SDL_ANDROID_ShowScreenUnderFingerRectSrc.h) / 2; - */ - SDL_ANDROID_ShowScreenUnderFingerRectSrc.w = screenX / 3; SDL_ANDROID_ShowScreenUnderFingerRectSrc.h = screenY / 3; SDL_ANDROID_ShowScreenUnderFingerRectSrc.x = x - SDL_ANDROID_ShowScreenUnderFingerRectSrc.w/2; @@ -231,6 +210,48 @@ void UpdateScreenUnderFingerRect(int x, int y) SDL_ANDROID_ShowScreenUnderFingerRectSrc.x = screenX - SDL_ANDROID_ShowScreenUnderFingerRectSrc.w; if( SDL_ANDROID_ShowScreenUnderFingerRectSrc.y > screenY - SDL_ANDROID_ShowScreenUnderFingerRectSrc.h ) SDL_ANDROID_ShowScreenUnderFingerRectSrc.y = screenY - SDL_ANDROID_ShowScreenUnderFingerRectSrc.h; + + /* + // TODO: make the mouse pointer to be directly under user's finger, currently it's shifted near the edges. + // That's simple algebra (not even trigonometry!), and I'm failing severely in this field. + SDL_ANDROID_ShowScreenUnderFingerRect.w = screenX * 2 / 3; + SDL_ANDROID_ShowScreenUnderFingerRect.h = screenY * 2 / 3; + SDL_ANDROID_ShowScreenUnderFingerRect.x = x * (screenX - SDL_ANDROID_ShowScreenUnderFingerRect.w) / screenX; + SDL_ANDROID_ShowScreenUnderFingerRect.y = y * (screenY - SDL_ANDROID_ShowScreenUnderFingerRect.h) / screenY; + + if( SDL_ANDROID_ShowScreenUnderFingerRect.x > SDL_ANDROID_ShowScreenUnderFingerRectSrc.x ) + SDL_ANDROID_ShowScreenUnderFingerRect.x = SDL_ANDROID_ShowScreenUnderFingerRectSrc.x; + if( SDL_ANDROID_ShowScreenUnderFingerRect.y > SDL_ANDROID_ShowScreenUnderFingerRectSrc.y ) + SDL_ANDROID_ShowScreenUnderFingerRect.y = SDL_ANDROID_ShowScreenUnderFingerRectSrc.y; + if( SDL_ANDROID_ShowScreenUnderFingerRect.x + SDL_ANDROID_ShowScreenUnderFingerRect.w < SDL_ANDROID_ShowScreenUnderFingerRectSrc.x + SDL_ANDROID_ShowScreenUnderFingerRectSrc.w ) + SDL_ANDROID_ShowScreenUnderFingerRect.x = SDL_ANDROID_ShowScreenUnderFingerRectSrc.x + SDL_ANDROID_ShowScreenUnderFingerRectSrc.w - SDL_ANDROID_ShowScreenUnderFingerRect.w; + if( SDL_ANDROID_ShowScreenUnderFingerRect.y + SDL_ANDROID_ShowScreenUnderFingerRect.h < SDL_ANDROID_ShowScreenUnderFingerRectSrc.y + SDL_ANDROID_ShowScreenUnderFingerRectSrc.h ) + SDL_ANDROID_ShowScreenUnderFingerRect.y = SDL_ANDROID_ShowScreenUnderFingerRectSrc.y + SDL_ANDROID_ShowScreenUnderFingerRectSrc.h - SDL_ANDROID_ShowScreenUnderFingerRect.h; + */ + + // TODO: there are graphical glithes at the edges - the big screen is sometimes hiding the small screen parts + SDL_ANDROID_ShowScreenUnderFingerRect.w = screenX * 2 / 3; + SDL_ANDROID_ShowScreenUnderFingerRect.h = screenY * 2 / 3; + SDL_ANDROID_ShowScreenUnderFingerRect.x = x - SDL_ANDROID_ShowScreenUnderFingerRect.w/2; + SDL_ANDROID_ShowScreenUnderFingerRect.y = y - SDL_ANDROID_ShowScreenUnderFingerRect.h/2; + + if( SDL_ANDROID_ShowScreenUnderFingerRect.x > SDL_ANDROID_ShowScreenUnderFingerRectSrc.x ) + SDL_ANDROID_ShowScreenUnderFingerRect.x = SDL_ANDROID_ShowScreenUnderFingerRectSrc.x; + if( SDL_ANDROID_ShowScreenUnderFingerRect.y > SDL_ANDROID_ShowScreenUnderFingerRectSrc.y ) + SDL_ANDROID_ShowScreenUnderFingerRect.y = SDL_ANDROID_ShowScreenUnderFingerRectSrc.y; + if( SDL_ANDROID_ShowScreenUnderFingerRect.x + SDL_ANDROID_ShowScreenUnderFingerRect.w < SDL_ANDROID_ShowScreenUnderFingerRectSrc.x + SDL_ANDROID_ShowScreenUnderFingerRectSrc.w ) + SDL_ANDROID_ShowScreenUnderFingerRect.x = SDL_ANDROID_ShowScreenUnderFingerRectSrc.x + SDL_ANDROID_ShowScreenUnderFingerRectSrc.w - SDL_ANDROID_ShowScreenUnderFingerRect.w; + if( SDL_ANDROID_ShowScreenUnderFingerRect.y + SDL_ANDROID_ShowScreenUnderFingerRect.h < SDL_ANDROID_ShowScreenUnderFingerRectSrc.y + SDL_ANDROID_ShowScreenUnderFingerRectSrc.h ) + SDL_ANDROID_ShowScreenUnderFingerRect.y = SDL_ANDROID_ShowScreenUnderFingerRectSrc.y + SDL_ANDROID_ShowScreenUnderFingerRectSrc.h - SDL_ANDROID_ShowScreenUnderFingerRect.h; + + if( SDL_ANDROID_ShowScreenUnderFingerRect.x < 0 ) + SDL_ANDROID_ShowScreenUnderFingerRect.x = 0; + if( SDL_ANDROID_ShowScreenUnderFingerRect.y < 0 ) + SDL_ANDROID_ShowScreenUnderFingerRect.y = 0; + if( SDL_ANDROID_ShowScreenUnderFingerRect.x > screenX - SDL_ANDROID_ShowScreenUnderFingerRect.w ) + SDL_ANDROID_ShowScreenUnderFingerRect.x = screenX - SDL_ANDROID_ShowScreenUnderFingerRect.w; + if( SDL_ANDROID_ShowScreenUnderFingerRect.y > screenY - SDL_ANDROID_ShowScreenUnderFingerRect.h ) + SDL_ANDROID_ShowScreenUnderFingerRect.y = screenY - SDL_ANDROID_ShowScreenUnderFingerRect.h; } if( SDL_ANDROID_ShowScreenUnderFinger == ZOOM_FULLSCREEN_MAGNIFIER ) {