You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-04 12:00:25 +00:00
Fix the issue causing the logo to not show when using the compatibility renderer
This commit is contained in:
133
main/main.cpp
133
main/main.cpp
@@ -2552,7 +2552,7 @@ Error _parse_resource_dummy(void *p_data, VariantParser::Stream *p_stream, Ref<R
|
|||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
Error Main::setup2() {
|
Error Main::setup2(bool p_show_boot_logo) {
|
||||||
Thread::make_main_thread(); // Make whatever thread call this the main thread.
|
Thread::make_main_thread(); // Make whatever thread call this the main thread.
|
||||||
set_current_thread_safe_for_nodes(true);
|
set_current_thread_safe_for_nodes(true);
|
||||||
|
|
||||||
@@ -2896,12 +2896,6 @@ Error Main::setup2() {
|
|||||||
|
|
||||||
MAIN_PRINT("Main: Setup Logo");
|
MAIN_PRINT("Main: Setup Logo");
|
||||||
|
|
||||||
#if !defined(TOOLS_ENABLED) && defined(WEB_ENABLED)
|
|
||||||
bool show_logo = false;
|
|
||||||
#else
|
|
||||||
bool show_logo = true;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (init_windowed) {
|
if (init_windowed) {
|
||||||
//do none..
|
//do none..
|
||||||
} else if (init_maximized) {
|
} else if (init_maximized) {
|
||||||
@@ -2913,67 +2907,11 @@ Error Main::setup2() {
|
|||||||
DisplayServer::get_singleton()->window_set_flag(DisplayServer::WINDOW_FLAG_ALWAYS_ON_TOP, true);
|
DisplayServer::get_singleton()->window_set_flag(DisplayServer::WINDOW_FLAG_ALWAYS_ON_TOP, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
MAIN_PRINT("Main: Load Boot Image");
|
|
||||||
|
|
||||||
Color clear = GLOBAL_DEF_BASIC("rendering/environment/defaults/default_clear_color", Color(0.3, 0.3, 0.3));
|
Color clear = GLOBAL_DEF_BASIC("rendering/environment/defaults/default_clear_color", Color(0.3, 0.3, 0.3));
|
||||||
RenderingServer::get_singleton()->set_default_clear_color(clear);
|
RenderingServer::get_singleton()->set_default_clear_color(clear);
|
||||||
|
|
||||||
if (show_logo) { //boot logo!
|
if (p_show_boot_logo) {
|
||||||
const bool boot_logo_image = GLOBAL_DEF_BASIC("application/boot_splash/show_image", true);
|
setup_boot_logo();
|
||||||
const String boot_logo_path = String(GLOBAL_DEF_BASIC(PropertyInfo(Variant::STRING, "application/boot_splash/image", PROPERTY_HINT_FILE, "*.png"), String())).strip_edges();
|
|
||||||
const bool boot_logo_scale = GLOBAL_DEF_BASIC("application/boot_splash/fullsize", true);
|
|
||||||
const bool boot_logo_filter = GLOBAL_DEF_BASIC("application/boot_splash/use_filter", true);
|
|
||||||
|
|
||||||
Ref<Image> boot_logo;
|
|
||||||
|
|
||||||
if (boot_logo_image) {
|
|
||||||
if (!boot_logo_path.is_empty()) {
|
|
||||||
boot_logo.instantiate();
|
|
||||||
Error load_err = ImageLoader::load_image(boot_logo_path, boot_logo);
|
|
||||||
if (load_err) {
|
|
||||||
ERR_PRINT("Non-existing or invalid boot splash at '" + boot_logo_path + "'. Loading default splash.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// Create a 1×1 transparent image. This will effectively hide the splash image.
|
|
||||||
boot_logo.instantiate();
|
|
||||||
boot_logo->initialize_data(1, 1, false, Image::FORMAT_RGBA8);
|
|
||||||
boot_logo->set_pixel(0, 0, Color(0, 0, 0, 0));
|
|
||||||
}
|
|
||||||
|
|
||||||
Color boot_bg_color = GLOBAL_GET("application/boot_splash/bg_color");
|
|
||||||
|
|
||||||
#if defined(TOOLS_ENABLED) && !defined(NO_EDITOR_SPLASH)
|
|
||||||
boot_bg_color =
|
|
||||||
GLOBAL_DEF_BASIC("application/boot_splash/bg_color",
|
|
||||||
(editor || project_manager) ? boot_splash_editor_bg_color : boot_splash_bg_color);
|
|
||||||
#endif
|
|
||||||
if (boot_logo.is_valid()) {
|
|
||||||
RenderingServer::get_singleton()->set_boot_image(boot_logo, boot_bg_color, boot_logo_scale,
|
|
||||||
boot_logo_filter);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
#ifndef NO_DEFAULT_BOOT_LOGO
|
|
||||||
MAIN_PRINT("Main: Create bootsplash");
|
|
||||||
#if defined(TOOLS_ENABLED) && !defined(NO_EDITOR_SPLASH)
|
|
||||||
Ref<Image> splash = (editor || project_manager) ? memnew(Image(boot_splash_editor_png)) : memnew(Image(boot_splash_png));
|
|
||||||
#else
|
|
||||||
Ref<Image> splash = memnew(Image(boot_splash_png));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
MAIN_PRINT("Main: ClearColor");
|
|
||||||
RenderingServer::get_singleton()->set_default_clear_color(boot_bg_color);
|
|
||||||
MAIN_PRINT("Main: Image");
|
|
||||||
RenderingServer::get_singleton()->set_boot_image(splash, boot_bg_color, false);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
#if defined(TOOLS_ENABLED) && defined(MACOS_ENABLED)
|
|
||||||
if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_ICON) && OS::get_singleton()->get_bundle_icon_path().is_empty()) {
|
|
||||||
Ref<Image> icon = memnew(Image(app_icon_png));
|
|
||||||
DisplayServer::get_singleton()->set_icon(icon);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MAIN_PRINT("Main: Clear Color");
|
MAIN_PRINT("Main: Clear Color");
|
||||||
@@ -3216,6 +3154,71 @@ Error Main::setup2() {
|
|||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Main::setup_boot_logo() {
|
||||||
|
MAIN_PRINT("Main: Load Boot Image");
|
||||||
|
|
||||||
|
#if !defined(TOOLS_ENABLED) && defined(WEB_ENABLED)
|
||||||
|
bool show_logo = false;
|
||||||
|
#else
|
||||||
|
bool show_logo = true;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (show_logo) { //boot logo!
|
||||||
|
const bool boot_logo_image = GLOBAL_DEF_BASIC("application/boot_splash/show_image", true);
|
||||||
|
const String boot_logo_path = String(GLOBAL_DEF_BASIC(PropertyInfo(Variant::STRING, "application/boot_splash/image", PROPERTY_HINT_FILE, "*.png"), String())).strip_edges();
|
||||||
|
const bool boot_logo_scale = GLOBAL_DEF_BASIC("application/boot_splash/fullsize", true);
|
||||||
|
const bool boot_logo_filter = GLOBAL_DEF_BASIC("application/boot_splash/use_filter", true);
|
||||||
|
|
||||||
|
Ref<Image> boot_logo;
|
||||||
|
|
||||||
|
if (boot_logo_image) {
|
||||||
|
if (!boot_logo_path.is_empty()) {
|
||||||
|
boot_logo.instantiate();
|
||||||
|
Error load_err = ImageLoader::load_image(boot_logo_path, boot_logo);
|
||||||
|
if (load_err) {
|
||||||
|
ERR_PRINT("Non-existing or invalid boot splash at '" + boot_logo_path + "'. Loading default splash.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Create a 1×1 transparent image. This will effectively hide the splash image.
|
||||||
|
boot_logo.instantiate();
|
||||||
|
boot_logo->initialize_data(1, 1, false, Image::FORMAT_RGBA8);
|
||||||
|
boot_logo->set_pixel(0, 0, Color(0, 0, 0, 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
Color boot_bg_color = GLOBAL_GET("application/boot_splash/bg_color");
|
||||||
|
|
||||||
|
#if defined(TOOLS_ENABLED) && !defined(NO_EDITOR_SPLASH)
|
||||||
|
boot_bg_color = GLOBAL_DEF_BASIC("application/boot_splash/bg_color", (editor || project_manager) ? boot_splash_editor_bg_color : boot_splash_bg_color);
|
||||||
|
#endif
|
||||||
|
if (boot_logo.is_valid()) {
|
||||||
|
RenderingServer::get_singleton()->set_boot_image(boot_logo, boot_bg_color, boot_logo_scale, boot_logo_filter);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
#ifndef NO_DEFAULT_BOOT_LOGO
|
||||||
|
MAIN_PRINT("Main: Create bootsplash");
|
||||||
|
#if defined(TOOLS_ENABLED) && !defined(NO_EDITOR_SPLASH)
|
||||||
|
Ref<Image> splash = (editor || project_manager) ? memnew(Image(boot_splash_editor_png)) : memnew(Image(boot_splash_png));
|
||||||
|
#else
|
||||||
|
Ref<Image> splash = memnew(Image(boot_splash_png));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
MAIN_PRINT("Main: ClearColor");
|
||||||
|
RenderingServer::get_singleton()->set_default_clear_color(boot_bg_color);
|
||||||
|
MAIN_PRINT("Main: Image");
|
||||||
|
RenderingServer::get_singleton()->set_boot_image(splash, boot_bg_color, false);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
#if defined(TOOLS_ENABLED) && defined(MACOS_ENABLED)
|
||||||
|
if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_ICON) && OS::get_singleton()->get_bundle_icon_path().is_empty()) {
|
||||||
|
Ref<Image> icon = memnew(Image(app_icon_png));
|
||||||
|
DisplayServer::get_singleton()->set_icon(icon);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
String Main::get_rendering_driver_name() {
|
String Main::get_rendering_driver_name() {
|
||||||
return rendering_driver;
|
return rendering_driver;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,8 +72,9 @@ public:
|
|||||||
|
|
||||||
static int test_entrypoint(int argc, char *argv[], bool &tests_need_run);
|
static int test_entrypoint(int argc, char *argv[], bool &tests_need_run);
|
||||||
static Error setup(const char *execpath, int argc, char *argv[], bool p_second_phase = true);
|
static Error setup(const char *execpath, int argc, char *argv[], bool p_second_phase = true);
|
||||||
static Error setup2(); // The thread calling setup2() will effectively become the main thread.
|
static Error setup2(bool p_show_boot_logo = true); // The thread calling setup2() will effectively become the main thread.
|
||||||
static String get_rendering_driver_name();
|
static String get_rendering_driver_name();
|
||||||
|
static void setup_boot_logo();
|
||||||
#ifdef TESTS_ENABLED
|
#ifdef TESTS_ENABLED
|
||||||
static Error test_setup();
|
static Error test_setup();
|
||||||
static void test_cleanup();
|
static void test_cleanup();
|
||||||
|
|||||||
@@ -67,6 +67,13 @@ static AndroidInputHandler *input_handler = nullptr;
|
|||||||
static GodotJavaWrapper *godot_java = nullptr;
|
static GodotJavaWrapper *godot_java = nullptr;
|
||||||
static GodotIOJavaWrapper *godot_io_java = nullptr;
|
static GodotIOJavaWrapper *godot_io_java = nullptr;
|
||||||
|
|
||||||
|
enum StartupStep {
|
||||||
|
STEP_TERMINATED = -1,
|
||||||
|
STEP_SETUP,
|
||||||
|
STEP_SHOW_LOGO,
|
||||||
|
STEP_STARTED
|
||||||
|
};
|
||||||
|
|
||||||
static SafeNumeric<int> step; // Shared between UI and render threads
|
static SafeNumeric<int> step; // Shared between UI and render threads
|
||||||
|
|
||||||
static Size2 new_size;
|
static Size2 new_size;
|
||||||
@@ -76,7 +83,7 @@ static Vector3 magnetometer;
|
|||||||
static Vector3 gyroscope;
|
static Vector3 gyroscope;
|
||||||
|
|
||||||
static void _terminate(JNIEnv *env, bool p_restart = false) {
|
static void _terminate(JNIEnv *env, bool p_restart = false) {
|
||||||
step.set(-1); // Ensure no further steps are attempted and no further events are sent
|
step.set(STEP_TERMINATED); // Ensure no further steps are attempted and no further events are sent
|
||||||
|
|
||||||
// lets cleanup
|
// lets cleanup
|
||||||
// Unregister android plugins
|
// Unregister android plugins
|
||||||
@@ -203,7 +210,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_resize(JNIEnv *env, j
|
|||||||
os_android->set_display_size(Size2i(p_width, p_height));
|
os_android->set_display_size(Size2i(p_width, p_height));
|
||||||
|
|
||||||
// No need to reset the surface during startup
|
// No need to reset the surface during startup
|
||||||
if (step.get() > 0) {
|
if (step.get() > STEP_SETUP) {
|
||||||
if (p_surface) {
|
if (p_surface) {
|
||||||
ANativeWindow *native_window = ANativeWindow_fromSurface(env, p_surface);
|
ANativeWindow *native_window = ANativeWindow_fromSurface(env, p_surface);
|
||||||
os_android->set_native_window(native_window);
|
os_android->set_native_window(native_window);
|
||||||
@@ -216,7 +223,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_resize(JNIEnv *env, j
|
|||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_newcontext(JNIEnv *env, jclass clazz, jobject p_surface) {
|
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_newcontext(JNIEnv *env, jclass clazz, jobject p_surface) {
|
||||||
if (os_android) {
|
if (os_android) {
|
||||||
if (step.get() == 0) {
|
if (step.get() == STEP_SETUP) {
|
||||||
// During startup
|
// During startup
|
||||||
if (p_surface) {
|
if (p_surface) {
|
||||||
ANativeWindow *native_window = ANativeWindow_fromSurface(env, p_surface);
|
ANativeWindow *native_window = ANativeWindow_fromSurface(env, p_surface);
|
||||||
@@ -230,7 +237,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_newcontext(JNIEnv *en
|
|||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_back(JNIEnv *env, jclass clazz) {
|
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_back(JNIEnv *env, jclass clazz) {
|
||||||
if (step.get() == 0) {
|
if (step.get() <= STEP_SETUP) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -244,20 +251,26 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_ttsCallback(JNIEnv *e
|
|||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT jboolean JNICALL Java_org_godotengine_godot_GodotLib_step(JNIEnv *env, jclass clazz) {
|
JNIEXPORT jboolean JNICALL Java_org_godotengine_godot_GodotLib_step(JNIEnv *env, jclass clazz) {
|
||||||
if (step.get() == -1) {
|
if (step.get() == STEP_TERMINATED) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (step.get() == 0) {
|
if (step.get() == STEP_SETUP) {
|
||||||
// Since Godot is initialized on the UI thread, main_thread_id was set to that thread's id,
|
// Since Godot is initialized on the UI thread, main_thread_id was set to that thread's id,
|
||||||
// but for Godot purposes, the main thread is the one running the game loop
|
// but for Godot purposes, the main thread is the one running the game loop
|
||||||
Main::setup2();
|
Main::setup2(false); // The logo is shown in the next frame otherwise we run into rendering issues
|
||||||
input_handler = new AndroidInputHandler();
|
input_handler = new AndroidInputHandler();
|
||||||
step.increment();
|
step.increment();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (step.get() == 1) {
|
if (step.get() == STEP_SHOW_LOGO) {
|
||||||
|
Main::setup_boot_logo();
|
||||||
|
step.increment();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (step.get() == STEP_STARTED) {
|
||||||
if (Main::start() != EXIT_SUCCESS) {
|
if (Main::start() != EXIT_SUCCESS) {
|
||||||
return true; // should exit instead and print the error
|
return true; // should exit instead and print the error
|
||||||
}
|
}
|
||||||
@@ -283,7 +296,7 @@ JNIEXPORT jboolean JNICALL Java_org_godotengine_godot_GodotLib_step(JNIEnv *env,
|
|||||||
|
|
||||||
// Called on the UI thread
|
// Called on the UI thread
|
||||||
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_dispatchMouseEvent(JNIEnv *env, jclass clazz, jint p_event_type, jint p_button_mask, jfloat p_x, jfloat p_y, jfloat p_delta_x, jfloat p_delta_y, jboolean p_double_click, jboolean p_source_mouse_relative, jfloat p_pressure, jfloat p_tilt_x, jfloat p_tilt_y) {
|
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_dispatchMouseEvent(JNIEnv *env, jclass clazz, jint p_event_type, jint p_button_mask, jfloat p_x, jfloat p_y, jfloat p_delta_x, jfloat p_delta_y, jboolean p_double_click, jboolean p_source_mouse_relative, jfloat p_pressure, jfloat p_tilt_x, jfloat p_tilt_y) {
|
||||||
if (step.get() <= 0) {
|
if (step.get() <= STEP_SETUP) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -292,7 +305,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_dispatchMouseEvent(JN
|
|||||||
|
|
||||||
// Called on the UI thread
|
// Called on the UI thread
|
||||||
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_dispatchTouchEvent(JNIEnv *env, jclass clazz, jint ev, jint pointer, jint pointer_count, jfloatArray position, jboolean p_double_tap) {
|
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_dispatchTouchEvent(JNIEnv *env, jclass clazz, jint ev, jint pointer, jint pointer_count, jfloatArray position, jboolean p_double_tap) {
|
||||||
if (step.get() <= 0) {
|
if (step.get() <= STEP_SETUP) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -313,7 +326,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_dispatchTouchEvent(JN
|
|||||||
|
|
||||||
// Called on the UI thread
|
// Called on the UI thread
|
||||||
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_magnify(JNIEnv *env, jclass clazz, jfloat p_x, jfloat p_y, jfloat p_factor) {
|
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_magnify(JNIEnv *env, jclass clazz, jfloat p_x, jfloat p_y, jfloat p_factor) {
|
||||||
if (step.get() <= 0) {
|
if (step.get() <= STEP_SETUP) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
input_handler->process_magnify(Point2(p_x, p_y), p_factor);
|
input_handler->process_magnify(Point2(p_x, p_y), p_factor);
|
||||||
@@ -321,7 +334,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_magnify(JNIEnv *env,
|
|||||||
|
|
||||||
// Called on the UI thread
|
// Called on the UI thread
|
||||||
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_pan(JNIEnv *env, jclass clazz, jfloat p_x, jfloat p_y, jfloat p_delta_x, jfloat p_delta_y) {
|
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_pan(JNIEnv *env, jclass clazz, jfloat p_x, jfloat p_y, jfloat p_delta_x, jfloat p_delta_y) {
|
||||||
if (step.get() <= 0) {
|
if (step.get() <= STEP_SETUP) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
input_handler->process_pan(Point2(p_x, p_y), Vector2(p_delta_x, p_delta_y));
|
input_handler->process_pan(Point2(p_x, p_y), Vector2(p_delta_x, p_delta_y));
|
||||||
@@ -329,7 +342,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_pan(JNIEnv *env, jcla
|
|||||||
|
|
||||||
// Called on the UI thread
|
// Called on the UI thread
|
||||||
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_joybutton(JNIEnv *env, jclass clazz, jint p_device, jint p_button, jboolean p_pressed) {
|
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_joybutton(JNIEnv *env, jclass clazz, jint p_device, jint p_button, jboolean p_pressed) {
|
||||||
if (step.get() <= 0) {
|
if (step.get() <= STEP_SETUP) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -344,7 +357,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_joybutton(JNIEnv *env
|
|||||||
|
|
||||||
// Called on the UI thread
|
// Called on the UI thread
|
||||||
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_joyaxis(JNIEnv *env, jclass clazz, jint p_device, jint p_axis, jfloat p_value) {
|
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_joyaxis(JNIEnv *env, jclass clazz, jint p_device, jint p_axis, jfloat p_value) {
|
||||||
if (step.get() <= 0) {
|
if (step.get() <= STEP_SETUP) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -359,7 +372,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_joyaxis(JNIEnv *env,
|
|||||||
|
|
||||||
// Called on the UI thread
|
// Called on the UI thread
|
||||||
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_joyhat(JNIEnv *env, jclass clazz, jint p_device, jint p_hat_x, jint p_hat_y) {
|
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_joyhat(JNIEnv *env, jclass clazz, jint p_device, jint p_hat_x, jint p_hat_y) {
|
||||||
if (step.get() <= 0) {
|
if (step.get() <= STEP_SETUP) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -396,7 +409,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_joyconnectionchanged(
|
|||||||
|
|
||||||
// Called on the UI thread
|
// Called on the UI thread
|
||||||
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_key(JNIEnv *env, jclass clazz, jint p_physical_keycode, jint p_unicode, jint p_key_label, jboolean p_pressed, jboolean p_echo) {
|
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_key(JNIEnv *env, jclass clazz, jint p_physical_keycode, jint p_unicode, jint p_key_label, jboolean p_pressed, jboolean p_echo) {
|
||||||
if (step.get() <= 0) {
|
if (step.get() <= STEP_SETUP) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
input_handler->process_key_event(p_physical_keycode, p_unicode, p_key_label, p_pressed, p_echo);
|
input_handler->process_key_event(p_physical_keycode, p_unicode, p_key_label, p_pressed, p_echo);
|
||||||
@@ -419,7 +432,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_gyroscope(JNIEnv *env
|
|||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_focusin(JNIEnv *env, jclass clazz) {
|
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_focusin(JNIEnv *env, jclass clazz) {
|
||||||
if (step.get() <= 0) {
|
if (step.get() <= STEP_SETUP) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -427,7 +440,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_focusin(JNIEnv *env,
|
|||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_focusout(JNIEnv *env, jclass clazz) {
|
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_focusout(JNIEnv *env, jclass clazz) {
|
||||||
if (step.get() <= 0) {
|
if (step.get() <= STEP_SETUP) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -516,7 +529,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_requestPermissionResu
|
|||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_onRendererResumed(JNIEnv *env, jclass clazz) {
|
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_onRendererResumed(JNIEnv *env, jclass clazz) {
|
||||||
if (step.get() <= 0) {
|
if (step.get() <= STEP_SETUP) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -528,7 +541,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_onRendererResumed(JNI
|
|||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_onRendererPaused(JNIEnv *env, jclass clazz) {
|
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_onRendererPaused(JNIEnv *env, jclass clazz) {
|
||||||
if (step.get() <= 0) {
|
if (step.get() <= STEP_SETUP) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user