diff --git a/build.sh b/build.sh index d71b3575e..42237e82d 100755 --- a/build.sh +++ b/build.sh @@ -27,6 +27,14 @@ if [ "$#" -gt 0 -a "$1" = "release" ]; then build_release=true fi +if [ "$#" -gt 0 -a "$1" = "-h" ]; then + echo "Usage: $0 [-s] [-i] [-r] [release]" + echo " -s: sign APK file after building" + echo " -i: install APK file to device after building" + echo " -r: run APK file on device after building" + echo " release: build release package instead of debug" +fi + [ -e project/local.properties ] || { android update project -p project || exit 1 rm -f project/src/Globals.java diff --git a/project/java/Video.java b/project/java/Video.java index d0c6039c9..904b77536 100644 --- a/project/java/Video.java +++ b/project/java/Video.java @@ -526,6 +526,9 @@ class DemoRenderer extends GLSurfaceView_SDL.Renderer MainActivity.LoadApplicationLibrary(context); Settings.Apply(context); + Settings.nativeSetEnv( "DISPLAY_RESOLUTION_WIDTH", String.valueOf(Math.max(mWidth, mHeight)) ); + Settings.nativeSetEnv( "DISPLAY_RESOLUTION_HEIGHT", String.valueOf(Math.min(mWidth, mHeight)) ); // In Kitkat with immersive mode, getWindowManager().getDefaultDisplay().getMetrics() return inaccurate height + accelerometer = new AccelerometerReader(context); // Tweak video thread priority, if user selected big audio buffer if(Globals.AudioBufferConfig >= 2) diff --git a/project/jni/application/commandergenius/commandergenius b/project/jni/application/commandergenius/commandergenius index 078cbc2d5..1bcbadd1e 160000 --- a/project/jni/application/commandergenius/commandergenius +++ b/project/jni/application/commandergenius/commandergenius @@ -1 +1 @@ -Subproject commit 078cbc2d52c2e4c5b37546445e9b686a4403908b +Subproject commit 1bcbadd1eadd735235288463239c348f5b58f845 diff --git a/project/jni/application/openarena/engine b/project/jni/application/openarena/engine index 30e98be35..07c011b6c 160000 --- a/project/jni/application/openarena/engine +++ b/project/jni/application/openarena/engine @@ -1 +1 @@ -Subproject commit 30e98be3582cca3009f371ca2f9a7334e24e1582 +Subproject commit 07c011b6ccb275fc2b69dbd6e7ee8dba6223e59a diff --git a/project/jni/application/openarena/vm b/project/jni/application/openarena/vm index 278f04520..4b83db91a 160000 --- a/project/jni/application/openarena/vm +++ b/project/jni/application/openarena/vm @@ -1 +1 @@ -Subproject commit 278f045202ff1bc0c1911b6c3d441909ba93ee87 +Subproject commit 4b83db91ab39b9cae27f087fe1a0a8ba9f30d43d diff --git a/project/jni/application/teeworlds/src b/project/jni/application/teeworlds/src index e5489c8c0..34b64249c 160000 --- a/project/jni/application/teeworlds/src +++ b/project/jni/application/teeworlds/src @@ -1 +1 @@ -Subproject commit e5489c8c089e57d88bbaa90df0176d5e5d4c6351 +Subproject commit 34b64249c46a90ce127f32b3ef41a565b8a70a61 diff --git a/project/jni/application/xserver-gimp/AndroidAppSettings.cfg b/project/jni/application/xserver-gimp/AndroidAppSettings.cfg index d5aeb39aa..77e2390cb 100644 --- a/project/jni/application/xserver-gimp/AndroidAppSettings.cfg +++ b/project/jni/application/xserver-gimp/AndroidAppSettings.cfg @@ -175,10 +175,10 @@ MultiABI=armeabi-v7a AppMinimumRAM=0 # Application version code (integer) -AppVersionCode=28203 +AppVersionCode=28207 # Application user-visible version name (string) -AppVersionName="2.8.2.03" +AppVersionName="2.8.2.07" # Reset SDL config when updating application to the new version (y) / (n) ResetSdlConfigForThisVersion=y diff --git a/project/jni/application/xserver/AndroidBuild.sh b/project/jni/application/xserver/AndroidBuild.sh index de7789829..bbbd904f9 100755 --- a/project/jni/application/xserver/AndroidBuild.sh +++ b/project/jni/application/xserver/AndroidBuild.sh @@ -7,10 +7,21 @@ PACKAGE_NAME=`grep AppFullName AndroidAppSettings.cfg | sed 's/.*=//'` ../setEnvironment-armeabi-v7a.sh sh -c '\ $CC $CFLAGS -c main.c gfx.c' || exit 1 -[ -e xserver/android ] || git submodule update --init xserver || exit 1 +[ -e xserver/android ] || { + CURDIR=`pwd` + cd ../../../.. + git submodule update --init project/jni/application/xserver/xserver || exit 1 + cd $CURDIR +} || exit 1 cd xserver [ -e configure ] || autoreconf --force -v --install || exit 1 +[ -e android/android-shmem/LICENSE ] || git submodule update --init android/android-shmem || exit 1 cd android +[ -e android-shmem/libancillary/ancillary.h ] || { + cd android-shmem + git submodule update --init libancillary || exit 1 + cd .. +} || exit 1 [ -e libfontenc-*/Makefile ] && { grep "/data/data/$PACKAGE_NAME" libfontenc-*/Makefile || \ git clean -f -d -x . @@ -47,7 +58,7 @@ xkb/.libs/libxkbstubs.a \ composite/.libs/libcomposite.a \ os/.libs/libos.a \ hw/kdrive/linux/.libs/liblinux.a \ --lpixman-1 -lXfont -lXau -lXdmcp -lfontenc -lts -lfreetype' \ +-lpixman-1 -lXfont -lXau -lXdmcp -lfontenc -lts -lfreetype -landroid-shmem' \ || exit 1 #-lfreetype is inside -lsdl_ttf diff --git a/project/jni/application/xserver/gfx.c b/project/jni/application/xserver/gfx.c index 720f362f3..f3954b4f8 100644 --- a/project/jni/application/xserver/gfx.c +++ b/project/jni/application/xserver/gfx.c @@ -36,7 +36,7 @@ void * unpackFilesThread(void * unused) if( stat( fname, &st ) == 0 ) { unpackFinished = 1; - return 1; + return (void *)1; } __android_log_print(ANDROID_LOG_INFO, "XSDL", "Unpacking data"); @@ -49,7 +49,7 @@ void * unpackFilesThread(void * unused) { __android_log_print(ANDROID_LOG_INFO, "XSDL", "Cannot copy busybox"); unpackFinished = 1; - return 0; + return (void *)0; } for(;;) @@ -60,7 +60,7 @@ void * unpackFilesThread(void * unused) { __android_log_print(ANDROID_LOG_INFO, "XSDL", "Cannot copy busybox"); unpackFinished = 1; - return 1; + return (void *)1; } fwrite( buf, 1, cnt, fo ); if( cnt < sizeof(buf) ) @@ -74,7 +74,7 @@ void * unpackFilesThread(void * unused) { __android_log_print(ANDROID_LOG_INFO, "XSDL", "Cannot chmod busybox"); unpackFinished = 1; - return 0; + return (void *)0; } if( stat( "data.tar.gz", &st ) == 0 ) @@ -92,7 +92,7 @@ void * unpackFilesThread(void * unused) { __android_log_print(ANDROID_LOG_INFO, "XSDL", "Error extracting data"); unpackFinished = 1; - return 0; + return (void *)0; } int unpackProgressKb = 0; @@ -104,7 +104,7 @@ void * unpackFilesThread(void * unused) { __android_log_print(ANDROID_LOG_INFO, "XSDL", "Error extracting data"); unpackFinished = 1; - return 1; + return (void *)1; } fwrite( buf, 1, cnt, fo ); if( cnt < sizeof(buf) ) @@ -122,7 +122,7 @@ void * unpackFilesThread(void * unused) { __android_log_print(ANDROID_LOG_INFO, "XSDL", "Error extracting data"); unpackFinished = 1; - return 0; + return (void *)0; } remove("data.tar.gz"); @@ -135,7 +135,7 @@ void * unpackFilesThread(void * unused) { __android_log_print(ANDROID_LOG_INFO, "XSDL", "No postinstall script"); unpackFinished = 1; - return 1; + return (void *)1; } __android_log_print(ANDROID_LOG_INFO, "XSDL", "Running postinstall scipt"); @@ -145,7 +145,7 @@ void * unpackFilesThread(void * unused) { __android_log_print(ANDROID_LOG_INFO, "XSDL", "ERROR: Cannot launch postinstall scipt"); unpackFinished = 1; - return 0; + return (void *)0; } for(;;) { @@ -158,7 +158,7 @@ void * unpackFilesThread(void * unused) __android_log_print(ANDROID_LOG_INFO, "XSDL", "Postinstall scipt exited with status %d", pclose(fo)); unpackFinished = 1; - return 1; + return (void *)1; } void XSDL_unpackFiles() @@ -394,7 +394,7 @@ void showErrorMessage(const char *msg) void XSDL_initSDL() { SDL_Init(SDL_INIT_VIDEO); - SDL_SetVideoMode(VID_X, VID_Y, 24, SDL_SWSURFACE); + SDL_SetVideoMode(VID_X, VID_Y, 0, SDL_SWSURFACE); TTF_Init(); sFont = TTF_OpenFont("DroidSansMono.ttf", 12); if (!sFont) diff --git a/project/jni/application/xserver/main.c b/project/jni/application/xserver/main.c index 720c7a1b7..e60988b6c 100644 --- a/project/jni/application/xserver/main.c +++ b/project/jni/application/xserver/main.c @@ -95,6 +95,25 @@ int main( int argc, char* argv[] ) close(s); } */ + FILE * ff = fopen("/proc/net/unix", "rb"); + if( ff ) + { + char buf[512], name[512]; + int found = 0; + sprintf(name, "/tmp/.X11-unix/X%d", i); + while( fgets(buf, sizeof(buf), ff) ) + { + if( strstr(buf, name) != NULL ) + { + __android_log_print(ANDROID_LOG_INFO, "XSDL", "UNIX path %s already used, trying next one", name); + found = 1; + break; + } + } + fclose(ff); + if( found ) + continue; + } sprintf( port, ":%d", i ); break; @@ -111,7 +130,7 @@ int main( int argc, char* argv[] ) XSDL_deinitSDL(); - sprintf( screenres, "%d/%dx%d/%dx%d", resolutionW, displayW, resolutionH, displayH, 24 ); + sprintf( screenres, "%d/%dx%d/%dx%d", resolutionW, displayW, resolutionH, displayH, SDL_GetVideoInfo()->vfmt->BitsPerPixel ); if( argc > 1 ) { diff --git a/project/jni/application/xserver/xserver b/project/jni/application/xserver/xserver index 5018d4c6c..0669077a6 160000 --- a/project/jni/application/xserver/xserver +++ b/project/jni/application/xserver/xserver @@ -1 +1 @@ -Subproject commit 5018d4c6ccd7962e640941400802e8b9b6be4562 +Subproject commit 0669077a6d5623c40f150d9a4530d9f00874849f