Fixed SDL 1.2 compilation, force screen update when "Show screen under finger" selected and user releases finger
This commit is contained in:
@@ -5,7 +5,7 @@ AppName="Free Heroes 2"
|
|||||||
AppFullName=net.sourceforge.fheroes2
|
AppFullName=net.sourceforge.fheroes2
|
||||||
ScreenOrientation=h
|
ScreenOrientation=h
|
||||||
InhibitSuspend=n
|
InhibitSuspend=n
|
||||||
AppDataDownloadUrl="Game data|data.zip^MIDI music support|http://sourceforge.net/projects/libsdl-android/files/timidity.zip/download"
|
AppDataDownloadUrl="Game data|data.zip^MIDI music support (18 Mb)|http://sourceforge.net/projects/libsdl-android/files/timidity.zip/download"
|
||||||
SdlVideoResize=y
|
SdlVideoResize=y
|
||||||
SdlVideoResizeKeepAspect=n
|
SdlVideoResizeKeepAspect=n
|
||||||
NeedDepthBuffer=n
|
NeedDepthBuffer=n
|
||||||
|
|||||||
@@ -202,7 +202,7 @@ int ANDROID_VideoInit(_THIS, SDL_PixelFormat *vformat)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int bpp;
|
int bpp;
|
||||||
SDL_zero(alphaFormat);
|
SDL_memset(&alphaFormat, 0, sizeof(alphaFormat));
|
||||||
SDL_PixelFormatEnumToMasks( SDL_PIXELFORMAT_RGBA4444, &bpp,
|
SDL_PixelFormatEnumToMasks( SDL_PIXELFORMAT_RGBA4444, &bpp,
|
||||||
&alphaFormat.Rmask, &alphaFormat.Gmask,
|
&alphaFormat.Rmask, &alphaFormat.Gmask,
|
||||||
&alphaFormat.Bmask, &alphaFormat.Amask );
|
&alphaFormat.Bmask, &alphaFormat.Amask );
|
||||||
@@ -279,7 +279,7 @@ SDL_Surface *ANDROID_SetVideoMode(_THIS, SDL_Surface *current,
|
|||||||
SDL_SelectVideoDisplay(0);
|
SDL_SelectVideoDisplay(0);
|
||||||
SDL_VideoWindow = SDL_CreateWindow("", 0, 0, width, height, SDL_WINDOW_SHOWN | SDL_WINDOW_BORDERLESS | SDL_WINDOW_OPENGL);
|
SDL_VideoWindow = SDL_CreateWindow("", 0, 0, width, height, SDL_WINDOW_SHOWN | SDL_WINDOW_BORDERLESS | SDL_WINDOW_OPENGL);
|
||||||
|
|
||||||
SDL_zero(mode);
|
SDL_memset(&mode, 0, sizeof(mode));
|
||||||
mode.format = SDL_PIXELFORMAT_RGB565;
|
mode.format = SDL_PIXELFORMAT_RGB565;
|
||||||
SDL_SetWindowDisplayMode(SDL_VideoWindow, &mode);
|
SDL_SetWindowDisplayMode(SDL_VideoWindow, &mode);
|
||||||
|
|
||||||
@@ -316,7 +316,7 @@ SDL_Surface *ANDROID_SetVideoMode(_THIS, SDL_Surface *current,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Allocate the new pixel format for the screen */
|
/* Allocate the new pixel format for the screen */
|
||||||
SDL_zero(format);
|
SDL_memset(&format, 0, sizeof(format));
|
||||||
SDL_PixelFormatEnumToMasks( SDL_PIXELFORMAT_RGB565, &bpp1,
|
SDL_PixelFormatEnumToMasks( SDL_PIXELFORMAT_RGB565, &bpp1,
|
||||||
&format.Rmask, &format.Gmask,
|
&format.Rmask, &format.Gmask,
|
||||||
&format.Bmask, &format.Amask );
|
&format.Bmask, &format.Amask );
|
||||||
@@ -392,7 +392,7 @@ static int ANDROID_AllocHWSurface(_THIS, SDL_Surface *surface)
|
|||||||
int bpp;
|
int bpp;
|
||||||
format = SDL_PIXELFORMAT_RGBA4444;
|
format = SDL_PIXELFORMAT_RGBA4444;
|
||||||
DEBUGOUT("ANDROID_AllocHWSurface() SDL_PIXELFORMAT_RGBA4444");
|
DEBUGOUT("ANDROID_AllocHWSurface() SDL_PIXELFORMAT_RGBA4444");
|
||||||
SDL_zero(format1);
|
SDL_memset(&format1, 0, sizeof(format1));
|
||||||
SDL_PixelFormatEnumToMasks( format, &bpp,
|
SDL_PixelFormatEnumToMasks( format, &bpp,
|
||||||
&format1.Rmask, &format1.Gmask,
|
&format1.Rmask, &format1.Gmask,
|
||||||
&format1.Bmask, &format1.Amask );
|
&format1.Bmask, &format1.Amask );
|
||||||
@@ -566,7 +566,7 @@ static void ANDROID_UnlockHWSurface(_THIS, SDL_Surface *surface)
|
|||||||
hwformat = SDL_PIXELFORMAT_RGB565;
|
hwformat = SDL_PIXELFORMAT_RGB565;
|
||||||
|
|
||||||
/* Allocate the new pixel format for the screen */
|
/* Allocate the new pixel format for the screen */
|
||||||
SDL_zero(format);
|
SDL_memset(&format, 0, sizeof(format));
|
||||||
SDL_PixelFormatEnumToMasks( hwformat, &bpp,
|
SDL_PixelFormatEnumToMasks( hwformat, &bpp,
|
||||||
&format.Rmask, &format.Gmask,
|
&format.Rmask, &format.Gmask,
|
||||||
&format.Bmask, &format.Amask );
|
&format.Bmask, &format.Amask );
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ int ANDROID_VideoInit(_THIS)
|
|||||||
mode.format = SDL_PIXELFORMAT_RGB565;
|
mode.format = SDL_PIXELFORMAT_RGB565;
|
||||||
mode.driverdata = NULL;
|
mode.driverdata = NULL;
|
||||||
|
|
||||||
SDL_zero(display);
|
SDL_memset(&display, 0, sizeof(display));
|
||||||
display.desktop_mode = mode;
|
display.desktop_mode = mode;
|
||||||
display.current_mode = mode;
|
display.current_mode = mode;
|
||||||
display.driverdata = NULL;
|
display.driverdata = NULL;
|
||||||
|
|||||||
@@ -447,7 +447,7 @@ SDL_InitFormat(SDL_PixelFormat * format, int bpp, Uint32 Rmask, Uint32 Gmask,
|
|||||||
Uint32 mask;
|
Uint32 mask;
|
||||||
|
|
||||||
/* Set up the format */
|
/* Set up the format */
|
||||||
SDL_zerop(format);
|
SDL_memset(format, 0, sizeof(*format));
|
||||||
format->BitsPerPixel = bpp;
|
format->BitsPerPixel = bpp;
|
||||||
format->BytesPerPixel = (bpp + 7) / 8;
|
format->BytesPerPixel = (bpp + 7) / 8;
|
||||||
if (Rmask || Bmask || Gmask) { /* Packed pixels with custom mask */
|
if (Rmask || Bmask || Gmask) { /* Packed pixels with custom mask */
|
||||||
|
|||||||
@@ -343,7 +343,7 @@ SDL_AddBasicVideoDisplay(const SDL_DisplayMode * desktop_mode)
|
|||||||
{
|
{
|
||||||
SDL_VideoDisplay display;
|
SDL_VideoDisplay display;
|
||||||
|
|
||||||
SDL_zero(display);
|
SDL_memset(&display, 0, sizeof(display));
|
||||||
if (desktop_mode) {
|
if (desktop_mode) {
|
||||||
display.desktop_mode = *desktop_mode;
|
display.desktop_mode = *desktop_mode;
|
||||||
}
|
}
|
||||||
@@ -756,7 +756,7 @@ SDL_SetWindowDisplayMode(SDL_Window * window, const SDL_DisplayMode * mode)
|
|||||||
if (mode) {
|
if (mode) {
|
||||||
window->fullscreen_mode = *mode;
|
window->fullscreen_mode = *mode;
|
||||||
} else {
|
} else {
|
||||||
SDL_zero(window->fullscreen_mode);
|
SDL_memset(&(window->fullscreen_mode), 0, sizeof(window->fullscreen_mode));
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -175,11 +175,11 @@ JAVA_EXPORT_NAME(DemoGLSurfaceView_nativeMouse) ( JNIEnv* env, jobject thiz, j
|
|||||||
if( pointerId == 0 )
|
if( pointerId == 0 )
|
||||||
{
|
{
|
||||||
#if SDL_VERSION_ATLEAST(1,3,0)
|
#if SDL_VERSION_ATLEAST(1,3,0)
|
||||||
SDL_SendMouseMotion(NULL, 0, x, y);
|
|
||||||
#else
|
#else
|
||||||
SDL_PrivateMouseMotion(0, 0, x, y);
|
#define SDL_SendMouseMotion(A,B,X,Y) SDL_PrivateMouseMotion(0, 0, X, Y)
|
||||||
#define SDL_SendMouseButton(N, A, B) SDL_PrivateMouseButton( A, B, 0, 0 )
|
#define SDL_SendMouseButton(N, A, B) SDL_PrivateMouseButton( A, B, 0, 0 )
|
||||||
#endif
|
#endif
|
||||||
|
SDL_SendMouseMotion(NULL, 0, x, y);
|
||||||
if( action == MOUSE_UP )
|
if( action == MOUSE_UP )
|
||||||
{
|
{
|
||||||
if( SDL_GetMouseState( NULL, NULL ) & SDL_BUTTON(SDL_BUTTON_LEFT) )
|
if( SDL_GetMouseState( NULL, NULL ) & SDL_BUTTON(SDL_BUTTON_LEFT) )
|
||||||
@@ -188,6 +188,8 @@ JAVA_EXPORT_NAME(DemoGLSurfaceView_nativeMouse) ( JNIEnv* env, jobject thiz, j
|
|||||||
SDL_SendMouseButton( NULL, SDL_RELEASED, SDL_BUTTON_RIGHT );
|
SDL_SendMouseButton( NULL, SDL_RELEASED, SDL_BUTTON_RIGHT );
|
||||||
SDL_ANDROID_ShowScreenUnderFingerRect.w = SDL_ANDROID_ShowScreenUnderFingerRect.h = 0;
|
SDL_ANDROID_ShowScreenUnderFingerRect.w = SDL_ANDROID_ShowScreenUnderFingerRect.h = 0;
|
||||||
SDL_ANDROID_ShowScreenUnderFingerRectSrc.w = SDL_ANDROID_ShowScreenUnderFingerRectSrc.h = 0;
|
SDL_ANDROID_ShowScreenUnderFingerRectSrc.w = SDL_ANDROID_ShowScreenUnderFingerRectSrc.h = 0;
|
||||||
|
if( SDL_ANDROID_ShowScreenUnderFinger )
|
||||||
|
SDL_SendMouseMotion(NULL, 0, x > 0 ? x-1 : 0, y); // Move mouse by 1 pixel so it will force screen update and mouse-under-finger window will be removed
|
||||||
}
|
}
|
||||||
if( action == MOUSE_DOWN )
|
if( action == MOUSE_DOWN )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -136,8 +136,8 @@ will most probably fail because of ranlib - just edit Android.mk to compile lib
|
|||||||
MIDI support can be emulated via SDL_mixer lib (it uses Timidity internally)- download file
|
MIDI support can be emulated via SDL_mixer lib (it uses Timidity internally)- download file
|
||||||
http://www.libsdl.org/projects/mixer/timidity/timidity.tar.gz
|
http://www.libsdl.org/projects/mixer/timidity/timidity.tar.gz
|
||||||
unpack it and put "timidity" dir into your game data zipfile.
|
unpack it and put "timidity" dir into your game data zipfile.
|
||||||
Or you may specify this URL directly as an optional download for ChangeAppSettings.sh:
|
Or you may paste this URL directly as an optional download in ChangeAppSettings.sh:
|
||||||
http://sourceforge.net/projects/libsdl-android/files/timidity.zip/download
|
MIDI music support (18 Mb)|http://sourceforge.net/projects/libsdl-android/files/timidity.zip/download
|
||||||
|
|
||||||
The ARM architecture has some limitations which you have to be aware about -
|
The ARM architecture has some limitations which you have to be aware about -
|
||||||
if you'll access integer that's not 4-byte aligned you'll get garbage instead of correct value,
|
if you'll access integer that's not 4-byte aligned you'll get garbage instead of correct value,
|
||||||
|
|||||||
Reference in New Issue
Block a user