diff --git a/project/jni/application/src b/project/jni/application/src index 4de17cd97..92362c4db 120000 --- a/project/jni/application/src +++ b/project/jni/application/src @@ -1 +1 @@ -alienblaster \ No newline at end of file +ufoai \ No newline at end of file diff --git a/project/jni/sdl-1.2/src/video/android/SDL_blendmode.h b/project/jni/sdl-1.2/src/video/android/SDL_blendmode.h new file mode 120000 index 000000000..3710fa370 --- /dev/null +++ b/project/jni/sdl-1.2/src/video/android/SDL_blendmode.h @@ -0,0 +1 @@ +../../../../sdl-1.3/include/SDL_blendmode.h \ No newline at end of file diff --git a/project/jni/sdl-1.2/src/video/android/SDL_pixels.c b/project/jni/sdl-1.2/src/video/android/SDL_pixels.c index 3a7b4def6..12fbf4eb8 100644 --- a/project/jni/sdl-1.2/src/video/android/SDL_pixels.c +++ b/project/jni/sdl-1.2/src/video/android/SDL_pixels.c @@ -49,6 +49,54 @@ struct SDL_PaletteWatch /* Helper functions */ +/* Helper functions */ + +const char* +SDL_GetPixelFormatName(Uint32 format) +{ + switch (format) { +#define CASE(X) case X: return #X; + CASE(SDL_PIXELFORMAT_INDEX1LSB) + CASE(SDL_PIXELFORMAT_INDEX1MSB) + CASE(SDL_PIXELFORMAT_INDEX4LSB) + CASE(SDL_PIXELFORMAT_INDEX4MSB) + CASE(SDL_PIXELFORMAT_INDEX8) + CASE(SDL_PIXELFORMAT_RGB332) + CASE(SDL_PIXELFORMAT_RGB444) + CASE(SDL_PIXELFORMAT_RGB555) + CASE(SDL_PIXELFORMAT_BGR555) + CASE(SDL_PIXELFORMAT_ARGB4444) + CASE(SDL_PIXELFORMAT_RGBA4444) + CASE(SDL_PIXELFORMAT_ABGR4444) + CASE(SDL_PIXELFORMAT_BGRA4444) + CASE(SDL_PIXELFORMAT_ARGB1555) + CASE(SDL_PIXELFORMAT_RGBA5551) + CASE(SDL_PIXELFORMAT_ABGR1555) + CASE(SDL_PIXELFORMAT_BGRA5551) + CASE(SDL_PIXELFORMAT_RGB565) + CASE(SDL_PIXELFORMAT_BGR565) + CASE(SDL_PIXELFORMAT_RGB24) + CASE(SDL_PIXELFORMAT_BGR24) + CASE(SDL_PIXELFORMAT_RGB888) + CASE(SDL_PIXELFORMAT_BGR888) + CASE(SDL_PIXELFORMAT_ARGB8888) + CASE(SDL_PIXELFORMAT_RGBA8888) + CASE(SDL_PIXELFORMAT_ABGR8888) + CASE(SDL_PIXELFORMAT_BGRA8888) + CASE(SDL_PIXELFORMAT_ARGB2101010) +#if SDL_VERSION_ATLEAST(1,3,0) + CASE(SDL_PIXELFORMAT_YV12) + CASE(SDL_PIXELFORMAT_IYUV) + CASE(SDL_PIXELFORMAT_YUY2) + CASE(SDL_PIXELFORMAT_UYVY) + CASE(SDL_PIXELFORMAT_YVYU) +#endif +#undef CASE + default: + return "SDL_PIXELFORMAT_UNKNOWN"; + } +} + SDL_bool SDL_PixelFormatEnumToMasks(Uint32 format, int *bpp, Uint32 * Rmask, Uint32 * Gmask, Uint32 * Bmask, Uint32 * Amask) @@ -231,6 +279,12 @@ SDL_MasksToPixelFormatEnum(int bpp, Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, break; case 16: switch (Rmask) { + case 0xF000: + return SDL_PIXELFORMAT_RGBA4444; + case 0x0F00: + return SDL_PIXELFORMAT_ARGB4444; + case 0x00F0: + return SDL_PIXELFORMAT_BGRA4444; case 0x000F: return SDL_PIXELFORMAT_ABGR4444; case 0x001F: @@ -238,12 +292,13 @@ SDL_MasksToPixelFormatEnum(int bpp, Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, return SDL_PIXELFORMAT_BGR565; } return SDL_PIXELFORMAT_ABGR1555; - case 0x0F00: - return SDL_PIXELFORMAT_ARGB4444; case 0x7C00: return SDL_PIXELFORMAT_ARGB1555; case 0xF800: - return SDL_PIXELFORMAT_RGB565; + if (Gmask == 0x07E0) { + return SDL_PIXELFORMAT_RGB565; + } + return SDL_PIXELFORMAT_RGBA5551; } break; case 24: @@ -597,11 +652,10 @@ SDL_CalculatePitch(SDL_Surface * surface) default: break; } -// 4-byte aligning adds extra memcpy() with OpenGL ES renderer -// TODO: check if we really can disable that for Android -#ifndef ANDROID - pitch = (pitch + 3) & ~3; /* 4-byte aligning */ +#ifdef ANDROID + if( surface->format->BytesPerPixel != 2 ) /* Avoid extra memcpy() when calling SDL_UpdateTexture() */ #endif + pitch = (pitch + 3) & ~3; /* 4-byte aligning */ return (pitch); } diff --git a/project/jni/sdl-1.2/src/video/android/SDL_pixels.h b/project/jni/sdl-1.2/src/video/android/SDL_pixels.h index deb82ca13..100b5325b 100644 --- a/project/jni/sdl-1.2/src/video/android/SDL_pixels.h +++ b/project/jni/sdl-1.2/src/video/android/SDL_pixels.h @@ -31,9 +31,7 @@ #include "SDL_version.h" -#if SDL_VERSION_ATLEAST(1,3,0) -#include "SDL_video.h" -#else +#if !SDL_VERSION_ATLEAST(1,3,0) #include "SDL_video-1.3.h" #endif @@ -146,6 +144,7 @@ enum #define SDL_ISPIXELFORMAT_FOURCC(format) \ ((format) && !((format) & 0x80000000)) +/* Note: If you modify this list, update SDL_GetPixelFormatName() */ enum { SDL_PIXELFORMAT_UNKNOWN, @@ -178,20 +177,26 @@ enum SDL_PIXELFORMAT_ARGB4444 = SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ARGB, SDL_PACKEDLAYOUT_4444, 16, 2), + SDL_PIXELFORMAT_RGBA4444 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_RGBA, + SDL_PACKEDLAYOUT_4444, 16, 2), SDL_PIXELFORMAT_ABGR4444 = SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ABGR, SDL_PACKEDLAYOUT_4444, 16, 2), - SDL_PIXELFORMAT_RGBA4444 = /* Android-specific */ - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_RGBA, + SDL_PIXELFORMAT_BGRA4444 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_BGRA, SDL_PACKEDLAYOUT_4444, 16, 2), SDL_PIXELFORMAT_ARGB1555 = SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ARGB, SDL_PACKEDLAYOUT_1555, 16, 2), + SDL_PIXELFORMAT_RGBA5551 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_RGBA, + SDL_PACKEDLAYOUT_5551, 16, 2), SDL_PIXELFORMAT_ABGR1555 = SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ABGR, SDL_PACKEDLAYOUT_1555, 16, 2), - SDL_PIXELFORMAT_RGBA5551 = /* Android-specific */ - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_RGBA, + SDL_PIXELFORMAT_BGRA5551 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_BGRA, SDL_PACKEDLAYOUT_5551, 16, 2), SDL_PIXELFORMAT_RGB565 = SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XRGB, @@ -287,6 +292,11 @@ typedef struct SDL_PixelFormat } SDL_PixelFormat; #endif +/** + * \brief Get the human readable name of a pixel format + */ +extern DECLSPEC const char* SDLCALL SDL_GetPixelFormatName(Uint32 format); + /** * \brief Convert one of the enumerated pixel formats to a bpp and RGBA masks. * @@ -327,12 +337,12 @@ extern DECLSPEC Uint32 SDLCALL SDL_MasksToPixelFormatEnum(int bpp, */ extern DECLSPEC SDL_Palette *SDLCALL SDL_AllocPalette(int ncolors); +#if SDL_VERSION_ATLEAST(1,3,0) /** * \brief Add a callback function which is called when the palette changes. * * \sa SDL_DelPaletteWatch() */ -#if SDL_VERSION_ATLEAST(1,3,0) extern DECLSPEC int SDLCALL SDL_AddPaletteWatch(SDL_Palette * palette, SDL_PaletteChangedFunc callback, void *userdata); @@ -347,6 +357,7 @@ extern DECLSPEC void SDLCALL SDL_DelPaletteWatch(SDL_Palette * palette, SDL_PaletteChangedFunc callback, void *userdata); #endif + /** * \brief Set a range of colors in a palette. * diff --git a/project/jni/sdl-1.2/src/video/android/SDL_scalemode.h b/project/jni/sdl-1.2/src/video/android/SDL_scalemode.h new file mode 120000 index 000000000..2672fb813 --- /dev/null +++ b/project/jni/sdl-1.2/src/video/android/SDL_scalemode.h @@ -0,0 +1 @@ +../../../../sdl-1.3/include/SDL_scalemode.h \ No newline at end of file diff --git a/project/jni/sdl-1.2/src/video/android/SDL_video-1.3.h b/project/jni/sdl-1.2/src/video/android/SDL_video-1.3.h index 2f0f1fe19..28c9af68a 100644 --- a/project/jni/sdl-1.2/src/video/android/SDL_video-1.3.h +++ b/project/jni/sdl-1.2/src/video/android/SDL_video-1.3.h @@ -34,6 +34,8 @@ #include "SDL_pixels.h" #include "SDL_surface.h" #include "SDL_version.h" +#include "SDL_blendmode.h" +#include "SDL_scalemode.h" #if ! SDL_VERSION_ATLEAST(1,3,0) #include "SDL_video.h" #endif @@ -217,38 +219,6 @@ typedef enum SDL_TEXTUREMODULATE_ALPHA = 0x00000002 /**< srcA = srcA * alpha */ } SDL_TextureModulate; -/** - * \brief The blend mode used in SDL_RenderCopy() and drawing operations. - */ -typedef enum -{ - SDL_BLENDMODE_NONE = 0x00000000, /**< No blending */ - SDL_BLENDMODE_MASK = 0x00000001, /**< dst = A ? src : dst - (alpha is mask) */ - - SDL_BLENDMODE_BLEND = 0x00000002, /**< dst = (src * A) + (dst * (1-A)) */ - SDL_BLENDMODE_ADD = 0x00000004, /**< dst = (src * A) + dst */ - SDL_BLENDMODE_MOD = 0x00000008 /**< dst = src * dst */ -} SDL_BlendMode; - -/** - * \brief The texture scale mode used in SDL_RenderCopy(). - */ -typedef enum -{ - SDL_TEXTURESCALEMODE_NONE = 0x00000000, /**< No scaling, rectangles must - match dimensions */ - - SDL_TEXTURESCALEMODE_FAST = 0x00000001, /**< Point sampling or - equivalent algorithm */ - - SDL_TEXTURESCALEMODE_SLOW = 0x00000002, /**< Linear filtering or - equivalent algorithm */ - - SDL_TEXTURESCALEMODE_BEST = 0x00000004 /**< Bicubic filtering or - equivalent algorithm */ -} SDL_TextureScaleMode; - /** * \brief An efficient driver-specific representation of pixel data */