Force SW video mode in SDL_SetVideoMode() if enabled in AndroidAppSettings.cfg
This commit is contained in:
@@ -870,7 +870,7 @@ mv -f project/src/Globals.java.1 project/src/Globals.java
|
||||
echo Patching project/jni/Settings.mk
|
||||
echo '# DO NOT EDIT THIS FILE - it is automatically generated, edit file SettingsTemplate.mk' > project/jni/Settings.mk
|
||||
cat project/jni/SettingsTemplate.mk | \
|
||||
sed "s/APP_MODULES := .*/APP_MODULES := application sdl-$LibSdlVersion sdl_main stlport jpeg png ogg flac vorbis freetype stdout-test $CompiledLibraries/" | \
|
||||
sed "s/APP_MODULES := .*/APP_MODULES := application sdl-$LibSdlVersion sdl_main stlport jpeg png ogg flac vorbis freetype $CompiledLibraries/" | \
|
||||
sed "s/APP_ABI := .*/APP_ABI := $MultiABI/" | \
|
||||
sed "s/SDL_JAVA_PACKAGE_PATH := .*/SDL_JAVA_PACKAGE_PATH := $AppFullNameUnderscored/" | \
|
||||
sed "s^SDL_CURDIR_PATH := .*^SDL_CURDIR_PATH := $DataPath^" | \
|
||||
@@ -905,7 +905,6 @@ rm -rf project/$OUT/local/*/libsdl_*.so
|
||||
rm -rf project/$OUT/local/*/objs*/sdl-*/src/*/android
|
||||
rm -rf project/$OUT/local/*/objs*/sdl-*/src/video/SDL_video.o
|
||||
rm -rf project/$OUT/local/*/objs*/sdl-*/SDL_renderer_gles.o
|
||||
rm -rf project/$OUT/local/*/libsdl_fake_stdout.a project/$OUT/local/*/objs*/sdl_fake_stdout/*
|
||||
rm -rf project/$OUT/local/*/objs*/sdl_*
|
||||
# Do not rebuild several huge libraries that do not depend on SDL version
|
||||
for LIB in freetype intl jpeg png lua mad stlport tremor xerces xml2; do
|
||||
@@ -924,7 +923,6 @@ rm -f project/assets/*
|
||||
if [ -d "project/jni/application/src/AndroidData" ] ; then
|
||||
echo Copying asset files
|
||||
cp project/jni/application/src/AndroidData/* project/assets/
|
||||
ln -s ../libs/armeabi/stdout-test project/assets/
|
||||
for F in project/assets/*; do
|
||||
if [ `cat $F | wc -c` -gt 1000000 ] ; then
|
||||
echo "The file $F is bigger than 1 megabyte - splitting it into smaller chunks"
|
||||
|
||||
@@ -2417,6 +2417,8 @@ class Settings
|
||||
Globals.SwVideoMode = true;
|
||||
nativeSetCompatibilityHacks();
|
||||
}
|
||||
if( Globals.SwVideoMode )
|
||||
nativeSetVideoForceSoftwareMode();
|
||||
if( Globals.SwVideoMode && Globals.MultiThreadedVideo )
|
||||
nativeSetVideoMultithreaded();
|
||||
if( Globals.PhoneHasTrackball )
|
||||
@@ -2557,6 +2559,7 @@ class Settings
|
||||
private static native void nativeSetVideoDepth(int bpp, int gles2);
|
||||
private static native void nativeSetCompatibilityHacks();
|
||||
private static native void nativeSetVideoMultithreaded();
|
||||
private static native void nativeSetVideoForceSoftwareMode();
|
||||
private static native void nativeSetupScreenKeyboard(int size, int drawsize, int theme, int nbuttonsAutoFire, int transparency);
|
||||
private static native void nativeSetupScreenKeyboardButtons(byte[] img);
|
||||
private static native void nativeInitKeymap();
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
APP_MODULES := application sdl-1.2 sdl_main stlport jpeg png ogg flac vorbis freetype tremor ogg
|
||||
|
||||
# To filter out static libs from all libs in makefile
|
||||
APP_AVAILABLE_STATIC_LIBS := jpeg png tremor freetype xerces ogg tremor vorbis flac sdl_fake_stdout boost_date_time boost_filesystem boost_iostreams boost_program_options boost_regex boost_signals boost_system boost_thread
|
||||
APP_AVAILABLE_STATIC_LIBS := jpeg png tremor freetype xerces ogg tremor vorbis flac boost_date_time boost_filesystem boost_iostreams boost_program_options boost_regex boost_signals boost_system boost_thread
|
||||
|
||||
APP_ABI := armeabi
|
||||
|
||||
|
||||
@@ -9,8 +9,6 @@
|
||||
* software, or work derived from it, under other terms.
|
||||
*/
|
||||
|
||||
#include <sstream>
|
||||
#include <iostream>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <math.h>
|
||||
@@ -25,7 +23,7 @@
|
||||
----------------------------------------------------------*/
|
||||
|
||||
#define SCREEN_W 320
|
||||
#define SCREEN_H 240
|
||||
#define SCREEN_H 200
|
||||
|
||||
|
||||
#define BALLS 300
|
||||
@@ -411,12 +409,6 @@ void tiled_back(SDL_Surface *back, SDL_Surface *screen, int xo, int yo)
|
||||
main()
|
||||
----------------------------------------------------------*/
|
||||
|
||||
extern "C" void unaligned_test(unsigned * data, unsigned * target);
|
||||
extern "C" unsigned val0, val1, val2, val3, val4;
|
||||
|
||||
unsigned val0 = 0x01234567, val1, val2, val3;
|
||||
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
ballfield_t *balls;
|
||||
@@ -425,7 +417,7 @@ int main(int argc, char* argv[])
|
||||
SDL_Surface *back, *logo, *font, *font_hex;
|
||||
SDL_Event event;
|
||||
int bpp = 16,
|
||||
flags = 0,
|
||||
flags = SDL_HWSURFACE,
|
||||
alpha = 1;
|
||||
int x_offs = 0, y_offs = 0;
|
||||
long tick,
|
||||
@@ -677,8 +669,5 @@ int main(int argc, char* argv[])
|
||||
SDL_FreeSurface(back);
|
||||
SDL_FreeSurface(logo);
|
||||
SDL_FreeSurface(font);
|
||||
std::ostringstream os;
|
||||
os << "lalala" << std::endl << "more text" << std::endl;
|
||||
std::cout << os.str() << std::endl << "text text" << std::endl;
|
||||
exit(0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
Submodule project/jni/application/commandergenius/commandergenius updated: 023025901a...d4ef5612e9
Submodule project/jni/application/openarena/engine updated: cea3164adf...ed71ad5bf9
@@ -307,12 +307,21 @@ SDL_Surface *ANDROID_SetVideoMode(_THIS, SDL_Surface *current,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if( SDL_ANDROID_VideoForceSoftwareMode )
|
||||
{
|
||||
if( flags & SDL_HWSURFACE )
|
||||
__android_log_print(ANDROID_LOG_INFO, "libSDL", "SDL_SetVideoMode(): application requested hardware video mode - forcing software video mode");
|
||||
if( flags & SDL_OPENGL )
|
||||
__android_log_print(ANDROID_LOG_INFO, "libSDL", "Error: application requested OpenGL context - SDL will ignore this. Set SwVideoMode=n inside AndroidAppSettings.cfg to enable OpenGL inside SDL.");
|
||||
flags = (flags & SDL_FULLSCREEN) | (flags & SDL_DOUBLEBUF);
|
||||
}
|
||||
|
||||
sdl_opengl = (flags & SDL_OPENGL) ? 1 : 0;
|
||||
|
||||
SDL_ANDROID_sFakeWindowWidth = width;
|
||||
SDL_ANDROID_sFakeWindowHeight = height;
|
||||
|
||||
current->flags = (flags & SDL_FULLSCREEN) | (flags & SDL_OPENGL) | SDL_DOUBLEBUF | ( flags & SDL_HWSURFACE );
|
||||
current->flags = (flags & SDL_FULLSCREEN) | (flags & SDL_OPENGL) | SDL_DOUBLEBUF | (flags & SDL_HWSURFACE);
|
||||
current->w = width;
|
||||
current->h = height;
|
||||
current->pitch = SDL_ANDROID_sFakeWindowWidth * SDL_ANDROID_BYTESPERPIXEL;
|
||||
@@ -456,7 +465,13 @@ static int ANDROID_AllocHWSurface(_THIS, SDL_Surface *surface)
|
||||
}
|
||||
|
||||
if ( ! (surface->w && surface->h) )
|
||||
return(-1);
|
||||
return -1;
|
||||
|
||||
if( SDL_ANDROID_VideoForceSoftwareMode )
|
||||
{
|
||||
//__android_log_print(ANDROID_LOG_INFO, "libSDL", "SDL_SetVideoMode(): ignoring application attempt to allocate HW surface");
|
||||
return -1;
|
||||
}
|
||||
|
||||
DEBUGOUT("ANDROID_AllocHWSurface() surface %p w %d h %d", surface, surface->w, surface->h);
|
||||
Uint32 format = PixelFormatEnumColorkey; // 1-bit alpha for color key, every surface will have colorkey so it's easier for us
|
||||
@@ -514,7 +529,6 @@ static int ANDROID_AllocHWSurface(_THIS, SDL_Surface *surface)
|
||||
|
||||
surface->flags |= SDL_HWSURFACE | SDL_HWACCEL;
|
||||
|
||||
|
||||
HwSurfaceCount++;
|
||||
DEBUGOUT("ANDROID_AllocHWSurface() in HwSurfaceCount %d HwSurfaceList %p", HwSurfaceCount, HwSurfaceList);
|
||||
HwSurfaceList = SDL_realloc( HwSurfaceList, HwSurfaceCount * sizeof(SDL_Surface *) );
|
||||
@@ -554,9 +568,7 @@ static void ANDROID_FreeHWSurface(_THIS, SDL_Surface *surface)
|
||||
}
|
||||
}
|
||||
if( i != -1 )
|
||||
{
|
||||
SDL_SetError("ANDROID_FreeHWSurface: cannot find freed HW surface in HwSurfaceList array");
|
||||
}
|
||||
}
|
||||
|
||||
static int ANDROID_LockHWSurface(_THIS, SDL_Surface *surface)
|
||||
|
||||
@@ -67,6 +67,7 @@ static const char * showScreenKeyboardOldText = "";
|
||||
static int showScreenKeyboardSendBackspace = 0;
|
||||
int SDL_ANDROID_SmoothVideo = 0;
|
||||
int SDL_ANDROID_VideoMultithreaded = 0;
|
||||
int SDL_ANDROID_VideoForceSoftwareMode = 0;
|
||||
int SDL_ANDROID_CompatibilityHacks = 0;
|
||||
int SDL_ANDROID_BYTESPERPIXEL = 2;
|
||||
int SDL_ANDROID_BITSPERPIXEL = 16;
|
||||
@@ -324,6 +325,12 @@ JAVA_EXPORT_NAME(Settings_nativeSetVideoMultithreaded) (JNIEnv* env, jobject thi
|
||||
SDL_ANDROID_VideoMultithreaded = 1;
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
JAVA_EXPORT_NAME(Settings_nativeSetVideoForceSoftwareMode) (JNIEnv* env, jobject thiz)
|
||||
{
|
||||
SDL_ANDROID_VideoForceSoftwareMode = 1;
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
JAVA_EXPORT_NAME(Settings_nativeSetCompatibilityHacks) (JNIEnv* env, jobject thiz)
|
||||
{
|
||||
|
||||
@@ -42,6 +42,7 @@ extern int SDL_ANDROID_TouchscreenCalibrationX;
|
||||
extern int SDL_ANDROID_TouchscreenCalibrationY;
|
||||
extern int SDL_ANDROID_SmoothVideo;
|
||||
extern int SDL_ANDROID_VideoMultithreaded;
|
||||
extern int SDL_ANDROID_VideoForceSoftwareMode;
|
||||
extern int SDL_ANDROID_CompatibilityHacks;
|
||||
extern int SDL_ANDROID_ShowMouseCursor;
|
||||
extern int SDL_ANDROID_UseGles2;
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_MODULE := stdout-test
|
||||
LOCAL_SRC_FILES = stdout-test.c
|
||||
|
||||
include $(BUILD_EXECUTABLE)
|
||||
@@ -1,18 +0,0 @@
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
|
||||
extern int main(int argc, char *argv[]);
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
// Numerous Telechips devices will crash this simple Posix-compatibility test
|
||||
printf("printf()\n");
|
||||
fprintf(stdout, "fprintf(stdout)\n");
|
||||
fflush(stdout);
|
||||
fprintf(stderr, "fprintf(stderr)\n");
|
||||
fflush(stderr);
|
||||
write(STDOUT_FILENO, "write(1)\n", strlen("write(1)\n"));
|
||||
write(STDERR_FILENO, "write(2)\n", strlen("write(2)\n"));
|
||||
return 42;
|
||||
}
|
||||
Reference in New Issue
Block a user