diff options
Diffstat (limited to 'platform/android')
| -rw-r--r-- | platform/android/detect.py | 4 | ||||
| -rw-r--r-- | platform/android/export/export.cpp | 29 | ||||
| -rw-r--r-- | platform/android/java/src/com/android/godot/GodotLib.java | 2 | ||||
| -rw-r--r-- | platform/android/java/src/com/android/godot/GodotView.java | 3 | ||||
| -rw-r--r-- | platform/android/java_glue.cpp | 8 | ||||
| -rw-r--r-- | platform/android/java_glue.h | 2 | ||||
| -rw-r--r-- | platform/android/os_android.cpp | 9 | ||||
| -rw-r--r-- | platform/android/os_android.h | 3 | 
8 files changed, 42 insertions, 18 deletions
| diff --git a/platform/android/detect.py b/platform/android/detect.py index 9db5d02b48..66097a5149 100644 --- a/platform/android/detect.py +++ b/platform/android/detect.py @@ -98,6 +98,7 @@ def configure(env):  	if env['android_arch']=='x86':  		env['NDK_TARGET']=env['NDK_TARGET_X86'] +		env["x86_opt_gcc"]=True  	if env['PLATFORM'] == 'win32':  		import methods @@ -210,7 +211,8 @@ def configure(env):  #	env.Append(CPPFLAGS=['-DANDROID_ENABLED', '-DUNIX_ENABLED','-DMPC_FIXED_POINT'])  	if(env["opus"]=="yes"): -		env.Append(CFLAGS=["-DOPUS_ARM_OPT"]) +		if (env["android_arch"]=="armv6" or env["android_arch"]=="armv7"): +			env.Append(CFLAGS=["-DOPUS_ARM_OPT"])  		env.opus_fixed_point="yes"  	if (env['android_stl']=='yes'): diff --git a/platform/android/export/export.cpp b/platform/android/export/export.cpp index 1deeb3457a..7d550f4fa0 100644 --- a/platform/android/export/export.cpp +++ b/platform/android/export/export.cpp @@ -1020,18 +1020,24 @@ Error EditorExportPlatformAndroid::export_project(const String& p_path, bool p_d  	EditorProgress ep("export","Exporting for Android",104); -	String apk_path = EditorSettings::get_singleton()->get_settings_path()+"/templates/"; - -	if (p_debug) { - -		src_apk=custom_debug_package!=""?custom_debug_package:apk_path+"android_debug.apk"; -	} else { - -		src_apk=custom_release_package!=""?custom_release_package:apk_path+"android_release.apk"; +	if (p_debug) +		src_apk=custom_debug_package; +	else +		src_apk=custom_release_package; +	if (src_apk=="") { +		String err; +		if (p_debug) { +			src_apk=find_export_template("android_debug.apk", &err); +		} else { +			src_apk=find_export_template("android_release.apk", &err); +		} +		if (src_apk=="") { +			EditorNode::add_io_error(err); +			return ERR_FILE_NOT_FOUND; +		}  	} -  	FileAccess *src_f=NULL;  	zlib_filefunc_def io = zipio_create_io_from_file(&src_f); @@ -1659,10 +1665,7 @@ bool EditorExportPlatformAndroid::can_export(String *r_error) const {  		err+="Debug Keystore not configured in editor settings.\n";  	} - -	String exe_path = EditorSettings::get_singleton()->get_settings_path()+"/templates/"; - -	if (!FileAccess::exists(exe_path+"android_debug.apk") || !FileAccess::exists(exe_path+"android_release.apk")) { +	if (!exists_export_template("android_debug.apk") || !exists_export_template("android_release.apk")) {  		valid=false;  		err+="No export templates found.\nDownload and install export templates.\n";  	} diff --git a/platform/android/java/src/com/android/godot/GodotLib.java b/platform/android/java/src/com/android/godot/GodotLib.java index f099e0feff..3d870b3b1f 100644 --- a/platform/android/java/src/com/android/godot/GodotLib.java +++ b/platform/android/java/src/com/android/godot/GodotLib.java @@ -46,7 +46,7 @@ public class GodotLib {       public static native void initialize(Godot p_instance,boolean need_reload_hook,String[] p_cmdline,Object p_asset_manager);       public static native void resize(int width, int height,boolean reload); -     public static native void newcontext(); +     public static native void newcontext(boolean p_32_bits);       public static native void quit();       public static native void step();       public static native void touch(int what,int pointer,int howmany, int[] arr); diff --git a/platform/android/java/src/com/android/godot/GodotView.java b/platform/android/java/src/com/android/godot/GodotView.java index 1a84923065..bc249d46c6 100644 --- a/platform/android/java/src/com/android/godot/GodotView.java +++ b/platform/android/java/src/com/android/godot/GodotView.java @@ -425,6 +425,7 @@ public class GodotView extends GLSurfaceView {  			if (ec == null) {  	  			Log.w(TAG, "Trying ConfigChooser fallback");  	  			ec = fallback.chooseConfig(egl, display, configs); +				use_32=false;  			}  			return ec;        		} @@ -654,7 +655,7 @@ public class GodotView extends GLSurfaceView {  		}  		public void onSurfaceCreated(GL10 gl, EGLConfig config) { -			GodotLib.newcontext(); +			GodotLib.newcontext(use_32);  		}  	}  } diff --git a/platform/android/java_glue.cpp b/platform/android/java_glue.cpp index d001cface2..2cc74c3bb0 100644 --- a/platform/android/java_glue.cpp +++ b/platform/android/java_glue.cpp @@ -920,14 +920,20 @@ JNIEXPORT void JNICALL Java_com_android_godot_GodotLib_resize(JNIEnv * env, jobj  } -JNIEXPORT void JNICALL Java_com_android_godot_GodotLib_newcontext(JNIEnv * env, jobject obj) { +JNIEXPORT void JNICALL Java_com_android_godot_GodotLib_newcontext(JNIEnv * env, jobject obj,bool p_32_bits) {  	__android_log_print(ANDROID_LOG_INFO,"godot","^_^_^_^_^ newcontext %lld\n",Thread::get_caller_ID()); + +	if (os_android) { +		os_android->set_context_is_16_bits(!p_32_bits); +	} +  	if (os_android && step > 0) {  		os_android->reload_gfx();  	} +  } diff --git a/platform/android/java_glue.h b/platform/android/java_glue.h index 9410fe7132..e22b6775d8 100644 --- a/platform/android/java_glue.h +++ b/platform/android/java_glue.h @@ -38,7 +38,7 @@  extern "C" {      JNIEXPORT void JNICALL Java_com_android_godot_GodotLib_initialize(JNIEnv * env, jobject obj, jobject activity,jboolean p_need_reload_hook, jobjectArray p_cmdline,jobject p_asset_manager);      JNIEXPORT void JNICALL Java_com_android_godot_GodotLib_resize(JNIEnv * env, jobject obj,  jint width, jint height, jboolean reload); -    JNIEXPORT void JNICALL Java_com_android_godot_GodotLib_newcontext(JNIEnv * env, jobject obj); +    JNIEXPORT void JNICALL Java_com_android_godot_GodotLib_newcontext(JNIEnv * env, jobject obj, bool p_32_bits);      JNIEXPORT void JNICALL Java_com_android_godot_GodotLib_step(JNIEnv * env, jobject obj);      JNIEXPORT void JNICALL Java_com_android_godot_GodotLib_quit(JNIEnv * env, jobject obj);      JNIEXPORT void JNICALL Java_com_android_godot_GodotLib_touch(JNIEnv * env, jobject obj, jint ev,jint pointer, jint count, jintArray positions); diff --git a/platform/android/os_android.cpp b/platform/android/os_android.cpp index e2ff128f0d..e5d11bef69 100644 --- a/platform/android/os_android.cpp +++ b/platform/android/os_android.cpp @@ -141,6 +141,8 @@ void OS_Android::initialize(const VideoMode& p_desired,int p_video_driver,int p_  	} +	rasterizer->set_force_16_bits_fbo(use_16bits_fbo); +  	visual_server = memnew( VisualServerRaster(rasterizer) );  	if (get_render_thread_mode() != RENDER_THREAD_UNSAFE) { @@ -725,6 +727,13 @@ void OS_Android::native_video_stop() {  		video_stop_func();  } +void OS_Android::set_context_is_16_bits(bool p_is_16) { + +	use_16bits_fbo=p_is_16; +	if (rasterizer) +		rasterizer->set_force_16_bits_fbo(p_is_16); +} +  OS_Android::OS_Android(GFXInitFunc p_gfx_init_func,void*p_gfx_init_ud, OpenURIFunc p_open_uri_func, GetDataDirFunc p_get_data_dir_func,GetLocaleFunc p_get_locale_func,GetModelFunc p_get_model_func, ShowVirtualKeyboardFunc p_show_vk, HideVirtualKeyboardFunc p_hide_vk,  SetScreenOrientationFunc p_screen_orient,GetUniqueIDFunc p_get_unique_id,GetSystemDirFunc p_get_sdir_func, VideoPlayFunc p_video_play_func, VideoIsPlayingFunc p_video_is_playing_func, VideoPauseFunc p_video_pause_func, VideoStopFunc p_video_stop_func,bool p_use_apk_expansion) { diff --git a/platform/android/os_android.h b/platform/android/os_android.h index dcaa1db654..94c6250ae8 100644 --- a/platform/android/os_android.h +++ b/platform/android/os_android.h @@ -95,6 +95,8 @@ private:  	bool use_reload_hooks;  	bool use_apk_expansion; +	bool use_16bits_fbo; +  	Rasterizer *rasterizer;  	VisualServer *visual_server;  	AudioServerSW *audio_server; @@ -200,6 +202,7 @@ public:  	void set_display_size(Size2 p_size);  	void reload_gfx(); +	void set_context_is_16_bits(bool p_is_16);  	void set_need_reload_hooks(bool p_needs_them);  	virtual void set_screen_orientation(ScreenOrientation p_orientation); |