diff options
Diffstat (limited to 'platform')
97 files changed, 3905 insertions, 2552 deletions
diff --git a/platform/SCsub b/platform/SCsub index 7c9d07f6ef..248b4b88dd 100644 --- a/platform/SCsub +++ b/platform/SCsub @@ -60,7 +60,7 @@ register_platform_apis = env.CommandNoCache( ) env.add_source_files(env.platform_sources, register_platform_apis) for platform in env.platform_apis: - env.add_source_files(env.platform_sources, f"{platform}/api/api.cpp") + env.add_source_files(env.platform_sources, f"{platform}/api/*.cpp") lib = env.add_library("platform", env.platform_sources) env.Prepend(LIBS=[lib]) diff --git a/platform/android/detect.py b/platform/android/detect.py index 0a10754e24..4bc7e9474b 100644 --- a/platform/android/detect.py +++ b/platform/android/detect.py @@ -5,6 +5,7 @@ import sys from typing import TYPE_CHECKING from methods import print_error, print_warning +from platform_methods import validate_arch if TYPE_CHECKING: from SCons.Script.SConscript import SConsEnvironment @@ -95,15 +96,19 @@ def install_ndk_if_needed(env: "SConsEnvironment"): env["ANDROID_NDK_ROOT"] = get_android_ndk_root(env) +def detect_swappy(): + archs = ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"] + has_swappy = True + for arch in archs: + if not os.path.isfile("thirdparty/swappy-frame-pacing/" + arch + "/libswappy_static.a"): + has_swappy = False + return has_swappy + + def configure(env: "SConsEnvironment"): # Validate arch. supported_arches = ["x86_32", "x86_64", "arm32", "arm64"] - if env["arch"] not in supported_arches: - print_error( - 'Unsupported CPU architecture "%s" for Android. Supported architectures are: %s.' - % (env["arch"], ", ".join(supported_arches)) - ) - sys.exit(255) + validate_arch(env["arch"], get_name(), supported_arches) if get_min_sdk_version(env["ndk_platform"]) < get_min_target_api(): print_warning( @@ -171,24 +176,45 @@ def configure(env: "SConsEnvironment"): env["AS"] = compiler_path + "/clang" env.Append( - CCFLAGS=( - "-fpic -ffunction-sections -funwind-tables -fstack-protector-strong -fvisibility=hidden -fno-strict-aliasing".split() - ) + CCFLAGS=("-fpic -ffunction-sections -funwind-tables -fstack-protector-strong -fvisibility=hidden".split()) ) + has_swappy = detect_swappy() + if not has_swappy: + print_warning( + "Swappy Frame Pacing not detected! It is strongly recommended you download it from https://github.com/darksylinc/godot-swappy/releases and extract it so that the following files can be found:\n" + + " thirdparty/swappy-frame-pacing/arm64-v8a/libswappy_static.a\n" + + " thirdparty/swappy-frame-pacing/armeabi-v7a/libswappy_static.a\n" + + " thirdparty/swappy-frame-pacing/x86/libswappy_static.a\n" + + " thirdparty/swappy-frame-pacing/x86_64/libswappy_static.a\n" + + "Without Swappy, Godot apps on Android will inevitable suffer stutter and struggle to keep consistent 30/60/90/120 fps. Though Swappy cannot guarantee your app will be stutter-free, not having Swappy will guarantee there will be stutter even on the best phones and the most simple of scenes." + ) + if env["swappy"]: + print_error("Use build option `swappy=no` to ignore missing Swappy dependency and build without it.") + sys.exit(255) + if get_min_sdk_version(env["ndk_platform"]) >= 24: env.Append(CPPDEFINES=[("_FILE_OFFSET_BITS", 64)]) if env["arch"] == "x86_32": # The NDK adds this if targeting API < 24, so we can drop it when Godot targets it at least env.Append(CCFLAGS=["-mstackrealign"]) + if has_swappy: + env.Append(LIBPATH=["../../thirdparty/swappy-frame-pacing/x86"]) + elif env["arch"] == "x86_64": + if has_swappy: + env.Append(LIBPATH=["../../thirdparty/swappy-frame-pacing/x86_64"]) elif env["arch"] == "arm32": env.Append(CCFLAGS="-march=armv7-a -mfloat-abi=softfp".split()) env.Append(CPPDEFINES=["__ARM_ARCH_7__", "__ARM_ARCH_7A__"]) env.Append(CPPDEFINES=["__ARM_NEON__"]) + if has_swappy: + env.Append(LIBPATH=["../../thirdparty/swappy-frame-pacing/armeabi-v7a"]) elif env["arch"] == "arm64": env.Append(CCFLAGS=["-mfix-cortex-a53-835769"]) env.Append(CPPDEFINES=["__ARM_ARCH_8A__"]) + if has_swappy: + env.Append(LIBPATH=["../../thirdparty/swappy-frame-pacing/arm64-v8a"]) env.Append(CCFLAGS=["-ffp-contract=off"]) @@ -203,6 +229,9 @@ def configure(env: "SConsEnvironment"): if env["vulkan"]: env.Append(CPPDEFINES=["VULKAN_ENABLED", "RD_ENABLED"]) + if has_swappy: + env.Append(CPPDEFINES=["SWAPPY_FRAME_PACING_ENABLED"]) + env.Append(LIBS=["swappy_static"]) if not env["use_volk"]: env.Append(LIBS=["vulkan"]) diff --git a/platform/android/display_server_android.cpp b/platform/android/display_server_android.cpp index fa5b970a96..38f6931c8a 100644 --- a/platform/android/display_server_android.cpp +++ b/platform/android/display_server_android.cpp @@ -71,8 +71,9 @@ bool DisplayServerAndroid::has_feature(Feature p_feature) const { case FEATURE_MOUSE: //case FEATURE_MOUSE_WARP: //case FEATURE_NATIVE_DIALOG: - //case FEATURE_NATIVE_DIALOG_INPUT: - //case FEATURE_NATIVE_DIALOG_FILE: + case FEATURE_NATIVE_DIALOG_INPUT: + case FEATURE_NATIVE_DIALOG_FILE: + //case FEATURE_NATIVE_DIALOG_FILE_EXTRA: //case FEATURE_NATIVE_ICON: //case FEATURE_WINDOW_TRANSPARENCY: case FEATURE_CLIPBOARD: @@ -176,6 +177,38 @@ bool DisplayServerAndroid::clipboard_has() const { } } +Error DisplayServerAndroid::dialog_input_text(String p_title, String p_description, String p_partial, const Callable &p_callback) { + GodotJavaWrapper *godot_java = OS_Android::get_singleton()->get_godot_java(); + ERR_FAIL_NULL_V(godot_java, FAILED); + input_dialog_callback = p_callback; + return godot_java->show_input_dialog(p_title, p_description, p_partial); +} + +void DisplayServerAndroid::emit_input_dialog_callback(String p_text) { + if (input_dialog_callback.is_valid()) { + input_dialog_callback.call_deferred(p_text); + } +} + +Error DisplayServerAndroid::file_dialog_show(const String &p_title, const String &p_current_directory, const String &p_filename, bool p_show_hidden, FileDialogMode p_mode, const Vector<String> &p_filters, const Callable &p_callback) { + GodotJavaWrapper *godot_java = OS_Android::get_singleton()->get_godot_java(); + ERR_FAIL_NULL_V(godot_java, FAILED); + file_picker_callback = p_callback; + return godot_java->show_file_picker(p_current_directory, p_filename, p_mode, p_filters); +} + +void DisplayServerAndroid::emit_file_picker_callback(bool p_ok, const Vector<String> &p_selected_paths) { + if (file_picker_callback.is_valid()) { + file_picker_callback.call_deferred(p_ok, p_selected_paths, 0); + } +} + +Color DisplayServerAndroid::get_accent_color() const { + GodotJavaWrapper *godot_java = OS_Android::get_singleton()->get_godot_java(); + ERR_FAIL_NULL_V(godot_java, Color(0, 0, 0, 0)); + return godot_java->get_accent_color(); +} + TypedArray<Rect2> DisplayServerAndroid::get_display_cutouts() const { GodotIOJavaWrapper *godot_io_java = OS_Android::get_singleton()->get_godot_io_java(); ERR_FAIL_NULL_V(godot_io_java, Array()); @@ -389,6 +422,14 @@ int64_t DisplayServerAndroid::window_get_native_handle(HandleType p_handle_type, } return 0; } + case EGL_DISPLAY: { + // @todo Find a way to get this from the Java side. + return 0; + } + case EGL_CONFIG: { + // @todo Find a way to get this from the Java side. + return 0; + } #endif default: { return 0; @@ -596,12 +637,6 @@ DisplayServerAndroid::DisplayServerAndroid(const String &p_rendering_driver, Dis native_menu = memnew(NativeMenu); -#if defined(GLES3_ENABLED) - if (rendering_driver == "opengl3") { - RasterizerGLES3::make_current(false); - } -#endif - #if defined(RD_ENABLED) rendering_context = nullptr; rendering_device = nullptr; @@ -616,19 +651,24 @@ DisplayServerAndroid::DisplayServerAndroid(const String &p_rendering_driver, Dis if (rendering_context->initialize() != OK) { memdelete(rendering_context); rendering_context = nullptr; +#if defined(GLES3_ENABLED) bool fallback_to_opengl3 = GLOBAL_GET("rendering/rendering_device/fallback_to_opengl3"); if (fallback_to_opengl3 && rendering_driver != "opengl3") { WARN_PRINT("Your device seem not to support Vulkan, switching to OpenGL 3."); rendering_driver = "opengl3"; OS::get_singleton()->set_current_rendering_method("gl_compatibility"); OS::get_singleton()->set_current_rendering_driver_name(rendering_driver); - } else { + } else +#endif + { ERR_PRINT(vformat("Failed to initialize %s context", rendering_driver)); r_error = ERR_UNAVAILABLE; return; } } + } + if (rendering_context) { union { #ifdef VULKAN_ENABLED RenderingContextDriverVulkanAndroid::WindowPlatformData vulkan; @@ -668,6 +708,12 @@ DisplayServerAndroid::DisplayServerAndroid(const String &p_rendering_driver, Dis } #endif +#if defined(GLES3_ENABLED) + if (rendering_driver == "opengl3") { + RasterizerGLES3::make_current(false); + } +#endif + Input::get_singleton()->set_event_dispatch_function(_dispatch_input_events); r_error = OK; diff --git a/platform/android/display_server_android.h b/platform/android/display_server_android.h index 65c6a53446..1744ad3069 100644 --- a/platform/android/display_server_android.h +++ b/platform/android/display_server_android.h @@ -87,6 +87,9 @@ class DisplayServerAndroid : public DisplayServer { Callable system_theme_changed; + Callable input_dialog_callback; + Callable file_picker_callback; + void _window_callback(const Callable &p_callable, const Variant &p_arg, bool p_deferred = false) const; static void _dispatch_input_events(const Ref<InputEvent> &p_event); @@ -116,6 +119,14 @@ public: virtual String clipboard_get() const override; virtual bool clipboard_has() const override; + virtual Error dialog_input_text(String p_title, String p_description, String p_partial, const Callable &p_callback) override; + void emit_input_dialog_callback(String p_text); + + virtual Error file_dialog_show(const String &p_title, const String &p_current_directory, const String &p_filename, bool p_show_hidden, const FileDialogMode p_mode, const Vector<String> &p_filters, const Callable &p_callback) override; + void emit_file_picker_callback(bool p_ok, const Vector<String> &p_selected_paths); + + virtual Color get_accent_color() const override; + virtual TypedArray<Rect2> get_display_cutouts() const override; virtual Rect2i get_display_safe_area() const override; diff --git a/platform/android/doc_classes/EditorExportPlatformAndroid.xml b/platform/android/doc_classes/EditorExportPlatformAndroid.xml index 2fe5539e56..983683fd78 100644 --- a/platform/android/doc_classes/EditorExportPlatformAndroid.xml +++ b/platform/android/doc_classes/EditorExportPlatformAndroid.xml @@ -151,6 +151,9 @@ <member name="permissions/access_location_extra_commands" type="bool" setter="" getter=""> Allows access to the extra location provider commands. See [url=https://developer.android.com/reference/android/Manifest.permission#ACCESS_LOCATION_EXTRA_COMMANDS]ACCESS_LOCATION_EXTRA_COMMANDS[/url]. </member> + <member name="permissions/access_media_location" type="bool" setter="" getter=""> + Allows an application to access any geographic locations persisted in the user's shared collection. See [url=https://developer.android.com/reference/android/Manifest.permission#ACCESS_MEDIA_LOCATION]ACCESS_MEDIA_LOCATION[/url]. + </member> <member name="permissions/access_mock_location" type="bool" setter="" getter=""> Allows an application to create mock location providers for testing. </member> @@ -412,6 +415,18 @@ <member name="permissions/read_logs" type="bool" setter="" getter=""> Allows an application to read the low-level system log files. See [url=https://developer.android.com/reference/android/Manifest.permission#READ_LOGS]READ_LOGS[/url]. </member> + <member name="permissions/read_media_audio" type="bool" setter="" getter=""> + Allows an application to read audio files from external storage. See [url=https://developer.android.com/reference/android/Manifest.permission#READ_MEDIA_AUDIO]READ_MEDIA_AUDIO[/url]. + </member> + <member name="permissions/read_media_images" type="bool" setter="" getter=""> + Allows an application to read image files from external storage. See [url=https://developer.android.com/reference/android/Manifest.permission#READ_MEDIA_IMAGES]READ_MEDIA_IMAGES[/url]. + </member> + <member name="permissions/read_media_video" type="bool" setter="" getter=""> + Allows an application to read video files from external storage. See [url=https://developer.android.com/reference/android/Manifest.permission#READ_MEDIA_VIDEO]READ_MEDIA_VIDEO[/url]. + </member> + <member name="permissions/read_media_visual_user_selected" type="bool" setter="" getter=""> + Allows an application to read image or video files from external storage that a user has selected via the permission prompt photo picker. See [url=https://developer.android.com/reference/android/Manifest.permission#READ_MEDIA_VISUAL_USER_SELECTED]READ_MEDIA_VISUAL_USER_SELECTED[/url]. + </member> <member name="permissions/read_phone_state" type="bool" setter="" getter=""> Allows read only access to phone state. See [url=https://developer.android.com/reference/android/Manifest.permission#READ_PHONE_STATE]READ_PHONE_STATE[/url]. </member> @@ -577,7 +592,7 @@ Allows an application to write to the user dictionary. </member> <member name="screen/immersive_mode" type="bool" setter="" getter=""> - If [code]true[/code], hides navigation and status bar. + If [code]true[/code], hides navigation and status bar. See [method DisplayServer.window_set_mode] to toggle it at runtime. </member> <member name="screen/support_large" type="bool" setter="" getter=""> Indicates whether the application supports larger screen form-factors. diff --git a/platform/android/export/export.cpp b/platform/android/export/export.cpp index ed53c1e687..dc7a287a91 100644 --- a/platform/android/export/export.cpp +++ b/platform/android/export/export.cpp @@ -51,7 +51,9 @@ void register_android_exporter() { EDITOR_DEF_BASIC("export/android/debug_keystore_pass", DEFAULT_ANDROID_KEYSTORE_DEBUG_PASSWORD); EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::STRING, "export/android/debug_keystore_pass", PROPERTY_HINT_PASSWORD)); -#ifndef ANDROID_ENABLED +#ifdef ANDROID_ENABLED + EDITOR_DEF_BASIC("export/android/install_exported_apk", true); +#else EDITOR_DEF_BASIC("export/android/java_sdk_path", OS::get_singleton()->get_environment("JAVA_HOME")); EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::STRING, "export/android/java_sdk_path", PROPERTY_HINT_GLOBAL_DIR)); diff --git a/platform/android/export/export_plugin.cpp b/platform/android/export/export_plugin.cpp index 41f460ca8f..0b506e60d6 100644 --- a/platform/android/export/export_plugin.cpp +++ b/platform/android/export/export_plugin.cpp @@ -68,6 +68,7 @@ static const char *android_perms[] = { "ACCESS_COARSE_LOCATION", "ACCESS_FINE_LOCATION", "ACCESS_LOCATION_EXTRA_COMMANDS", + "ACCESS_MEDIA_LOCATION", "ACCESS_MOCK_LOCATION", "ACCESS_NETWORK_STATE", "ACCESS_SURFACE_FLINGER", @@ -155,6 +156,10 @@ static const char *android_perms[] = { "READ_HISTORY_BOOKMARKS", "READ_INPUT_STATE", "READ_LOGS", + "READ_MEDIA_AUDIO", + "READ_MEDIA_IMAGES", + "READ_MEDIA_VIDEO", + "READ_MEDIA_VISUAL_USER_SELECTED", "READ_PHONE_STATE", "READ_PROFILE", "READ_SMS", @@ -783,7 +788,7 @@ Error EditorExportPlatformAndroid::save_apk_so(void *p_userdata, const SharedObj return OK; } -Error EditorExportPlatformAndroid::save_apk_file(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total, const Vector<String> &p_enc_in_filters, const Vector<String> &p_enc_ex_filters, const Vector<uint8_t> &p_key) { +Error EditorExportPlatformAndroid::save_apk_file(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total, const Vector<String> &p_enc_in_filters, const Vector<String> &p_enc_ex_filters, const Vector<uint8_t> &p_key, uint64_t p_seed) { APKExportData *ed = static_cast<APKExportData *>(p_userdata); String dst_path = p_path.replace_first("res://", "assets/"); @@ -791,7 +796,7 @@ Error EditorExportPlatformAndroid::save_apk_file(void *p_userdata, const String return OK; } -Error EditorExportPlatformAndroid::ignore_apk_file(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total, const Vector<String> &p_enc_in_filters, const Vector<String> &p_enc_ex_filters, const Vector<uint8_t> &p_key) { +Error EditorExportPlatformAndroid::ignore_apk_file(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total, const Vector<String> &p_enc_in_filters, const Vector<String> &p_enc_ex_filters, const Vector<uint8_t> &p_key, uint64_t p_seed) { return OK; } @@ -1559,7 +1564,7 @@ void EditorExportPlatformAndroid::_fix_resources(const Ref<EditorExportPreset> & str = get_project_name(package_name); } else { - String lang = str.substr(str.rfind("-") + 1, str.length()).replace("-", "_"); + String lang = str.substr(str.rfind_char('-') + 1, str.length()).replace("-", "_"); if (appnames.has(lang)) { str = appnames[lang]; } else { @@ -1693,7 +1698,7 @@ void EditorExportPlatformAndroid::load_icon_refs(const Ref<EditorExportPreset> & path = static_cast<String>(p_preset->get(launcher_adaptive_icon_monochrome_option)).strip_edges(); if (!path.is_empty()) { print_verbose("Loading adaptive monochrome icon from " + path); - ImageLoader::load_image(path, background); + ImageLoader::load_image(path, monochrome); } } @@ -1778,6 +1783,12 @@ String EditorExportPlatformAndroid::get_export_option_warning(const EditorExport if (!is_package_name_valid(pn, &pn_err)) { return TTR("Invalid package name:") + " " + pn_err; } + } else if (p_name == launcher_adaptive_icon_monochrome_option) { + String monochrome_icon_path = p_preset->get(launcher_adaptive_icon_monochrome_option); + + if (monochrome_icon_path.is_empty()) { + return TTR("No adaptive monochrome icon specified; default Godot monochrome icon will be used."); + } } else if (p_name == "gradle_build/use_gradle_build") { bool gradle_build_enabled = p_preset->get("gradle_build/use_gradle_build"); String enabled_plugins_names = _get_plugins_names(Ref<EditorExportPreset>(p_preset)); @@ -1892,7 +1903,7 @@ void EditorExportPlatformAndroid::get_export_options(List<ExportOption> *r_optio r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "package/unique_name", PROPERTY_HINT_PLACEHOLDER_TEXT, "ext.domain.name"), "com.example.$genname", false, true)); r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "package/name", PROPERTY_HINT_PLACEHOLDER_TEXT, "Game Name [default if blank]"), "")); r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "package/signed"), true)); - r_options->push_back(ExportOption(PropertyInfo(Variant::INT, "package/app_category", PROPERTY_HINT_ENUM, "Accessibility,Audio,Game,Image,Maps,News,Productivity,Social,Video"), APP_CATEGORY_GAME)); + r_options->push_back(ExportOption(PropertyInfo(Variant::INT, "package/app_category", PROPERTY_HINT_ENUM, "Accessibility,Audio,Game,Image,Maps,News,Productivity,Social,Video,Undefined"), APP_CATEGORY_GAME)); r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "package/retain_data_on_uninstall"), false)); r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "package/exclude_from_recents"), false)); r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "package/show_in_android_tv"), false)); @@ -2887,6 +2898,14 @@ Error EditorExportPlatformAndroid::sign_apk(const Ref<EditorExportPreset> &p_pre #endif print_verbose("Successfully completed signing build."); + +#ifdef ANDROID_ENABLED + bool prompt_apk_install = EDITOR_GET("export/android/install_exported_apk"); + if (prompt_apk_install) { + OS_Android::get_singleton()->shell_open(apk_path); + } +#endif + return OK; } @@ -3151,9 +3170,9 @@ Error EditorExportPlatformAndroid::export_project_helper(const Ref<EditorExportP user_data.libs_directory = gradle_build_directory.path_join("libs"); user_data.debug = p_debug; if (p_flags.has_flag(DEBUG_FLAG_DUMB_CLIENT)) { - err = export_project_files(p_preset, p_debug, ignore_apk_file, &user_data, copy_gradle_so); + err = export_project_files(p_preset, p_debug, ignore_apk_file, nullptr, &user_data, copy_gradle_so); } else { - err = export_project_files(p_preset, p_debug, rename_and_store_file_in_gradle_project, &user_data, copy_gradle_so); + err = export_project_files(p_preset, p_debug, rename_and_store_file_in_gradle_project, nullptr, &user_data, copy_gradle_so); } if (err != OK) { add_message(EXPORT_MESSAGE_ERROR, TTR("Export"), TTR("Could not export project files to gradle project.")); @@ -3544,7 +3563,7 @@ Error EditorExportPlatformAndroid::export_project_helper(const Ref<EditorExportP APKExportData ed; ed.ep = &ep; ed.apk = unaligned_apk; - err = export_project_files(p_preset, p_debug, ignore_apk_file, &ed, save_apk_so); + err = export_project_files(p_preset, p_debug, ignore_apk_file, nullptr, &ed, save_apk_so); } else { if (apk_expansion) { err = save_apk_expansion_file(p_preset, p_debug, p_path); @@ -3556,7 +3575,7 @@ Error EditorExportPlatformAndroid::export_project_helper(const Ref<EditorExportP APKExportData ed; ed.ep = &ep; ed.apk = unaligned_apk; - err = export_project_files(p_preset, p_debug, save_apk_file, &ed, save_apk_so); + err = export_project_files(p_preset, p_debug, save_apk_file, nullptr, &ed, save_apk_so); } } diff --git a/platform/android/export/export_plugin.h b/platform/android/export/export_plugin.h index 7e1d626486..23b6f9b193 100644 --- a/platform/android/export/export_plugin.h +++ b/platform/android/export/export_plugin.h @@ -35,6 +35,7 @@ #include "godot_plugin_config.h" #endif // DISABLE_DEPRECATED +#include "core/io/image.h" #include "core/io/zip_io.h" #include "core/os/os.h" #include "editor/export/editor_export_platform.h" @@ -141,9 +142,9 @@ class EditorExportPlatformAndroid : public EditorExportPlatform { static Error save_apk_so(void *p_userdata, const SharedObject &p_so); - static Error save_apk_file(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total, const Vector<String> &p_enc_in_filters, const Vector<String> &p_enc_ex_filters, const Vector<uint8_t> &p_key); + static Error save_apk_file(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total, const Vector<String> &p_enc_in_filters, const Vector<String> &p_enc_ex_filters, const Vector<uint8_t> &p_key, uint64_t p_seed); - static Error ignore_apk_file(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total, const Vector<String> &p_enc_in_filters, const Vector<String> &p_enc_ex_filters, const Vector<uint8_t> &p_key); + static Error ignore_apk_file(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total, const Vector<String> &p_enc_in_filters, const Vector<String> &p_enc_ex_filters, const Vector<uint8_t> &p_key, uint64_t p_seed); static Error copy_gradle_so(void *p_userdata, const SharedObject &p_so); @@ -185,7 +186,7 @@ protected: void _notification(int p_what); public: - typedef Error (*EditorExportSaveFunction)(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total, const Vector<String> &p_enc_in_filters, const Vector<String> &p_enc_ex_filters, const Vector<uint8_t> &p_key); + typedef Error (*EditorExportSaveFunction)(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total, const Vector<String> &p_enc_in_filters, const Vector<String> &p_enc_ex_filters, const Vector<uint8_t> &p_key, uint64_t p_seed); virtual void get_preset_features(const Ref<EditorExportPreset> &p_preset, List<String> *r_features) const override; diff --git a/platform/android/export/gradle_export_util.cpp b/platform/android/export/gradle_export_util.cpp index 9eddef6a4c..3603565805 100644 --- a/platform/android/export/gradle_export_util.cpp +++ b/platform/android/export/gradle_export_util.cpp @@ -88,6 +88,8 @@ int _get_app_category_value(int category_index) { return 7; case APP_CATEGORY_SOCIAL: return 4; + case APP_CATEGORY_UNDEFINED: + return -1; case APP_CATEGORY_VIDEO: return 2; case APP_CATEGORY_GAME: @@ -167,7 +169,7 @@ Error store_string_at_path(const String &p_path, const String &p_data) { // It is used by the export_project_files method to save all the asset files into the gradle project. // It's functionality mirrors that of the method save_apk_file. // This method will be called ONLY when gradle build is enabled. -Error rename_and_store_file_in_gradle_project(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total, const Vector<String> &p_enc_in_filters, const Vector<String> &p_enc_ex_filters, const Vector<uint8_t> &p_key) { +Error rename_and_store_file_in_gradle_project(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total, const Vector<String> &p_enc_in_filters, const Vector<String> &p_enc_ex_filters, const Vector<uint8_t> &p_key, uint64_t p_seed) { CustomExportData *export_data = static_cast<CustomExportData *>(p_userdata); String dst_path = p_path.replace_first("res://", export_data->assets_directory + "/"); print_verbose("Saving project files from " + p_path + " into " + dst_path); @@ -311,17 +313,21 @@ String _get_application_tag(const Ref<EditorExportPlatform> &p_export_platform, " <application android:label=\"@string/godot_project_name_string\"\n" " android:allowBackup=\"%s\"\n" " android:icon=\"@mipmap/icon\"\n" - " android:appCategory=\"%s\"\n" " android:isGame=\"%s\"\n" " android:hasFragileUserData=\"%s\"\n" - " android:requestLegacyExternalStorage=\"%s\"\n" - " tools:replace=\"android:allowBackup,android:appCategory,android:isGame,android:hasFragileUserData,android:requestLegacyExternalStorage\"\n" - " tools:ignore=\"GoogleAppIndexingWarning\">\n\n", + " android:requestLegacyExternalStorage=\"%s\"\n", bool_to_string(p_preset->get("user_data_backup/allow")), - _get_app_category_label(app_category_index), bool_to_string(is_game), bool_to_string(p_preset->get("package/retain_data_on_uninstall")), bool_to_string(p_has_read_write_storage_permission)); + if (app_category_index != APP_CATEGORY_UNDEFINED) { + manifest_application_text += vformat(" android:appCategory=\"%s\"\n", _get_app_category_label(app_category_index)); + manifest_application_text += " tools:replace=\"android:allowBackup,android:appCategory,android:isGame,android:hasFragileUserData,android:requestLegacyExternalStorage\"\n"; + } else { + manifest_application_text += " tools:remove=\"android:appCategory\"\n"; + manifest_application_text += " tools:replace=\"android:allowBackup,android:isGame,android:hasFragileUserData,android:requestLegacyExternalStorage\"\n"; + } + manifest_application_text += " tools:ignore=\"GoogleAppIndexingWarning\">\n\n"; Vector<Ref<EditorExportPlugin>> export_plugins = EditorExport::get_singleton()->get_export_plugins(); for (int i = 0; i < export_plugins.size(); i++) { diff --git a/platform/android/export/gradle_export_util.h b/platform/android/export/gradle_export_util.h index 9f8e476f73..a528fd5211 100644 --- a/platform/android/export/gradle_export_util.h +++ b/platform/android/export/gradle_export_util.h @@ -55,6 +55,7 @@ static const int APP_CATEGORY_NEWS = 5; static const int APP_CATEGORY_PRODUCTIVITY = 6; static const int APP_CATEGORY_SOCIAL = 7; static const int APP_CATEGORY_VIDEO = 8; +static const int APP_CATEGORY_UNDEFINED = 9; // Supported XR modes. // This should match the entries in 'platform/android/java/lib/src/org/godotengine/godot/xr/XRMode.java' @@ -92,7 +93,7 @@ Error store_string_at_path(const String &p_path, const String &p_data); // It is used by the export_project_files method to save all the asset files into the gradle project. // It's functionality mirrors that of the method save_apk_file. // This method will be called ONLY when gradle build is enabled. -Error rename_and_store_file_in_gradle_project(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total, const Vector<String> &p_enc_in_filters, const Vector<String> &p_enc_ex_filters, const Vector<uint8_t> &p_key); +Error rename_and_store_file_in_gradle_project(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total, const Vector<String> &p_enc_in_filters, const Vector<String> &p_enc_ex_filters, const Vector<uint8_t> &p_key, uint64_t p_seed); // Creates strings.xml files inside the gradle project for different locales. Error _create_project_name_strings_files(const Ref<EditorExportPreset> &p_preset, const String &project_name, const String &p_gradle_build_dir); diff --git a/platform/android/java/app/res/values/themes.xml b/platform/android/java/app/res/values/themes.xml index 3ab8401928..3c86e54df5 100644 --- a/platform/android/java/app/res/values/themes.xml +++ b/platform/android/java/app/res/values/themes.xml @@ -1,7 +1,9 @@ <?xml version="1.0" encoding="utf-8"?> <resources> - <style name="GodotAppMainTheme" parent="@android:style/Theme.Black.NoTitleBar"/> + <style name="GodotAppMainTheme" parent="@android:style/Theme.DeviceDefault.NoActionBar"> + <item name ="android:windowDrawsSystemBarBackgrounds">false</item> + </style> <style name="GodotAppSplashTheme" parent="Theme.SplashScreen"> <!-- Set the splash screen background, animated icon, and animation diff --git a/platform/android/java/editor/build.gradle b/platform/android/java/editor/build.gradle index 45222ca3b0..276d74b75b 100644 --- a/platform/android/java/editor/build.gradle +++ b/platform/android/java/editor/build.gradle @@ -173,7 +173,7 @@ dependencies { implementation "androidx.window:window:1.3.0" implementation "androidx.core:core-splashscreen:$versions.splashscreenVersion" implementation "androidx.constraintlayout:constraintlayout:2.1.4" - implementation "org.bouncycastle:bcprov-jdk15to18:1.77" + implementation "org.bouncycastle:bcprov-jdk15to18:1.78" // Meta dependencies horizonosImplementation "org.godotengine:godot-openxr-vendors-meta:3.0.0-stable" diff --git a/platform/android/java/editor/src/main/AndroidManifest.xml b/platform/android/java/editor/src/main/AndroidManifest.xml index a875745860..c1eb03b31f 100644 --- a/platform/android/java/editor/src/main/AndroidManifest.xml +++ b/platform/android/java/editor/src/main/AndroidManifest.xml @@ -25,6 +25,7 @@ <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.VIBRATE" /> + <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /> <application android:allowBackup="false" diff --git a/platform/android/java/editor/src/main/java/org/godotengine/editor/BaseGodotEditor.kt b/platform/android/java/editor/src/main/java/org/godotengine/editor/BaseGodotEditor.kt index 7b6d1f6bd1..6aa2ba7195 100644 --- a/platform/android/java/editor/src/main/java/org/godotengine/editor/BaseGodotEditor.kt +++ b/platform/android/java/editor/src/main/java/org/godotengine/editor/BaseGodotEditor.kt @@ -390,7 +390,7 @@ abstract class BaseGodotEditor : GodotActivity() { * If the launch policy is [LaunchPolicy.AUTO], resolve it into a specific policy based on the * editor setting or device and screen metrics. * - * If the launch policy is [LaunchPolicy.PIP] but PIP is not supported, fallback to the default + * If the launch policy is [LaunchPolicy.SAME_AND_LAUNCH_IN_PIP_MODE] but PIP is not supported, fallback to the default * launch policy. */ private fun resolveLaunchPolicyIfNeeded(policy: LaunchPolicy): LaunchPolicy { @@ -453,9 +453,9 @@ abstract class BaseGodotEditor : GodotActivity() { override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) // Check if we got the MANAGE_EXTERNAL_STORAGE permission - if (requestCode == PermissionsUtil.REQUEST_MANAGE_EXTERNAL_STORAGE_REQ_CODE) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { - if (!Environment.isExternalStorageManager()) { + when (requestCode) { + PermissionsUtil.REQUEST_MANAGE_EXTERNAL_STORAGE_REQ_CODE -> { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R && !Environment.isExternalStorageManager()) { Toast.makeText( this, R.string.denied_storage_permission_error_msg, @@ -463,6 +463,16 @@ abstract class BaseGodotEditor : GodotActivity() { ).show() } } + + PermissionsUtil.REQUEST_INSTALL_PACKAGES_REQ_CODE -> { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && !packageManager.canRequestPackageInstalls()) { + Toast.makeText( + this, + R.string.denied_install_packages_permission_error_msg, + Toast.LENGTH_LONG + ).show() + } + } } } @@ -514,7 +524,7 @@ abstract class BaseGodotEditor : GodotActivity() { override fun supportsFeature(featureTag: String): Boolean { if (featureTag == "xr_editor") { - return isNativeXRDevice(); + return isNativeXRDevice() } if (featureTag == "horizonos") { diff --git a/platform/android/java/editor/src/main/res/values/strings.xml b/platform/android/java/editor/src/main/res/values/strings.xml index 0ad54ac3a1..a25b6c0a2d 100644 --- a/platform/android/java/editor/src/main/res/values/strings.xml +++ b/platform/android/java/editor/src/main/res/values/strings.xml @@ -2,5 +2,6 @@ <resources> <string name="godot_game_activity_name">Godot Play window</string> <string name="denied_storage_permission_error_msg">Missing storage access permission!</string> + <string name="denied_install_packages_permission_error_msg">Missing install packages permission!</string> <string name="pip_button_description">Button used to toggle picture-in-picture mode for the Play window</string> </resources> diff --git a/platform/android/java/editor/src/main/res/values/themes.xml b/platform/android/java/editor/src/main/res/values/themes.xml index 2b352247db..8de2c6e288 100644 --- a/platform/android/java/editor/src/main/res/values/themes.xml +++ b/platform/android/java/editor/src/main/res/values/themes.xml @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <resources> - <style name="GodotEditorTheme" parent="@android:style/Theme.Black.NoTitleBar.Fullscreen"> + <style name="GodotEditorTheme" parent="@android:style/Theme.DeviceDefault.NoActionBar.Fullscreen"> + <item name ="android:windowDrawsSystemBarBackgrounds">false</item> </style> <style name="GodotEditorSplashScreenTheme" parent="Theme.SplashScreen.IconBackground"> diff --git a/platform/android/java/lib/build.gradle b/platform/android/java/lib/build.gradle index f6aee434e5..f273105efc 100644 --- a/platform/android/java/lib/build.gradle +++ b/platform/android/java/lib/build.gradle @@ -106,8 +106,8 @@ android { boolean devBuild = buildType == "dev" boolean debugSymbols = devBuild boolean runTests = devBuild - boolean productionBuild = !devBuild boolean storeRelease = buildType == "release" + boolean productionBuild = storeRelease def sconsTarget = flavorName if (sconsTarget == "template") { diff --git a/platform/android/java/lib/res/values/dimens.xml b/platform/android/java/lib/res/values/dimens.xml index 9034dbbcc1..287d1c8920 100644 --- a/platform/android/java/lib/res/values/dimens.xml +++ b/platform/android/java/lib/res/values/dimens.xml @@ -1,4 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <resources> <dimen name="text_edit_height">48dp</dimen> + <dimen name="input_dialog_padding_horizontal">10dp</dimen> + <dimen name="input_dialog_padding_vertical">5dp</dimen> </resources> diff --git a/platform/android/java/lib/res/values/strings.xml b/platform/android/java/lib/res/values/strings.xml index 03752e092e..e44addadd0 100644 --- a/platform/android/java/lib/res/values/strings.xml +++ b/platform/android/java/lib/res/values/strings.xml @@ -55,4 +55,7 @@ <string name="kilobytes_per_second">%1$s KB/s</string> <string name="time_remaining">Time remaining: %1$s</string> <string name="time_remaining_notification">%1$s left</string> + + <!-- Labels for the dialog action buttons --> + <string name="dialog_ok">OK</string> </resources> diff --git a/platform/android/java/lib/src/org/godotengine/godot/Godot.kt b/platform/android/java/lib/src/org/godotengine/godot/Godot.kt index 567b134234..3ad8e6bc9e 100644 --- a/platform/android/java/lib/src/org/godotengine/godot/Godot.kt +++ b/platform/android/java/lib/src/org/godotengine/godot/Godot.kt @@ -44,6 +44,7 @@ import android.os.* import android.util.Log import android.util.TypedValue import android.view.* +import android.widget.EditText import android.widget.FrameLayout import androidx.annotation.Keep import androidx.annotation.StringRes @@ -56,6 +57,7 @@ import com.google.android.vending.expansion.downloader.* import org.godotengine.godot.error.Error import org.godotengine.godot.input.GodotEditText import org.godotengine.godot.input.GodotInputHandler +import org.godotengine.godot.io.FilePicker import org.godotengine.godot.io.directory.DirectoryAccessHandler import org.godotengine.godot.io.file.FileAccessHandler import org.godotengine.godot.plugin.AndroidRuntimePlugin @@ -81,6 +83,7 @@ import java.util.* import java.util.concurrent.atomic.AtomicBoolean import java.util.concurrent.atomic.AtomicReference + /** * Core component used to interface with the native layer of the engine. * @@ -477,12 +480,17 @@ class Godot(private val context: Context) { // ...add to FrameLayout containerLayout?.addView(editText) renderView = if (usesVulkan()) { - if (!meetsVulkanRequirements(activity.packageManager)) { + if (meetsVulkanRequirements(activity.packageManager)) { + GodotVulkanRenderView(host, this, godotInputHandler) + } else if (canFallbackToOpenGL()) { + // Fallback to OpenGl. + GodotGLRenderView(host, this, godotInputHandler, xrMode, useDebugOpengl) + } else { throw IllegalStateException(activity.getString(R.string.error_missing_vulkan_requirements_message)) } - GodotVulkanRenderView(host, this, godotInputHandler) + } else { - // Fallback to openGl + // Fallback to OpenGl. GodotGLRenderView(host, this, godotInputHandler, xrMode, useDebugOpengl) } @@ -670,6 +678,9 @@ class Godot(private val context: Context) { for (plugin in pluginRegistry.allPlugins) { plugin.onMainActivityResult(requestCode, resultCode, data) } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + FilePicker.handleActivityResult(context, requestCode, resultCode, data) + } } /** @@ -772,7 +783,7 @@ class Godot(private val context: Context) { val builder = AlertDialog.Builder(activity) builder.setMessage(message).setTitle(title) builder.setPositiveButton( - "OK" + R.string.dialog_ok ) { dialog: DialogInterface, id: Int -> okCallback?.run() dialog.cancel() @@ -817,6 +828,13 @@ class Godot(private val context: Context) { } /** + * Returns true if can fallback to OpenGL. + */ + private fun canFallbackToOpenGL(): Boolean { + return java.lang.Boolean.parseBoolean(GodotLib.getGlobal("rendering/rendering_device/fallback_to_opengl3")) + } + + /** * Returns true if the device meets the base requirements for Vulkan support, false otherwise. */ private fun meetsVulkanRequirements(packageManager: PackageManager?): Boolean { @@ -876,6 +894,44 @@ class Godot(private val context: Context) { mClipboard.setPrimaryClip(clip) } + @Keep + private fun showFilePicker(currentDirectory: String, filename: String, fileMode: Int, filters: Array<String>) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + FilePicker.showFilePicker(context, getActivity(), currentDirectory, filename, fileMode, filters) + } + } + + /** + * Popup a dialog to input text. + */ + @Keep + private fun showInputDialog(title: String, message: String, existingText: String) { + val activity: Activity = getActivity() ?: return + val inputField = EditText(activity) + val paddingHorizontal = activity.resources.getDimensionPixelSize(R.dimen.input_dialog_padding_horizontal) + val paddingVertical = activity.resources.getDimensionPixelSize(R.dimen.input_dialog_padding_vertical) + inputField.setPadding(paddingHorizontal, paddingVertical, paddingHorizontal, paddingVertical) + inputField.setText(existingText) + runOnUiThread { + val builder = AlertDialog.Builder(activity) + builder.setMessage(message).setTitle(title).setView(inputField) + builder.setPositiveButton(R.string.dialog_ok) { + dialog: DialogInterface, id: Int -> + GodotLib.inputDialogCallback(inputField.text.toString()) + dialog.dismiss() + } + val dialog = builder.create() + dialog.show() + } + } + + @Keep + private fun getAccentColor(): Int { + val value = TypedValue() + context.theme.resolveAttribute(android.R.attr.colorAccent, value, true) + return value.data + } + /** * Destroys the Godot Engine and kill the process it's running in. */ diff --git a/platform/android/java/lib/src/org/godotengine/godot/GodotIO.java b/platform/android/java/lib/src/org/godotengine/godot/GodotIO.java index f060c7aaff..79751dd58f 100644 --- a/platform/android/java/lib/src/org/godotengine/godot/GodotIO.java +++ b/platform/android/java/lib/src/org/godotengine/godot/GodotIO.java @@ -47,6 +47,7 @@ import android.util.DisplayMetrics; import android.util.Log; import android.view.Display; import android.view.DisplayCutout; +import android.view.Surface; import android.view.WindowInsets; import androidx.core.content.FileProvider; diff --git a/platform/android/java/lib/src/org/godotengine/godot/GodotLib.java b/platform/android/java/lib/src/org/godotengine/godot/GodotLib.java index 295a4a6340..13ae2150d7 100644 --- a/platform/android/java/lib/src/org/godotengine/godot/GodotLib.java +++ b/platform/android/java/lib/src/org/godotengine/godot/GodotLib.java @@ -225,6 +225,16 @@ public class GodotLib { public static native void onNightModeChanged(); /** + * Invoked on the input dialog submitted. + */ + public static native void inputDialogCallback(String p_text); + + /** + * Invoked on the file picker closed. + */ + public static native void filePickerCallback(boolean p_ok, String[] p_selected_paths); + + /** * Invoked on the GL thread to configure the height of the virtual keyboard. */ public static native void setVirtualKeyboardHeight(int p_height); diff --git a/platform/android/java/lib/src/org/godotengine/godot/io/FilePicker.kt b/platform/android/java/lib/src/org/godotengine/godot/io/FilePicker.kt new file mode 100644 index 0000000000..2befe0583b --- /dev/null +++ b/platform/android/java/lib/src/org/godotengine/godot/io/FilePicker.kt @@ -0,0 +1,160 @@ +/**************************************************************************/ +/* FilePicker.kt */ +/**************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/**************************************************************************/ +/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */ +/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/**************************************************************************/ + +package org.godotengine.godot.io + +import android.app.Activity +import android.content.Context +import android.content.Intent +import android.net.Uri +import android.os.Build +import android.provider.DocumentsContract +import android.util.Log +import androidx.annotation.RequiresApi +import org.godotengine.godot.GodotLib +import org.godotengine.godot.io.file.MediaStoreData + +/** + * Utility class for managing file selection and file picker activities. + * + * It provides methods to launch a file picker and handle the result, supporting various file modes, + * including opening files, directories, and saving files. + */ +internal class FilePicker { + companion object { + private const val FILE_PICKER_REQUEST = 1000 + private val TAG = FilePicker::class.java.simpleName + + // Constants for fileMode values + private const val FILE_MODE_OPEN_FILE = 0 + private const val FILE_MODE_OPEN_FILES = 1 + private const val FILE_MODE_OPEN_DIR = 2 + private const val FILE_MODE_OPEN_ANY = 3 + private const val FILE_MODE_SAVE_FILE = 4 + + /** + * Handles the result from a file picker activity and processes the selected file(s) or directory. + * + * @param context The context from which the file picker was launched. + * @param requestCode The request code used when starting the file picker activity. + * @param resultCode The result code returned by the activity. + * @param data The intent data containing the selected file(s) or directory. + */ + @RequiresApi(Build.VERSION_CODES.Q) + fun handleActivityResult(context: Context, requestCode: Int, resultCode: Int, data: Intent?) { + if (requestCode == FILE_PICKER_REQUEST) { + if (resultCode == Activity.RESULT_CANCELED) { + Log.d(TAG, "File picker canceled") + GodotLib.filePickerCallback(false, emptyArray()) + return + } + if (resultCode == Activity.RESULT_OK) { + val selectedPaths: MutableList<String> = mutableListOf() + // Handle multiple file selection. + val clipData = data?.clipData + if (clipData != null) { + for (i in 0 until clipData.itemCount) { + val uri = clipData.getItemAt(i).uri + uri?.let { + val filepath = MediaStoreData.getFilePathFromUri(context, uri) + if (filepath != null) { + selectedPaths.add(filepath) + } else { + Log.d(TAG, "null filepath URI: $it") + } + } + } + } else { + val uri: Uri? = data?.data + uri?.let { + val filepath = MediaStoreData.getFilePathFromUri(context, uri) + if (filepath != null) { + selectedPaths.add(filepath) + } else { + Log.d(TAG, "null filepath URI: $it") + } + } + } + + if (selectedPaths.isNotEmpty()) { + GodotLib.filePickerCallback(true, selectedPaths.toTypedArray()) + } else { + GodotLib.filePickerCallback(false, emptyArray()) + } + } + } + } + + /** + * Launches a file picker activity with specified settings based on the mode, initial directory, + * file type filters, and other parameters. + * + * @param context The context from which to start the file picker. + * @param activity The activity instance used to initiate the picker. Required for activity results. + * @param currentDirectory The directory path to start the file picker in. + * @param filename The name of the file when using save mode. + * @param fileMode The mode to operate in, specifying open, save, or directory select. + * @param filters Array of MIME types to filter file selection. + */ + @RequiresApi(Build.VERSION_CODES.Q) + fun showFilePicker(context: Context, activity: Activity?, currentDirectory: String, filename: String, fileMode: Int, filters: Array<String>) { + val intent = when (fileMode) { + FILE_MODE_OPEN_DIR -> Intent(Intent.ACTION_OPEN_DOCUMENT_TREE) + FILE_MODE_SAVE_FILE -> Intent(Intent.ACTION_CREATE_DOCUMENT) + else -> Intent(Intent.ACTION_OPEN_DOCUMENT) + } + val initialDirectory = MediaStoreData.getUriFromDirectoryPath(context, currentDirectory) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && initialDirectory != null) { + intent.putExtra(DocumentsContract.EXTRA_INITIAL_URI, initialDirectory) + } else { + Log.d(TAG, "Error cannot set initial directory") + } + if (fileMode == FILE_MODE_OPEN_FILES) { + intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true) // Set multi select for FILE_MODE_OPEN_FILES + } else if (fileMode == FILE_MODE_SAVE_FILE) { + intent.putExtra(Intent.EXTRA_TITLE, filename) // Set filename for FILE_MODE_SAVE_FILE + } + // ACTION_OPEN_DOCUMENT_TREE does not support intent type + if (fileMode != FILE_MODE_OPEN_DIR) { + intent.type = "*/*" + if (filters.isNotEmpty()) { + if (filters.size == 1) { + intent.type = filters[0] + } else { + intent.putExtra(Intent.EXTRA_MIME_TYPES, filters) + } + } + intent.addCategory(Intent.CATEGORY_OPENABLE) + } + intent.putExtra(Intent.EXTRA_LOCAL_ONLY, true) + activity?.startActivityForResult(intent, FILE_PICKER_REQUEST) + } + } +} diff --git a/platform/android/java/lib/src/org/godotengine/godot/io/file/MediaStoreData.kt b/platform/android/java/lib/src/org/godotengine/godot/io/file/MediaStoreData.kt index 97362e2542..46bd465e90 100644 --- a/platform/android/java/lib/src/org/godotengine/godot/io/file/MediaStoreData.kt +++ b/platform/android/java/lib/src/org/godotengine/godot/io/file/MediaStoreData.kt @@ -38,6 +38,7 @@ import android.net.Uri import android.os.Build import android.os.Environment import android.provider.MediaStore +import android.util.Log import androidx.annotation.RequiresApi import java.io.File @@ -46,6 +47,7 @@ import java.io.FileNotFoundException import java.io.FileOutputStream import java.nio.channels.FileChannel + /** * Implementation of [DataAccess] which handles access and interactions with file and data * under scoped storage via the MediaStore API. @@ -81,6 +83,10 @@ internal class MediaStoreData(context: Context, filePath: String, accessFlag: Fi private const val SELECTION_BY_PATH = "${MediaStore.Files.FileColumns.DISPLAY_NAME} = ? " + " AND ${MediaStore.Files.FileColumns.RELATIVE_PATH} = ?" + private const val AUTHORITY_MEDIA_DOCUMENTS = "com.android.providers.media.documents" + private const val AUTHORITY_EXTERNAL_STORAGE_DOCUMENTS = "com.android.externalstorage.documents" + private const val AUTHORITY_DOWNLOADS_DOCUMENTS = "com.android.providers.downloads.documents" + private fun getSelectionByPathArguments(path: String): Array<String> { return arrayOf(getMediaStoreDisplayName(path), getMediaStoreRelativePath(path)) } @@ -230,6 +236,72 @@ internal class MediaStoreData(context: Context, filePath: String, accessFlag: Fi ) return updated > 0 } + + fun getUriFromDirectoryPath(context: Context, directoryPath: String): Uri? { + if (!directoryExists(directoryPath)) { + return null + } + // Check if the path is under external storage. + val externalStorageRoot = Environment.getExternalStorageDirectory().absolutePath + if (directoryPath.startsWith(externalStorageRoot)) { + val relativePath = directoryPath.replaceFirst(externalStorageRoot, "").trim('/') + val uri = Uri.Builder() + .scheme("content") + .authority(AUTHORITY_EXTERNAL_STORAGE_DOCUMENTS) + .appendPath("document") + .appendPath("primary:$relativePath") + .build() + return uri + } + return null + } + + fun getFilePathFromUri(context: Context, uri: Uri): String? { + // Converts content uri to filepath. + val id = getIdFromUri(uri) ?: return null + + if (uri.authority == AUTHORITY_EXTERNAL_STORAGE_DOCUMENTS) { + val split = id.split(":") + val fileName = split.last() + val relativePath = split.dropLast(1).joinToString("/") + val fullPath = File(Environment.getExternalStorageDirectory(), "$relativePath/$fileName").absolutePath + return fullPath + } else { + val id = id.toLongOrNull() ?: return null + val dataItems = queryById(context, id) + return if (dataItems.isNotEmpty()) { + val dataItem = dataItems[0] + File(Environment.getExternalStorageDirectory(), File(dataItem.relativePath, dataItem.displayName).toString()).absolutePath + } else { + null + } + } + } + + private fun getIdFromUri(uri: Uri): String? { + return try { + if (uri.authority == AUTHORITY_EXTERNAL_STORAGE_DOCUMENTS || uri.authority == AUTHORITY_MEDIA_DOCUMENTS || uri.authority == AUTHORITY_DOWNLOADS_DOCUMENTS) { + val documentId = uri.lastPathSegment ?: throw IllegalArgumentException("Invalid URI: $uri") + documentId.substringAfter(":") + } else { + throw IllegalArgumentException("Unsupported URI format: $uri") + } + } catch (e: Exception) { + Log.d(TAG, "Failed to parse ID from URI: $uri", e) + null + } + } + + private fun directoryExists(path: String): Boolean { + return try { + val file = File(path) + file.isDirectory && file.exists() + } catch (e: SecurityException) { + Log.d(TAG, "Failed to check directoryExists: $path", e) + false + } + } + } private val id: Long diff --git a/platform/android/java/lib/src/org/godotengine/godot/utils/PermissionsUtil.java b/platform/android/java/lib/src/org/godotengine/godot/utils/PermissionsUtil.java index 4e8e82a70a..885873e46d 100644 --- a/platform/android/java/lib/src/org/godotengine/godot/utils/PermissionsUtil.java +++ b/platform/android/java/lib/src/org/godotengine/godot/utils/PermissionsUtil.java @@ -49,7 +49,6 @@ import androidx.core.content.ContextCompat; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -66,6 +65,7 @@ public final class PermissionsUtil { public static final int REQUEST_ALL_PERMISSION_REQ_CODE = 1001; public static final int REQUEST_SINGLE_PERMISSION_REQ_CODE = 1002; public static final int REQUEST_MANAGE_EXTERNAL_STORAGE_REQ_CODE = 2002; + public static final int REQUEST_INSTALL_PACKAGES_REQ_CODE = 3002; private PermissionsUtil() { } @@ -105,10 +105,20 @@ public final class PermissionsUtil { activity.startActivityForResult(intent, REQUEST_MANAGE_EXTERNAL_STORAGE_REQ_CODE); } } + } else if (permission.equals(Manifest.permission.REQUEST_INSTALL_PACKAGES)) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && !activity.getPackageManager().canRequestPackageInstalls()) { + try { + Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES); + intent.setData(Uri.parse(String.format("package:%s", activity.getPackageName()))); + activity.startActivityForResult(intent, REQUEST_INSTALL_PACKAGES_REQ_CODE); + } catch (Exception e) { + Log.e(TAG, "Unable to request permission " + Manifest.permission.REQUEST_INSTALL_PACKAGES); + } + } } else { PermissionInfo permissionInfo = getPermissionInfo(activity, permission); int protectionLevel = Build.VERSION.SDK_INT >= Build.VERSION_CODES.P ? permissionInfo.getProtection() : permissionInfo.protectionLevel; - if (protectionLevel == PermissionInfo.PROTECTION_DANGEROUS && ContextCompat.checkSelfPermission(activity, permission) != PackageManager.PERMISSION_GRANTED) { + if ((protectionLevel & PermissionInfo.PROTECTION_DANGEROUS) == PermissionInfo.PROTECTION_DANGEROUS && ContextCompat.checkSelfPermission(activity, permission) != PackageManager.PERMISSION_GRANTED) { Log.d(TAG, "Requesting permission " + permission); requestedPermissions.add(permission); } @@ -174,7 +184,7 @@ public final class PermissionsUtil { try { PermissionInfo permissionInfo = getPermissionInfo(activity, permissionName); int protectionLevel = Build.VERSION.SDK_INT >= Build.VERSION_CODES.P ? permissionInfo.getProtection() : permissionInfo.protectionLevel; - if (protectionLevel == PermissionInfo.PROTECTION_DANGEROUS && ContextCompat.checkSelfPermission(activity, permissionName) != PackageManager.PERMISSION_GRANTED) { + if ((protectionLevel & PermissionInfo.PROTECTION_DANGEROUS) == PermissionInfo.PROTECTION_DANGEROUS && ContextCompat.checkSelfPermission(activity, permissionName) != PackageManager.PERMISSION_GRANTED) { activity.requestPermissions(new String[] { permissionName }, REQUEST_SINGLE_PERMISSION_REQ_CODE); return false; } @@ -215,7 +225,7 @@ public final class PermissionsUtil { try { manifestPermissions = getManifestPermissions(activity); } catch (PackageManager.NameNotFoundException e) { - e.printStackTrace(); + Log.e(TAG, "Unable to retrieve manifest permissions", e); return false; } @@ -242,7 +252,7 @@ public final class PermissionsUtil { try { manifestPermissions = getManifestPermissions(context); } catch (PackageManager.NameNotFoundException e) { - e.printStackTrace(); + Log.e(TAG, "Unable to retrieve manifest permissions", e); return new String[0]; } if (manifestPermissions.isEmpty()) { @@ -259,7 +269,7 @@ public final class PermissionsUtil { } else { PermissionInfo permissionInfo = getPermissionInfo(context, manifestPermission); int protectionLevel = Build.VERSION.SDK_INT >= Build.VERSION_CODES.P ? permissionInfo.getProtection() : permissionInfo.protectionLevel; - if (protectionLevel == PermissionInfo.PROTECTION_DANGEROUS && ContextCompat.checkSelfPermission(context, manifestPermission) == PackageManager.PERMISSION_GRANTED) { + if ((protectionLevel & PermissionInfo.PROTECTION_DANGEROUS) == PermissionInfo.PROTECTION_DANGEROUS && ContextCompat.checkSelfPermission(context, manifestPermission) == PackageManager.PERMISSION_GRANTED) { grantedPermissions.add(manifestPermission); } } diff --git a/platform/android/java/nativeSrcsConfigs/CMakeLists.txt b/platform/android/java/nativeSrcsConfigs/CMakeLists.txt index a7d2774db5..a5ecafeb09 100644 --- a/platform/android/java/nativeSrcsConfigs/CMakeLists.txt +++ b/platform/android/java/nativeSrcsConfigs/CMakeLists.txt @@ -21,4 +21,4 @@ target_include_directories(${PROJECT_NAME} ${ANDROID_ROOT_DIR} ${OPENXR_INCLUDE_DIR}) -add_definitions(-DUNIX_ENABLED -DVULKAN_ENABLED -DANDROID_ENABLED -DGLES3_ENABLED -DTOOLS_ENABLED) +add_definitions(-DUNIX_ENABLED -DVULKAN_ENABLED -DANDROID_ENABLED -DGLES3_ENABLED -DTOOLS_ENABLED -DDEBUG_ENABLED) diff --git a/platform/android/java_godot_lib_jni.cpp b/platform/android/java_godot_lib_jni.cpp index 1a256959cd..5c1e78dcc4 100644 --- a/platform/android/java_godot_lib_jni.cpp +++ b/platform/android/java_godot_lib_jni.cpp @@ -540,6 +540,30 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_onNightModeChanged(JN } } +JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_inputDialogCallback(JNIEnv *env, jclass clazz, jstring p_text) { + DisplayServerAndroid *ds = (DisplayServerAndroid *)DisplayServer::get_singleton(); + if (ds) { + String text = jstring_to_string(p_text, env); + ds->emit_input_dialog_callback(text); + } +} + +JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_filePickerCallback(JNIEnv *env, jclass clazz, jboolean p_ok, jobjectArray p_selected_paths) { + DisplayServerAndroid *ds = (DisplayServerAndroid *)DisplayServer::get_singleton(); + if (ds) { + Vector<String> selected_paths; + + jint length = env->GetArrayLength(p_selected_paths); + for (jint i = 0; i < length; ++i) { + jstring java_string = (jstring)env->GetObjectArrayElement(p_selected_paths, i); + String path = jstring_to_string(java_string, env); + selected_paths.push_back(path); + env->DeleteLocalRef(java_string); + } + ds->emit_file_picker_callback(p_ok, selected_paths); + } +} + JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_requestPermissionResult(JNIEnv *env, jclass clazz, jstring p_permission, jboolean p_result) { String permission = jstring_to_string(p_permission, env); if (permission == "android.permission.RECORD_AUDIO" && p_result) { diff --git a/platform/android/java_godot_lib_jni.h b/platform/android/java_godot_lib_jni.h index 2165ce264b..31a7598a7b 100644 --- a/platform/android/java_godot_lib_jni.h +++ b/platform/android/java_godot_lib_jni.h @@ -67,6 +67,8 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_calldeferred(JNIEnv * JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_setVirtualKeyboardHeight(JNIEnv *env, jclass clazz, jint p_height); JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_requestPermissionResult(JNIEnv *env, jclass clazz, jstring p_permission, jboolean p_result); JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_onNightModeChanged(JNIEnv *env, jclass clazz); +JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_inputDialogCallback(JNIEnv *env, jclass clazz, jstring p_text); +JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_filePickerCallback(JNIEnv *env, jclass clazz, jboolean p_ok, jobjectArray p_selected_paths); JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_onRendererResumed(JNIEnv *env, jclass clazz); JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_onRendererPaused(JNIEnv *env, jclass clazz); JNIEXPORT jboolean JNICALL Java_org_godotengine_godot_GodotLib_shouldDispatchInputToRenderThread(JNIEnv *env, jclass clazz); diff --git a/platform/android/java_godot_wrapper.cpp b/platform/android/java_godot_wrapper.cpp index d3b30e4589..5ecd789d43 100644 --- a/platform/android/java_godot_wrapper.cpp +++ b/platform/android/java_godot_wrapper.cpp @@ -64,9 +64,12 @@ GodotJavaWrapper::GodotJavaWrapper(JNIEnv *p_env, jobject p_activity, jobject p_ _alert = p_env->GetMethodID(godot_class, "alert", "(Ljava/lang/String;Ljava/lang/String;)V"); _is_dark_mode_supported = p_env->GetMethodID(godot_class, "isDarkModeSupported", "()Z"); _is_dark_mode = p_env->GetMethodID(godot_class, "isDarkMode", "()Z"); + _get_accent_color = p_env->GetMethodID(godot_class, "getAccentColor", "()I"); _get_clipboard = p_env->GetMethodID(godot_class, "getClipboard", "()Ljava/lang/String;"); _set_clipboard = p_env->GetMethodID(godot_class, "setClipboard", "(Ljava/lang/String;)V"); _has_clipboard = p_env->GetMethodID(godot_class, "hasClipboard", "()Z"); + _show_input_dialog = p_env->GetMethodID(godot_class, "showInputDialog", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V"); + _show_file_picker = p_env->GetMethodID(godot_class, "showFilePicker", "(Ljava/lang/String;Ljava/lang/String;I[Ljava/lang/String;)V"); _request_permission = p_env->GetMethodID(godot_class, "requestPermission", "(Ljava/lang/String;)Z"); _request_permissions = p_env->GetMethodID(godot_class, "requestPermissions", "()Z"); _get_granted_permissions = p_env->GetMethodID(godot_class, "getGrantedPermissions", "()[Ljava/lang/String;"); @@ -212,6 +215,23 @@ bool GodotJavaWrapper::is_dark_mode() { } } +Color GodotJavaWrapper::get_accent_color() { + if (_get_accent_color) { + JNIEnv *env = get_jni_env(); + ERR_FAIL_NULL_V(env, Color(0, 0, 0, 0)); + int accent_color = env->CallIntMethod(godot_instance, _get_accent_color); + + // Convert ARGB to RGBA. + int alpha = (accent_color >> 24) & 0xFF; + int red = (accent_color >> 16) & 0xFF; + int green = (accent_color >> 8) & 0xFF; + int blue = accent_color & 0xFF; + return Color(red / 255.0f, green / 255.0f, blue / 255.0f, alpha / 255.0f); + } else { + return Color(0, 0, 0, 0); + } +} + bool GodotJavaWrapper::has_get_clipboard() { return _get_clipboard != nullptr; } @@ -268,6 +288,46 @@ bool GodotJavaWrapper::has_clipboard() { } } +Error GodotJavaWrapper::show_input_dialog(const String &p_title, const String &p_message, const String &p_existing_text) { + if (_show_input_dialog) { + JNIEnv *env = get_jni_env(); + ERR_FAIL_NULL_V(env, ERR_UNCONFIGURED); + jstring jStrTitle = env->NewStringUTF(p_title.utf8().get_data()); + jstring jStrMessage = env->NewStringUTF(p_message.utf8().get_data()); + jstring jStrExistingText = env->NewStringUTF(p_existing_text.utf8().get_data()); + env->CallVoidMethod(godot_instance, _show_input_dialog, jStrTitle, jStrMessage, jStrExistingText); + env->DeleteLocalRef(jStrTitle); + env->DeleteLocalRef(jStrMessage); + env->DeleteLocalRef(jStrExistingText); + return OK; + } else { + return ERR_UNCONFIGURED; + } +} + +Error GodotJavaWrapper::show_file_picker(const String &p_current_directory, const String &p_filename, int p_mode, const Vector<String> &p_filters) { + if (_show_file_picker) { + JNIEnv *env = get_jni_env(); + ERR_FAIL_NULL_V(env, ERR_UNCONFIGURED); + jstring j_current_directory = env->NewStringUTF(p_current_directory.utf8().get_data()); + jstring j_filename = env->NewStringUTF(p_filename.utf8().get_data()); + jint j_mode = p_mode; + jobjectArray j_filters = env->NewObjectArray(p_filters.size(), env->FindClass("java/lang/String"), nullptr); + for (int i = 0; i < p_filters.size(); ++i) { + jstring j_filter = env->NewStringUTF(p_filters[i].utf8().get_data()); + env->SetObjectArrayElement(j_filters, i, j_filter); + env->DeleteLocalRef(j_filter); + } + env->CallVoidMethod(godot_instance, _show_file_picker, j_current_directory, j_filename, j_mode, j_filters); + env->DeleteLocalRef(j_current_directory); + env->DeleteLocalRef(j_filename); + env->DeleteLocalRef(j_filters); + return OK; + } else { + return ERR_UNCONFIGURED; + } +} + bool GodotJavaWrapper::request_permission(const String &p_name) { if (_request_permission) { JNIEnv *env = get_jni_env(); diff --git a/platform/android/java_godot_wrapper.h b/platform/android/java_godot_wrapper.h index 51d7f98541..512779169a 100644 --- a/platform/android/java_godot_wrapper.h +++ b/platform/android/java_godot_wrapper.h @@ -34,6 +34,7 @@ #include "java_godot_view_wrapper.h" #include "string_android.h" +#include "core/math/color.h" #include "core/templates/list.h" #include <android/log.h> @@ -55,9 +56,12 @@ private: jmethodID _alert = nullptr; jmethodID _is_dark_mode_supported = nullptr; jmethodID _is_dark_mode = nullptr; + jmethodID _get_accent_color = nullptr; jmethodID _get_clipboard = nullptr; jmethodID _set_clipboard = nullptr; jmethodID _has_clipboard = nullptr; + jmethodID _show_input_dialog = nullptr; + jmethodID _show_file_picker = nullptr; jmethodID _request_permission = nullptr; jmethodID _request_permissions = nullptr; jmethodID _get_granted_permissions = nullptr; @@ -97,12 +101,15 @@ public: void alert(const String &p_message, const String &p_title); bool is_dark_mode_supported(); bool is_dark_mode(); + Color get_accent_color(); bool has_get_clipboard(); String get_clipboard(); bool has_set_clipboard(); void set_clipboard(const String &p_text); bool has_has_clipboard(); bool has_clipboard(); + Error show_input_dialog(const String &p_title, const String &p_message, const String &p_existing_text); + Error show_file_picker(const String &p_current_directory, const String &p_filename, int p_mode, const Vector<String> &p_filters); bool request_permission(const String &p_name); bool request_permissions(); Vector<String> get_granted_permissions() const; diff --git a/platform/android/net_socket_android.cpp b/platform/android/net_socket_android.cpp index 8f0ee51fac..9ab7d6a04f 100644 --- a/platform/android/net_socket_android.cpp +++ b/platform/android/net_socket_android.cpp @@ -84,7 +84,7 @@ NetSocketAndroid::~NetSocketAndroid() { } void NetSocketAndroid::close() { - NetSocketPosix::close(); + NetSocketUnix::close(); if (wants_broadcast) { multicast_lock_release(); } @@ -96,7 +96,7 @@ void NetSocketAndroid::close() { } Error NetSocketAndroid::set_broadcasting_enabled(bool p_enabled) { - Error err = NetSocketPosix::set_broadcasting_enabled(p_enabled); + Error err = NetSocketUnix::set_broadcasting_enabled(p_enabled); if (err != OK) { return err; } @@ -115,7 +115,7 @@ Error NetSocketAndroid::set_broadcasting_enabled(bool p_enabled) { } Error NetSocketAndroid::join_multicast_group(const IPAddress &p_multi_address, const String &p_if_name) { - Error err = NetSocketPosix::join_multicast_group(p_multi_address, p_if_name); + Error err = NetSocketUnix::join_multicast_group(p_multi_address, p_if_name); if (err != OK) { return err; } @@ -129,7 +129,7 @@ Error NetSocketAndroid::join_multicast_group(const IPAddress &p_multi_address, c } Error NetSocketAndroid::leave_multicast_group(const IPAddress &p_multi_address, const String &p_if_name) { - Error err = NetSocketPosix::leave_multicast_group(p_multi_address, p_if_name); + Error err = NetSocketUnix::leave_multicast_group(p_multi_address, p_if_name); if (err != OK) { return err; } diff --git a/platform/android/net_socket_android.h b/platform/android/net_socket_android.h index 26cb2d4e3d..c33146d2d8 100644 --- a/platform/android/net_socket_android.h +++ b/platform/android/net_socket_android.h @@ -31,7 +31,7 @@ #ifndef NET_SOCKET_ANDROID_H #define NET_SOCKET_ANDROID_H -#include "drivers/unix/net_socket_posix.h" +#include "drivers/unix/net_socket_unix.h" #include <jni.h> @@ -44,7 +44,7 @@ * the lock when broadcasting is enabled/disabled on a socket, or that socket * joins/leaves a multicast group. */ -class NetSocketAndroid : public NetSocketPosix { +class NetSocketAndroid : public NetSocketUnix { private: static jobject net_utils; static jclass cls; diff --git a/platform/ios/detect.py b/platform/ios/detect.py index 20a3a996bc..0f7f938852 100644 --- a/platform/ios/detect.py +++ b/platform/ios/detect.py @@ -3,6 +3,7 @@ import sys from typing import TYPE_CHECKING from methods import detect_darwin_sdk_path, print_error, print_warning +from platform_methods import validate_arch if TYPE_CHECKING: from SCons.Script.SConscript import SConsEnvironment @@ -60,12 +61,7 @@ def get_flags(): def configure(env: "SConsEnvironment"): # Validate arch. supported_arches = ["x86_64", "arm64"] - if env["arch"] not in supported_arches: - print_error( - 'Unsupported CPU architecture "%s" for iOS. Supported architectures are: %s.' - % (env["arch"], ", ".join(supported_arches)) - ) - sys.exit(255) + validate_arch(env["arch"], get_name(), supported_arches) ## LTO @@ -134,7 +130,7 @@ def configure(env: "SConsEnvironment"): elif env["arch"] == "arm64": env.Append( CCFLAGS=( - "-fobjc-arc -arch arm64 -fmessage-length=0 -fno-strict-aliasing" + "-fobjc-arc -arch arm64 -fmessage-length=0" " -fdiagnostics-print-source-range-info -fdiagnostics-show-category=id -fdiagnostics-parseable-fixits" " -fpascal-strings -fblocks -fvisibility=hidden -MMD -MT dependencies" " -isysroot $IOS_SDK_PATH".split() diff --git a/platform/ios/display_server_ios.mm b/platform/ios/display_server_ios.mm index dcc6ce9218..5d9179bd9a 100644 --- a/platform/ios/display_server_ios.mm +++ b/platform/ios/display_server_ios.mm @@ -111,19 +111,24 @@ DisplayServerIOS::DisplayServerIOS(const String &p_rendering_driver, WindowMode if (rendering_context->initialize() != OK) { memdelete(rendering_context); rendering_context = nullptr; +#if defined(GLES3_ENABLED) bool fallback_to_opengl3 = GLOBAL_GET("rendering/rendering_device/fallback_to_opengl3"); if (fallback_to_opengl3 && rendering_driver != "opengl3") { WARN_PRINT("Your device seem not to support MoltenVK or Metal, switching to OpenGL 3."); rendering_driver = "opengl3"; OS::get_singleton()->set_current_rendering_method("gl_compatibility"); OS::get_singleton()->set_current_rendering_driver_name(rendering_driver); - } else { + } else +#endif + { ERR_PRINT(vformat("Failed to initialize %s context", rendering_driver)); r_error = ERR_UNAVAILABLE; return; } } + } + if (rendering_context) { if (rendering_context->window_create(MAIN_WINDOW_ID, &wpd) != OK) { ERR_PRINT(vformat("Failed to create %s window.", rendering_driver)); memdelete(rendering_context); @@ -365,6 +370,7 @@ bool DisplayServerIOS::has_feature(Feature p_feature) const { // case FEATURE_NATIVE_DIALOG: // case FEATURE_NATIVE_DIALOG_INPUT: // case FEATURE_NATIVE_DIALOG_FILE: + // case FEATURE_NATIVE_DIALOG_FILE_EXTRA: // case FEATURE_NATIVE_ICON: // case FEATURE_WINDOW_TRANSPARENCY: case FEATURE_CLIPBOARD: diff --git a/platform/ios/export/export_plugin.cpp b/platform/ios/export/export_plugin.cpp index d6cd2e0f3c..3c5a930bab 100644 --- a/platform/ios/export/export_plugin.cpp +++ b/platform/ios/export/export_plugin.cpp @@ -1082,7 +1082,7 @@ Error EditorExportPlatformIOS::_export_loading_screen_file(const Ref<EditorExpor } if (splash.is_null()) { - splash = Ref<Image>(memnew(Image(boot_splash_png))); + splash.instantiate(boot_splash_png); } // Using same image for both @2x and @3x diff --git a/platform/ios/ios.mm b/platform/ios/ios.mm index 6943de5ac8..26067b94bb 100644 --- a/platform/ios/ios.mm +++ b/platform/ios/ios.mm @@ -42,7 +42,7 @@ void iOS::_bind_methods() { ClassDB::bind_method(D_METHOD("supports_haptic_engine"), &iOS::supports_haptic_engine); ClassDB::bind_method(D_METHOD("start_haptic_engine"), &iOS::start_haptic_engine); ClassDB::bind_method(D_METHOD("stop_haptic_engine"), &iOS::stop_haptic_engine); -}; +} bool iOS::supports_haptic_engine() { if (@available(iOS 13, *)) { diff --git a/platform/linuxbsd/crash_handler_linuxbsd.h b/platform/linuxbsd/crash_handler_linuxbsd.h index 684f62b249..a14b93e11b 100644 --- a/platform/linuxbsd/crash_handler_linuxbsd.h +++ b/platform/linuxbsd/crash_handler_linuxbsd.h @@ -38,7 +38,7 @@ public: void initialize(); void disable(); - bool is_disabled() const { return disabled; }; + bool is_disabled() const { return disabled; } CrashHandler(); ~CrashHandler(); diff --git a/platform/linuxbsd/detect.py b/platform/linuxbsd/detect.py index a67434527c..c8202b147d 100644 --- a/platform/linuxbsd/detect.py +++ b/platform/linuxbsd/detect.py @@ -4,7 +4,7 @@ import sys from typing import TYPE_CHECKING from methods import get_compiler_version, print_error, print_warning, using_gcc -from platform_methods import detect_arch +from platform_methods import detect_arch, validate_arch if TYPE_CHECKING: from SCons.Script.SConscript import SConsEnvironment @@ -74,12 +74,7 @@ def get_flags(): def configure(env: "SConsEnvironment"): # Validate arch. supported_arches = ["x86_32", "x86_64", "arm32", "arm64", "rv64", "ppc32", "ppc64"] - if env["arch"] not in supported_arches: - print_error( - 'Unsupported CPU architecture "%s" for Linux / *BSD. Supported architectures are: %s.' - % (env["arch"], ", ".join(supported_arches)) - ) - sys.exit(255) + validate_arch(env["arch"], get_name(), supported_arches) ## Build type @@ -284,16 +279,18 @@ def configure(env: "SConsEnvironment"): env.ParseConfig("pkg-config libwebp --cflags --libs") if not env["builtin_mbedtls"]: - # mbedTLS does not provide a pkgconfig config yet. See https://github.com/ARMmbed/mbedtls/issues/228 - env.Append(LIBS=["mbedtls", "mbedcrypto", "mbedx509"]) + # mbedTLS only provides a pkgconfig file since 3.6.0, but we still support 2.28.x, + # so fallback to manually specifying LIBS if it fails. + if os.system("pkg-config --exists mbedtls") == 0: # 0 means found + env.ParseConfig("pkg-config mbedtls mbedcrypto mbedx509 --cflags --libs") + else: + env.Append(LIBS=["mbedtls", "mbedcrypto", "mbedx509"]) if not env["builtin_wslay"]: env.ParseConfig("pkg-config libwslay --cflags --libs") if not env["builtin_miniupnpc"]: - # No pkgconfig file so far, hardcode default paths. - env.Prepend(CPPPATH=["/usr/include/miniupnpc"]) - env.Append(LIBS=["miniupnpc"]) + env.ParseConfig("pkg-config miniupnpc --cflags --libs") # On Linux wchar_t should be 32-bits # 16-bit library shouldn't be required due to compiler optimizations diff --git a/platform/linuxbsd/export/export_plugin.h b/platform/linuxbsd/export/export_plugin.h index 9e016bd4c3..c8842b3a17 100644 --- a/platform/linuxbsd/export/export_plugin.h +++ b/platform/linuxbsd/export/export_plugin.h @@ -55,7 +55,7 @@ class EditorExportPlatformLinuxBSD : public EditorExportPlatformPC { ssh_args = p_ssh_arg; cmd_args = p_cmd_args; wait = p_wait; - }; + } }; Ref<ImageTexture> run_icon; diff --git a/platform/linuxbsd/freedesktop_portal_desktop.cpp b/platform/linuxbsd/freedesktop_portal_desktop.cpp index 94a748e414..63eed41cd3 100644 --- a/platform/linuxbsd/freedesktop_portal_desktop.cpp +++ b/platform/linuxbsd/freedesktop_portal_desktop.cpp @@ -394,7 +394,7 @@ Error FreeDesktopPortalDesktop::file_dialog_show(DisplayServer::WindowID p_windo } else { if (flt == "*.*") { filter_exts.push_back("*"); - filter_names.push_back(RTR("All Files")); + filter_names.push_back(RTR("All Files") + " (*)"); } else { filter_exts.push_back(flt); filter_names.push_back(flt); @@ -405,7 +405,7 @@ Error FreeDesktopPortalDesktop::file_dialog_show(DisplayServer::WindowID p_windo } if (filter_names.is_empty()) { filter_exts.push_back("*"); - filter_names.push_back(RTR("All Files")); + filter_names.push_back(RTR("All Files") + " (*)"); } DBusError err; diff --git a/platform/linuxbsd/os_linuxbsd.cpp b/platform/linuxbsd/os_linuxbsd.cpp index 6355562feb..b309e8d8eb 100644 --- a/platform/linuxbsd/os_linuxbsd.cpp +++ b/platform/linuxbsd/os_linuxbsd.cpp @@ -771,11 +771,11 @@ Vector<String> OS_LinuxBSD::get_system_font_path_for_text(const String &p_font_n FcLangSetAdd(lang_set, reinterpret_cast<const FcChar8 *>(p_locale.utf8().get_data())); FcPatternAddLangSet(pattern, FC_LANG, lang_set); - FcConfigSubstitute(0, pattern, FcMatchPattern); + FcConfigSubstitute(nullptr, pattern, FcMatchPattern); FcDefaultSubstitute(pattern); FcResult result; - FcPattern *match = FcFontMatch(0, pattern, &result); + FcPattern *match = FcFontMatch(nullptr, pattern, &result); if (match) { char *file_name = nullptr; if (FcPatternGetString(match, FC_FILE, 0, reinterpret_cast<FcChar8 **>(&file_name)) == FcResultMatch) { @@ -816,11 +816,11 @@ String OS_LinuxBSD::get_system_font_path(const String &p_font_name, int p_weight FcPatternAddInteger(pattern, FC_WIDTH, _stretch_to_fc(p_stretch)); FcPatternAddInteger(pattern, FC_SLANT, p_italic ? FC_SLANT_ITALIC : FC_SLANT_ROMAN); - FcConfigSubstitute(0, pattern, FcMatchPattern); + FcConfigSubstitute(nullptr, pattern, FcMatchPattern); FcDefaultSubstitute(pattern); FcResult result; - FcPattern *match = FcFontMatch(0, pattern, &result); + FcPattern *match = FcFontMatch(nullptr, pattern, &result); if (match) { if (!allow_substitutes) { char *family_name = nullptr; diff --git a/platform/linuxbsd/wayland/display_server_wayland.cpp b/platform/linuxbsd/wayland/display_server_wayland.cpp index 3fbbc263a0..fe359532bb 100644 --- a/platform/linuxbsd/wayland/display_server_wayland.cpp +++ b/platform/linuxbsd/wayland/display_server_wayland.cpp @@ -216,7 +216,8 @@ bool DisplayServerWayland::has_feature(Feature p_feature) const { //case FEATURE_NATIVE_DIALOG: //case FEATURE_NATIVE_DIALOG_INPUT: #ifdef DBUS_ENABLED - case FEATURE_NATIVE_DIALOG_FILE: { + case FEATURE_NATIVE_DIALOG_FILE: + case FEATURE_NATIVE_DIALOG_FILE_EXTRA: { return true; } break; #endif @@ -627,6 +628,18 @@ int64_t DisplayServerWayland::window_get_native_handle(HandleType p_handle_type, } return 0; } break; + case EGL_DISPLAY: { + if (egl_manager) { + return (int64_t)egl_manager->get_display(p_window); + } + return 0; + } + case EGL_CONFIG: { + if (egl_manager) { + return (int64_t)egl_manager->get_config(p_window); + } + return 0; + } #endif // GLES3_ENABLED default: { @@ -1344,13 +1357,16 @@ DisplayServerWayland::DisplayServerWayland(const String &p_rendering_driver, Win if (rendering_context->initialize() != OK) { memdelete(rendering_context); rendering_context = nullptr; +#if defined(GLES3_ENABLED) bool fallback_to_opengl3 = GLOBAL_GET("rendering/rendering_device/fallback_to_opengl3"); if (fallback_to_opengl3 && rendering_driver != "opengl3") { WARN_PRINT("Your video card drivers seem not to support the required Vulkan version, switching to OpenGL 3."); rendering_driver = "opengl3"; OS::get_singleton()->set_current_rendering_method("gl_compatibility"); OS::get_singleton()->set_current_rendering_driver_name(rendering_driver); - } else { + } else +#endif // GLES3_ENABLED + { r_error = ERR_CANT_CREATE; if (p_rendering_driver == "vulkan") { @@ -1479,12 +1495,12 @@ DisplayServerWayland::DisplayServerWayland(const String &p_rendering_driver, Win driver_found = true; } } +#endif // GLES3_ENABLED if (!driver_found) { r_error = ERR_UNAVAILABLE; ERR_FAIL_MSG("Video driver not found."); } -#endif // GLES3_ENABLED cursor_set_shape(CURSOR_BUSY); diff --git a/platform/linuxbsd/wayland/wayland_thread.cpp b/platform/linuxbsd/wayland/wayland_thread.cpp index e066e78e5b..d8d58ba54b 100644 --- a/platform/linuxbsd/wayland/wayland_thread.cpp +++ b/platform/linuxbsd/wayland/wayland_thread.cpp @@ -3988,10 +3988,10 @@ void WaylandThread::selection_set_text(const String &p_text) { wl_data_source_add_listener(ss->wl_data_source_selection, &wl_data_source_listener, ss); wl_data_source_offer(ss->wl_data_source_selection, "text/plain;charset=utf-8"); wl_data_source_offer(ss->wl_data_source_selection, "text/plain"); - } - // TODO: Implement a good way of getting the latest serial from the user. - wl_data_device_set_selection(ss->wl_data_device, ss->wl_data_source_selection, MAX(ss->pointer_data.button_serial, ss->last_key_pressed_serial)); + // TODO: Implement a good way of getting the latest serial from the user. + wl_data_device_set_selection(ss->wl_data_device, ss->wl_data_source_selection, MAX(ss->pointer_data.button_serial, ss->last_key_pressed_serial)); + } // Wait for the message to get to the server before continuing, otherwise the // clipboard update might come with a delay. diff --git a/platform/linuxbsd/x11/display_server_x11.cpp b/platform/linuxbsd/x11/display_server_x11.cpp index 293623e594..a9c94bd823 100644 --- a/platform/linuxbsd/x11/display_server_x11.cpp +++ b/platform/linuxbsd/x11/display_server_x11.cpp @@ -129,6 +129,7 @@ bool DisplayServerX11::has_feature(Feature p_feature) const { case FEATURE_ICON: #ifdef DBUS_ENABLED case FEATURE_NATIVE_DIALOG_FILE: + case FEATURE_NATIVE_DIALOG_FILE_EXTRA: #endif //case FEATURE_NATIVE_DIALOG: //case FEATURE_NATIVE_DIALOG_INPUT: @@ -1861,6 +1862,18 @@ int64_t DisplayServerX11::window_get_native_handle(HandleType p_handle_type, Win } return 0; } + case EGL_DISPLAY: { + if (gl_manager_egl) { + return (int64_t)gl_manager_egl->get_display(p_window); + } + return 0; + } + case EGL_CONFIG: { + if (gl_manager_egl) { + return (int64_t)gl_manager_egl->get_config(p_window); + } + return 0; + } #endif default: { return 0; @@ -6156,13 +6169,16 @@ DisplayServerX11::DisplayServerX11(const String &p_rendering_driver, WindowMode if (rendering_context->initialize() != OK) { memdelete(rendering_context); rendering_context = nullptr; +#if defined(GLES3_ENABLED) bool fallback_to_opengl3 = GLOBAL_GET("rendering/rendering_device/fallback_to_opengl3"); if (fallback_to_opengl3 && rendering_driver != "opengl3") { WARN_PRINT("Your video card drivers seem not to support the required Vulkan version, switching to OpenGL 3."); rendering_driver = "opengl3"; OS::get_singleton()->set_current_rendering_method("gl_compatibility"); OS::get_singleton()->set_current_rendering_driver_name(rendering_driver); - } else { + } else +#endif // GLES3_ENABLED + { r_error = ERR_CANT_CREATE; if (p_rendering_driver == "vulkan") { diff --git a/platform/linuxbsd/x11/dynwrappers/xcursor-so_wrap.c b/platform/linuxbsd/x11/dynwrappers/xcursor-so_wrap.c index bba21b9cb7..7e1f3b8072 100644 --- a/platform/linuxbsd/x11/dynwrappers/xcursor-so_wrap.c +++ b/platform/linuxbsd/x11/dynwrappers/xcursor-so_wrap.c @@ -1,12 +1,8 @@ // This file is generated. Do not edit! // see https://github.com/hpvb/dynload-wrapper for details -// generated by generate-wrapper.py 0.3 on 2023-01-23 15:09:53 -// flags: generate-wrapper.py --include ./thirdparty/linuxbsd_headers/X11/Xcursor/Xcursor.h --sys-include "thirdparty/linuxbsd_headers/X11/Xcursor/Xcursor.h" --soname libXcursor.so.1 --init-name xcursor --output-header ./platform/linuxbsd/x11/dynwrappers/xcursor-so_wrap.h --output-implementation ./platform/linuxbsd/x11/dynwrappers/xcursor-so_wrap.c +// generated by generate-wrapper.py 0.6 on 2024-11-09 02:52:36 +// flags: generate-wrapper.py --include ./thirdparty/linuxbsd_headers/X11/Xcursor/Xcursor.h --sys-include thirdparty/linuxbsd_headers/X11/Xcursor/Xcursor.h --soname libXcursor.so.1 --init-name xcursor --output-header ./platform/linuxbsd/x11/dynwrappers/xcursor-so_wrap.h --output-implementation ./platform/linuxbsd/x11/dynwrappers/xcursor-so_wrap.c --ignore-other // -// NOTE: Generated from Xcursor 1.2.0. -// This has been handpatched to workaround some issues with the generator that -// will be eventually fixed. In this case, non-existent symbols inherited from -// libX11, but absent in libXcursor.so.1, were removed. #include <stdint.h> #define XcursorImageCreate XcursorImageCreate_dylibloader_orig_xcursor @@ -130,65 +126,65 @@ #undef XcursorSetThemeCore #include <dlfcn.h> #include <stdio.h> -XcursorImage* (*XcursorImageCreate_dylibloader_wrapper_xcursor)( int, int); -void (*XcursorImageDestroy_dylibloader_wrapper_xcursor)( XcursorImage*); -XcursorImages* (*XcursorImagesCreate_dylibloader_wrapper_xcursor)( int); -void (*XcursorImagesDestroy_dylibloader_wrapper_xcursor)( XcursorImages*); -void (*XcursorImagesSetName_dylibloader_wrapper_xcursor)( XcursorImages*,const char*); -XcursorCursors* (*XcursorCursorsCreate_dylibloader_wrapper_xcursor)( Display*, int); -void (*XcursorCursorsDestroy_dylibloader_wrapper_xcursor)( XcursorCursors*); -XcursorAnimate* (*XcursorAnimateCreate_dylibloader_wrapper_xcursor)( XcursorCursors*); -void (*XcursorAnimateDestroy_dylibloader_wrapper_xcursor)( XcursorAnimate*); -Cursor (*XcursorAnimateNext_dylibloader_wrapper_xcursor)( XcursorAnimate*); -XcursorComment* (*XcursorCommentCreate_dylibloader_wrapper_xcursor)( XcursorUInt, int); -void (*XcursorCommentDestroy_dylibloader_wrapper_xcursor)( XcursorComment*); -XcursorComments* (*XcursorCommentsCreate_dylibloader_wrapper_xcursor)( int); -void (*XcursorCommentsDestroy_dylibloader_wrapper_xcursor)( XcursorComments*); -XcursorImage* (*XcursorXcFileLoadImage_dylibloader_wrapper_xcursor)( XcursorFile*, int); -XcursorImages* (*XcursorXcFileLoadImages_dylibloader_wrapper_xcursor)( XcursorFile*, int); -XcursorImages* (*XcursorXcFileLoadAllImages_dylibloader_wrapper_xcursor)( XcursorFile*); -XcursorBool (*XcursorXcFileLoad_dylibloader_wrapper_xcursor)( XcursorFile*, XcursorComments**, XcursorImages**); -XcursorBool (*XcursorXcFileSave_dylibloader_wrapper_xcursor)( XcursorFile*,const XcursorComments*,const XcursorImages*); -XcursorImage* (*XcursorFileLoadImage_dylibloader_wrapper_xcursor)( FILE*, int); -XcursorImages* (*XcursorFileLoadImages_dylibloader_wrapper_xcursor)( FILE*, int); -XcursorImages* (*XcursorFileLoadAllImages_dylibloader_wrapper_xcursor)( FILE*); -XcursorBool (*XcursorFileLoad_dylibloader_wrapper_xcursor)( FILE*, XcursorComments**, XcursorImages**); -XcursorBool (*XcursorFileSaveImages_dylibloader_wrapper_xcursor)( FILE*,const XcursorImages*); -XcursorBool (*XcursorFileSave_dylibloader_wrapper_xcursor)( FILE*,const XcursorComments*,const XcursorImages*); -XcursorImage* (*XcursorFilenameLoadImage_dylibloader_wrapper_xcursor)(const char*, int); -XcursorImages* (*XcursorFilenameLoadImages_dylibloader_wrapper_xcursor)(const char*, int); -XcursorImages* (*XcursorFilenameLoadAllImages_dylibloader_wrapper_xcursor)(const char*); -XcursorBool (*XcursorFilenameLoad_dylibloader_wrapper_xcursor)(const char*, XcursorComments**, XcursorImages**); -XcursorBool (*XcursorFilenameSaveImages_dylibloader_wrapper_xcursor)(const char*,const XcursorImages*); -XcursorBool (*XcursorFilenameSave_dylibloader_wrapper_xcursor)(const char*,const XcursorComments*,const XcursorImages*); -XcursorImage* (*XcursorLibraryLoadImage_dylibloader_wrapper_xcursor)(const char*,const char*, int); -XcursorImages* (*XcursorLibraryLoadImages_dylibloader_wrapper_xcursor)(const char*,const char*, int); -const char* (*XcursorLibraryPath_dylibloader_wrapper_xcursor)( void); -int (*XcursorLibraryShape_dylibloader_wrapper_xcursor)(const char*); -Cursor (*XcursorImageLoadCursor_dylibloader_wrapper_xcursor)( Display*,const XcursorImage*); -XcursorCursors* (*XcursorImagesLoadCursors_dylibloader_wrapper_xcursor)( Display*,const XcursorImages*); -Cursor (*XcursorImagesLoadCursor_dylibloader_wrapper_xcursor)( Display*,const XcursorImages*); -Cursor (*XcursorFilenameLoadCursor_dylibloader_wrapper_xcursor)( Display*,const char*); -XcursorCursors* (*XcursorFilenameLoadCursors_dylibloader_wrapper_xcursor)( Display*,const char*); -Cursor (*XcursorLibraryLoadCursor_dylibloader_wrapper_xcursor)( Display*,const char*); -XcursorCursors* (*XcursorLibraryLoadCursors_dylibloader_wrapper_xcursor)( Display*,const char*); -XcursorImage* (*XcursorShapeLoadImage_dylibloader_wrapper_xcursor)( unsigned int,const char*, int); -XcursorImages* (*XcursorShapeLoadImages_dylibloader_wrapper_xcursor)( unsigned int,const char*, int); -Cursor (*XcursorShapeLoadCursor_dylibloader_wrapper_xcursor)( Display*, unsigned int); -XcursorCursors* (*XcursorShapeLoadCursors_dylibloader_wrapper_xcursor)( Display*, unsigned int); -Cursor (*XcursorTryShapeCursor_dylibloader_wrapper_xcursor)( Display*, Font, Font, unsigned int, unsigned int,const XColor*,const XColor*); -void (*XcursorNoticeCreateBitmap_dylibloader_wrapper_xcursor)( Display*, Pixmap, unsigned int, unsigned int); -void (*XcursorNoticePutBitmap_dylibloader_wrapper_xcursor)( Display*, Drawable, XImage*); -Cursor (*XcursorTryShapeBitmapCursor_dylibloader_wrapper_xcursor)( Display*, Pixmap, Pixmap, XColor*, XColor*, unsigned int, unsigned int); -void (*XcursorImageHash_dylibloader_wrapper_xcursor)( XImage*, unsigned char [16]); -XcursorBool (*XcursorSupportsARGB_dylibloader_wrapper_xcursor)( Display*); -XcursorBool (*XcursorSupportsAnim_dylibloader_wrapper_xcursor)( Display*); -XcursorBool (*XcursorSetDefaultSize_dylibloader_wrapper_xcursor)( Display*, int); -int (*XcursorGetDefaultSize_dylibloader_wrapper_xcursor)( Display*); -XcursorBool (*XcursorSetTheme_dylibloader_wrapper_xcursor)( Display*,const char*); -char* (*XcursorGetTheme_dylibloader_wrapper_xcursor)( Display*); -XcursorBool (*XcursorGetThemeCore_dylibloader_wrapper_xcursor)( Display*); -XcursorBool (*XcursorSetThemeCore_dylibloader_wrapper_xcursor)( Display*, XcursorBool); +XcursorImage *(*XcursorImageCreate_dylibloader_wrapper_xcursor)(int, int); +void (*XcursorImageDestroy_dylibloader_wrapper_xcursor)(XcursorImage *); +XcursorImages *(*XcursorImagesCreate_dylibloader_wrapper_xcursor)(int); +void (*XcursorImagesDestroy_dylibloader_wrapper_xcursor)(XcursorImages *); +void (*XcursorImagesSetName_dylibloader_wrapper_xcursor)(XcursorImages *, const char *); +XcursorCursors *(*XcursorCursorsCreate_dylibloader_wrapper_xcursor)(Display *, int); +void (*XcursorCursorsDestroy_dylibloader_wrapper_xcursor)(XcursorCursors *); +XcursorAnimate *(*XcursorAnimateCreate_dylibloader_wrapper_xcursor)(XcursorCursors *); +void (*XcursorAnimateDestroy_dylibloader_wrapper_xcursor)(XcursorAnimate *); +Cursor (*XcursorAnimateNext_dylibloader_wrapper_xcursor)(XcursorAnimate *); +XcursorComment *(*XcursorCommentCreate_dylibloader_wrapper_xcursor)(XcursorUInt, int); +void (*XcursorCommentDestroy_dylibloader_wrapper_xcursor)(XcursorComment *); +XcursorComments *(*XcursorCommentsCreate_dylibloader_wrapper_xcursor)(int); +void (*XcursorCommentsDestroy_dylibloader_wrapper_xcursor)(XcursorComments *); +XcursorImage *(*XcursorXcFileLoadImage_dylibloader_wrapper_xcursor)(XcursorFile *, int); +XcursorImages *(*XcursorXcFileLoadImages_dylibloader_wrapper_xcursor)(XcursorFile *, int); +XcursorImages *(*XcursorXcFileLoadAllImages_dylibloader_wrapper_xcursor)(XcursorFile *); +XcursorBool (*XcursorXcFileLoad_dylibloader_wrapper_xcursor)(XcursorFile *, XcursorComments **, XcursorImages **); +XcursorBool (*XcursorXcFileSave_dylibloader_wrapper_xcursor)(XcursorFile *, const XcursorComments *, const XcursorImages *); +XcursorImage *(*XcursorFileLoadImage_dylibloader_wrapper_xcursor)(FILE *, int); +XcursorImages *(*XcursorFileLoadImages_dylibloader_wrapper_xcursor)(FILE *, int); +XcursorImages *(*XcursorFileLoadAllImages_dylibloader_wrapper_xcursor)(FILE *); +XcursorBool (*XcursorFileLoad_dylibloader_wrapper_xcursor)(FILE *, XcursorComments **, XcursorImages **); +XcursorBool (*XcursorFileSaveImages_dylibloader_wrapper_xcursor)(FILE *, const XcursorImages *); +XcursorBool (*XcursorFileSave_dylibloader_wrapper_xcursor)(FILE *, const XcursorComments *, const XcursorImages *); +XcursorImage *(*XcursorFilenameLoadImage_dylibloader_wrapper_xcursor)(const char *, int); +XcursorImages *(*XcursorFilenameLoadImages_dylibloader_wrapper_xcursor)(const char *, int); +XcursorImages *(*XcursorFilenameLoadAllImages_dylibloader_wrapper_xcursor)(const char *); +XcursorBool (*XcursorFilenameLoad_dylibloader_wrapper_xcursor)(const char *, XcursorComments **, XcursorImages **); +XcursorBool (*XcursorFilenameSaveImages_dylibloader_wrapper_xcursor)(const char *, const XcursorImages *); +XcursorBool (*XcursorFilenameSave_dylibloader_wrapper_xcursor)(const char *, const XcursorComments *, const XcursorImages *); +XcursorImage *(*XcursorLibraryLoadImage_dylibloader_wrapper_xcursor)(const char *, const char *, int); +XcursorImages *(*XcursorLibraryLoadImages_dylibloader_wrapper_xcursor)(const char *, const char *, int); +const char *(*XcursorLibraryPath_dylibloader_wrapper_xcursor)(void); +int (*XcursorLibraryShape_dylibloader_wrapper_xcursor)(const char *); +Cursor (*XcursorImageLoadCursor_dylibloader_wrapper_xcursor)(Display *, const XcursorImage *); +XcursorCursors *(*XcursorImagesLoadCursors_dylibloader_wrapper_xcursor)(Display *, const XcursorImages *); +Cursor (*XcursorImagesLoadCursor_dylibloader_wrapper_xcursor)(Display *, const XcursorImages *); +Cursor (*XcursorFilenameLoadCursor_dylibloader_wrapper_xcursor)(Display *, const char *); +XcursorCursors *(*XcursorFilenameLoadCursors_dylibloader_wrapper_xcursor)(Display *, const char *); +Cursor (*XcursorLibraryLoadCursor_dylibloader_wrapper_xcursor)(Display *, const char *); +XcursorCursors *(*XcursorLibraryLoadCursors_dylibloader_wrapper_xcursor)(Display *, const char *); +XcursorImage *(*XcursorShapeLoadImage_dylibloader_wrapper_xcursor)(unsigned int, const char *, int); +XcursorImages *(*XcursorShapeLoadImages_dylibloader_wrapper_xcursor)(unsigned int, const char *, int); +Cursor (*XcursorShapeLoadCursor_dylibloader_wrapper_xcursor)(Display *, unsigned int); +XcursorCursors *(*XcursorShapeLoadCursors_dylibloader_wrapper_xcursor)(Display *, unsigned int); +Cursor (*XcursorTryShapeCursor_dylibloader_wrapper_xcursor)(Display *, Font, Font, unsigned int, unsigned int, const XColor *, const XColor *); +void (*XcursorNoticeCreateBitmap_dylibloader_wrapper_xcursor)(Display *, Pixmap, unsigned int, unsigned int); +void (*XcursorNoticePutBitmap_dylibloader_wrapper_xcursor)(Display *, Drawable, XImage *); +Cursor (*XcursorTryShapeBitmapCursor_dylibloader_wrapper_xcursor)(Display *, Pixmap, Pixmap, XColor *, XColor *, unsigned int, unsigned int); +void (*XcursorImageHash_dylibloader_wrapper_xcursor)(XImage *, unsigned char [16]); +XcursorBool (*XcursorSupportsARGB_dylibloader_wrapper_xcursor)(Display *); +XcursorBool (*XcursorSupportsAnim_dylibloader_wrapper_xcursor)(Display *); +XcursorBool (*XcursorSetDefaultSize_dylibloader_wrapper_xcursor)(Display *, int); +int (*XcursorGetDefaultSize_dylibloader_wrapper_xcursor)(Display *); +XcursorBool (*XcursorSetTheme_dylibloader_wrapper_xcursor)(Display *, const char *); +char *(*XcursorGetTheme_dylibloader_wrapper_xcursor)(Display *); +XcursorBool (*XcursorGetThemeCore_dylibloader_wrapper_xcursor)(Display *); +XcursorBool (*XcursorSetThemeCore_dylibloader_wrapper_xcursor)(Display *, XcursorBool); int initialize_xcursor(int verbose) { void *handle; char *error; diff --git a/platform/linuxbsd/x11/dynwrappers/xcursor-so_wrap.h b/platform/linuxbsd/x11/dynwrappers/xcursor-so_wrap.h index 9f8d8bbca2..7266cfe609 100644 --- a/platform/linuxbsd/x11/dynwrappers/xcursor-so_wrap.h +++ b/platform/linuxbsd/x11/dynwrappers/xcursor-so_wrap.h @@ -2,13 +2,9 @@ #define DYLIBLOAD_WRAPPER_XCURSOR // This file is generated. Do not edit! // see https://github.com/hpvb/dynload-wrapper for details -// generated by generate-wrapper.py 0.3 on 2023-01-23 15:09:53 -// flags: generate-wrapper.py --include ./thirdparty/linuxbsd_headers/X11/Xcursor/Xcursor.h --sys-include "thirdparty/linuxbsd_headers/X11/Xcursor/Xcursor.h" --soname libXcursor.so.1 --init-name xcursor --output-header ./platform/linuxbsd/x11/dynwrappers/xcursor-so_wrap.h --output-implementation ./platform/linuxbsd/x11/dynwrappers/xcursor-so_wrap.c +// generated by generate-wrapper.py 0.6 on 2024-11-09 02:52:36 +// flags: generate-wrapper.py --include ./thirdparty/linuxbsd_headers/X11/Xcursor/Xcursor.h --sys-include thirdparty/linuxbsd_headers/X11/Xcursor/Xcursor.h --soname libXcursor.so.1 --init-name xcursor --output-header ./platform/linuxbsd/x11/dynwrappers/xcursor-so_wrap.h --output-implementation ./platform/linuxbsd/x11/dynwrappers/xcursor-so_wrap.c --ignore-other // -// NOTE: Generated from Xcursor 1.2.0. -// This has been handpatched to workaround some issues with the generator that -// will be eventually fixed. In this case, non-existent symbols inherited from -// libX11, but absent in libXcursor.so.1, were removed. #include <stdint.h> #define XcursorImageCreate XcursorImageCreate_dylibloader_orig_xcursor @@ -192,65 +188,65 @@ extern "C" { #define XcursorGetTheme XcursorGetTheme_dylibloader_wrapper_xcursor #define XcursorGetThemeCore XcursorGetThemeCore_dylibloader_wrapper_xcursor #define XcursorSetThemeCore XcursorSetThemeCore_dylibloader_wrapper_xcursor -extern XcursorImage* (*XcursorImageCreate_dylibloader_wrapper_xcursor)( int, int); -extern void (*XcursorImageDestroy_dylibloader_wrapper_xcursor)( XcursorImage*); -extern XcursorImages* (*XcursorImagesCreate_dylibloader_wrapper_xcursor)( int); -extern void (*XcursorImagesDestroy_dylibloader_wrapper_xcursor)( XcursorImages*); -extern void (*XcursorImagesSetName_dylibloader_wrapper_xcursor)( XcursorImages*,const char*); -extern XcursorCursors* (*XcursorCursorsCreate_dylibloader_wrapper_xcursor)( Display*, int); -extern void (*XcursorCursorsDestroy_dylibloader_wrapper_xcursor)( XcursorCursors*); -extern XcursorAnimate* (*XcursorAnimateCreate_dylibloader_wrapper_xcursor)( XcursorCursors*); -extern void (*XcursorAnimateDestroy_dylibloader_wrapper_xcursor)( XcursorAnimate*); -extern Cursor (*XcursorAnimateNext_dylibloader_wrapper_xcursor)( XcursorAnimate*); -extern XcursorComment* (*XcursorCommentCreate_dylibloader_wrapper_xcursor)( XcursorUInt, int); -extern void (*XcursorCommentDestroy_dylibloader_wrapper_xcursor)( XcursorComment*); -extern XcursorComments* (*XcursorCommentsCreate_dylibloader_wrapper_xcursor)( int); -extern void (*XcursorCommentsDestroy_dylibloader_wrapper_xcursor)( XcursorComments*); -extern XcursorImage* (*XcursorXcFileLoadImage_dylibloader_wrapper_xcursor)( XcursorFile*, int); -extern XcursorImages* (*XcursorXcFileLoadImages_dylibloader_wrapper_xcursor)( XcursorFile*, int); -extern XcursorImages* (*XcursorXcFileLoadAllImages_dylibloader_wrapper_xcursor)( XcursorFile*); -extern XcursorBool (*XcursorXcFileLoad_dylibloader_wrapper_xcursor)( XcursorFile*, XcursorComments**, XcursorImages**); -extern XcursorBool (*XcursorXcFileSave_dylibloader_wrapper_xcursor)( XcursorFile*,const XcursorComments*,const XcursorImages*); -extern XcursorImage* (*XcursorFileLoadImage_dylibloader_wrapper_xcursor)( FILE*, int); -extern XcursorImages* (*XcursorFileLoadImages_dylibloader_wrapper_xcursor)( FILE*, int); -extern XcursorImages* (*XcursorFileLoadAllImages_dylibloader_wrapper_xcursor)( FILE*); -extern XcursorBool (*XcursorFileLoad_dylibloader_wrapper_xcursor)( FILE*, XcursorComments**, XcursorImages**); -extern XcursorBool (*XcursorFileSaveImages_dylibloader_wrapper_xcursor)( FILE*,const XcursorImages*); -extern XcursorBool (*XcursorFileSave_dylibloader_wrapper_xcursor)( FILE*,const XcursorComments*,const XcursorImages*); -extern XcursorImage* (*XcursorFilenameLoadImage_dylibloader_wrapper_xcursor)(const char*, int); -extern XcursorImages* (*XcursorFilenameLoadImages_dylibloader_wrapper_xcursor)(const char*, int); -extern XcursorImages* (*XcursorFilenameLoadAllImages_dylibloader_wrapper_xcursor)(const char*); -extern XcursorBool (*XcursorFilenameLoad_dylibloader_wrapper_xcursor)(const char*, XcursorComments**, XcursorImages**); -extern XcursorBool (*XcursorFilenameSaveImages_dylibloader_wrapper_xcursor)(const char*,const XcursorImages*); -extern XcursorBool (*XcursorFilenameSave_dylibloader_wrapper_xcursor)(const char*,const XcursorComments*,const XcursorImages*); -extern XcursorImage* (*XcursorLibraryLoadImage_dylibloader_wrapper_xcursor)(const char*,const char*, int); -extern XcursorImages* (*XcursorLibraryLoadImages_dylibloader_wrapper_xcursor)(const char*,const char*, int); -extern const char* (*XcursorLibraryPath_dylibloader_wrapper_xcursor)( void); -extern int (*XcursorLibraryShape_dylibloader_wrapper_xcursor)(const char*); -extern Cursor (*XcursorImageLoadCursor_dylibloader_wrapper_xcursor)( Display*,const XcursorImage*); -extern XcursorCursors* (*XcursorImagesLoadCursors_dylibloader_wrapper_xcursor)( Display*,const XcursorImages*); -extern Cursor (*XcursorImagesLoadCursor_dylibloader_wrapper_xcursor)( Display*,const XcursorImages*); -extern Cursor (*XcursorFilenameLoadCursor_dylibloader_wrapper_xcursor)( Display*,const char*); -extern XcursorCursors* (*XcursorFilenameLoadCursors_dylibloader_wrapper_xcursor)( Display*,const char*); -extern Cursor (*XcursorLibraryLoadCursor_dylibloader_wrapper_xcursor)( Display*,const char*); -extern XcursorCursors* (*XcursorLibraryLoadCursors_dylibloader_wrapper_xcursor)( Display*,const char*); -extern XcursorImage* (*XcursorShapeLoadImage_dylibloader_wrapper_xcursor)( unsigned int,const char*, int); -extern XcursorImages* (*XcursorShapeLoadImages_dylibloader_wrapper_xcursor)( unsigned int,const char*, int); -extern Cursor (*XcursorShapeLoadCursor_dylibloader_wrapper_xcursor)( Display*, unsigned int); -extern XcursorCursors* (*XcursorShapeLoadCursors_dylibloader_wrapper_xcursor)( Display*, unsigned int); -extern Cursor (*XcursorTryShapeCursor_dylibloader_wrapper_xcursor)( Display*, Font, Font, unsigned int, unsigned int,const XColor*,const XColor*); -extern void (*XcursorNoticeCreateBitmap_dylibloader_wrapper_xcursor)( Display*, Pixmap, unsigned int, unsigned int); -extern void (*XcursorNoticePutBitmap_dylibloader_wrapper_xcursor)( Display*, Drawable, XImage*); -extern Cursor (*XcursorTryShapeBitmapCursor_dylibloader_wrapper_xcursor)( Display*, Pixmap, Pixmap, XColor*, XColor*, unsigned int, unsigned int); -extern void (*XcursorImageHash_dylibloader_wrapper_xcursor)( XImage*, unsigned char [16]); -extern XcursorBool (*XcursorSupportsARGB_dylibloader_wrapper_xcursor)( Display*); -extern XcursorBool (*XcursorSupportsAnim_dylibloader_wrapper_xcursor)( Display*); -extern XcursorBool (*XcursorSetDefaultSize_dylibloader_wrapper_xcursor)( Display*, int); -extern int (*XcursorGetDefaultSize_dylibloader_wrapper_xcursor)( Display*); -extern XcursorBool (*XcursorSetTheme_dylibloader_wrapper_xcursor)( Display*,const char*); -extern char* (*XcursorGetTheme_dylibloader_wrapper_xcursor)( Display*); -extern XcursorBool (*XcursorGetThemeCore_dylibloader_wrapper_xcursor)( Display*); -extern XcursorBool (*XcursorSetThemeCore_dylibloader_wrapper_xcursor)( Display*, XcursorBool); +extern XcursorImage *(*XcursorImageCreate_dylibloader_wrapper_xcursor)(int, int); +extern void (*XcursorImageDestroy_dylibloader_wrapper_xcursor)(XcursorImage *); +extern XcursorImages *(*XcursorImagesCreate_dylibloader_wrapper_xcursor)(int); +extern void (*XcursorImagesDestroy_dylibloader_wrapper_xcursor)(XcursorImages *); +extern void (*XcursorImagesSetName_dylibloader_wrapper_xcursor)(XcursorImages *, const char *); +extern XcursorCursors *(*XcursorCursorsCreate_dylibloader_wrapper_xcursor)(Display *, int); +extern void (*XcursorCursorsDestroy_dylibloader_wrapper_xcursor)(XcursorCursors *); +extern XcursorAnimate *(*XcursorAnimateCreate_dylibloader_wrapper_xcursor)(XcursorCursors *); +extern void (*XcursorAnimateDestroy_dylibloader_wrapper_xcursor)(XcursorAnimate *); +extern Cursor (*XcursorAnimateNext_dylibloader_wrapper_xcursor)(XcursorAnimate *); +extern XcursorComment *(*XcursorCommentCreate_dylibloader_wrapper_xcursor)(XcursorUInt, int); +extern void (*XcursorCommentDestroy_dylibloader_wrapper_xcursor)(XcursorComment *); +extern XcursorComments *(*XcursorCommentsCreate_dylibloader_wrapper_xcursor)(int); +extern void (*XcursorCommentsDestroy_dylibloader_wrapper_xcursor)(XcursorComments *); +extern XcursorImage *(*XcursorXcFileLoadImage_dylibloader_wrapper_xcursor)(XcursorFile *, int); +extern XcursorImages *(*XcursorXcFileLoadImages_dylibloader_wrapper_xcursor)(XcursorFile *, int); +extern XcursorImages *(*XcursorXcFileLoadAllImages_dylibloader_wrapper_xcursor)(XcursorFile *); +extern XcursorBool (*XcursorXcFileLoad_dylibloader_wrapper_xcursor)(XcursorFile *, XcursorComments **, XcursorImages **); +extern XcursorBool (*XcursorXcFileSave_dylibloader_wrapper_xcursor)(XcursorFile *, const XcursorComments *, const XcursorImages *); +extern XcursorImage *(*XcursorFileLoadImage_dylibloader_wrapper_xcursor)(FILE *, int); +extern XcursorImages *(*XcursorFileLoadImages_dylibloader_wrapper_xcursor)(FILE *, int); +extern XcursorImages *(*XcursorFileLoadAllImages_dylibloader_wrapper_xcursor)(FILE *); +extern XcursorBool (*XcursorFileLoad_dylibloader_wrapper_xcursor)(FILE *, XcursorComments **, XcursorImages **); +extern XcursorBool (*XcursorFileSaveImages_dylibloader_wrapper_xcursor)(FILE *, const XcursorImages *); +extern XcursorBool (*XcursorFileSave_dylibloader_wrapper_xcursor)(FILE *, const XcursorComments *, const XcursorImages *); +extern XcursorImage *(*XcursorFilenameLoadImage_dylibloader_wrapper_xcursor)(const char *, int); +extern XcursorImages *(*XcursorFilenameLoadImages_dylibloader_wrapper_xcursor)(const char *, int); +extern XcursorImages *(*XcursorFilenameLoadAllImages_dylibloader_wrapper_xcursor)(const char *); +extern XcursorBool (*XcursorFilenameLoad_dylibloader_wrapper_xcursor)(const char *, XcursorComments **, XcursorImages **); +extern XcursorBool (*XcursorFilenameSaveImages_dylibloader_wrapper_xcursor)(const char *, const XcursorImages *); +extern XcursorBool (*XcursorFilenameSave_dylibloader_wrapper_xcursor)(const char *, const XcursorComments *, const XcursorImages *); +extern XcursorImage *(*XcursorLibraryLoadImage_dylibloader_wrapper_xcursor)(const char *, const char *, int); +extern XcursorImages *(*XcursorLibraryLoadImages_dylibloader_wrapper_xcursor)(const char *, const char *, int); +extern const char *(*XcursorLibraryPath_dylibloader_wrapper_xcursor)(void); +extern int (*XcursorLibraryShape_dylibloader_wrapper_xcursor)(const char *); +extern Cursor (*XcursorImageLoadCursor_dylibloader_wrapper_xcursor)(Display *, const XcursorImage *); +extern XcursorCursors *(*XcursorImagesLoadCursors_dylibloader_wrapper_xcursor)(Display *, const XcursorImages *); +extern Cursor (*XcursorImagesLoadCursor_dylibloader_wrapper_xcursor)(Display *, const XcursorImages *); +extern Cursor (*XcursorFilenameLoadCursor_dylibloader_wrapper_xcursor)(Display *, const char *); +extern XcursorCursors *(*XcursorFilenameLoadCursors_dylibloader_wrapper_xcursor)(Display *, const char *); +extern Cursor (*XcursorLibraryLoadCursor_dylibloader_wrapper_xcursor)(Display *, const char *); +extern XcursorCursors *(*XcursorLibraryLoadCursors_dylibloader_wrapper_xcursor)(Display *, const char *); +extern XcursorImage *(*XcursorShapeLoadImage_dylibloader_wrapper_xcursor)(unsigned int, const char *, int); +extern XcursorImages *(*XcursorShapeLoadImages_dylibloader_wrapper_xcursor)(unsigned int, const char *, int); +extern Cursor (*XcursorShapeLoadCursor_dylibloader_wrapper_xcursor)(Display *, unsigned int); +extern XcursorCursors *(*XcursorShapeLoadCursors_dylibloader_wrapper_xcursor)(Display *, unsigned int); +extern Cursor (*XcursorTryShapeCursor_dylibloader_wrapper_xcursor)(Display *, Font, Font, unsigned int, unsigned int, const XColor *, const XColor *); +extern void (*XcursorNoticeCreateBitmap_dylibloader_wrapper_xcursor)(Display *, Pixmap, unsigned int, unsigned int); +extern void (*XcursorNoticePutBitmap_dylibloader_wrapper_xcursor)(Display *, Drawable, XImage *); +extern Cursor (*XcursorTryShapeBitmapCursor_dylibloader_wrapper_xcursor)(Display *, Pixmap, Pixmap, XColor *, XColor *, unsigned int, unsigned int); +extern void (*XcursorImageHash_dylibloader_wrapper_xcursor)(XImage *, unsigned char [16]); +extern XcursorBool (*XcursorSupportsARGB_dylibloader_wrapper_xcursor)(Display *); +extern XcursorBool (*XcursorSupportsAnim_dylibloader_wrapper_xcursor)(Display *); +extern XcursorBool (*XcursorSetDefaultSize_dylibloader_wrapper_xcursor)(Display *, int); +extern int (*XcursorGetDefaultSize_dylibloader_wrapper_xcursor)(Display *); +extern XcursorBool (*XcursorSetTheme_dylibloader_wrapper_xcursor)(Display *, const char *); +extern char *(*XcursorGetTheme_dylibloader_wrapper_xcursor)(Display *); +extern XcursorBool (*XcursorGetThemeCore_dylibloader_wrapper_xcursor)(Display *); +extern XcursorBool (*XcursorSetThemeCore_dylibloader_wrapper_xcursor)(Display *, XcursorBool); int initialize_xcursor(int verbose); #ifdef __cplusplus } diff --git a/platform/linuxbsd/x11/dynwrappers/xext-so_wrap.c b/platform/linuxbsd/x11/dynwrappers/xext-so_wrap.c index 4e3349c574..56ae854686 100644 --- a/platform/linuxbsd/x11/dynwrappers/xext-so_wrap.c +++ b/platform/linuxbsd/x11/dynwrappers/xext-so_wrap.c @@ -1,19 +1,11 @@ // This file is generated. Do not edit! // see https://github.com/hpvb/dynload-wrapper for details -// generated by generate-wrapper.py 0.3 on 2023-01-23 15:11:29 -// flags: generate-wrapper.py --sys-include "thirdparty/linuxbsd_headers/X11/extensions/Xext.h" --include ./thirdparty/linuxbsd_headers/X11/extensions/shape.h --sys-include "thirdparty/linuxbsd_headers/X11/extensions/shape.h" --soname libXext.so.6 --init-name xext --output-header ./platform/linuxbsd/x11/dynwrappers/xext-so_wrap.h --output-implementation ./platform/linuxbsd/x11/dynwrappers/xext-so_wrap.c +// generated by generate-wrapper.py 0.6 on 2024-11-09 02:52:36 +// flags: generate-wrapper.py --sys-include thirdparty/linuxbsd_headers/X11/extensions/Xext.h --include ./thirdparty/linuxbsd_headers/X11/extensions/shape.h --sys-include thirdparty/linuxbsd_headers/X11/extensions/shape.h --soname libXext.so.6 --init-name xext --output-header ./platform/linuxbsd/x11/dynwrappers/xext-so_wrap.h --output-implementation ./platform/linuxbsd/x11/dynwrappers/xext-so_wrap.c --ignore-other --implementation-header thirdparty/linuxbsd_headers/X11/Xlib.h // -// NOTE: Generated from Xext 1.3.5. -// This has been handpatched to workaround some issues with the generator that -// will be eventually fixed. In this case, non-existent symbols inherited from -// libX11, but absent in libXext.so.6, were removed and an include needed for -// proper parsing was added (this had also to be temporarily added to the -// original header, as dynload-wrapper would complain otherwise) #include <stdint.h> -// HANDPATCH: Needed for a successful compilation. #include "thirdparty/linuxbsd_headers/X11/Xlib.h" - #define XShapeQueryExtension XShapeQueryExtension_dylibloader_orig_xext #define XShapeQueryVersion XShapeQueryVersion_dylibloader_orig_xext #define XShapeCombineRegion XShapeCombineRegion_dylibloader_orig_xext @@ -40,17 +32,17 @@ #undef XShapeGetRectangles #include <dlfcn.h> #include <stdio.h> -int (*XShapeQueryExtension_dylibloader_wrapper_xext)( Display*, int*, int*); -int (*XShapeQueryVersion_dylibloader_wrapper_xext)( Display*, int*, int*); -void (*XShapeCombineRegion_dylibloader_wrapper_xext)( Display*, Window, int, int, int, Region, int); -void (*XShapeCombineRectangles_dylibloader_wrapper_xext)( Display*, Window, int, int, int, XRectangle*, int, int, int); -void (*XShapeCombineMask_dylibloader_wrapper_xext)( Display*, Window, int, int, int, Pixmap, int); -void (*XShapeCombineShape_dylibloader_wrapper_xext)( Display*, Window, int, int, int, Window, int, int); -void (*XShapeOffsetShape_dylibloader_wrapper_xext)( Display*, Window, int, int, int); -int (*XShapeQueryExtents_dylibloader_wrapper_xext)( Display*, Window, int*, int*, int*, unsigned int*, unsigned int*, int*, int*, int*, unsigned int*, unsigned int*); -void (*XShapeSelectInput_dylibloader_wrapper_xext)( Display*, Window, unsigned long); -unsigned long (*XShapeInputSelected_dylibloader_wrapper_xext)( Display*, Window); -XRectangle* (*XShapeGetRectangles_dylibloader_wrapper_xext)( Display*, Window, int, int*, int*); +int (*XShapeQueryExtension_dylibloader_wrapper_xext)(Display *, int *, int *); +int (*XShapeQueryVersion_dylibloader_wrapper_xext)(Display *, int *, int *); +void (*XShapeCombineRegion_dylibloader_wrapper_xext)(Display *, Window, int, int, int, Region, int); +void (*XShapeCombineRectangles_dylibloader_wrapper_xext)(Display *, Window, int, int, int, XRectangle *, int, int, int); +void (*XShapeCombineMask_dylibloader_wrapper_xext)(Display *, Window, int, int, int, Pixmap, int); +void (*XShapeCombineShape_dylibloader_wrapper_xext)(Display *, Window, int, int, int, Window, int, int); +void (*XShapeOffsetShape_dylibloader_wrapper_xext)(Display *, Window, int, int, int); +int (*XShapeQueryExtents_dylibloader_wrapper_xext)(Display *, Window, int *, int *, int *, unsigned int *, unsigned int *, int *, int *, int *, unsigned int *, unsigned int *); +void (*XShapeSelectInput_dylibloader_wrapper_xext)(Display *, Window, unsigned long); +unsigned long (*XShapeInputSelected_dylibloader_wrapper_xext)(Display *, Window); +XRectangle *(*XShapeGetRectangles_dylibloader_wrapper_xext)(Display *, Window, int, int *, int *); int initialize_xext(int verbose) { void *handle; char *error; diff --git a/platform/linuxbsd/x11/dynwrappers/xext-so_wrap.h b/platform/linuxbsd/x11/dynwrappers/xext-so_wrap.h index e535756d82..ecce399d09 100644 --- a/platform/linuxbsd/x11/dynwrappers/xext-so_wrap.h +++ b/platform/linuxbsd/x11/dynwrappers/xext-so_wrap.h @@ -2,20 +2,11 @@ #define DYLIBLOAD_WRAPPER_XEXT // This file is generated. Do not edit! // see https://github.com/hpvb/dynload-wrapper for details -// generated by generate-wrapper.py 0.3 on 2023-01-23 15:11:29 -// flags: generate-wrapper.py --sys-include "thirdparty/linuxbsd_headers/X11/extensions/Xext.h" --include ./thirdparty/linuxbsd_headers/X11/extensions/shape.h --sys-include "thirdparty/linuxbsd_headers/X11/extensions/shape.h" --soname libXext.so.6 --init-name xext --output-header ./platform/linuxbsd/x11/dynwrappers/xext-so_wrap.h --output-implementation ./platform/linuxbsd/x11/dynwrappers/xext-so_wrap.c +// generated by generate-wrapper.py 0.6 on 2024-11-09 02:52:36 +// flags: generate-wrapper.py --sys-include thirdparty/linuxbsd_headers/X11/extensions/Xext.h --include ./thirdparty/linuxbsd_headers/X11/extensions/shape.h --sys-include thirdparty/linuxbsd_headers/X11/extensions/shape.h --soname libXext.so.6 --init-name xext --output-header ./platform/linuxbsd/x11/dynwrappers/xext-so_wrap.h --output-implementation ./platform/linuxbsd/x11/dynwrappers/xext-so_wrap.c --ignore-other --implementation-header thirdparty/linuxbsd_headers/X11/Xlib.h // -// NOTE: Generated from Xext 1.3.5. -// This has been handpatched to workaround some issues with the generator that -// will be eventually fixed. In this case, non-existent symbols inherited from -// libX11, but absent in libXext.so.6, were removed and an include needed for -// proper parsing was added (this had also to be temporarily added to the -// original header, as dynload-wrapper would complain otherwise) #include <stdint.h> -// HANDPATCH: Needed for a successful compilation. -#include "thirdparty/linuxbsd_headers/X11/Xlib.h" - #define XShapeQueryExtension XShapeQueryExtension_dylibloader_orig_xext #define XShapeQueryVersion XShapeQueryVersion_dylibloader_orig_xext #define XShapeCombineRegion XShapeCombineRegion_dylibloader_orig_xext @@ -54,17 +45,17 @@ extern "C" { #define XShapeSelectInput XShapeSelectInput_dylibloader_wrapper_xext #define XShapeInputSelected XShapeInputSelected_dylibloader_wrapper_xext #define XShapeGetRectangles XShapeGetRectangles_dylibloader_wrapper_xext -extern int (*XShapeQueryExtension_dylibloader_wrapper_xext)( Display*, int*, int*); -extern int (*XShapeQueryVersion_dylibloader_wrapper_xext)( Display*, int*, int*); -extern void (*XShapeCombineRegion_dylibloader_wrapper_xext)( Display*, Window, int, int, int, Region, int); -extern void (*XShapeCombineRectangles_dylibloader_wrapper_xext)( Display*, Window, int, int, int, XRectangle*, int, int, int); -extern void (*XShapeCombineMask_dylibloader_wrapper_xext)( Display*, Window, int, int, int, Pixmap, int); -extern void (*XShapeCombineShape_dylibloader_wrapper_xext)( Display*, Window, int, int, int, Window, int, int); -extern void (*XShapeOffsetShape_dylibloader_wrapper_xext)( Display*, Window, int, int, int); -extern int (*XShapeQueryExtents_dylibloader_wrapper_xext)( Display*, Window, int*, int*, int*, unsigned int*, unsigned int*, int*, int*, int*, unsigned int*, unsigned int*); -extern void (*XShapeSelectInput_dylibloader_wrapper_xext)( Display*, Window, unsigned long); -extern unsigned long (*XShapeInputSelected_dylibloader_wrapper_xext)( Display*, Window); -extern XRectangle* (*XShapeGetRectangles_dylibloader_wrapper_xext)( Display*, Window, int, int*, int*); +extern int (*XShapeQueryExtension_dylibloader_wrapper_xext)(Display *, int *, int *); +extern int (*XShapeQueryVersion_dylibloader_wrapper_xext)(Display *, int *, int *); +extern void (*XShapeCombineRegion_dylibloader_wrapper_xext)(Display *, Window, int, int, int, Region, int); +extern void (*XShapeCombineRectangles_dylibloader_wrapper_xext)(Display *, Window, int, int, int, XRectangle *, int, int, int); +extern void (*XShapeCombineMask_dylibloader_wrapper_xext)(Display *, Window, int, int, int, Pixmap, int); +extern void (*XShapeCombineShape_dylibloader_wrapper_xext)(Display *, Window, int, int, int, Window, int, int); +extern void (*XShapeOffsetShape_dylibloader_wrapper_xext)(Display *, Window, int, int, int); +extern int (*XShapeQueryExtents_dylibloader_wrapper_xext)(Display *, Window, int *, int *, int *, unsigned int *, unsigned int *, int *, int *, int *, unsigned int *, unsigned int *); +extern void (*XShapeSelectInput_dylibloader_wrapper_xext)(Display *, Window, unsigned long); +extern unsigned long (*XShapeInputSelected_dylibloader_wrapper_xext)(Display *, Window); +extern XRectangle *(*XShapeGetRectangles_dylibloader_wrapper_xext)(Display *, Window, int, int *, int *); int initialize_xext(int verbose); #ifdef __cplusplus } diff --git a/platform/linuxbsd/x11/dynwrappers/xinerama-so_wrap.c b/platform/linuxbsd/x11/dynwrappers/xinerama-so_wrap.c index 850ed1fc6b..eeb6bf7a8f 100644 --- a/platform/linuxbsd/x11/dynwrappers/xinerama-so_wrap.c +++ b/platform/linuxbsd/x11/dynwrappers/xinerama-so_wrap.c @@ -1,12 +1,8 @@ // This file is generated. Do not edit! // see https://github.com/hpvb/dynload-wrapper for details -// generated by generate-wrapper.py 0.3 on 2023-01-23 15:11:35 -// flags: generate-wrapper.py --include ./thirdparty/linuxbsd_headers/X11/extensions/Xinerama.h --sys-include "thirdparty/linuxbsd_headers/X11/extensions/Xinerama.h" --soname libXinerama.so.1 --init-name xinerama --output-header ./platform/linuxbsd/x11/dynwrappers/xinerama-so_wrap.h --output-implementation ./platform/linuxbsd/x11/dynwrappers/xinerama-so_wrap.c +// generated by generate-wrapper.py 0.6 on 2024-11-09 02:52:36 +// flags: generate-wrapper.py --include ./thirdparty/linuxbsd_headers/X11/extensions/Xinerama.h --sys-include thirdparty/linuxbsd_headers/X11/extensions/Xinerama.h --soname libXinerama.so.1 --init-name xinerama --output-header ./platform/linuxbsd/x11/dynwrappers/xinerama-so_wrap.h --output-implementation ./platform/linuxbsd/x11/dynwrappers/xinerama-so_wrap.c --ignore-other // -// NOTE: Generated from Xinerama 1.1.4. -// This has been handpatched to workaround some issues with the generator that -// will be eventually fixed. In this case, non-existent symbols inherited from -// libX11, but absent in libXinerama.so.1, were removed. #include <stdint.h> #define XineramaQueryExtension XineramaQueryExtension_dylibloader_orig_xinerama @@ -20,10 +16,10 @@ #undef XineramaQueryScreens #include <dlfcn.h> #include <stdio.h> -int (*XineramaQueryExtension_dylibloader_wrapper_xinerama)( Display*, int*, int*); -int (*XineramaQueryVersion_dylibloader_wrapper_xinerama)( Display*, int*, int*); -int (*XineramaIsActive_dylibloader_wrapper_xinerama)( Display*); -XineramaScreenInfo* (*XineramaQueryScreens_dylibloader_wrapper_xinerama)( Display*, int*); +int (*XineramaQueryExtension_dylibloader_wrapper_xinerama)(Display *, int *, int *); +int (*XineramaQueryVersion_dylibloader_wrapper_xinerama)(Display *, int *, int *); +int (*XineramaIsActive_dylibloader_wrapper_xinerama)(Display *); +XineramaScreenInfo *(*XineramaQueryScreens_dylibloader_wrapper_xinerama)(Display *, int *); int initialize_xinerama(int verbose) { void *handle; char *error; diff --git a/platform/linuxbsd/x11/dynwrappers/xinerama-so_wrap.h b/platform/linuxbsd/x11/dynwrappers/xinerama-so_wrap.h index e3cedfc8ad..b421a0ecf5 100644 --- a/platform/linuxbsd/x11/dynwrappers/xinerama-so_wrap.h +++ b/platform/linuxbsd/x11/dynwrappers/xinerama-so_wrap.h @@ -2,13 +2,9 @@ #define DYLIBLOAD_WRAPPER_XINERAMA // This file is generated. Do not edit! // see https://github.com/hpvb/dynload-wrapper for details -// generated by generate-wrapper.py 0.3 on 2023-01-23 15:11:35 -// flags: generate-wrapper.py --include ./thirdparty/linuxbsd_headers/X11/extensions/Xinerama.h --sys-include "thirdparty/linuxbsd_headers/X11/extensions/Xinerama.h" --soname libXinerama.so.1 --init-name xinerama --output-header ./platform/linuxbsd/x11/dynwrappers/xinerama-so_wrap.h --output-implementation ./platform/linuxbsd/x11/dynwrappers/xinerama-so_wrap.c +// generated by generate-wrapper.py 0.6 on 2024-11-09 02:52:36 +// flags: generate-wrapper.py --include ./thirdparty/linuxbsd_headers/X11/extensions/Xinerama.h --sys-include thirdparty/linuxbsd_headers/X11/extensions/Xinerama.h --soname libXinerama.so.1 --init-name xinerama --output-header ./platform/linuxbsd/x11/dynwrappers/xinerama-so_wrap.h --output-implementation ./platform/linuxbsd/x11/dynwrappers/xinerama-so_wrap.c --ignore-other // -// NOTE: Generated from Xinerama 1.1.4. -// This has been handpatched to workaround some issues with the generator that -// will be eventually fixed. In this case, non-existent symbols inherited from -// libX11, but absent in libXinerama.so.1, were removed. #include <stdint.h> #define XineramaQueryExtension XineramaQueryExtension_dylibloader_orig_xinerama @@ -27,10 +23,10 @@ extern "C" { #define XineramaQueryVersion XineramaQueryVersion_dylibloader_wrapper_xinerama #define XineramaIsActive XineramaIsActive_dylibloader_wrapper_xinerama #define XineramaQueryScreens XineramaQueryScreens_dylibloader_wrapper_xinerama -extern int (*XineramaQueryExtension_dylibloader_wrapper_xinerama)( Display*, int*, int*); -extern int (*XineramaQueryVersion_dylibloader_wrapper_xinerama)( Display*, int*, int*); -extern int (*XineramaIsActive_dylibloader_wrapper_xinerama)( Display*); -extern XineramaScreenInfo* (*XineramaQueryScreens_dylibloader_wrapper_xinerama)( Display*, int*); +extern int (*XineramaQueryExtension_dylibloader_wrapper_xinerama)(Display *, int *, int *); +extern int (*XineramaQueryVersion_dylibloader_wrapper_xinerama)(Display *, int *, int *); +extern int (*XineramaIsActive_dylibloader_wrapper_xinerama)(Display *); +extern XineramaScreenInfo *(*XineramaQueryScreens_dylibloader_wrapper_xinerama)(Display *, int *); int initialize_xinerama(int verbose); #ifdef __cplusplus } diff --git a/platform/linuxbsd/x11/dynwrappers/xinput2-so_wrap.c b/platform/linuxbsd/x11/dynwrappers/xinput2-so_wrap.c index fc08b97e3c..8f031acb20 100644 --- a/platform/linuxbsd/x11/dynwrappers/xinput2-so_wrap.c +++ b/platform/linuxbsd/x11/dynwrappers/xinput2-so_wrap.c @@ -1,12 +1,8 @@ // This file is generated. Do not edit! // see https://github.com/hpvb/dynload-wrapper for details -// generated by generate-wrapper.py 0.3 on 2023-01-23 15:12:16 -// flags: generate-wrapper.py --include ./thirdparty/linuxbsd_headers/X11/extensions/XInput2.h --sys-include "thirdparty/linuxbsd_headers/X11/extensions/XInput2.h" --soname libXi.so.6 --init-name xinput2 --output-header ./platform/linuxbsd/x11/dynwrappers/xinput2-so_wrap.h --output-implementation ./platform/linuxbsd/x11/dynwrappers/xinput2-so_wrap.c +// generated by generate-wrapper.py 0.6 on 2024-11-09 02:52:36 +// flags: generate-wrapper.py --include ./thirdparty/linuxbsd_headers/X11/extensions/XInput2.h --sys-include thirdparty/linuxbsd_headers/X11/extensions/XInput2.h --soname libXi.so.6 --init-name xinput2 --output-header ./platform/linuxbsd/x11/dynwrappers/xinput2-so_wrap.h --output-implementation ./platform/linuxbsd/x11/dynwrappers/xinput2-so_wrap.c --ignore-other // -// NOTE: Generated from Xi 1.7.10. -// This has been handpatched to workaround some issues with the generator that -// will be eventually fixed. In this case, non-existent symbols inherited from -// libX11, liXext and libXfixes, but absent in libXi.so.6, were removed. #include <stdint.h> #define XIQueryPointer XIQueryPointer_dylibloader_orig_xinput2 @@ -80,40 +76,40 @@ #undef XIFreeDeviceInfo #include <dlfcn.h> #include <stdio.h> -int (*XIQueryPointer_dylibloader_wrapper_xinput2)( Display*, int, Window, Window*, Window*, double*, double*, double*, double*, XIButtonState*, XIModifierState*, XIGroupState*); -int (*XIWarpPointer_dylibloader_wrapper_xinput2)( Display*, int, Window, Window, double, double, unsigned int, unsigned int, double, double); -int (*XIDefineCursor_dylibloader_wrapper_xinput2)( Display*, int, Window, Cursor); -int (*XIUndefineCursor_dylibloader_wrapper_xinput2)( Display*, int, Window); -int (*XIChangeHierarchy_dylibloader_wrapper_xinput2)( Display*, XIAnyHierarchyChangeInfo*, int); -int (*XISetClientPointer_dylibloader_wrapper_xinput2)( Display*, Window, int); -int (*XIGetClientPointer_dylibloader_wrapper_xinput2)( Display*, Window, int*); -int (*XISelectEvents_dylibloader_wrapper_xinput2)( Display*, Window, XIEventMask*, int); -XIEventMask* (*XIGetSelectedEvents_dylibloader_wrapper_xinput2)( Display*, Window, int*); -int (*XIQueryVersion_dylibloader_wrapper_xinput2)( Display*, int*, int*); -XIDeviceInfo* (*XIQueryDevice_dylibloader_wrapper_xinput2)( Display*, int, int*); -int (*XISetFocus_dylibloader_wrapper_xinput2)( Display*, int, Window, Time); -int (*XIGetFocus_dylibloader_wrapper_xinput2)( Display*, int, Window*); -int (*XIGrabDevice_dylibloader_wrapper_xinput2)( Display*, int, Window, Time, Cursor, int, int, int, XIEventMask*); -int (*XIUngrabDevice_dylibloader_wrapper_xinput2)( Display*, int, Time); -int (*XIAllowEvents_dylibloader_wrapper_xinput2)( Display*, int, int, Time); -int (*XIAllowTouchEvents_dylibloader_wrapper_xinput2)( Display*, int, unsigned int, Window, int); -int (*XIGrabButton_dylibloader_wrapper_xinput2)( Display*, int, int, Window, Cursor, int, int, int, XIEventMask*, int, XIGrabModifiers*); -int (*XIGrabKeycode_dylibloader_wrapper_xinput2)( Display*, int, int, Window, int, int, int, XIEventMask*, int, XIGrabModifiers*); -int (*XIGrabEnter_dylibloader_wrapper_xinput2)( Display*, int, Window, Cursor, int, int, int, XIEventMask*, int, XIGrabModifiers*); -int (*XIGrabFocusIn_dylibloader_wrapper_xinput2)( Display*, int, Window, int, int, int, XIEventMask*, int, XIGrabModifiers*); -int (*XIGrabTouchBegin_dylibloader_wrapper_xinput2)( Display*, int, Window, int, XIEventMask*, int, XIGrabModifiers*); -int (*XIUngrabButton_dylibloader_wrapper_xinput2)( Display*, int, int, Window, int, XIGrabModifiers*); -int (*XIUngrabKeycode_dylibloader_wrapper_xinput2)( Display*, int, int, Window, int, XIGrabModifiers*); -int (*XIUngrabEnter_dylibloader_wrapper_xinput2)( Display*, int, Window, int, XIGrabModifiers*); -int (*XIUngrabFocusIn_dylibloader_wrapper_xinput2)( Display*, int, Window, int, XIGrabModifiers*); -int (*XIUngrabTouchBegin_dylibloader_wrapper_xinput2)( Display*, int, Window, int, XIGrabModifiers*); -Atom* (*XIListProperties_dylibloader_wrapper_xinput2)( Display*, int, int*); -void (*XIChangeProperty_dylibloader_wrapper_xinput2)( Display*, int, Atom, Atom, int, int, unsigned char*, int); -void (*XIDeleteProperty_dylibloader_wrapper_xinput2)( Display*, int, Atom); -int (*XIGetProperty_dylibloader_wrapper_xinput2)( Display*, int, Atom, long, long, int, Atom, Atom*, int*, unsigned long*, unsigned long*, unsigned char**); -void (*XIBarrierReleasePointers_dylibloader_wrapper_xinput2)( Display*, XIBarrierReleasePointerInfo*, int); -void (*XIBarrierReleasePointer_dylibloader_wrapper_xinput2)( Display*, int, PointerBarrier, BarrierEventID); -void (*XIFreeDeviceInfo_dylibloader_wrapper_xinput2)( XIDeviceInfo*); +int (*XIQueryPointer_dylibloader_wrapper_xinput2)(Display *, int, Window, Window *, Window *, double *, double *, double *, double *, XIButtonState *, XIModifierState *, XIGroupState *); +int (*XIWarpPointer_dylibloader_wrapper_xinput2)(Display *, int, Window, Window, double, double, unsigned int, unsigned int, double, double); +int (*XIDefineCursor_dylibloader_wrapper_xinput2)(Display *, int, Window, Cursor); +int (*XIUndefineCursor_dylibloader_wrapper_xinput2)(Display *, int, Window); +int (*XIChangeHierarchy_dylibloader_wrapper_xinput2)(Display *, XIAnyHierarchyChangeInfo *, int); +int (*XISetClientPointer_dylibloader_wrapper_xinput2)(Display *, Window, int); +int (*XIGetClientPointer_dylibloader_wrapper_xinput2)(Display *, Window, int *); +int (*XISelectEvents_dylibloader_wrapper_xinput2)(Display *, Window, XIEventMask *, int); +XIEventMask *(*XIGetSelectedEvents_dylibloader_wrapper_xinput2)(Display *, Window, int *); +int (*XIQueryVersion_dylibloader_wrapper_xinput2)(Display *, int *, int *); +XIDeviceInfo *(*XIQueryDevice_dylibloader_wrapper_xinput2)(Display *, int, int *); +int (*XISetFocus_dylibloader_wrapper_xinput2)(Display *, int, Window, Time); +int (*XIGetFocus_dylibloader_wrapper_xinput2)(Display *, int, Window *); +int (*XIGrabDevice_dylibloader_wrapper_xinput2)(Display *, int, Window, Time, Cursor, int, int, int, XIEventMask *); +int (*XIUngrabDevice_dylibloader_wrapper_xinput2)(Display *, int, Time); +int (*XIAllowEvents_dylibloader_wrapper_xinput2)(Display *, int, int, Time); +int (*XIAllowTouchEvents_dylibloader_wrapper_xinput2)(Display *, int, unsigned int, Window, int); +int (*XIGrabButton_dylibloader_wrapper_xinput2)(Display *, int, int, Window, Cursor, int, int, int, XIEventMask *, int, XIGrabModifiers *); +int (*XIGrabKeycode_dylibloader_wrapper_xinput2)(Display *, int, int, Window, int, int, int, XIEventMask *, int, XIGrabModifiers *); +int (*XIGrabEnter_dylibloader_wrapper_xinput2)(Display *, int, Window, Cursor, int, int, int, XIEventMask *, int, XIGrabModifiers *); +int (*XIGrabFocusIn_dylibloader_wrapper_xinput2)(Display *, int, Window, int, int, int, XIEventMask *, int, XIGrabModifiers *); +int (*XIGrabTouchBegin_dylibloader_wrapper_xinput2)(Display *, int, Window, int, XIEventMask *, int, XIGrabModifiers *); +int (*XIUngrabButton_dylibloader_wrapper_xinput2)(Display *, int, int, Window, int, XIGrabModifiers *); +int (*XIUngrabKeycode_dylibloader_wrapper_xinput2)(Display *, int, int, Window, int, XIGrabModifiers *); +int (*XIUngrabEnter_dylibloader_wrapper_xinput2)(Display *, int, Window, int, XIGrabModifiers *); +int (*XIUngrabFocusIn_dylibloader_wrapper_xinput2)(Display *, int, Window, int, XIGrabModifiers *); +int (*XIUngrabTouchBegin_dylibloader_wrapper_xinput2)(Display *, int, Window, int, XIGrabModifiers *); +Atom *(*XIListProperties_dylibloader_wrapper_xinput2)(Display *, int, int *); +void (*XIChangeProperty_dylibloader_wrapper_xinput2)(Display *, int, Atom, Atom, int, int, unsigned char *, int); +void (*XIDeleteProperty_dylibloader_wrapper_xinput2)(Display *, int, Atom); +int (*XIGetProperty_dylibloader_wrapper_xinput2)(Display *, int, Atom, long, long, int, Atom, Atom *, int *, unsigned long *, unsigned long *, unsigned char **); +void (*XIBarrierReleasePointers_dylibloader_wrapper_xinput2)(Display *, XIBarrierReleasePointerInfo *, int); +void (*XIBarrierReleasePointer_dylibloader_wrapper_xinput2)(Display *, int, PointerBarrier, BarrierEventID); +void (*XIFreeDeviceInfo_dylibloader_wrapper_xinput2)(XIDeviceInfo *); int initialize_xinput2(int verbose) { void *handle; char *error; diff --git a/platform/linuxbsd/x11/dynwrappers/xinput2-so_wrap.h b/platform/linuxbsd/x11/dynwrappers/xinput2-so_wrap.h index 571072c3cd..7c54dc080a 100644 --- a/platform/linuxbsd/x11/dynwrappers/xinput2-so_wrap.h +++ b/platform/linuxbsd/x11/dynwrappers/xinput2-so_wrap.h @@ -2,13 +2,9 @@ #define DYLIBLOAD_WRAPPER_XINPUT2 // This file is generated. Do not edit! // see https://github.com/hpvb/dynload-wrapper for details -// generated by generate-wrapper.py 0.3 on 2023-01-23 15:12:16 -// flags: generate-wrapper.py --include ./thirdparty/linuxbsd_headers/X11/extensions/XInput2.h --sys-include "thirdparty/linuxbsd_headers/X11/extensions/XInput2.h" --soname libXi.so.6 --init-name xinput2 --output-header ./platform/linuxbsd/x11/dynwrappers/xinput2-so_wrap.h --output-implementation ./platform/linuxbsd/x11/dynwrappers/xinput2-so_wrap.c +// generated by generate-wrapper.py 0.6 on 2024-11-09 02:52:36 +// flags: generate-wrapper.py --include ./thirdparty/linuxbsd_headers/X11/extensions/XInput2.h --sys-include thirdparty/linuxbsd_headers/X11/extensions/XInput2.h --soname libXi.so.6 --init-name xinput2 --output-header ./platform/linuxbsd/x11/dynwrappers/xinput2-so_wrap.h --output-implementation ./platform/linuxbsd/x11/dynwrappers/xinput2-so_wrap.c --ignore-other // -// NOTE: Generated from Xi 1.7.10. -// This has been handpatched to workaround some issues with the generator that -// will be eventually fixed. In this case, non-existent symbols inherited from -// libX11, liXext and libXfixes, but absent in libXi.so.6, were removed. #include <stdint.h> #define XIQueryPointer XIQueryPointer_dylibloader_orig_xinput2 @@ -117,40 +113,40 @@ extern "C" { #define XIBarrierReleasePointers XIBarrierReleasePointers_dylibloader_wrapper_xinput2 #define XIBarrierReleasePointer XIBarrierReleasePointer_dylibloader_wrapper_xinput2 #define XIFreeDeviceInfo XIFreeDeviceInfo_dylibloader_wrapper_xinput2 -extern int (*XIQueryPointer_dylibloader_wrapper_xinput2)( Display*, int, Window, Window*, Window*, double*, double*, double*, double*, XIButtonState*, XIModifierState*, XIGroupState*); -extern int (*XIWarpPointer_dylibloader_wrapper_xinput2)( Display*, int, Window, Window, double, double, unsigned int, unsigned int, double, double); -extern int (*XIDefineCursor_dylibloader_wrapper_xinput2)( Display*, int, Window, Cursor); -extern int (*XIUndefineCursor_dylibloader_wrapper_xinput2)( Display*, int, Window); -extern int (*XIChangeHierarchy_dylibloader_wrapper_xinput2)( Display*, XIAnyHierarchyChangeInfo*, int); -extern int (*XISetClientPointer_dylibloader_wrapper_xinput2)( Display*, Window, int); -extern int (*XIGetClientPointer_dylibloader_wrapper_xinput2)( Display*, Window, int*); -extern int (*XISelectEvents_dylibloader_wrapper_xinput2)( Display*, Window, XIEventMask*, int); -extern XIEventMask* (*XIGetSelectedEvents_dylibloader_wrapper_xinput2)( Display*, Window, int*); -extern int (*XIQueryVersion_dylibloader_wrapper_xinput2)( Display*, int*, int*); -extern XIDeviceInfo* (*XIQueryDevice_dylibloader_wrapper_xinput2)( Display*, int, int*); -extern int (*XISetFocus_dylibloader_wrapper_xinput2)( Display*, int, Window, Time); -extern int (*XIGetFocus_dylibloader_wrapper_xinput2)( Display*, int, Window*); -extern int (*XIGrabDevice_dylibloader_wrapper_xinput2)( Display*, int, Window, Time, Cursor, int, int, int, XIEventMask*); -extern int (*XIUngrabDevice_dylibloader_wrapper_xinput2)( Display*, int, Time); -extern int (*XIAllowEvents_dylibloader_wrapper_xinput2)( Display*, int, int, Time); -extern int (*XIAllowTouchEvents_dylibloader_wrapper_xinput2)( Display*, int, unsigned int, Window, int); -extern int (*XIGrabButton_dylibloader_wrapper_xinput2)( Display*, int, int, Window, Cursor, int, int, int, XIEventMask*, int, XIGrabModifiers*); -extern int (*XIGrabKeycode_dylibloader_wrapper_xinput2)( Display*, int, int, Window, int, int, int, XIEventMask*, int, XIGrabModifiers*); -extern int (*XIGrabEnter_dylibloader_wrapper_xinput2)( Display*, int, Window, Cursor, int, int, int, XIEventMask*, int, XIGrabModifiers*); -extern int (*XIGrabFocusIn_dylibloader_wrapper_xinput2)( Display*, int, Window, int, int, int, XIEventMask*, int, XIGrabModifiers*); -extern int (*XIGrabTouchBegin_dylibloader_wrapper_xinput2)( Display*, int, Window, int, XIEventMask*, int, XIGrabModifiers*); -extern int (*XIUngrabButton_dylibloader_wrapper_xinput2)( Display*, int, int, Window, int, XIGrabModifiers*); -extern int (*XIUngrabKeycode_dylibloader_wrapper_xinput2)( Display*, int, int, Window, int, XIGrabModifiers*); -extern int (*XIUngrabEnter_dylibloader_wrapper_xinput2)( Display*, int, Window, int, XIGrabModifiers*); -extern int (*XIUngrabFocusIn_dylibloader_wrapper_xinput2)( Display*, int, Window, int, XIGrabModifiers*); -extern int (*XIUngrabTouchBegin_dylibloader_wrapper_xinput2)( Display*, int, Window, int, XIGrabModifiers*); -extern Atom* (*XIListProperties_dylibloader_wrapper_xinput2)( Display*, int, int*); -extern void (*XIChangeProperty_dylibloader_wrapper_xinput2)( Display*, int, Atom, Atom, int, int, unsigned char*, int); -extern void (*XIDeleteProperty_dylibloader_wrapper_xinput2)( Display*, int, Atom); -extern int (*XIGetProperty_dylibloader_wrapper_xinput2)( Display*, int, Atom, long, long, int, Atom, Atom*, int*, unsigned long*, unsigned long*, unsigned char**); -extern void (*XIBarrierReleasePointers_dylibloader_wrapper_xinput2)( Display*, XIBarrierReleasePointerInfo*, int); -extern void (*XIBarrierReleasePointer_dylibloader_wrapper_xinput2)( Display*, int, PointerBarrier, BarrierEventID); -extern void (*XIFreeDeviceInfo_dylibloader_wrapper_xinput2)( XIDeviceInfo*); +extern int (*XIQueryPointer_dylibloader_wrapper_xinput2)(Display *, int, Window, Window *, Window *, double *, double *, double *, double *, XIButtonState *, XIModifierState *, XIGroupState *); +extern int (*XIWarpPointer_dylibloader_wrapper_xinput2)(Display *, int, Window, Window, double, double, unsigned int, unsigned int, double, double); +extern int (*XIDefineCursor_dylibloader_wrapper_xinput2)(Display *, int, Window, Cursor); +extern int (*XIUndefineCursor_dylibloader_wrapper_xinput2)(Display *, int, Window); +extern int (*XIChangeHierarchy_dylibloader_wrapper_xinput2)(Display *, XIAnyHierarchyChangeInfo *, int); +extern int (*XISetClientPointer_dylibloader_wrapper_xinput2)(Display *, Window, int); +extern int (*XIGetClientPointer_dylibloader_wrapper_xinput2)(Display *, Window, int *); +extern int (*XISelectEvents_dylibloader_wrapper_xinput2)(Display *, Window, XIEventMask *, int); +extern XIEventMask *(*XIGetSelectedEvents_dylibloader_wrapper_xinput2)(Display *, Window, int *); +extern int (*XIQueryVersion_dylibloader_wrapper_xinput2)(Display *, int *, int *); +extern XIDeviceInfo *(*XIQueryDevice_dylibloader_wrapper_xinput2)(Display *, int, int *); +extern int (*XISetFocus_dylibloader_wrapper_xinput2)(Display *, int, Window, Time); +extern int (*XIGetFocus_dylibloader_wrapper_xinput2)(Display *, int, Window *); +extern int (*XIGrabDevice_dylibloader_wrapper_xinput2)(Display *, int, Window, Time, Cursor, int, int, int, XIEventMask *); +extern int (*XIUngrabDevice_dylibloader_wrapper_xinput2)(Display *, int, Time); +extern int (*XIAllowEvents_dylibloader_wrapper_xinput2)(Display *, int, int, Time); +extern int (*XIAllowTouchEvents_dylibloader_wrapper_xinput2)(Display *, int, unsigned int, Window, int); +extern int (*XIGrabButton_dylibloader_wrapper_xinput2)(Display *, int, int, Window, Cursor, int, int, int, XIEventMask *, int, XIGrabModifiers *); +extern int (*XIGrabKeycode_dylibloader_wrapper_xinput2)(Display *, int, int, Window, int, int, int, XIEventMask *, int, XIGrabModifiers *); +extern int (*XIGrabEnter_dylibloader_wrapper_xinput2)(Display *, int, Window, Cursor, int, int, int, XIEventMask *, int, XIGrabModifiers *); +extern int (*XIGrabFocusIn_dylibloader_wrapper_xinput2)(Display *, int, Window, int, int, int, XIEventMask *, int, XIGrabModifiers *); +extern int (*XIGrabTouchBegin_dylibloader_wrapper_xinput2)(Display *, int, Window, int, XIEventMask *, int, XIGrabModifiers *); +extern int (*XIUngrabButton_dylibloader_wrapper_xinput2)(Display *, int, int, Window, int, XIGrabModifiers *); +extern int (*XIUngrabKeycode_dylibloader_wrapper_xinput2)(Display *, int, int, Window, int, XIGrabModifiers *); +extern int (*XIUngrabEnter_dylibloader_wrapper_xinput2)(Display *, int, Window, int, XIGrabModifiers *); +extern int (*XIUngrabFocusIn_dylibloader_wrapper_xinput2)(Display *, int, Window, int, XIGrabModifiers *); +extern int (*XIUngrabTouchBegin_dylibloader_wrapper_xinput2)(Display *, int, Window, int, XIGrabModifiers *); +extern Atom *(*XIListProperties_dylibloader_wrapper_xinput2)(Display *, int, int *); +extern void (*XIChangeProperty_dylibloader_wrapper_xinput2)(Display *, int, Atom, Atom, int, int, unsigned char *, int); +extern void (*XIDeleteProperty_dylibloader_wrapper_xinput2)(Display *, int, Atom); +extern int (*XIGetProperty_dylibloader_wrapper_xinput2)(Display *, int, Atom, long, long, int, Atom, Atom *, int *, unsigned long *, unsigned long *, unsigned char **); +extern void (*XIBarrierReleasePointers_dylibloader_wrapper_xinput2)(Display *, XIBarrierReleasePointerInfo *, int); +extern void (*XIBarrierReleasePointer_dylibloader_wrapper_xinput2)(Display *, int, PointerBarrier, BarrierEventID); +extern void (*XIFreeDeviceInfo_dylibloader_wrapper_xinput2)(XIDeviceInfo *); int initialize_xinput2(int verbose); #ifdef __cplusplus } diff --git a/platform/linuxbsd/x11/dynwrappers/xlib-so_wrap.c b/platform/linuxbsd/x11/dynwrappers/xlib-so_wrap.c index d2838569b0..8500f20198 100644 --- a/platform/linuxbsd/x11/dynwrappers/xlib-so_wrap.c +++ b/platform/linuxbsd/x11/dynwrappers/xlib-so_wrap.c @@ -1,14 +1,8 @@ // This file is generated. Do not edit! // see https://github.com/hpvb/dynload-wrapper for details -// generated by generate-wrapper.py 0.3 on 2023-01-23 15:13:26 -// flags: generate-wrapper.py --include ./thirdparty/linuxbsd_headers/X11/Xlib.h --include ./thirdparty/linuxbsd_headers/X11/Xutil.h --include ./thirdparty/linuxbsd_headers/X11/XKBlib.h --sys-include "thirdparty/linuxbsd_headers/X11/Xlib.h" --sys-include "thirdparty/linuxbsd_headers/X11/Xutil.h" --sys-include "thirdparty/linuxbsd_headers/X11/XKBlib.h" --soname libX11.so.6 --init-name xlib --omit-prefix XkbGetDeviceIndicatorState --omit-prefix XkbAddSymInterpret --output-header ./platform/linuxbsd/x11/dynwrappers/xlib-so_wrap.h --output-implementation ./platform/linuxbsd/x11/dynwrappers/xlib-so_wrap.c~ +// generated by generate-wrapper.py 0.6 on 2024-11-09 02:52:36 +// flags: generate-wrapper.py --include ./thirdparty/linuxbsd_headers/X11/Xlib.h --include ./thirdparty/linuxbsd_headers/X11/Xutil.h --include ./thirdparty/linuxbsd_headers/X11/XKBlib.h --sys-include thirdparty/linuxbsd_headers/X11/Xlib.h --sys-include thirdparty/linuxbsd_headers/X11/Xutil.h --sys-include thirdparty/linuxbsd_headers/X11/XKBlib.h --soname libX11.so.6 --init-name xlib --omit-prefix XkbGetDeviceIndicatorState --omit-prefix XkbAddSymInterpret --output-header ./platform/linuxbsd/x11/dynwrappers/xlib-so_wrap.h --output-implementation ./platform/linuxbsd/x11/dynwrappers/xlib-so_wrap.c // -// NOTE: Generated from Xlib 1.6.9. -// This has been handpatched to workaround some issues with the generator that -// will be eventually fixed. In this case, the type of the third argument of -// XIfEvent, XPeekIfEvent and XCheckIfEvent had to be fixed as it wasn't parsed -// fully (it's a Bool function pointer, but it was just being parsed as an int -// pointer). #include <stdint.h> #define _Xmblen _Xmblen_dylibloader_orig_xlib @@ -100,6 +94,7 @@ #define XScreenNumberOfScreen XScreenNumberOfScreen_dylibloader_orig_xlib #define XSetErrorHandler XSetErrorHandler_dylibloader_orig_xlib #define XSetIOErrorHandler XSetIOErrorHandler_dylibloader_orig_xlib +#define XSetIOErrorExitHandler XSetIOErrorExitHandler_dylibloader_orig_xlib #define XListPixmapFormats XListPixmapFormats_dylibloader_orig_xlib #define XListDepths XListDepths_dylibloader_orig_xlib #define XReconfigureWMWindow XReconfigureWMWindow_dylibloader_orig_xlib @@ -423,6 +418,7 @@ #define _Xwctomb _Xwctomb_dylibloader_orig_xlib #define XGetEventData XGetEventData_dylibloader_orig_xlib #define XFreeEventData XFreeEventData_dylibloader_orig_xlib +#define XFreeThreads XFreeThreads_dylibloader_orig_xlib #define XAllocClassHint XAllocClassHint_dylibloader_orig_xlib #define XAllocIconSize XAllocIconSize_dylibloader_orig_xlib #define XAllocSizeHints XAllocSizeHints_dylibloader_orig_xlib @@ -706,6 +702,7 @@ #undef XScreenNumberOfScreen #undef XSetErrorHandler #undef XSetIOErrorHandler +#undef XSetIOErrorExitHandler #undef XListPixmapFormats #undef XListDepths #undef XReconfigureWMWindow @@ -1029,6 +1026,7 @@ #undef _Xwctomb #undef XGetEventData #undef XFreeEventData +#undef XFreeThreads #undef XAllocClassHint #undef XAllocIconSize #undef XAllocSizeHints @@ -1222,609 +1220,611 @@ #undef XkbUpdateKeyTypeVirtualMods #include <dlfcn.h> #include <stdio.h> -int (*_Xmblen_dylibloader_wrapper_xlib)( char*, int); -XFontStruct* (*XLoadQueryFont_dylibloader_wrapper_xlib)( Display*,const char*); -XFontStruct* (*XQueryFont_dylibloader_wrapper_xlib)( Display*, XID); -XTimeCoord* (*XGetMotionEvents_dylibloader_wrapper_xlib)( Display*, Window, Time, Time, int*); -XModifierKeymap* (*XDeleteModifiermapEntry_dylibloader_wrapper_xlib)( XModifierKeymap*, KeyCode, int); -XModifierKeymap* (*XGetModifierMapping_dylibloader_wrapper_xlib)( Display*); -XModifierKeymap* (*XInsertModifiermapEntry_dylibloader_wrapper_xlib)( XModifierKeymap*, KeyCode, int); -XModifierKeymap* (*XNewModifiermap_dylibloader_wrapper_xlib)( int); -XImage* (*XCreateImage_dylibloader_wrapper_xlib)( Display*, Visual*, unsigned int, int, int, char*, unsigned int, unsigned int, int, int); -int (*XInitImage_dylibloader_wrapper_xlib)( XImage*); -XImage* (*XGetImage_dylibloader_wrapper_xlib)( Display*, Drawable, int, int, unsigned int, unsigned int, unsigned long, int); -XImage* (*XGetSubImage_dylibloader_wrapper_xlib)( Display*, Drawable, int, int, unsigned int, unsigned int, unsigned long, int, XImage*, int, int); -Display* (*XOpenDisplay_dylibloader_wrapper_xlib)(const char*); -void (*XrmInitialize_dylibloader_wrapper_xlib)( void); -char* (*XFetchBytes_dylibloader_wrapper_xlib)( Display*, int*); -char* (*XFetchBuffer_dylibloader_wrapper_xlib)( Display*, int*, int); -char* (*XGetAtomName_dylibloader_wrapper_xlib)( Display*, Atom); -int (*XGetAtomNames_dylibloader_wrapper_xlib)( Display*, Atom*, int, char**); -char* (*XGetDefault_dylibloader_wrapper_xlib)( Display*,const char*,const char*); -char* (*XDisplayName_dylibloader_wrapper_xlib)(const char*); -char* (*XKeysymToString_dylibloader_wrapper_xlib)( KeySym); -int* (*XSynchronize_dylibloader_wrapper_xlib)( Display*, int); -int* (*XSetAfterFunction_dylibloader_wrapper_xlib)( Display*, int*); -Atom (*XInternAtom_dylibloader_wrapper_xlib)( Display*,const char*, int); -int (*XInternAtoms_dylibloader_wrapper_xlib)( Display*, char**, int, int, Atom*); -Colormap (*XCopyColormapAndFree_dylibloader_wrapper_xlib)( Display*, Colormap); -Colormap (*XCreateColormap_dylibloader_wrapper_xlib)( Display*, Window, Visual*, int); -Cursor (*XCreatePixmapCursor_dylibloader_wrapper_xlib)( Display*, Pixmap, Pixmap, XColor*, XColor*, unsigned int, unsigned int); -Cursor (*XCreateGlyphCursor_dylibloader_wrapper_xlib)( Display*, Font, Font, unsigned int, unsigned int,const XColor*,const XColor*); -Cursor (*XCreateFontCursor_dylibloader_wrapper_xlib)( Display*, unsigned int); -Font (*XLoadFont_dylibloader_wrapper_xlib)( Display*,const char*); -GC (*XCreateGC_dylibloader_wrapper_xlib)( Display*, Drawable, unsigned long, XGCValues*); -GContext (*XGContextFromGC_dylibloader_wrapper_xlib)( GC); -void (*XFlushGC_dylibloader_wrapper_xlib)( Display*, GC); -Pixmap (*XCreatePixmap_dylibloader_wrapper_xlib)( Display*, Drawable, unsigned int, unsigned int, unsigned int); -Pixmap (*XCreateBitmapFromData_dylibloader_wrapper_xlib)( Display*, Drawable,const char*, unsigned int, unsigned int); -Pixmap (*XCreatePixmapFromBitmapData_dylibloader_wrapper_xlib)( Display*, Drawable, char*, unsigned int, unsigned int, unsigned long, unsigned long, unsigned int); -Window (*XCreateSimpleWindow_dylibloader_wrapper_xlib)( Display*, Window, int, int, unsigned int, unsigned int, unsigned int, unsigned long, unsigned long); -Window (*XGetSelectionOwner_dylibloader_wrapper_xlib)( Display*, Atom); -Window (*XCreateWindow_dylibloader_wrapper_xlib)( Display*, Window, int, int, unsigned int, unsigned int, unsigned int, int, unsigned int, Visual*, unsigned long, XSetWindowAttributes*); -Colormap* (*XListInstalledColormaps_dylibloader_wrapper_xlib)( Display*, Window, int*); -char** (*XListFonts_dylibloader_wrapper_xlib)( Display*,const char*, int, int*); -char** (*XListFontsWithInfo_dylibloader_wrapper_xlib)( Display*,const char*, int, int*, XFontStruct**); -char** (*XGetFontPath_dylibloader_wrapper_xlib)( Display*, int*); -char** (*XListExtensions_dylibloader_wrapper_xlib)( Display*, int*); -Atom* (*XListProperties_dylibloader_wrapper_xlib)( Display*, Window, int*); -XHostAddress* (*XListHosts_dylibloader_wrapper_xlib)( Display*, int*, int*); -KeySym (*XKeycodeToKeysym_dylibloader_wrapper_xlib)( Display*, KeyCode, int); -KeySym (*XLookupKeysym_dylibloader_wrapper_xlib)( XKeyEvent*, int); -KeySym* (*XGetKeyboardMapping_dylibloader_wrapper_xlib)( Display*, KeyCode, int, int*); -KeySym (*XStringToKeysym_dylibloader_wrapper_xlib)(const char*); -long (*XMaxRequestSize_dylibloader_wrapper_xlib)( Display*); -long (*XExtendedMaxRequestSize_dylibloader_wrapper_xlib)( Display*); -char* (*XResourceManagerString_dylibloader_wrapper_xlib)( Display*); -char* (*XScreenResourceString_dylibloader_wrapper_xlib)( Screen*); -unsigned long (*XDisplayMotionBufferSize_dylibloader_wrapper_xlib)( Display*); -VisualID (*XVisualIDFromVisual_dylibloader_wrapper_xlib)( Visual*); -int (*XInitThreads_dylibloader_wrapper_xlib)( void); -void (*XLockDisplay_dylibloader_wrapper_xlib)( Display*); -void (*XUnlockDisplay_dylibloader_wrapper_xlib)( Display*); -XExtCodes* (*XInitExtension_dylibloader_wrapper_xlib)( Display*,const char*); -XExtCodes* (*XAddExtension_dylibloader_wrapper_xlib)( Display*); -XExtData* (*XFindOnExtensionList_dylibloader_wrapper_xlib)( XExtData**, int); -XExtData** (*XEHeadOfExtensionList_dylibloader_wrapper_xlib)( XEDataObject); -Window (*XRootWindow_dylibloader_wrapper_xlib)( Display*, int); -Window (*XDefaultRootWindow_dylibloader_wrapper_xlib)( Display*); -Window (*XRootWindowOfScreen_dylibloader_wrapper_xlib)( Screen*); -Visual* (*XDefaultVisual_dylibloader_wrapper_xlib)( Display*, int); -Visual* (*XDefaultVisualOfScreen_dylibloader_wrapper_xlib)( Screen*); -GC (*XDefaultGC_dylibloader_wrapper_xlib)( Display*, int); -GC (*XDefaultGCOfScreen_dylibloader_wrapper_xlib)( Screen*); -unsigned long (*XBlackPixel_dylibloader_wrapper_xlib)( Display*, int); -unsigned long (*XWhitePixel_dylibloader_wrapper_xlib)( Display*, int); -unsigned long (*XAllPlanes_dylibloader_wrapper_xlib)( void); -unsigned long (*XBlackPixelOfScreen_dylibloader_wrapper_xlib)( Screen*); -unsigned long (*XWhitePixelOfScreen_dylibloader_wrapper_xlib)( Screen*); -unsigned long (*XNextRequest_dylibloader_wrapper_xlib)( Display*); -unsigned long (*XLastKnownRequestProcessed_dylibloader_wrapper_xlib)( Display*); -char* (*XServerVendor_dylibloader_wrapper_xlib)( Display*); -char* (*XDisplayString_dylibloader_wrapper_xlib)( Display*); -Colormap (*XDefaultColormap_dylibloader_wrapper_xlib)( Display*, int); -Colormap (*XDefaultColormapOfScreen_dylibloader_wrapper_xlib)( Screen*); -Display* (*XDisplayOfScreen_dylibloader_wrapper_xlib)( Screen*); -Screen* (*XScreenOfDisplay_dylibloader_wrapper_xlib)( Display*, int); -Screen* (*XDefaultScreenOfDisplay_dylibloader_wrapper_xlib)( Display*); -long (*XEventMaskOfScreen_dylibloader_wrapper_xlib)( Screen*); -int (*XScreenNumberOfScreen_dylibloader_wrapper_xlib)( Screen*); -XErrorHandler (*XSetErrorHandler_dylibloader_wrapper_xlib)( XErrorHandler); -XIOErrorHandler (*XSetIOErrorHandler_dylibloader_wrapper_xlib)( XIOErrorHandler); -XPixmapFormatValues* (*XListPixmapFormats_dylibloader_wrapper_xlib)( Display*, int*); -int* (*XListDepths_dylibloader_wrapper_xlib)( Display*, int, int*); -int (*XReconfigureWMWindow_dylibloader_wrapper_xlib)( Display*, Window, int, unsigned int, XWindowChanges*); -int (*XGetWMProtocols_dylibloader_wrapper_xlib)( Display*, Window, Atom**, int*); -int (*XSetWMProtocols_dylibloader_wrapper_xlib)( Display*, Window, Atom*, int); -int (*XIconifyWindow_dylibloader_wrapper_xlib)( Display*, Window, int); -int (*XWithdrawWindow_dylibloader_wrapper_xlib)( Display*, Window, int); -int (*XGetCommand_dylibloader_wrapper_xlib)( Display*, Window, char***, int*); -int (*XGetWMColormapWindows_dylibloader_wrapper_xlib)( Display*, Window, Window**, int*); -int (*XSetWMColormapWindows_dylibloader_wrapper_xlib)( Display*, Window, Window*, int); -void (*XFreeStringList_dylibloader_wrapper_xlib)( char**); -int (*XSetTransientForHint_dylibloader_wrapper_xlib)( Display*, Window, Window); -int (*XActivateScreenSaver_dylibloader_wrapper_xlib)( Display*); -int (*XAddHost_dylibloader_wrapper_xlib)( Display*, XHostAddress*); -int (*XAddHosts_dylibloader_wrapper_xlib)( Display*, XHostAddress*, int); -int (*XAddToExtensionList_dylibloader_wrapper_xlib)(struct _XExtData**, XExtData*); -int (*XAddToSaveSet_dylibloader_wrapper_xlib)( Display*, Window); -int (*XAllocColor_dylibloader_wrapper_xlib)( Display*, Colormap, XColor*); -int (*XAllocColorCells_dylibloader_wrapper_xlib)( Display*, Colormap, int, unsigned long*, unsigned int, unsigned long*, unsigned int); -int (*XAllocColorPlanes_dylibloader_wrapper_xlib)( Display*, Colormap, int, unsigned long*, int, int, int, int, unsigned long*, unsigned long*, unsigned long*); -int (*XAllocNamedColor_dylibloader_wrapper_xlib)( Display*, Colormap,const char*, XColor*, XColor*); -int (*XAllowEvents_dylibloader_wrapper_xlib)( Display*, int, Time); -int (*XAutoRepeatOff_dylibloader_wrapper_xlib)( Display*); -int (*XAutoRepeatOn_dylibloader_wrapper_xlib)( Display*); -int (*XBell_dylibloader_wrapper_xlib)( Display*, int); -int (*XBitmapBitOrder_dylibloader_wrapper_xlib)( Display*); -int (*XBitmapPad_dylibloader_wrapper_xlib)( Display*); -int (*XBitmapUnit_dylibloader_wrapper_xlib)( Display*); -int (*XCellsOfScreen_dylibloader_wrapper_xlib)( Screen*); -int (*XChangeActivePointerGrab_dylibloader_wrapper_xlib)( Display*, unsigned int, Cursor, Time); -int (*XChangeGC_dylibloader_wrapper_xlib)( Display*, GC, unsigned long, XGCValues*); -int (*XChangeKeyboardControl_dylibloader_wrapper_xlib)( Display*, unsigned long, XKeyboardControl*); -int (*XChangeKeyboardMapping_dylibloader_wrapper_xlib)( Display*, int, int, KeySym*, int); -int (*XChangePointerControl_dylibloader_wrapper_xlib)( Display*, int, int, int, int, int); -int (*XChangeProperty_dylibloader_wrapper_xlib)( Display*, Window, Atom, Atom, int, int,const unsigned char*, int); -int (*XChangeSaveSet_dylibloader_wrapper_xlib)( Display*, Window, int); -int (*XChangeWindowAttributes_dylibloader_wrapper_xlib)( Display*, Window, unsigned long, XSetWindowAttributes*); -int (*XCheckIfEvent_dylibloader_wrapper_xlib)( Display*, XEvent*, Bool (*) (Display*, XEvent*, XPointer), XPointer); -int (*XCheckMaskEvent_dylibloader_wrapper_xlib)( Display*, long, XEvent*); -int (*XCheckTypedEvent_dylibloader_wrapper_xlib)( Display*, int, XEvent*); -int (*XCheckTypedWindowEvent_dylibloader_wrapper_xlib)( Display*, Window, int, XEvent*); -int (*XCheckWindowEvent_dylibloader_wrapper_xlib)( Display*, Window, long, XEvent*); -int (*XCirculateSubwindows_dylibloader_wrapper_xlib)( Display*, Window, int); -int (*XCirculateSubwindowsDown_dylibloader_wrapper_xlib)( Display*, Window); -int (*XCirculateSubwindowsUp_dylibloader_wrapper_xlib)( Display*, Window); -int (*XClearArea_dylibloader_wrapper_xlib)( Display*, Window, int, int, unsigned int, unsigned int, int); -int (*XClearWindow_dylibloader_wrapper_xlib)( Display*, Window); -int (*XCloseDisplay_dylibloader_wrapper_xlib)( Display*); -int (*XConfigureWindow_dylibloader_wrapper_xlib)( Display*, Window, unsigned int, XWindowChanges*); -int (*XConnectionNumber_dylibloader_wrapper_xlib)( Display*); -int (*XConvertSelection_dylibloader_wrapper_xlib)( Display*, Atom, Atom, Atom, Window, Time); -int (*XCopyArea_dylibloader_wrapper_xlib)( Display*, Drawable, Drawable, GC, int, int, unsigned int, unsigned int, int, int); -int (*XCopyGC_dylibloader_wrapper_xlib)( Display*, GC, unsigned long, GC); -int (*XCopyPlane_dylibloader_wrapper_xlib)( Display*, Drawable, Drawable, GC, int, int, unsigned int, unsigned int, int, int, unsigned long); -int (*XDefaultDepth_dylibloader_wrapper_xlib)( Display*, int); -int (*XDefaultDepthOfScreen_dylibloader_wrapper_xlib)( Screen*); -int (*XDefaultScreen_dylibloader_wrapper_xlib)( Display*); -int (*XDefineCursor_dylibloader_wrapper_xlib)( Display*, Window, Cursor); -int (*XDeleteProperty_dylibloader_wrapper_xlib)( Display*, Window, Atom); -int (*XDestroyWindow_dylibloader_wrapper_xlib)( Display*, Window); -int (*XDestroySubwindows_dylibloader_wrapper_xlib)( Display*, Window); -int (*XDoesBackingStore_dylibloader_wrapper_xlib)( Screen*); -int (*XDoesSaveUnders_dylibloader_wrapper_xlib)( Screen*); -int (*XDisableAccessControl_dylibloader_wrapper_xlib)( Display*); -int (*XDisplayCells_dylibloader_wrapper_xlib)( Display*, int); -int (*XDisplayHeight_dylibloader_wrapper_xlib)( Display*, int); -int (*XDisplayHeightMM_dylibloader_wrapper_xlib)( Display*, int); -int (*XDisplayKeycodes_dylibloader_wrapper_xlib)( Display*, int*, int*); -int (*XDisplayPlanes_dylibloader_wrapper_xlib)( Display*, int); -int (*XDisplayWidth_dylibloader_wrapper_xlib)( Display*, int); -int (*XDisplayWidthMM_dylibloader_wrapper_xlib)( Display*, int); -int (*XDrawArc_dylibloader_wrapper_xlib)( Display*, Drawable, GC, int, int, unsigned int, unsigned int, int, int); -int (*XDrawArcs_dylibloader_wrapper_xlib)( Display*, Drawable, GC, XArc*, int); -int (*XDrawImageString_dylibloader_wrapper_xlib)( Display*, Drawable, GC, int, int,const char*, int); -int (*XDrawImageString16_dylibloader_wrapper_xlib)( Display*, Drawable, GC, int, int,const XChar2b*, int); -int (*XDrawLine_dylibloader_wrapper_xlib)( Display*, Drawable, GC, int, int, int, int); -int (*XDrawLines_dylibloader_wrapper_xlib)( Display*, Drawable, GC, XPoint*, int, int); -int (*XDrawPoint_dylibloader_wrapper_xlib)( Display*, Drawable, GC, int, int); -int (*XDrawPoints_dylibloader_wrapper_xlib)( Display*, Drawable, GC, XPoint*, int, int); -int (*XDrawRectangle_dylibloader_wrapper_xlib)( Display*, Drawable, GC, int, int, unsigned int, unsigned int); -int (*XDrawRectangles_dylibloader_wrapper_xlib)( Display*, Drawable, GC, XRectangle*, int); -int (*XDrawSegments_dylibloader_wrapper_xlib)( Display*, Drawable, GC, XSegment*, int); -int (*XDrawString_dylibloader_wrapper_xlib)( Display*, Drawable, GC, int, int,const char*, int); -int (*XDrawString16_dylibloader_wrapper_xlib)( Display*, Drawable, GC, int, int,const XChar2b*, int); -int (*XDrawText_dylibloader_wrapper_xlib)( Display*, Drawable, GC, int, int, XTextItem*, int); -int (*XDrawText16_dylibloader_wrapper_xlib)( Display*, Drawable, GC, int, int, XTextItem16*, int); -int (*XEnableAccessControl_dylibloader_wrapper_xlib)( Display*); -int (*XEventsQueued_dylibloader_wrapper_xlib)( Display*, int); -int (*XFetchName_dylibloader_wrapper_xlib)( Display*, Window, char**); -int (*XFillArc_dylibloader_wrapper_xlib)( Display*, Drawable, GC, int, int, unsigned int, unsigned int, int, int); -int (*XFillArcs_dylibloader_wrapper_xlib)( Display*, Drawable, GC, XArc*, int); -int (*XFillPolygon_dylibloader_wrapper_xlib)( Display*, Drawable, GC, XPoint*, int, int, int); -int (*XFillRectangle_dylibloader_wrapper_xlib)( Display*, Drawable, GC, int, int, unsigned int, unsigned int); -int (*XFillRectangles_dylibloader_wrapper_xlib)( Display*, Drawable, GC, XRectangle*, int); -int (*XFlush_dylibloader_wrapper_xlib)( Display*); -int (*XForceScreenSaver_dylibloader_wrapper_xlib)( Display*, int); -int (*XFree_dylibloader_wrapper_xlib)( void*); -int (*XFreeColormap_dylibloader_wrapper_xlib)( Display*, Colormap); -int (*XFreeColors_dylibloader_wrapper_xlib)( Display*, Colormap, unsigned long*, int, unsigned long); -int (*XFreeCursor_dylibloader_wrapper_xlib)( Display*, Cursor); -int (*XFreeExtensionList_dylibloader_wrapper_xlib)( char**); -int (*XFreeFont_dylibloader_wrapper_xlib)( Display*, XFontStruct*); -int (*XFreeFontInfo_dylibloader_wrapper_xlib)( char**, XFontStruct*, int); -int (*XFreeFontNames_dylibloader_wrapper_xlib)( char**); -int (*XFreeFontPath_dylibloader_wrapper_xlib)( char**); -int (*XFreeGC_dylibloader_wrapper_xlib)( Display*, GC); -int (*XFreeModifiermap_dylibloader_wrapper_xlib)( XModifierKeymap*); -int (*XFreePixmap_dylibloader_wrapper_xlib)( Display*, Pixmap); -int (*XGeometry_dylibloader_wrapper_xlib)( Display*, int,const char*,const char*, unsigned int, unsigned int, unsigned int, int, int, int*, int*, int*, int*); -int (*XGetErrorDatabaseText_dylibloader_wrapper_xlib)( Display*,const char*,const char*,const char*, char*, int); -int (*XGetErrorText_dylibloader_wrapper_xlib)( Display*, int, char*, int); -int (*XGetFontProperty_dylibloader_wrapper_xlib)( XFontStruct*, Atom, unsigned long*); -int (*XGetGCValues_dylibloader_wrapper_xlib)( Display*, GC, unsigned long, XGCValues*); -int (*XGetGeometry_dylibloader_wrapper_xlib)( Display*, Drawable, Window*, int*, int*, unsigned int*, unsigned int*, unsigned int*, unsigned int*); -int (*XGetIconName_dylibloader_wrapper_xlib)( Display*, Window, char**); -int (*XGetInputFocus_dylibloader_wrapper_xlib)( Display*, Window*, int*); -int (*XGetKeyboardControl_dylibloader_wrapper_xlib)( Display*, XKeyboardState*); -int (*XGetPointerControl_dylibloader_wrapper_xlib)( Display*, int*, int*, int*); -int (*XGetPointerMapping_dylibloader_wrapper_xlib)( Display*, unsigned char*, int); -int (*XGetScreenSaver_dylibloader_wrapper_xlib)( Display*, int*, int*, int*, int*); -int (*XGetTransientForHint_dylibloader_wrapper_xlib)( Display*, Window, Window*); -int (*XGetWindowProperty_dylibloader_wrapper_xlib)( Display*, Window, Atom, long, long, int, Atom, Atom*, int*, unsigned long*, unsigned long*, unsigned char**); -int (*XGetWindowAttributes_dylibloader_wrapper_xlib)( Display*, Window, XWindowAttributes*); -int (*XGrabButton_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, Window, int, unsigned int, int, int, Window, Cursor); -int (*XGrabKey_dylibloader_wrapper_xlib)( Display*, int, unsigned int, Window, int, int, int); -int (*XGrabKeyboard_dylibloader_wrapper_xlib)( Display*, Window, int, int, int, Time); -int (*XGrabPointer_dylibloader_wrapper_xlib)( Display*, Window, int, unsigned int, int, int, Window, Cursor, Time); -int (*XGrabServer_dylibloader_wrapper_xlib)( Display*); -int (*XHeightMMOfScreen_dylibloader_wrapper_xlib)( Screen*); -int (*XHeightOfScreen_dylibloader_wrapper_xlib)( Screen*); -int (*XIfEvent_dylibloader_wrapper_xlib)( Display*, XEvent*, Bool (*) (Display*, XEvent*, XPointer), XPointer); -int (*XImageByteOrder_dylibloader_wrapper_xlib)( Display*); -int (*XInstallColormap_dylibloader_wrapper_xlib)( Display*, Colormap); -KeyCode (*XKeysymToKeycode_dylibloader_wrapper_xlib)( Display*, KeySym); -int (*XKillClient_dylibloader_wrapper_xlib)( Display*, XID); -int (*XLookupColor_dylibloader_wrapper_xlib)( Display*, Colormap,const char*, XColor*, XColor*); -int (*XLowerWindow_dylibloader_wrapper_xlib)( Display*, Window); -int (*XMapRaised_dylibloader_wrapper_xlib)( Display*, Window); -int (*XMapSubwindows_dylibloader_wrapper_xlib)( Display*, Window); -int (*XMapWindow_dylibloader_wrapper_xlib)( Display*, Window); -int (*XMaskEvent_dylibloader_wrapper_xlib)( Display*, long, XEvent*); -int (*XMaxCmapsOfScreen_dylibloader_wrapper_xlib)( Screen*); -int (*XMinCmapsOfScreen_dylibloader_wrapper_xlib)( Screen*); -int (*XMoveResizeWindow_dylibloader_wrapper_xlib)( Display*, Window, int, int, unsigned int, unsigned int); -int (*XMoveWindow_dylibloader_wrapper_xlib)( Display*, Window, int, int); -int (*XNextEvent_dylibloader_wrapper_xlib)( Display*, XEvent*); -int (*XNoOp_dylibloader_wrapper_xlib)( Display*); -int (*XParseColor_dylibloader_wrapper_xlib)( Display*, Colormap,const char*, XColor*); -int (*XParseGeometry_dylibloader_wrapper_xlib)(const char*, int*, int*, unsigned int*, unsigned int*); -int (*XPeekEvent_dylibloader_wrapper_xlib)( Display*, XEvent*); -int (*XPeekIfEvent_dylibloader_wrapper_xlib)( Display*, XEvent*, Bool (*) (Display*, XEvent*, XPointer), XPointer); -int (*XPending_dylibloader_wrapper_xlib)( Display*); -int (*XPlanesOfScreen_dylibloader_wrapper_xlib)( Screen*); -int (*XProtocolRevision_dylibloader_wrapper_xlib)( Display*); -int (*XProtocolVersion_dylibloader_wrapper_xlib)( Display*); -int (*XPutBackEvent_dylibloader_wrapper_xlib)( Display*, XEvent*); -int (*XPutImage_dylibloader_wrapper_xlib)( Display*, Drawable, GC, XImage*, int, int, int, int, unsigned int, unsigned int); -int (*XQLength_dylibloader_wrapper_xlib)( Display*); -int (*XQueryBestCursor_dylibloader_wrapper_xlib)( Display*, Drawable, unsigned int, unsigned int, unsigned int*, unsigned int*); -int (*XQueryBestSize_dylibloader_wrapper_xlib)( Display*, int, Drawable, unsigned int, unsigned int, unsigned int*, unsigned int*); -int (*XQueryBestStipple_dylibloader_wrapper_xlib)( Display*, Drawable, unsigned int, unsigned int, unsigned int*, unsigned int*); -int (*XQueryBestTile_dylibloader_wrapper_xlib)( Display*, Drawable, unsigned int, unsigned int, unsigned int*, unsigned int*); -int (*XQueryColor_dylibloader_wrapper_xlib)( Display*, Colormap, XColor*); -int (*XQueryColors_dylibloader_wrapper_xlib)( Display*, Colormap, XColor*, int); -int (*XQueryExtension_dylibloader_wrapper_xlib)( Display*,const char*, int*, int*, int*); -int (*XQueryKeymap_dylibloader_wrapper_xlib)( Display*, char [32]); -int (*XQueryPointer_dylibloader_wrapper_xlib)( Display*, Window, Window*, Window*, int*, int*, int*, int*, unsigned int*); -int (*XQueryTextExtents_dylibloader_wrapper_xlib)( Display*, XID,const char*, int, int*, int*, int*, XCharStruct*); -int (*XQueryTextExtents16_dylibloader_wrapper_xlib)( Display*, XID,const XChar2b*, int, int*, int*, int*, XCharStruct*); -int (*XQueryTree_dylibloader_wrapper_xlib)( Display*, Window, Window*, Window*, Window**, unsigned int*); -int (*XRaiseWindow_dylibloader_wrapper_xlib)( Display*, Window); -int (*XReadBitmapFile_dylibloader_wrapper_xlib)( Display*, Drawable,const char*, unsigned int*, unsigned int*, Pixmap*, int*, int*); -int (*XReadBitmapFileData_dylibloader_wrapper_xlib)(const char*, unsigned int*, unsigned int*, unsigned char**, int*, int*); -int (*XRebindKeysym_dylibloader_wrapper_xlib)( Display*, KeySym, KeySym*, int,const unsigned char*, int); -int (*XRecolorCursor_dylibloader_wrapper_xlib)( Display*, Cursor, XColor*, XColor*); -int (*XRefreshKeyboardMapping_dylibloader_wrapper_xlib)( XMappingEvent*); -int (*XRemoveFromSaveSet_dylibloader_wrapper_xlib)( Display*, Window); -int (*XRemoveHost_dylibloader_wrapper_xlib)( Display*, XHostAddress*); -int (*XRemoveHosts_dylibloader_wrapper_xlib)( Display*, XHostAddress*, int); -int (*XReparentWindow_dylibloader_wrapper_xlib)( Display*, Window, Window, int, int); -int (*XResetScreenSaver_dylibloader_wrapper_xlib)( Display*); -int (*XResizeWindow_dylibloader_wrapper_xlib)( Display*, Window, unsigned int, unsigned int); -int (*XRestackWindows_dylibloader_wrapper_xlib)( Display*, Window*, int); -int (*XRotateBuffers_dylibloader_wrapper_xlib)( Display*, int); -int (*XRotateWindowProperties_dylibloader_wrapper_xlib)( Display*, Window, Atom*, int, int); -int (*XScreenCount_dylibloader_wrapper_xlib)( Display*); -int (*XSelectInput_dylibloader_wrapper_xlib)( Display*, Window, long); -int (*XSendEvent_dylibloader_wrapper_xlib)( Display*, Window, int, long, XEvent*); -int (*XSetAccessControl_dylibloader_wrapper_xlib)( Display*, int); -int (*XSetArcMode_dylibloader_wrapper_xlib)( Display*, GC, int); -int (*XSetBackground_dylibloader_wrapper_xlib)( Display*, GC, unsigned long); -int (*XSetClipMask_dylibloader_wrapper_xlib)( Display*, GC, Pixmap); -int (*XSetClipOrigin_dylibloader_wrapper_xlib)( Display*, GC, int, int); -int (*XSetClipRectangles_dylibloader_wrapper_xlib)( Display*, GC, int, int, XRectangle*, int, int); -int (*XSetCloseDownMode_dylibloader_wrapper_xlib)( Display*, int); -int (*XSetCommand_dylibloader_wrapper_xlib)( Display*, Window, char**, int); -int (*XSetDashes_dylibloader_wrapper_xlib)( Display*, GC, int,const char*, int); -int (*XSetFillRule_dylibloader_wrapper_xlib)( Display*, GC, int); -int (*XSetFillStyle_dylibloader_wrapper_xlib)( Display*, GC, int); -int (*XSetFont_dylibloader_wrapper_xlib)( Display*, GC, Font); -int (*XSetFontPath_dylibloader_wrapper_xlib)( Display*, char**, int); -int (*XSetForeground_dylibloader_wrapper_xlib)( Display*, GC, unsigned long); -int (*XSetFunction_dylibloader_wrapper_xlib)( Display*, GC, int); -int (*XSetGraphicsExposures_dylibloader_wrapper_xlib)( Display*, GC, int); -int (*XSetIconName_dylibloader_wrapper_xlib)( Display*, Window,const char*); -int (*XSetInputFocus_dylibloader_wrapper_xlib)( Display*, Window, int, Time); -int (*XSetLineAttributes_dylibloader_wrapper_xlib)( Display*, GC, unsigned int, int, int, int); -int (*XSetModifierMapping_dylibloader_wrapper_xlib)( Display*, XModifierKeymap*); -int (*XSetPlaneMask_dylibloader_wrapper_xlib)( Display*, GC, unsigned long); -int (*XSetPointerMapping_dylibloader_wrapper_xlib)( Display*,const unsigned char*, int); -int (*XSetScreenSaver_dylibloader_wrapper_xlib)( Display*, int, int, int, int); -int (*XSetSelectionOwner_dylibloader_wrapper_xlib)( Display*, Atom, Window, Time); -int (*XSetState_dylibloader_wrapper_xlib)( Display*, GC, unsigned long, unsigned long, int, unsigned long); -int (*XSetStipple_dylibloader_wrapper_xlib)( Display*, GC, Pixmap); -int (*XSetSubwindowMode_dylibloader_wrapper_xlib)( Display*, GC, int); -int (*XSetTSOrigin_dylibloader_wrapper_xlib)( Display*, GC, int, int); -int (*XSetTile_dylibloader_wrapper_xlib)( Display*, GC, Pixmap); -int (*XSetWindowBackground_dylibloader_wrapper_xlib)( Display*, Window, unsigned long); -int (*XSetWindowBackgroundPixmap_dylibloader_wrapper_xlib)( Display*, Window, Pixmap); -int (*XSetWindowBorder_dylibloader_wrapper_xlib)( Display*, Window, unsigned long); -int (*XSetWindowBorderPixmap_dylibloader_wrapper_xlib)( Display*, Window, Pixmap); -int (*XSetWindowBorderWidth_dylibloader_wrapper_xlib)( Display*, Window, unsigned int); -int (*XSetWindowColormap_dylibloader_wrapper_xlib)( Display*, Window, Colormap); -int (*XStoreBuffer_dylibloader_wrapper_xlib)( Display*,const char*, int, int); -int (*XStoreBytes_dylibloader_wrapper_xlib)( Display*,const char*, int); -int (*XStoreColor_dylibloader_wrapper_xlib)( Display*, Colormap, XColor*); -int (*XStoreColors_dylibloader_wrapper_xlib)( Display*, Colormap, XColor*, int); -int (*XStoreName_dylibloader_wrapper_xlib)( Display*, Window,const char*); -int (*XStoreNamedColor_dylibloader_wrapper_xlib)( Display*, Colormap,const char*, unsigned long, int); -int (*XSync_dylibloader_wrapper_xlib)( Display*, int); -int (*XTextExtents_dylibloader_wrapper_xlib)( XFontStruct*,const char*, int, int*, int*, int*, XCharStruct*); -int (*XTextExtents16_dylibloader_wrapper_xlib)( XFontStruct*,const XChar2b*, int, int*, int*, int*, XCharStruct*); -int (*XTextWidth_dylibloader_wrapper_xlib)( XFontStruct*,const char*, int); -int (*XTextWidth16_dylibloader_wrapper_xlib)( XFontStruct*,const XChar2b*, int); -int (*XTranslateCoordinates_dylibloader_wrapper_xlib)( Display*, Window, Window, int, int, int*, int*, Window*); -int (*XUndefineCursor_dylibloader_wrapper_xlib)( Display*, Window); -int (*XUngrabButton_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, Window); -int (*XUngrabKey_dylibloader_wrapper_xlib)( Display*, int, unsigned int, Window); -int (*XUngrabKeyboard_dylibloader_wrapper_xlib)( Display*, Time); -int (*XUngrabPointer_dylibloader_wrapper_xlib)( Display*, Time); -int (*XUngrabServer_dylibloader_wrapper_xlib)( Display*); -int (*XUninstallColormap_dylibloader_wrapper_xlib)( Display*, Colormap); -int (*XUnloadFont_dylibloader_wrapper_xlib)( Display*, Font); -int (*XUnmapSubwindows_dylibloader_wrapper_xlib)( Display*, Window); -int (*XUnmapWindow_dylibloader_wrapper_xlib)( Display*, Window); -int (*XVendorRelease_dylibloader_wrapper_xlib)( Display*); -int (*XWarpPointer_dylibloader_wrapper_xlib)( Display*, Window, Window, int, int, unsigned int, unsigned int, int, int); -int (*XWidthMMOfScreen_dylibloader_wrapper_xlib)( Screen*); -int (*XWidthOfScreen_dylibloader_wrapper_xlib)( Screen*); -int (*XWindowEvent_dylibloader_wrapper_xlib)( Display*, Window, long, XEvent*); -int (*XWriteBitmapFile_dylibloader_wrapper_xlib)( Display*,const char*, Pixmap, unsigned int, unsigned int, int, int); -int (*XSupportsLocale_dylibloader_wrapper_xlib)( void); -char* (*XSetLocaleModifiers_dylibloader_wrapper_xlib)(const char*); -XOM (*XOpenOM_dylibloader_wrapper_xlib)( Display*,struct _XrmHashBucketRec*,const char*,const char*); -int (*XCloseOM_dylibloader_wrapper_xlib)( XOM); -char* (*XSetOMValues_dylibloader_wrapper_xlib)( XOM,...); -char* (*XGetOMValues_dylibloader_wrapper_xlib)( XOM,...); -Display* (*XDisplayOfOM_dylibloader_wrapper_xlib)( XOM); -char* (*XLocaleOfOM_dylibloader_wrapper_xlib)( XOM); -XOC (*XCreateOC_dylibloader_wrapper_xlib)( XOM,...); -void (*XDestroyOC_dylibloader_wrapper_xlib)( XOC); -XOM (*XOMOfOC_dylibloader_wrapper_xlib)( XOC); -char* (*XSetOCValues_dylibloader_wrapper_xlib)( XOC,...); -char* (*XGetOCValues_dylibloader_wrapper_xlib)( XOC,...); -XFontSet (*XCreateFontSet_dylibloader_wrapper_xlib)( Display*,const char*, char***, int*, char**); -void (*XFreeFontSet_dylibloader_wrapper_xlib)( Display*, XFontSet); -int (*XFontsOfFontSet_dylibloader_wrapper_xlib)( XFontSet, XFontStruct***, char***); -char* (*XBaseFontNameListOfFontSet_dylibloader_wrapper_xlib)( XFontSet); -char* (*XLocaleOfFontSet_dylibloader_wrapper_xlib)( XFontSet); -int (*XContextDependentDrawing_dylibloader_wrapper_xlib)( XFontSet); -int (*XDirectionalDependentDrawing_dylibloader_wrapper_xlib)( XFontSet); -int (*XContextualDrawing_dylibloader_wrapper_xlib)( XFontSet); -XFontSetExtents* (*XExtentsOfFontSet_dylibloader_wrapper_xlib)( XFontSet); -int (*XmbTextEscapement_dylibloader_wrapper_xlib)( XFontSet,const char*, int); -int (*XwcTextEscapement_dylibloader_wrapper_xlib)( XFontSet,const wchar_t*, int); -int (*Xutf8TextEscapement_dylibloader_wrapper_xlib)( XFontSet,const char*, int); -int (*XmbTextExtents_dylibloader_wrapper_xlib)( XFontSet,const char*, int, XRectangle*, XRectangle*); -int (*XwcTextExtents_dylibloader_wrapper_xlib)( XFontSet,const wchar_t*, int, XRectangle*, XRectangle*); -int (*Xutf8TextExtents_dylibloader_wrapper_xlib)( XFontSet,const char*, int, XRectangle*, XRectangle*); -int (*XmbTextPerCharExtents_dylibloader_wrapper_xlib)( XFontSet,const char*, int, XRectangle*, XRectangle*, int, int*, XRectangle*, XRectangle*); -int (*XwcTextPerCharExtents_dylibloader_wrapper_xlib)( XFontSet,const wchar_t*, int, XRectangle*, XRectangle*, int, int*, XRectangle*, XRectangle*); -int (*Xutf8TextPerCharExtents_dylibloader_wrapper_xlib)( XFontSet,const char*, int, XRectangle*, XRectangle*, int, int*, XRectangle*, XRectangle*); -void (*XmbDrawText_dylibloader_wrapper_xlib)( Display*, Drawable, GC, int, int, XmbTextItem*, int); -void (*XwcDrawText_dylibloader_wrapper_xlib)( Display*, Drawable, GC, int, int, XwcTextItem*, int); -void (*Xutf8DrawText_dylibloader_wrapper_xlib)( Display*, Drawable, GC, int, int, XmbTextItem*, int); -void (*XmbDrawString_dylibloader_wrapper_xlib)( Display*, Drawable, XFontSet, GC, int, int,const char*, int); -void (*XwcDrawString_dylibloader_wrapper_xlib)( Display*, Drawable, XFontSet, GC, int, int,const wchar_t*, int); -void (*Xutf8DrawString_dylibloader_wrapper_xlib)( Display*, Drawable, XFontSet, GC, int, int,const char*, int); -void (*XmbDrawImageString_dylibloader_wrapper_xlib)( Display*, Drawable, XFontSet, GC, int, int,const char*, int); -void (*XwcDrawImageString_dylibloader_wrapper_xlib)( Display*, Drawable, XFontSet, GC, int, int,const wchar_t*, int); -void (*Xutf8DrawImageString_dylibloader_wrapper_xlib)( Display*, Drawable, XFontSet, GC, int, int,const char*, int); -XIM (*XOpenIM_dylibloader_wrapper_xlib)( Display*,struct _XrmHashBucketRec*, char*, char*); -int (*XCloseIM_dylibloader_wrapper_xlib)( XIM); -char* (*XGetIMValues_dylibloader_wrapper_xlib)( XIM,...); -char* (*XSetIMValues_dylibloader_wrapper_xlib)( XIM,...); -Display* (*XDisplayOfIM_dylibloader_wrapper_xlib)( XIM); -char* (*XLocaleOfIM_dylibloader_wrapper_xlib)( XIM); -XIC (*XCreateIC_dylibloader_wrapper_xlib)( XIM,...); -void (*XDestroyIC_dylibloader_wrapper_xlib)( XIC); -void (*XSetICFocus_dylibloader_wrapper_xlib)( XIC); -void (*XUnsetICFocus_dylibloader_wrapper_xlib)( XIC); -wchar_t* (*XwcResetIC_dylibloader_wrapper_xlib)( XIC); -char* (*XmbResetIC_dylibloader_wrapper_xlib)( XIC); -char* (*Xutf8ResetIC_dylibloader_wrapper_xlib)( XIC); -char* (*XSetICValues_dylibloader_wrapper_xlib)( XIC,...); -char* (*XGetICValues_dylibloader_wrapper_xlib)( XIC,...); -XIM (*XIMOfIC_dylibloader_wrapper_xlib)( XIC); -int (*XFilterEvent_dylibloader_wrapper_xlib)( XEvent*, Window); -int (*XmbLookupString_dylibloader_wrapper_xlib)( XIC, XKeyPressedEvent*, char*, int, KeySym*, int*); -int (*XwcLookupString_dylibloader_wrapper_xlib)( XIC, XKeyPressedEvent*, wchar_t*, int, KeySym*, int*); -int (*Xutf8LookupString_dylibloader_wrapper_xlib)( XIC, XKeyPressedEvent*, char*, int, KeySym*, int*); -XVaNestedList (*XVaCreateNestedList_dylibloader_wrapper_xlib)( int,...); -int (*XRegisterIMInstantiateCallback_dylibloader_wrapper_xlib)( Display*,struct _XrmHashBucketRec*, char*, char*, XIDProc, XPointer); -int (*XUnregisterIMInstantiateCallback_dylibloader_wrapper_xlib)( Display*,struct _XrmHashBucketRec*, char*, char*, XIDProc, XPointer); -int (*XInternalConnectionNumbers_dylibloader_wrapper_xlib)( Display*, int**, int*); -void (*XProcessInternalConnection_dylibloader_wrapper_xlib)( Display*, int); -int (*XAddConnectionWatch_dylibloader_wrapper_xlib)( Display*, XConnectionWatchProc, XPointer); -void (*XRemoveConnectionWatch_dylibloader_wrapper_xlib)( Display*, XConnectionWatchProc, XPointer); -void (*XSetAuthorization_dylibloader_wrapper_xlib)( char*, int, char*, int); -int (*_Xmbtowc_dylibloader_wrapper_xlib)( wchar_t*, char*, int); -int (*_Xwctomb_dylibloader_wrapper_xlib)( char*, wchar_t); -int (*XGetEventData_dylibloader_wrapper_xlib)( Display*, XGenericEventCookie*); -void (*XFreeEventData_dylibloader_wrapper_xlib)( Display*, XGenericEventCookie*); -XClassHint* (*XAllocClassHint_dylibloader_wrapper_xlib)( void); -XIconSize* (*XAllocIconSize_dylibloader_wrapper_xlib)( void); -XSizeHints* (*XAllocSizeHints_dylibloader_wrapper_xlib)( void); -XStandardColormap* (*XAllocStandardColormap_dylibloader_wrapper_xlib)( void); -XWMHints* (*XAllocWMHints_dylibloader_wrapper_xlib)( void); -int (*XClipBox_dylibloader_wrapper_xlib)( Region, XRectangle*); -Region (*XCreateRegion_dylibloader_wrapper_xlib)( void); -const char* (*XDefaultString_dylibloader_wrapper_xlib)( void); -int (*XDeleteContext_dylibloader_wrapper_xlib)( Display*, XID, XContext); -int (*XDestroyRegion_dylibloader_wrapper_xlib)( Region); -int (*XEmptyRegion_dylibloader_wrapper_xlib)( Region); -int (*XEqualRegion_dylibloader_wrapper_xlib)( Region, Region); -int (*XFindContext_dylibloader_wrapper_xlib)( Display*, XID, XContext, XPointer*); -int (*XGetClassHint_dylibloader_wrapper_xlib)( Display*, Window, XClassHint*); -int (*XGetIconSizes_dylibloader_wrapper_xlib)( Display*, Window, XIconSize**, int*); -int (*XGetNormalHints_dylibloader_wrapper_xlib)( Display*, Window, XSizeHints*); -int (*XGetRGBColormaps_dylibloader_wrapper_xlib)( Display*, Window, XStandardColormap**, int*, Atom); -int (*XGetSizeHints_dylibloader_wrapper_xlib)( Display*, Window, XSizeHints*, Atom); -int (*XGetStandardColormap_dylibloader_wrapper_xlib)( Display*, Window, XStandardColormap*, Atom); -int (*XGetTextProperty_dylibloader_wrapper_xlib)( Display*, Window, XTextProperty*, Atom); -XVisualInfo* (*XGetVisualInfo_dylibloader_wrapper_xlib)( Display*, long, XVisualInfo*, int*); -int (*XGetWMClientMachine_dylibloader_wrapper_xlib)( Display*, Window, XTextProperty*); -XWMHints* (*XGetWMHints_dylibloader_wrapper_xlib)( Display*, Window); -int (*XGetWMIconName_dylibloader_wrapper_xlib)( Display*, Window, XTextProperty*); -int (*XGetWMName_dylibloader_wrapper_xlib)( Display*, Window, XTextProperty*); -int (*XGetWMNormalHints_dylibloader_wrapper_xlib)( Display*, Window, XSizeHints*, long*); -int (*XGetWMSizeHints_dylibloader_wrapper_xlib)( Display*, Window, XSizeHints*, long*, Atom); -int (*XGetZoomHints_dylibloader_wrapper_xlib)( Display*, Window, XSizeHints*); -int (*XIntersectRegion_dylibloader_wrapper_xlib)( Region, Region, Region); -void (*XConvertCase_dylibloader_wrapper_xlib)( KeySym, KeySym*, KeySym*); -int (*XLookupString_dylibloader_wrapper_xlib)( XKeyEvent*, char*, int, KeySym*, XComposeStatus*); -int (*XMatchVisualInfo_dylibloader_wrapper_xlib)( Display*, int, int, int, XVisualInfo*); -int (*XOffsetRegion_dylibloader_wrapper_xlib)( Region, int, int); -int (*XPointInRegion_dylibloader_wrapper_xlib)( Region, int, int); -Region (*XPolygonRegion_dylibloader_wrapper_xlib)( XPoint*, int, int); -int (*XRectInRegion_dylibloader_wrapper_xlib)( Region, int, int, unsigned int, unsigned int); -int (*XSaveContext_dylibloader_wrapper_xlib)( Display*, XID, XContext,const char*); -int (*XSetClassHint_dylibloader_wrapper_xlib)( Display*, Window, XClassHint*); -int (*XSetIconSizes_dylibloader_wrapper_xlib)( Display*, Window, XIconSize*, int); -int (*XSetNormalHints_dylibloader_wrapper_xlib)( Display*, Window, XSizeHints*); -void (*XSetRGBColormaps_dylibloader_wrapper_xlib)( Display*, Window, XStandardColormap*, int, Atom); -int (*XSetSizeHints_dylibloader_wrapper_xlib)( Display*, Window, XSizeHints*, Atom); -int (*XSetStandardProperties_dylibloader_wrapper_xlib)( Display*, Window,const char*,const char*, Pixmap, char**, int, XSizeHints*); -void (*XSetTextProperty_dylibloader_wrapper_xlib)( Display*, Window, XTextProperty*, Atom); -void (*XSetWMClientMachine_dylibloader_wrapper_xlib)( Display*, Window, XTextProperty*); -int (*XSetWMHints_dylibloader_wrapper_xlib)( Display*, Window, XWMHints*); -void (*XSetWMIconName_dylibloader_wrapper_xlib)( Display*, Window, XTextProperty*); -void (*XSetWMName_dylibloader_wrapper_xlib)( Display*, Window, XTextProperty*); -void (*XSetWMNormalHints_dylibloader_wrapper_xlib)( Display*, Window, XSizeHints*); -void (*XSetWMProperties_dylibloader_wrapper_xlib)( Display*, Window, XTextProperty*, XTextProperty*, char**, int, XSizeHints*, XWMHints*, XClassHint*); -void (*XmbSetWMProperties_dylibloader_wrapper_xlib)( Display*, Window,const char*,const char*, char**, int, XSizeHints*, XWMHints*, XClassHint*); -void (*Xutf8SetWMProperties_dylibloader_wrapper_xlib)( Display*, Window,const char*,const char*, char**, int, XSizeHints*, XWMHints*, XClassHint*); -void (*XSetWMSizeHints_dylibloader_wrapper_xlib)( Display*, Window, XSizeHints*, Atom); -int (*XSetRegion_dylibloader_wrapper_xlib)( Display*, GC, Region); -void (*XSetStandardColormap_dylibloader_wrapper_xlib)( Display*, Window, XStandardColormap*, Atom); -int (*XSetZoomHints_dylibloader_wrapper_xlib)( Display*, Window, XSizeHints*); -int (*XShrinkRegion_dylibloader_wrapper_xlib)( Region, int, int); -int (*XStringListToTextProperty_dylibloader_wrapper_xlib)( char**, int, XTextProperty*); -int (*XSubtractRegion_dylibloader_wrapper_xlib)( Region, Region, Region); -int (*XmbTextListToTextProperty_dylibloader_wrapper_xlib)( Display*, char**, int, XICCEncodingStyle, XTextProperty*); -int (*XwcTextListToTextProperty_dylibloader_wrapper_xlib)( Display*, wchar_t**, int, XICCEncodingStyle, XTextProperty*); -int (*Xutf8TextListToTextProperty_dylibloader_wrapper_xlib)( Display*, char**, int, XICCEncodingStyle, XTextProperty*); -void (*XwcFreeStringList_dylibloader_wrapper_xlib)( wchar_t**); -int (*XTextPropertyToStringList_dylibloader_wrapper_xlib)( XTextProperty*, char***, int*); -int (*XmbTextPropertyToTextList_dylibloader_wrapper_xlib)( Display*,const XTextProperty*, char***, int*); -int (*XwcTextPropertyToTextList_dylibloader_wrapper_xlib)( Display*,const XTextProperty*, wchar_t***, int*); -int (*Xutf8TextPropertyToTextList_dylibloader_wrapper_xlib)( Display*,const XTextProperty*, char***, int*); -int (*XUnionRectWithRegion_dylibloader_wrapper_xlib)( XRectangle*, Region, Region); -int (*XUnionRegion_dylibloader_wrapper_xlib)( Region, Region, Region); -int (*XWMGeometry_dylibloader_wrapper_xlib)( Display*, int,const char*,const char*, unsigned int, XSizeHints*, int*, int*, int*, int*, int*); -int (*XXorRegion_dylibloader_wrapper_xlib)( Region, Region, Region); -int (*XkbIgnoreExtension_dylibloader_wrapper_xlib)( int); -Display* (*XkbOpenDisplay_dylibloader_wrapper_xlib)( char*, int*, int*, int*, int*, int*); -int (*XkbQueryExtension_dylibloader_wrapper_xlib)( Display*, int*, int*, int*, int*, int*); -int (*XkbUseExtension_dylibloader_wrapper_xlib)( Display*, int*, int*); -int (*XkbLibraryVersion_dylibloader_wrapper_xlib)( int*, int*); -unsigned int (*XkbSetXlibControls_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int); -unsigned int (*XkbGetXlibControls_dylibloader_wrapper_xlib)( Display*); -unsigned int (*XkbXlibControlsImplemented_dylibloader_wrapper_xlib)( void); -void (*XkbSetAtomFuncs_dylibloader_wrapper_xlib)( XkbInternAtomFunc, XkbGetAtomNameFunc); -KeySym (*XkbKeycodeToKeysym_dylibloader_wrapper_xlib)( Display*, KeyCode, int, int); -unsigned int (*XkbKeysymToModifiers_dylibloader_wrapper_xlib)( Display*, KeySym); -int (*XkbLookupKeySym_dylibloader_wrapper_xlib)( Display*, KeyCode, unsigned int, unsigned int*, KeySym*); -int (*XkbLookupKeyBinding_dylibloader_wrapper_xlib)( Display*, KeySym, unsigned int, char*, int, int*); -int (*XkbTranslateKeyCode_dylibloader_wrapper_xlib)( XkbDescPtr, KeyCode, unsigned int, unsigned int*, KeySym*); -int (*XkbTranslateKeySym_dylibloader_wrapper_xlib)( Display*, KeySym*, unsigned int, char*, int, int*); -int (*XkbSetAutoRepeatRate_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, unsigned int); -int (*XkbGetAutoRepeatRate_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int*, unsigned int*); -int (*XkbChangeEnabledControls_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, unsigned int); -int (*XkbDeviceBell_dylibloader_wrapper_xlib)( Display*, Window, int, int, int, int, Atom); -int (*XkbForceDeviceBell_dylibloader_wrapper_xlib)( Display*, int, int, int, int); -int (*XkbDeviceBellEvent_dylibloader_wrapper_xlib)( Display*, Window, int, int, int, int, Atom); -int (*XkbBell_dylibloader_wrapper_xlib)( Display*, Window, int, Atom); -int (*XkbForceBell_dylibloader_wrapper_xlib)( Display*, int); -int (*XkbBellEvent_dylibloader_wrapper_xlib)( Display*, Window, int, Atom); -int (*XkbSelectEvents_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, unsigned int); -int (*XkbSelectEventDetails_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, unsigned long, unsigned long); -void (*XkbNoteMapChanges_dylibloader_wrapper_xlib)( XkbMapChangesPtr, XkbMapNotifyEvent*, unsigned int); -void (*XkbNoteNameChanges_dylibloader_wrapper_xlib)( XkbNameChangesPtr, XkbNamesNotifyEvent*, unsigned int); -int (*XkbGetIndicatorState_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int*); -int (*XkbGetIndicatorMap_dylibloader_wrapper_xlib)( Display*, unsigned long, XkbDescPtr); -int (*XkbSetIndicatorMap_dylibloader_wrapper_xlib)( Display*, unsigned long, XkbDescPtr); -int (*XkbGetNamedIndicator_dylibloader_wrapper_xlib)( Display*, Atom, int*, int*, XkbIndicatorMapPtr, int*); -int (*XkbGetNamedDeviceIndicator_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, unsigned int, Atom, int*, int*, XkbIndicatorMapPtr, int*); -int (*XkbSetNamedIndicator_dylibloader_wrapper_xlib)( Display*, Atom, int, int, int, XkbIndicatorMapPtr); -int (*XkbSetNamedDeviceIndicator_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, unsigned int, Atom, int, int, int, XkbIndicatorMapPtr); -int (*XkbLockModifiers_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, unsigned int); -int (*XkbLatchModifiers_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, unsigned int); -int (*XkbLockGroup_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int); -int (*XkbLatchGroup_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int); -int (*XkbSetServerInternalMods_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int); -int (*XkbSetIgnoreLockMods_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int); -int (*XkbVirtualModsToReal_dylibloader_wrapper_xlib)( XkbDescPtr, unsigned int, unsigned int*); -int (*XkbComputeEffectiveMap_dylibloader_wrapper_xlib)( XkbDescPtr, XkbKeyTypePtr, unsigned char*); -int (*XkbInitCanonicalKeyTypes_dylibloader_wrapper_xlib)( XkbDescPtr, unsigned int, int); -XkbDescPtr (*XkbAllocKeyboard_dylibloader_wrapper_xlib)( void); -void (*XkbFreeKeyboard_dylibloader_wrapper_xlib)( XkbDescPtr, unsigned int, int); -int (*XkbAllocClientMap_dylibloader_wrapper_xlib)( XkbDescPtr, unsigned int, unsigned int); -int (*XkbAllocServerMap_dylibloader_wrapper_xlib)( XkbDescPtr, unsigned int, unsigned int); -void (*XkbFreeClientMap_dylibloader_wrapper_xlib)( XkbDescPtr, unsigned int, int); -void (*XkbFreeServerMap_dylibloader_wrapper_xlib)( XkbDescPtr, unsigned int, int); -XkbKeyTypePtr (*XkbAddKeyType_dylibloader_wrapper_xlib)( XkbDescPtr, Atom, int, int, int); -int (*XkbAllocIndicatorMaps_dylibloader_wrapper_xlib)( XkbDescPtr); -void (*XkbFreeIndicatorMaps_dylibloader_wrapper_xlib)( XkbDescPtr); -XkbDescPtr (*XkbGetMap_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int); -int (*XkbGetUpdatedMap_dylibloader_wrapper_xlib)( Display*, unsigned int, XkbDescPtr); -int (*XkbGetMapChanges_dylibloader_wrapper_xlib)( Display*, XkbDescPtr, XkbMapChangesPtr); -int (*XkbRefreshKeyboardMapping_dylibloader_wrapper_xlib)( XkbMapNotifyEvent*); -int (*XkbGetKeyTypes_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, XkbDescPtr); -int (*XkbGetKeySyms_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, XkbDescPtr); -int (*XkbGetKeyActions_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, XkbDescPtr); -int (*XkbGetKeyBehaviors_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, XkbDescPtr); -int (*XkbGetVirtualMods_dylibloader_wrapper_xlib)( Display*, unsigned int, XkbDescPtr); -int (*XkbGetKeyExplicitComponents_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, XkbDescPtr); -int (*XkbGetKeyModifierMap_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, XkbDescPtr); -int (*XkbGetKeyVirtualModMap_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, XkbDescPtr); -int (*XkbAllocControls_dylibloader_wrapper_xlib)( XkbDescPtr, unsigned int); -void (*XkbFreeControls_dylibloader_wrapper_xlib)( XkbDescPtr, unsigned int, int); -int (*XkbGetControls_dylibloader_wrapper_xlib)( Display*, unsigned long, XkbDescPtr); -int (*XkbSetControls_dylibloader_wrapper_xlib)( Display*, unsigned long, XkbDescPtr); -void (*XkbNoteControlsChanges_dylibloader_wrapper_xlib)( XkbControlsChangesPtr, XkbControlsNotifyEvent*, unsigned int); -int (*XkbAllocCompatMap_dylibloader_wrapper_xlib)( XkbDescPtr, unsigned int, unsigned int); -void (*XkbFreeCompatMap_dylibloader_wrapper_xlib)( XkbDescPtr, unsigned int, int); -int (*XkbGetCompatMap_dylibloader_wrapper_xlib)( Display*, unsigned int, XkbDescPtr); -int (*XkbSetCompatMap_dylibloader_wrapper_xlib)( Display*, unsigned int, XkbDescPtr, int); -int (*XkbAllocNames_dylibloader_wrapper_xlib)( XkbDescPtr, unsigned int, int, int); -int (*XkbGetNames_dylibloader_wrapper_xlib)( Display*, unsigned int, XkbDescPtr); -int (*XkbSetNames_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, unsigned int, XkbDescPtr); -int (*XkbChangeNames_dylibloader_wrapper_xlib)( Display*, XkbDescPtr, XkbNameChangesPtr); -void (*XkbFreeNames_dylibloader_wrapper_xlib)( XkbDescPtr, unsigned int, int); -int (*XkbGetState_dylibloader_wrapper_xlib)( Display*, unsigned int, XkbStatePtr); -int (*XkbSetMap_dylibloader_wrapper_xlib)( Display*, unsigned int, XkbDescPtr); -int (*XkbChangeMap_dylibloader_wrapper_xlib)( Display*, XkbDescPtr, XkbMapChangesPtr); -int (*XkbSetDetectableAutoRepeat_dylibloader_wrapper_xlib)( Display*, int, int*); -int (*XkbGetDetectableAutoRepeat_dylibloader_wrapper_xlib)( Display*, int*); -int (*XkbSetAutoResetControls_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int*, unsigned int*); -int (*XkbGetAutoResetControls_dylibloader_wrapper_xlib)( Display*, unsigned int*, unsigned int*); -int (*XkbSetPerClientControls_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int*); -int (*XkbGetPerClientControls_dylibloader_wrapper_xlib)( Display*, unsigned int*); -int (*XkbCopyKeyType_dylibloader_wrapper_xlib)( XkbKeyTypePtr, XkbKeyTypePtr); -int (*XkbCopyKeyTypes_dylibloader_wrapper_xlib)( XkbKeyTypePtr, XkbKeyTypePtr, int); -int (*XkbResizeKeyType_dylibloader_wrapper_xlib)( XkbDescPtr, int, int, int, int); -KeySym* (*XkbResizeKeySyms_dylibloader_wrapper_xlib)( XkbDescPtr, int, int); -XkbAction* (*XkbResizeKeyActions_dylibloader_wrapper_xlib)( XkbDescPtr, int, int); -int (*XkbChangeTypesOfKey_dylibloader_wrapper_xlib)( XkbDescPtr, int, int, unsigned int, int*, XkbMapChangesPtr); -int (*XkbChangeKeycodeRange_dylibloader_wrapper_xlib)( XkbDescPtr, int, int, XkbChangesPtr); -XkbComponentListPtr (*XkbListComponents_dylibloader_wrapper_xlib)( Display*, unsigned int, XkbComponentNamesPtr, int*); -void (*XkbFreeComponentList_dylibloader_wrapper_xlib)( XkbComponentListPtr); -XkbDescPtr (*XkbGetKeyboard_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int); -XkbDescPtr (*XkbGetKeyboardByName_dylibloader_wrapper_xlib)( Display*, unsigned int, XkbComponentNamesPtr, unsigned int, unsigned int, int); -int (*XkbKeyTypesForCoreSymbols_dylibloader_wrapper_xlib)( XkbDescPtr, int, KeySym*, unsigned int, int*, KeySym*); -int (*XkbApplyCompatMapToKey_dylibloader_wrapper_xlib)( XkbDescPtr, KeyCode, XkbChangesPtr); -int (*XkbUpdateMapFromCore_dylibloader_wrapper_xlib)( XkbDescPtr, KeyCode, int, int, KeySym*, XkbChangesPtr); -XkbDeviceLedInfoPtr (*XkbAddDeviceLedInfo_dylibloader_wrapper_xlib)( XkbDeviceInfoPtr, unsigned int, unsigned int); -int (*XkbResizeDeviceButtonActions_dylibloader_wrapper_xlib)( XkbDeviceInfoPtr, unsigned int); -XkbDeviceInfoPtr (*XkbAllocDeviceInfo_dylibloader_wrapper_xlib)( unsigned int, unsigned int, unsigned int); -void (*XkbFreeDeviceInfo_dylibloader_wrapper_xlib)( XkbDeviceInfoPtr, unsigned int, int); -void (*XkbNoteDeviceChanges_dylibloader_wrapper_xlib)( XkbDeviceChangesPtr, XkbExtensionDeviceNotifyEvent*, unsigned int); -XkbDeviceInfoPtr (*XkbGetDeviceInfo_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, unsigned int, unsigned int); -int (*XkbGetDeviceInfoChanges_dylibloader_wrapper_xlib)( Display*, XkbDeviceInfoPtr, XkbDeviceChangesPtr); -int (*XkbGetDeviceButtonActions_dylibloader_wrapper_xlib)( Display*, XkbDeviceInfoPtr, int, unsigned int, unsigned int); -int (*XkbGetDeviceLedInfo_dylibloader_wrapper_xlib)( Display*, XkbDeviceInfoPtr, unsigned int, unsigned int, unsigned int); -int (*XkbSetDeviceInfo_dylibloader_wrapper_xlib)( Display*, unsigned int, XkbDeviceInfoPtr); -int (*XkbChangeDeviceInfo_dylibloader_wrapper_xlib)( Display*, XkbDeviceInfoPtr, XkbDeviceChangesPtr); -int (*XkbSetDeviceLedInfo_dylibloader_wrapper_xlib)( Display*, XkbDeviceInfoPtr, unsigned int, unsigned int, unsigned int); -int (*XkbSetDeviceButtonActions_dylibloader_wrapper_xlib)( Display*, XkbDeviceInfoPtr, unsigned int, unsigned int); -char (*XkbToControl_dylibloader_wrapper_xlib)( char); -int (*XkbSetDebuggingFlags_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, char*, unsigned int, unsigned int, unsigned int*, unsigned int*); -int (*XkbApplyVirtualModChanges_dylibloader_wrapper_xlib)( XkbDescPtr, unsigned int, XkbChangesPtr); -int (*XkbUpdateActionVirtualMods_dylibloader_wrapper_xlib)( XkbDescPtr, XkbAction*, unsigned int); -void (*XkbUpdateKeyTypeVirtualMods_dylibloader_wrapper_xlib)( XkbDescPtr, XkbKeyTypePtr, unsigned int, XkbChangesPtr); +int (*_Xmblen_dylibloader_wrapper_xlib)(char *, int); +XFontStruct *(*XLoadQueryFont_dylibloader_wrapper_xlib)(Display *, const char *); +XFontStruct *(*XQueryFont_dylibloader_wrapper_xlib)(Display *, XID); +XTimeCoord *(*XGetMotionEvents_dylibloader_wrapper_xlib)(Display *, Window, Time, Time, int *); +XModifierKeymap *(*XDeleteModifiermapEntry_dylibloader_wrapper_xlib)(XModifierKeymap *, KeyCode, int); +XModifierKeymap *(*XGetModifierMapping_dylibloader_wrapper_xlib)(Display *); +XModifierKeymap *(*XInsertModifiermapEntry_dylibloader_wrapper_xlib)(XModifierKeymap *, KeyCode, int); +XModifierKeymap *(*XNewModifiermap_dylibloader_wrapper_xlib)(int); +XImage *(*XCreateImage_dylibloader_wrapper_xlib)(Display *, Visual *, unsigned int, int, int, char *, unsigned int, unsigned int, int, int); +int (*XInitImage_dylibloader_wrapper_xlib)(XImage *); +XImage *(*XGetImage_dylibloader_wrapper_xlib)(Display *, Drawable, int, int, unsigned int, unsigned int, unsigned long, int); +XImage *(*XGetSubImage_dylibloader_wrapper_xlib)(Display *, Drawable, int, int, unsigned int, unsigned int, unsigned long, int, XImage *, int, int); +Display *(*XOpenDisplay_dylibloader_wrapper_xlib)(const char *); +void (*XrmInitialize_dylibloader_wrapper_xlib)(void); +char *(*XFetchBytes_dylibloader_wrapper_xlib)(Display *, int *); +char *(*XFetchBuffer_dylibloader_wrapper_xlib)(Display *, int *, int); +char *(*XGetAtomName_dylibloader_wrapper_xlib)(Display *, Atom); +int (*XGetAtomNames_dylibloader_wrapper_xlib)(Display *, Atom *, int, char **); +char *(*XGetDefault_dylibloader_wrapper_xlib)(Display *, const char *, const char *); +char *(*XDisplayName_dylibloader_wrapper_xlib)(const char *); +char *(*XKeysymToString_dylibloader_wrapper_xlib)(KeySym); +int (*(*XSynchronize_dylibloader_wrapper_xlib)(Display *, int))(Display *); +int (*(*XSetAfterFunction_dylibloader_wrapper_xlib)(Display *, int (*)(Display *)))(Display *); +Atom (*XInternAtom_dylibloader_wrapper_xlib)(Display *, const char *, int); +int (*XInternAtoms_dylibloader_wrapper_xlib)(Display *, char **, int, int, Atom *); +Colormap (*XCopyColormapAndFree_dylibloader_wrapper_xlib)(Display *, Colormap); +Colormap (*XCreateColormap_dylibloader_wrapper_xlib)(Display *, Window, Visual *, int); +Cursor (*XCreatePixmapCursor_dylibloader_wrapper_xlib)(Display *, Pixmap, Pixmap, XColor *, XColor *, unsigned int, unsigned int); +Cursor (*XCreateGlyphCursor_dylibloader_wrapper_xlib)(Display *, Font, Font, unsigned int, unsigned int, const XColor *, const XColor *); +Cursor (*XCreateFontCursor_dylibloader_wrapper_xlib)(Display *, unsigned int); +Font (*XLoadFont_dylibloader_wrapper_xlib)(Display *, const char *); +GC (*XCreateGC_dylibloader_wrapper_xlib)(Display *, Drawable, unsigned long, XGCValues *); +GContext (*XGContextFromGC_dylibloader_wrapper_xlib)(GC); +void (*XFlushGC_dylibloader_wrapper_xlib)(Display *, GC); +Pixmap (*XCreatePixmap_dylibloader_wrapper_xlib)(Display *, Drawable, unsigned int, unsigned int, unsigned int); +Pixmap (*XCreateBitmapFromData_dylibloader_wrapper_xlib)(Display *, Drawable, const char *, unsigned int, unsigned int); +Pixmap (*XCreatePixmapFromBitmapData_dylibloader_wrapper_xlib)(Display *, Drawable, char *, unsigned int, unsigned int, unsigned long, unsigned long, unsigned int); +Window (*XCreateSimpleWindow_dylibloader_wrapper_xlib)(Display *, Window, int, int, unsigned int, unsigned int, unsigned int, unsigned long, unsigned long); +Window (*XGetSelectionOwner_dylibloader_wrapper_xlib)(Display *, Atom); +Window (*XCreateWindow_dylibloader_wrapper_xlib)(Display *, Window, int, int, unsigned int, unsigned int, unsigned int, int, unsigned int, Visual *, unsigned long, XSetWindowAttributes *); +Colormap *(*XListInstalledColormaps_dylibloader_wrapper_xlib)(Display *, Window, int *); +char **(*XListFonts_dylibloader_wrapper_xlib)(Display *, const char *, int, int *); +char **(*XListFontsWithInfo_dylibloader_wrapper_xlib)(Display *, const char *, int, int *, XFontStruct **); +char **(*XGetFontPath_dylibloader_wrapper_xlib)(Display *, int *); +char **(*XListExtensions_dylibloader_wrapper_xlib)(Display *, int *); +Atom *(*XListProperties_dylibloader_wrapper_xlib)(Display *, Window, int *); +XHostAddress *(*XListHosts_dylibloader_wrapper_xlib)(Display *, int *, int *); +KeySym (*XKeycodeToKeysym_dylibloader_wrapper_xlib)(Display *, KeyCode, int); +KeySym (*XLookupKeysym_dylibloader_wrapper_xlib)(XKeyEvent *, int); +KeySym *(*XGetKeyboardMapping_dylibloader_wrapper_xlib)(Display *, KeyCode, int, int *); +KeySym (*XStringToKeysym_dylibloader_wrapper_xlib)(const char *); +long (*XMaxRequestSize_dylibloader_wrapper_xlib)(Display *); +long (*XExtendedMaxRequestSize_dylibloader_wrapper_xlib)(Display *); +char *(*XResourceManagerString_dylibloader_wrapper_xlib)(Display *); +char *(*XScreenResourceString_dylibloader_wrapper_xlib)(Screen *); +unsigned long (*XDisplayMotionBufferSize_dylibloader_wrapper_xlib)(Display *); +VisualID (*XVisualIDFromVisual_dylibloader_wrapper_xlib)(Visual *); +int (*XInitThreads_dylibloader_wrapper_xlib)(void); +void (*XLockDisplay_dylibloader_wrapper_xlib)(Display *); +void (*XUnlockDisplay_dylibloader_wrapper_xlib)(Display *); +XExtCodes *(*XInitExtension_dylibloader_wrapper_xlib)(Display *, const char *); +XExtCodes *(*XAddExtension_dylibloader_wrapper_xlib)(Display *); +XExtData *(*XFindOnExtensionList_dylibloader_wrapper_xlib)(XExtData **, int); +XExtData **(*XEHeadOfExtensionList_dylibloader_wrapper_xlib)(XEDataObject); +Window (*XRootWindow_dylibloader_wrapper_xlib)(Display *, int); +Window (*XDefaultRootWindow_dylibloader_wrapper_xlib)(Display *); +Window (*XRootWindowOfScreen_dylibloader_wrapper_xlib)(Screen *); +Visual *(*XDefaultVisual_dylibloader_wrapper_xlib)(Display *, int); +Visual *(*XDefaultVisualOfScreen_dylibloader_wrapper_xlib)(Screen *); +GC (*XDefaultGC_dylibloader_wrapper_xlib)(Display *, int); +GC (*XDefaultGCOfScreen_dylibloader_wrapper_xlib)(Screen *); +unsigned long (*XBlackPixel_dylibloader_wrapper_xlib)(Display *, int); +unsigned long (*XWhitePixel_dylibloader_wrapper_xlib)(Display *, int); +unsigned long (*XAllPlanes_dylibloader_wrapper_xlib)(void); +unsigned long (*XBlackPixelOfScreen_dylibloader_wrapper_xlib)(Screen *); +unsigned long (*XWhitePixelOfScreen_dylibloader_wrapper_xlib)(Screen *); +unsigned long (*XNextRequest_dylibloader_wrapper_xlib)(Display *); +unsigned long (*XLastKnownRequestProcessed_dylibloader_wrapper_xlib)(Display *); +char *(*XServerVendor_dylibloader_wrapper_xlib)(Display *); +char *(*XDisplayString_dylibloader_wrapper_xlib)(Display *); +Colormap (*XDefaultColormap_dylibloader_wrapper_xlib)(Display *, int); +Colormap (*XDefaultColormapOfScreen_dylibloader_wrapper_xlib)(Screen *); +Display *(*XDisplayOfScreen_dylibloader_wrapper_xlib)(Screen *); +Screen *(*XScreenOfDisplay_dylibloader_wrapper_xlib)(Display *, int); +Screen *(*XDefaultScreenOfDisplay_dylibloader_wrapper_xlib)(Display *); +long (*XEventMaskOfScreen_dylibloader_wrapper_xlib)(Screen *); +int (*XScreenNumberOfScreen_dylibloader_wrapper_xlib)(Screen *); +XErrorHandler (*XSetErrorHandler_dylibloader_wrapper_xlib)(XErrorHandler); +XIOErrorHandler (*XSetIOErrorHandler_dylibloader_wrapper_xlib)(XIOErrorHandler); +void (*XSetIOErrorExitHandler_dylibloader_wrapper_xlib)(Display *, XIOErrorExitHandler, void *); +XPixmapFormatValues *(*XListPixmapFormats_dylibloader_wrapper_xlib)(Display *, int *); +int *(*XListDepths_dylibloader_wrapper_xlib)(Display *, int, int *); +int (*XReconfigureWMWindow_dylibloader_wrapper_xlib)(Display *, Window, int, unsigned int, XWindowChanges *); +int (*XGetWMProtocols_dylibloader_wrapper_xlib)(Display *, Window, Atom **, int *); +int (*XSetWMProtocols_dylibloader_wrapper_xlib)(Display *, Window, Atom *, int); +int (*XIconifyWindow_dylibloader_wrapper_xlib)(Display *, Window, int); +int (*XWithdrawWindow_dylibloader_wrapper_xlib)(Display *, Window, int); +int (*XGetCommand_dylibloader_wrapper_xlib)(Display *, Window, char ***, int *); +int (*XGetWMColormapWindows_dylibloader_wrapper_xlib)(Display *, Window, Window **, int *); +int (*XSetWMColormapWindows_dylibloader_wrapper_xlib)(Display *, Window, Window *, int); +void (*XFreeStringList_dylibloader_wrapper_xlib)(char **); +int (*XSetTransientForHint_dylibloader_wrapper_xlib)(Display *, Window, Window); +int (*XActivateScreenSaver_dylibloader_wrapper_xlib)(Display *); +int (*XAddHost_dylibloader_wrapper_xlib)(Display *, XHostAddress *); +int (*XAddHosts_dylibloader_wrapper_xlib)(Display *, XHostAddress *, int); +int (*XAddToExtensionList_dylibloader_wrapper_xlib)(struct _XExtData **, XExtData *); +int (*XAddToSaveSet_dylibloader_wrapper_xlib)(Display *, Window); +int (*XAllocColor_dylibloader_wrapper_xlib)(Display *, Colormap, XColor *); +int (*XAllocColorCells_dylibloader_wrapper_xlib)(Display *, Colormap, int, unsigned long *, unsigned int, unsigned long *, unsigned int); +int (*XAllocColorPlanes_dylibloader_wrapper_xlib)(Display *, Colormap, int, unsigned long *, int, int, int, int, unsigned long *, unsigned long *, unsigned long *); +int (*XAllocNamedColor_dylibloader_wrapper_xlib)(Display *, Colormap, const char *, XColor *, XColor *); +int (*XAllowEvents_dylibloader_wrapper_xlib)(Display *, int, Time); +int (*XAutoRepeatOff_dylibloader_wrapper_xlib)(Display *); +int (*XAutoRepeatOn_dylibloader_wrapper_xlib)(Display *); +int (*XBell_dylibloader_wrapper_xlib)(Display *, int); +int (*XBitmapBitOrder_dylibloader_wrapper_xlib)(Display *); +int (*XBitmapPad_dylibloader_wrapper_xlib)(Display *); +int (*XBitmapUnit_dylibloader_wrapper_xlib)(Display *); +int (*XCellsOfScreen_dylibloader_wrapper_xlib)(Screen *); +int (*XChangeActivePointerGrab_dylibloader_wrapper_xlib)(Display *, unsigned int, Cursor, Time); +int (*XChangeGC_dylibloader_wrapper_xlib)(Display *, GC, unsigned long, XGCValues *); +int (*XChangeKeyboardControl_dylibloader_wrapper_xlib)(Display *, unsigned long, XKeyboardControl *); +int (*XChangeKeyboardMapping_dylibloader_wrapper_xlib)(Display *, int, int, KeySym *, int); +int (*XChangePointerControl_dylibloader_wrapper_xlib)(Display *, int, int, int, int, int); +int (*XChangeProperty_dylibloader_wrapper_xlib)(Display *, Window, Atom, Atom, int, int, const unsigned char *, int); +int (*XChangeSaveSet_dylibloader_wrapper_xlib)(Display *, Window, int); +int (*XChangeWindowAttributes_dylibloader_wrapper_xlib)(Display *, Window, unsigned long, XSetWindowAttributes *); +int (*XCheckIfEvent_dylibloader_wrapper_xlib)(Display *, XEvent *, int (*)(Display *, XEvent *, XPointer), XPointer); +int (*XCheckMaskEvent_dylibloader_wrapper_xlib)(Display *, long, XEvent *); +int (*XCheckTypedEvent_dylibloader_wrapper_xlib)(Display *, int, XEvent *); +int (*XCheckTypedWindowEvent_dylibloader_wrapper_xlib)(Display *, Window, int, XEvent *); +int (*XCheckWindowEvent_dylibloader_wrapper_xlib)(Display *, Window, long, XEvent *); +int (*XCirculateSubwindows_dylibloader_wrapper_xlib)(Display *, Window, int); +int (*XCirculateSubwindowsDown_dylibloader_wrapper_xlib)(Display *, Window); +int (*XCirculateSubwindowsUp_dylibloader_wrapper_xlib)(Display *, Window); +int (*XClearArea_dylibloader_wrapper_xlib)(Display *, Window, int, int, unsigned int, unsigned int, int); +int (*XClearWindow_dylibloader_wrapper_xlib)(Display *, Window); +int (*XCloseDisplay_dylibloader_wrapper_xlib)(Display *); +int (*XConfigureWindow_dylibloader_wrapper_xlib)(Display *, Window, unsigned int, XWindowChanges *); +int (*XConnectionNumber_dylibloader_wrapper_xlib)(Display *); +int (*XConvertSelection_dylibloader_wrapper_xlib)(Display *, Atom, Atom, Atom, Window, Time); +int (*XCopyArea_dylibloader_wrapper_xlib)(Display *, Drawable, Drawable, GC, int, int, unsigned int, unsigned int, int, int); +int (*XCopyGC_dylibloader_wrapper_xlib)(Display *, GC, unsigned long, GC); +int (*XCopyPlane_dylibloader_wrapper_xlib)(Display *, Drawable, Drawable, GC, int, int, unsigned int, unsigned int, int, int, unsigned long); +int (*XDefaultDepth_dylibloader_wrapper_xlib)(Display *, int); +int (*XDefaultDepthOfScreen_dylibloader_wrapper_xlib)(Screen *); +int (*XDefaultScreen_dylibloader_wrapper_xlib)(Display *); +int (*XDefineCursor_dylibloader_wrapper_xlib)(Display *, Window, Cursor); +int (*XDeleteProperty_dylibloader_wrapper_xlib)(Display *, Window, Atom); +int (*XDestroyWindow_dylibloader_wrapper_xlib)(Display *, Window); +int (*XDestroySubwindows_dylibloader_wrapper_xlib)(Display *, Window); +int (*XDoesBackingStore_dylibloader_wrapper_xlib)(Screen *); +int (*XDoesSaveUnders_dylibloader_wrapper_xlib)(Screen *); +int (*XDisableAccessControl_dylibloader_wrapper_xlib)(Display *); +int (*XDisplayCells_dylibloader_wrapper_xlib)(Display *, int); +int (*XDisplayHeight_dylibloader_wrapper_xlib)(Display *, int); +int (*XDisplayHeightMM_dylibloader_wrapper_xlib)(Display *, int); +int (*XDisplayKeycodes_dylibloader_wrapper_xlib)(Display *, int *, int *); +int (*XDisplayPlanes_dylibloader_wrapper_xlib)(Display *, int); +int (*XDisplayWidth_dylibloader_wrapper_xlib)(Display *, int); +int (*XDisplayWidthMM_dylibloader_wrapper_xlib)(Display *, int); +int (*XDrawArc_dylibloader_wrapper_xlib)(Display *, Drawable, GC, int, int, unsigned int, unsigned int, int, int); +int (*XDrawArcs_dylibloader_wrapper_xlib)(Display *, Drawable, GC, XArc *, int); +int (*XDrawImageString_dylibloader_wrapper_xlib)(Display *, Drawable, GC, int, int, const char *, int); +int (*XDrawImageString16_dylibloader_wrapper_xlib)(Display *, Drawable, GC, int, int, const XChar2b *, int); +int (*XDrawLine_dylibloader_wrapper_xlib)(Display *, Drawable, GC, int, int, int, int); +int (*XDrawLines_dylibloader_wrapper_xlib)(Display *, Drawable, GC, XPoint *, int, int); +int (*XDrawPoint_dylibloader_wrapper_xlib)(Display *, Drawable, GC, int, int); +int (*XDrawPoints_dylibloader_wrapper_xlib)(Display *, Drawable, GC, XPoint *, int, int); +int (*XDrawRectangle_dylibloader_wrapper_xlib)(Display *, Drawable, GC, int, int, unsigned int, unsigned int); +int (*XDrawRectangles_dylibloader_wrapper_xlib)(Display *, Drawable, GC, XRectangle *, int); +int (*XDrawSegments_dylibloader_wrapper_xlib)(Display *, Drawable, GC, XSegment *, int); +int (*XDrawString_dylibloader_wrapper_xlib)(Display *, Drawable, GC, int, int, const char *, int); +int (*XDrawString16_dylibloader_wrapper_xlib)(Display *, Drawable, GC, int, int, const XChar2b *, int); +int (*XDrawText_dylibloader_wrapper_xlib)(Display *, Drawable, GC, int, int, XTextItem *, int); +int (*XDrawText16_dylibloader_wrapper_xlib)(Display *, Drawable, GC, int, int, XTextItem16 *, int); +int (*XEnableAccessControl_dylibloader_wrapper_xlib)(Display *); +int (*XEventsQueued_dylibloader_wrapper_xlib)(Display *, int); +int (*XFetchName_dylibloader_wrapper_xlib)(Display *, Window, char **); +int (*XFillArc_dylibloader_wrapper_xlib)(Display *, Drawable, GC, int, int, unsigned int, unsigned int, int, int); +int (*XFillArcs_dylibloader_wrapper_xlib)(Display *, Drawable, GC, XArc *, int); +int (*XFillPolygon_dylibloader_wrapper_xlib)(Display *, Drawable, GC, XPoint *, int, int, int); +int (*XFillRectangle_dylibloader_wrapper_xlib)(Display *, Drawable, GC, int, int, unsigned int, unsigned int); +int (*XFillRectangles_dylibloader_wrapper_xlib)(Display *, Drawable, GC, XRectangle *, int); +int (*XFlush_dylibloader_wrapper_xlib)(Display *); +int (*XForceScreenSaver_dylibloader_wrapper_xlib)(Display *, int); +int (*XFree_dylibloader_wrapper_xlib)(void *); +int (*XFreeColormap_dylibloader_wrapper_xlib)(Display *, Colormap); +int (*XFreeColors_dylibloader_wrapper_xlib)(Display *, Colormap, unsigned long *, int, unsigned long); +int (*XFreeCursor_dylibloader_wrapper_xlib)(Display *, Cursor); +int (*XFreeExtensionList_dylibloader_wrapper_xlib)(char **); +int (*XFreeFont_dylibloader_wrapper_xlib)(Display *, XFontStruct *); +int (*XFreeFontInfo_dylibloader_wrapper_xlib)(char **, XFontStruct *, int); +int (*XFreeFontNames_dylibloader_wrapper_xlib)(char **); +int (*XFreeFontPath_dylibloader_wrapper_xlib)(char **); +int (*XFreeGC_dylibloader_wrapper_xlib)(Display *, GC); +int (*XFreeModifiermap_dylibloader_wrapper_xlib)(XModifierKeymap *); +int (*XFreePixmap_dylibloader_wrapper_xlib)(Display *, Pixmap); +int (*XGeometry_dylibloader_wrapper_xlib)(Display *, int, const char *, const char *, unsigned int, unsigned int, unsigned int, int, int, int *, int *, int *, int *); +int (*XGetErrorDatabaseText_dylibloader_wrapper_xlib)(Display *, const char *, const char *, const char *, char *, int); +int (*XGetErrorText_dylibloader_wrapper_xlib)(Display *, int, char *, int); +int (*XGetFontProperty_dylibloader_wrapper_xlib)(XFontStruct *, Atom, unsigned long *); +int (*XGetGCValues_dylibloader_wrapper_xlib)(Display *, GC, unsigned long, XGCValues *); +int (*XGetGeometry_dylibloader_wrapper_xlib)(Display *, Drawable, Window *, int *, int *, unsigned int *, unsigned int *, unsigned int *, unsigned int *); +int (*XGetIconName_dylibloader_wrapper_xlib)(Display *, Window, char **); +int (*XGetInputFocus_dylibloader_wrapper_xlib)(Display *, Window *, int *); +int (*XGetKeyboardControl_dylibloader_wrapper_xlib)(Display *, XKeyboardState *); +int (*XGetPointerControl_dylibloader_wrapper_xlib)(Display *, int *, int *, int *); +int (*XGetPointerMapping_dylibloader_wrapper_xlib)(Display *, unsigned char *, int); +int (*XGetScreenSaver_dylibloader_wrapper_xlib)(Display *, int *, int *, int *, int *); +int (*XGetTransientForHint_dylibloader_wrapper_xlib)(Display *, Window, Window *); +int (*XGetWindowProperty_dylibloader_wrapper_xlib)(Display *, Window, Atom, long, long, int, Atom, Atom *, int *, unsigned long *, unsigned long *, unsigned char **); +int (*XGetWindowAttributes_dylibloader_wrapper_xlib)(Display *, Window, XWindowAttributes *); +int (*XGrabButton_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, Window, int, unsigned int, int, int, Window, Cursor); +int (*XGrabKey_dylibloader_wrapper_xlib)(Display *, int, unsigned int, Window, int, int, int); +int (*XGrabKeyboard_dylibloader_wrapper_xlib)(Display *, Window, int, int, int, Time); +int (*XGrabPointer_dylibloader_wrapper_xlib)(Display *, Window, int, unsigned int, int, int, Window, Cursor, Time); +int (*XGrabServer_dylibloader_wrapper_xlib)(Display *); +int (*XHeightMMOfScreen_dylibloader_wrapper_xlib)(Screen *); +int (*XHeightOfScreen_dylibloader_wrapper_xlib)(Screen *); +int (*XIfEvent_dylibloader_wrapper_xlib)(Display *, XEvent *, int (*)(Display *, XEvent *, XPointer), XPointer); +int (*XImageByteOrder_dylibloader_wrapper_xlib)(Display *); +int (*XInstallColormap_dylibloader_wrapper_xlib)(Display *, Colormap); +KeyCode (*XKeysymToKeycode_dylibloader_wrapper_xlib)(Display *, KeySym); +int (*XKillClient_dylibloader_wrapper_xlib)(Display *, XID); +int (*XLookupColor_dylibloader_wrapper_xlib)(Display *, Colormap, const char *, XColor *, XColor *); +int (*XLowerWindow_dylibloader_wrapper_xlib)(Display *, Window); +int (*XMapRaised_dylibloader_wrapper_xlib)(Display *, Window); +int (*XMapSubwindows_dylibloader_wrapper_xlib)(Display *, Window); +int (*XMapWindow_dylibloader_wrapper_xlib)(Display *, Window); +int (*XMaskEvent_dylibloader_wrapper_xlib)(Display *, long, XEvent *); +int (*XMaxCmapsOfScreen_dylibloader_wrapper_xlib)(Screen *); +int (*XMinCmapsOfScreen_dylibloader_wrapper_xlib)(Screen *); +int (*XMoveResizeWindow_dylibloader_wrapper_xlib)(Display *, Window, int, int, unsigned int, unsigned int); +int (*XMoveWindow_dylibloader_wrapper_xlib)(Display *, Window, int, int); +int (*XNextEvent_dylibloader_wrapper_xlib)(Display *, XEvent *); +int (*XNoOp_dylibloader_wrapper_xlib)(Display *); +int (*XParseColor_dylibloader_wrapper_xlib)(Display *, Colormap, const char *, XColor *); +int (*XParseGeometry_dylibloader_wrapper_xlib)(const char *, int *, int *, unsigned int *, unsigned int *); +int (*XPeekEvent_dylibloader_wrapper_xlib)(Display *, XEvent *); +int (*XPeekIfEvent_dylibloader_wrapper_xlib)(Display *, XEvent *, int (*)(Display *, XEvent *, XPointer), XPointer); +int (*XPending_dylibloader_wrapper_xlib)(Display *); +int (*XPlanesOfScreen_dylibloader_wrapper_xlib)(Screen *); +int (*XProtocolRevision_dylibloader_wrapper_xlib)(Display *); +int (*XProtocolVersion_dylibloader_wrapper_xlib)(Display *); +int (*XPutBackEvent_dylibloader_wrapper_xlib)(Display *, XEvent *); +int (*XPutImage_dylibloader_wrapper_xlib)(Display *, Drawable, GC, XImage *, int, int, int, int, unsigned int, unsigned int); +int (*XQLength_dylibloader_wrapper_xlib)(Display *); +int (*XQueryBestCursor_dylibloader_wrapper_xlib)(Display *, Drawable, unsigned int, unsigned int, unsigned int *, unsigned int *); +int (*XQueryBestSize_dylibloader_wrapper_xlib)(Display *, int, Drawable, unsigned int, unsigned int, unsigned int *, unsigned int *); +int (*XQueryBestStipple_dylibloader_wrapper_xlib)(Display *, Drawable, unsigned int, unsigned int, unsigned int *, unsigned int *); +int (*XQueryBestTile_dylibloader_wrapper_xlib)(Display *, Drawable, unsigned int, unsigned int, unsigned int *, unsigned int *); +int (*XQueryColor_dylibloader_wrapper_xlib)(Display *, Colormap, XColor *); +int (*XQueryColors_dylibloader_wrapper_xlib)(Display *, Colormap, XColor *, int); +int (*XQueryExtension_dylibloader_wrapper_xlib)(Display *, const char *, int *, int *, int *); +int (*XQueryKeymap_dylibloader_wrapper_xlib)(Display *, char [32]); +int (*XQueryPointer_dylibloader_wrapper_xlib)(Display *, Window, Window *, Window *, int *, int *, int *, int *, unsigned int *); +int (*XQueryTextExtents_dylibloader_wrapper_xlib)(Display *, XID, const char *, int, int *, int *, int *, XCharStruct *); +int (*XQueryTextExtents16_dylibloader_wrapper_xlib)(Display *, XID, const XChar2b *, int, int *, int *, int *, XCharStruct *); +int (*XQueryTree_dylibloader_wrapper_xlib)(Display *, Window, Window *, Window *, Window **, unsigned int *); +int (*XRaiseWindow_dylibloader_wrapper_xlib)(Display *, Window); +int (*XReadBitmapFile_dylibloader_wrapper_xlib)(Display *, Drawable, const char *, unsigned int *, unsigned int *, Pixmap *, int *, int *); +int (*XReadBitmapFileData_dylibloader_wrapper_xlib)(const char *, unsigned int *, unsigned int *, unsigned char **, int *, int *); +int (*XRebindKeysym_dylibloader_wrapper_xlib)(Display *, KeySym, KeySym *, int, const unsigned char *, int); +int (*XRecolorCursor_dylibloader_wrapper_xlib)(Display *, Cursor, XColor *, XColor *); +int (*XRefreshKeyboardMapping_dylibloader_wrapper_xlib)(XMappingEvent *); +int (*XRemoveFromSaveSet_dylibloader_wrapper_xlib)(Display *, Window); +int (*XRemoveHost_dylibloader_wrapper_xlib)(Display *, XHostAddress *); +int (*XRemoveHosts_dylibloader_wrapper_xlib)(Display *, XHostAddress *, int); +int (*XReparentWindow_dylibloader_wrapper_xlib)(Display *, Window, Window, int, int); +int (*XResetScreenSaver_dylibloader_wrapper_xlib)(Display *); +int (*XResizeWindow_dylibloader_wrapper_xlib)(Display *, Window, unsigned int, unsigned int); +int (*XRestackWindows_dylibloader_wrapper_xlib)(Display *, Window *, int); +int (*XRotateBuffers_dylibloader_wrapper_xlib)(Display *, int); +int (*XRotateWindowProperties_dylibloader_wrapper_xlib)(Display *, Window, Atom *, int, int); +int (*XScreenCount_dylibloader_wrapper_xlib)(Display *); +int (*XSelectInput_dylibloader_wrapper_xlib)(Display *, Window, long); +int (*XSendEvent_dylibloader_wrapper_xlib)(Display *, Window, int, long, XEvent *); +int (*XSetAccessControl_dylibloader_wrapper_xlib)(Display *, int); +int (*XSetArcMode_dylibloader_wrapper_xlib)(Display *, GC, int); +int (*XSetBackground_dylibloader_wrapper_xlib)(Display *, GC, unsigned long); +int (*XSetClipMask_dylibloader_wrapper_xlib)(Display *, GC, Pixmap); +int (*XSetClipOrigin_dylibloader_wrapper_xlib)(Display *, GC, int, int); +int (*XSetClipRectangles_dylibloader_wrapper_xlib)(Display *, GC, int, int, XRectangle *, int, int); +int (*XSetCloseDownMode_dylibloader_wrapper_xlib)(Display *, int); +int (*XSetCommand_dylibloader_wrapper_xlib)(Display *, Window, char **, int); +int (*XSetDashes_dylibloader_wrapper_xlib)(Display *, GC, int, const char *, int); +int (*XSetFillRule_dylibloader_wrapper_xlib)(Display *, GC, int); +int (*XSetFillStyle_dylibloader_wrapper_xlib)(Display *, GC, int); +int (*XSetFont_dylibloader_wrapper_xlib)(Display *, GC, Font); +int (*XSetFontPath_dylibloader_wrapper_xlib)(Display *, char **, int); +int (*XSetForeground_dylibloader_wrapper_xlib)(Display *, GC, unsigned long); +int (*XSetFunction_dylibloader_wrapper_xlib)(Display *, GC, int); +int (*XSetGraphicsExposures_dylibloader_wrapper_xlib)(Display *, GC, int); +int (*XSetIconName_dylibloader_wrapper_xlib)(Display *, Window, const char *); +int (*XSetInputFocus_dylibloader_wrapper_xlib)(Display *, Window, int, Time); +int (*XSetLineAttributes_dylibloader_wrapper_xlib)(Display *, GC, unsigned int, int, int, int); +int (*XSetModifierMapping_dylibloader_wrapper_xlib)(Display *, XModifierKeymap *); +int (*XSetPlaneMask_dylibloader_wrapper_xlib)(Display *, GC, unsigned long); +int (*XSetPointerMapping_dylibloader_wrapper_xlib)(Display *, const unsigned char *, int); +int (*XSetScreenSaver_dylibloader_wrapper_xlib)(Display *, int, int, int, int); +int (*XSetSelectionOwner_dylibloader_wrapper_xlib)(Display *, Atom, Window, Time); +int (*XSetState_dylibloader_wrapper_xlib)(Display *, GC, unsigned long, unsigned long, int, unsigned long); +int (*XSetStipple_dylibloader_wrapper_xlib)(Display *, GC, Pixmap); +int (*XSetSubwindowMode_dylibloader_wrapper_xlib)(Display *, GC, int); +int (*XSetTSOrigin_dylibloader_wrapper_xlib)(Display *, GC, int, int); +int (*XSetTile_dylibloader_wrapper_xlib)(Display *, GC, Pixmap); +int (*XSetWindowBackground_dylibloader_wrapper_xlib)(Display *, Window, unsigned long); +int (*XSetWindowBackgroundPixmap_dylibloader_wrapper_xlib)(Display *, Window, Pixmap); +int (*XSetWindowBorder_dylibloader_wrapper_xlib)(Display *, Window, unsigned long); +int (*XSetWindowBorderPixmap_dylibloader_wrapper_xlib)(Display *, Window, Pixmap); +int (*XSetWindowBorderWidth_dylibloader_wrapper_xlib)(Display *, Window, unsigned int); +int (*XSetWindowColormap_dylibloader_wrapper_xlib)(Display *, Window, Colormap); +int (*XStoreBuffer_dylibloader_wrapper_xlib)(Display *, const char *, int, int); +int (*XStoreBytes_dylibloader_wrapper_xlib)(Display *, const char *, int); +int (*XStoreColor_dylibloader_wrapper_xlib)(Display *, Colormap, XColor *); +int (*XStoreColors_dylibloader_wrapper_xlib)(Display *, Colormap, XColor *, int); +int (*XStoreName_dylibloader_wrapper_xlib)(Display *, Window, const char *); +int (*XStoreNamedColor_dylibloader_wrapper_xlib)(Display *, Colormap, const char *, unsigned long, int); +int (*XSync_dylibloader_wrapper_xlib)(Display *, int); +int (*XTextExtents_dylibloader_wrapper_xlib)(XFontStruct *, const char *, int, int *, int *, int *, XCharStruct *); +int (*XTextExtents16_dylibloader_wrapper_xlib)(XFontStruct *, const XChar2b *, int, int *, int *, int *, XCharStruct *); +int (*XTextWidth_dylibloader_wrapper_xlib)(XFontStruct *, const char *, int); +int (*XTextWidth16_dylibloader_wrapper_xlib)(XFontStruct *, const XChar2b *, int); +int (*XTranslateCoordinates_dylibloader_wrapper_xlib)(Display *, Window, Window, int, int, int *, int *, Window *); +int (*XUndefineCursor_dylibloader_wrapper_xlib)(Display *, Window); +int (*XUngrabButton_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, Window); +int (*XUngrabKey_dylibloader_wrapper_xlib)(Display *, int, unsigned int, Window); +int (*XUngrabKeyboard_dylibloader_wrapper_xlib)(Display *, Time); +int (*XUngrabPointer_dylibloader_wrapper_xlib)(Display *, Time); +int (*XUngrabServer_dylibloader_wrapper_xlib)(Display *); +int (*XUninstallColormap_dylibloader_wrapper_xlib)(Display *, Colormap); +int (*XUnloadFont_dylibloader_wrapper_xlib)(Display *, Font); +int (*XUnmapSubwindows_dylibloader_wrapper_xlib)(Display *, Window); +int (*XUnmapWindow_dylibloader_wrapper_xlib)(Display *, Window); +int (*XVendorRelease_dylibloader_wrapper_xlib)(Display *); +int (*XWarpPointer_dylibloader_wrapper_xlib)(Display *, Window, Window, int, int, unsigned int, unsigned int, int, int); +int (*XWidthMMOfScreen_dylibloader_wrapper_xlib)(Screen *); +int (*XWidthOfScreen_dylibloader_wrapper_xlib)(Screen *); +int (*XWindowEvent_dylibloader_wrapper_xlib)(Display *, Window, long, XEvent *); +int (*XWriteBitmapFile_dylibloader_wrapper_xlib)(Display *, const char *, Pixmap, unsigned int, unsigned int, int, int); +int (*XSupportsLocale_dylibloader_wrapper_xlib)(void); +char *(*XSetLocaleModifiers_dylibloader_wrapper_xlib)(const char *); +XOM (*XOpenOM_dylibloader_wrapper_xlib)(Display *, struct _XrmHashBucketRec *, const char *, const char *); +int (*XCloseOM_dylibloader_wrapper_xlib)(XOM); +char *(*XSetOMValues_dylibloader_wrapper_xlib)(XOM, ...); +char *(*XGetOMValues_dylibloader_wrapper_xlib)(XOM, ...); +Display *(*XDisplayOfOM_dylibloader_wrapper_xlib)(XOM); +char *(*XLocaleOfOM_dylibloader_wrapper_xlib)(XOM); +XOC (*XCreateOC_dylibloader_wrapper_xlib)(XOM, ...); +void (*XDestroyOC_dylibloader_wrapper_xlib)(XOC); +XOM (*XOMOfOC_dylibloader_wrapper_xlib)(XOC); +char *(*XSetOCValues_dylibloader_wrapper_xlib)(XOC, ...); +char *(*XGetOCValues_dylibloader_wrapper_xlib)(XOC, ...); +XFontSet (*XCreateFontSet_dylibloader_wrapper_xlib)(Display *, const char *, char ***, int *, char **); +void (*XFreeFontSet_dylibloader_wrapper_xlib)(Display *, XFontSet); +int (*XFontsOfFontSet_dylibloader_wrapper_xlib)(XFontSet, XFontStruct ***, char ***); +char *(*XBaseFontNameListOfFontSet_dylibloader_wrapper_xlib)(XFontSet); +char *(*XLocaleOfFontSet_dylibloader_wrapper_xlib)(XFontSet); +int (*XContextDependentDrawing_dylibloader_wrapper_xlib)(XFontSet); +int (*XDirectionalDependentDrawing_dylibloader_wrapper_xlib)(XFontSet); +int (*XContextualDrawing_dylibloader_wrapper_xlib)(XFontSet); +XFontSetExtents *(*XExtentsOfFontSet_dylibloader_wrapper_xlib)(XFontSet); +int (*XmbTextEscapement_dylibloader_wrapper_xlib)(XFontSet, const char *, int); +int (*XwcTextEscapement_dylibloader_wrapper_xlib)(XFontSet, const wchar_t *, int); +int (*Xutf8TextEscapement_dylibloader_wrapper_xlib)(XFontSet, const char *, int); +int (*XmbTextExtents_dylibloader_wrapper_xlib)(XFontSet, const char *, int, XRectangle *, XRectangle *); +int (*XwcTextExtents_dylibloader_wrapper_xlib)(XFontSet, const wchar_t *, int, XRectangle *, XRectangle *); +int (*Xutf8TextExtents_dylibloader_wrapper_xlib)(XFontSet, const char *, int, XRectangle *, XRectangle *); +int (*XmbTextPerCharExtents_dylibloader_wrapper_xlib)(XFontSet, const char *, int, XRectangle *, XRectangle *, int, int *, XRectangle *, XRectangle *); +int (*XwcTextPerCharExtents_dylibloader_wrapper_xlib)(XFontSet, const wchar_t *, int, XRectangle *, XRectangle *, int, int *, XRectangle *, XRectangle *); +int (*Xutf8TextPerCharExtents_dylibloader_wrapper_xlib)(XFontSet, const char *, int, XRectangle *, XRectangle *, int, int *, XRectangle *, XRectangle *); +void (*XmbDrawText_dylibloader_wrapper_xlib)(Display *, Drawable, GC, int, int, XmbTextItem *, int); +void (*XwcDrawText_dylibloader_wrapper_xlib)(Display *, Drawable, GC, int, int, XwcTextItem *, int); +void (*Xutf8DrawText_dylibloader_wrapper_xlib)(Display *, Drawable, GC, int, int, XmbTextItem *, int); +void (*XmbDrawString_dylibloader_wrapper_xlib)(Display *, Drawable, XFontSet, GC, int, int, const char *, int); +void (*XwcDrawString_dylibloader_wrapper_xlib)(Display *, Drawable, XFontSet, GC, int, int, const wchar_t *, int); +void (*Xutf8DrawString_dylibloader_wrapper_xlib)(Display *, Drawable, XFontSet, GC, int, int, const char *, int); +void (*XmbDrawImageString_dylibloader_wrapper_xlib)(Display *, Drawable, XFontSet, GC, int, int, const char *, int); +void (*XwcDrawImageString_dylibloader_wrapper_xlib)(Display *, Drawable, XFontSet, GC, int, int, const wchar_t *, int); +void (*Xutf8DrawImageString_dylibloader_wrapper_xlib)(Display *, Drawable, XFontSet, GC, int, int, const char *, int); +XIM (*XOpenIM_dylibloader_wrapper_xlib)(Display *, struct _XrmHashBucketRec *, char *, char *); +int (*XCloseIM_dylibloader_wrapper_xlib)(XIM); +char *(*XGetIMValues_dylibloader_wrapper_xlib)(XIM, ...); +char *(*XSetIMValues_dylibloader_wrapper_xlib)(XIM, ...); +Display *(*XDisplayOfIM_dylibloader_wrapper_xlib)(XIM); +char *(*XLocaleOfIM_dylibloader_wrapper_xlib)(XIM); +XIC (*XCreateIC_dylibloader_wrapper_xlib)(XIM, ...); +void (*XDestroyIC_dylibloader_wrapper_xlib)(XIC); +void (*XSetICFocus_dylibloader_wrapper_xlib)(XIC); +void (*XUnsetICFocus_dylibloader_wrapper_xlib)(XIC); +wchar_t *(*XwcResetIC_dylibloader_wrapper_xlib)(XIC); +char *(*XmbResetIC_dylibloader_wrapper_xlib)(XIC); +char *(*Xutf8ResetIC_dylibloader_wrapper_xlib)(XIC); +char *(*XSetICValues_dylibloader_wrapper_xlib)(XIC, ...); +char *(*XGetICValues_dylibloader_wrapper_xlib)(XIC, ...); +XIM (*XIMOfIC_dylibloader_wrapper_xlib)(XIC); +int (*XFilterEvent_dylibloader_wrapper_xlib)(XEvent *, Window); +int (*XmbLookupString_dylibloader_wrapper_xlib)(XIC, XKeyPressedEvent *, char *, int, KeySym *, int *); +int (*XwcLookupString_dylibloader_wrapper_xlib)(XIC, XKeyPressedEvent *, wchar_t *, int, KeySym *, int *); +int (*Xutf8LookupString_dylibloader_wrapper_xlib)(XIC, XKeyPressedEvent *, char *, int, KeySym *, int *); +XVaNestedList (*XVaCreateNestedList_dylibloader_wrapper_xlib)(int, ...); +int (*XRegisterIMInstantiateCallback_dylibloader_wrapper_xlib)(Display *, struct _XrmHashBucketRec *, char *, char *, XIDProc, XPointer); +int (*XUnregisterIMInstantiateCallback_dylibloader_wrapper_xlib)(Display *, struct _XrmHashBucketRec *, char *, char *, XIDProc, XPointer); +int (*XInternalConnectionNumbers_dylibloader_wrapper_xlib)(Display *, int **, int *); +void (*XProcessInternalConnection_dylibloader_wrapper_xlib)(Display *, int); +int (*XAddConnectionWatch_dylibloader_wrapper_xlib)(Display *, XConnectionWatchProc, XPointer); +void (*XRemoveConnectionWatch_dylibloader_wrapper_xlib)(Display *, XConnectionWatchProc, XPointer); +void (*XSetAuthorization_dylibloader_wrapper_xlib)(char *, int, char *, int); +int (*_Xmbtowc_dylibloader_wrapper_xlib)(wchar_t *, char *, int); +int (*_Xwctomb_dylibloader_wrapper_xlib)(char *, wchar_t); +int (*XGetEventData_dylibloader_wrapper_xlib)(Display *, XGenericEventCookie *); +void (*XFreeEventData_dylibloader_wrapper_xlib)(Display *, XGenericEventCookie *); +int (*XFreeThreads_dylibloader_wrapper_xlib)(void); +XClassHint *(*XAllocClassHint_dylibloader_wrapper_xlib)(void); +XIconSize *(*XAllocIconSize_dylibloader_wrapper_xlib)(void); +XSizeHints *(*XAllocSizeHints_dylibloader_wrapper_xlib)(void); +XStandardColormap *(*XAllocStandardColormap_dylibloader_wrapper_xlib)(void); +XWMHints *(*XAllocWMHints_dylibloader_wrapper_xlib)(void); +int (*XClipBox_dylibloader_wrapper_xlib)(Region, XRectangle *); +Region (*XCreateRegion_dylibloader_wrapper_xlib)(void); +const char *(*XDefaultString_dylibloader_wrapper_xlib)(void); +int (*XDeleteContext_dylibloader_wrapper_xlib)(Display *, XID, XContext); +int (*XDestroyRegion_dylibloader_wrapper_xlib)(Region); +int (*XEmptyRegion_dylibloader_wrapper_xlib)(Region); +int (*XEqualRegion_dylibloader_wrapper_xlib)(Region, Region); +int (*XFindContext_dylibloader_wrapper_xlib)(Display *, XID, XContext, XPointer *); +int (*XGetClassHint_dylibloader_wrapper_xlib)(Display *, Window, XClassHint *); +int (*XGetIconSizes_dylibloader_wrapper_xlib)(Display *, Window, XIconSize **, int *); +int (*XGetNormalHints_dylibloader_wrapper_xlib)(Display *, Window, XSizeHints *); +int (*XGetRGBColormaps_dylibloader_wrapper_xlib)(Display *, Window, XStandardColormap **, int *, Atom); +int (*XGetSizeHints_dylibloader_wrapper_xlib)(Display *, Window, XSizeHints *, Atom); +int (*XGetStandardColormap_dylibloader_wrapper_xlib)(Display *, Window, XStandardColormap *, Atom); +int (*XGetTextProperty_dylibloader_wrapper_xlib)(Display *, Window, XTextProperty *, Atom); +XVisualInfo *(*XGetVisualInfo_dylibloader_wrapper_xlib)(Display *, long, XVisualInfo *, int *); +int (*XGetWMClientMachine_dylibloader_wrapper_xlib)(Display *, Window, XTextProperty *); +XWMHints *(*XGetWMHints_dylibloader_wrapper_xlib)(Display *, Window); +int (*XGetWMIconName_dylibloader_wrapper_xlib)(Display *, Window, XTextProperty *); +int (*XGetWMName_dylibloader_wrapper_xlib)(Display *, Window, XTextProperty *); +int (*XGetWMNormalHints_dylibloader_wrapper_xlib)(Display *, Window, XSizeHints *, long *); +int (*XGetWMSizeHints_dylibloader_wrapper_xlib)(Display *, Window, XSizeHints *, long *, Atom); +int (*XGetZoomHints_dylibloader_wrapper_xlib)(Display *, Window, XSizeHints *); +int (*XIntersectRegion_dylibloader_wrapper_xlib)(Region, Region, Region); +void (*XConvertCase_dylibloader_wrapper_xlib)(KeySym, KeySym *, KeySym *); +int (*XLookupString_dylibloader_wrapper_xlib)(XKeyEvent *, char *, int, KeySym *, XComposeStatus *); +int (*XMatchVisualInfo_dylibloader_wrapper_xlib)(Display *, int, int, int, XVisualInfo *); +int (*XOffsetRegion_dylibloader_wrapper_xlib)(Region, int, int); +int (*XPointInRegion_dylibloader_wrapper_xlib)(Region, int, int); +Region (*XPolygonRegion_dylibloader_wrapper_xlib)(XPoint *, int, int); +int (*XRectInRegion_dylibloader_wrapper_xlib)(Region, int, int, unsigned int, unsigned int); +int (*XSaveContext_dylibloader_wrapper_xlib)(Display *, XID, XContext, const char *); +int (*XSetClassHint_dylibloader_wrapper_xlib)(Display *, Window, XClassHint *); +int (*XSetIconSizes_dylibloader_wrapper_xlib)(Display *, Window, XIconSize *, int); +int (*XSetNormalHints_dylibloader_wrapper_xlib)(Display *, Window, XSizeHints *); +void (*XSetRGBColormaps_dylibloader_wrapper_xlib)(Display *, Window, XStandardColormap *, int, Atom); +int (*XSetSizeHints_dylibloader_wrapper_xlib)(Display *, Window, XSizeHints *, Atom); +int (*XSetStandardProperties_dylibloader_wrapper_xlib)(Display *, Window, const char *, const char *, Pixmap, char **, int, XSizeHints *); +void (*XSetTextProperty_dylibloader_wrapper_xlib)(Display *, Window, XTextProperty *, Atom); +void (*XSetWMClientMachine_dylibloader_wrapper_xlib)(Display *, Window, XTextProperty *); +int (*XSetWMHints_dylibloader_wrapper_xlib)(Display *, Window, XWMHints *); +void (*XSetWMIconName_dylibloader_wrapper_xlib)(Display *, Window, XTextProperty *); +void (*XSetWMName_dylibloader_wrapper_xlib)(Display *, Window, XTextProperty *); +void (*XSetWMNormalHints_dylibloader_wrapper_xlib)(Display *, Window, XSizeHints *); +void (*XSetWMProperties_dylibloader_wrapper_xlib)(Display *, Window, XTextProperty *, XTextProperty *, char **, int, XSizeHints *, XWMHints *, XClassHint *); +void (*XmbSetWMProperties_dylibloader_wrapper_xlib)(Display *, Window, const char *, const char *, char **, int, XSizeHints *, XWMHints *, XClassHint *); +void (*Xutf8SetWMProperties_dylibloader_wrapper_xlib)(Display *, Window, const char *, const char *, char **, int, XSizeHints *, XWMHints *, XClassHint *); +void (*XSetWMSizeHints_dylibloader_wrapper_xlib)(Display *, Window, XSizeHints *, Atom); +int (*XSetRegion_dylibloader_wrapper_xlib)(Display *, GC, Region); +void (*XSetStandardColormap_dylibloader_wrapper_xlib)(Display *, Window, XStandardColormap *, Atom); +int (*XSetZoomHints_dylibloader_wrapper_xlib)(Display *, Window, XSizeHints *); +int (*XShrinkRegion_dylibloader_wrapper_xlib)(Region, int, int); +int (*XStringListToTextProperty_dylibloader_wrapper_xlib)(char **, int, XTextProperty *); +int (*XSubtractRegion_dylibloader_wrapper_xlib)(Region, Region, Region); +int (*XmbTextListToTextProperty_dylibloader_wrapper_xlib)(Display *, char **, int, XICCEncodingStyle, XTextProperty *); +int (*XwcTextListToTextProperty_dylibloader_wrapper_xlib)(Display *, wchar_t **, int, XICCEncodingStyle, XTextProperty *); +int (*Xutf8TextListToTextProperty_dylibloader_wrapper_xlib)(Display *, char **, int, XICCEncodingStyle, XTextProperty *); +void (*XwcFreeStringList_dylibloader_wrapper_xlib)(wchar_t **); +int (*XTextPropertyToStringList_dylibloader_wrapper_xlib)(XTextProperty *, char ***, int *); +int (*XmbTextPropertyToTextList_dylibloader_wrapper_xlib)(Display *, const XTextProperty *, char ***, int *); +int (*XwcTextPropertyToTextList_dylibloader_wrapper_xlib)(Display *, const XTextProperty *, wchar_t ***, int *); +int (*Xutf8TextPropertyToTextList_dylibloader_wrapper_xlib)(Display *, const XTextProperty *, char ***, int *); +int (*XUnionRectWithRegion_dylibloader_wrapper_xlib)(XRectangle *, Region, Region); +int (*XUnionRegion_dylibloader_wrapper_xlib)(Region, Region, Region); +int (*XWMGeometry_dylibloader_wrapper_xlib)(Display *, int, const char *, const char *, unsigned int, XSizeHints *, int *, int *, int *, int *, int *); +int (*XXorRegion_dylibloader_wrapper_xlib)(Region, Region, Region); +int (*XkbIgnoreExtension_dylibloader_wrapper_xlib)(int); +Display *(*XkbOpenDisplay_dylibloader_wrapper_xlib)(char *, int *, int *, int *, int *, int *); +int (*XkbQueryExtension_dylibloader_wrapper_xlib)(Display *, int *, int *, int *, int *, int *); +int (*XkbUseExtension_dylibloader_wrapper_xlib)(Display *, int *, int *); +int (*XkbLibraryVersion_dylibloader_wrapper_xlib)(int *, int *); +unsigned int (*XkbSetXlibControls_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int); +unsigned int (*XkbGetXlibControls_dylibloader_wrapper_xlib)(Display *); +unsigned int (*XkbXlibControlsImplemented_dylibloader_wrapper_xlib)(void); +void (*XkbSetAtomFuncs_dylibloader_wrapper_xlib)(XkbInternAtomFunc, XkbGetAtomNameFunc); +KeySym (*XkbKeycodeToKeysym_dylibloader_wrapper_xlib)(Display *, KeyCode, int, int); +unsigned int (*XkbKeysymToModifiers_dylibloader_wrapper_xlib)(Display *, KeySym); +int (*XkbLookupKeySym_dylibloader_wrapper_xlib)(Display *, KeyCode, unsigned int, unsigned int *, KeySym *); +int (*XkbLookupKeyBinding_dylibloader_wrapper_xlib)(Display *, KeySym, unsigned int, char *, int, int *); +int (*XkbTranslateKeyCode_dylibloader_wrapper_xlib)(XkbDescPtr, KeyCode, unsigned int, unsigned int *, KeySym *); +int (*XkbTranslateKeySym_dylibloader_wrapper_xlib)(Display *, KeySym *, unsigned int, char *, int, int *); +int (*XkbSetAutoRepeatRate_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, unsigned int); +int (*XkbGetAutoRepeatRate_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int *, unsigned int *); +int (*XkbChangeEnabledControls_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, unsigned int); +int (*XkbDeviceBell_dylibloader_wrapper_xlib)(Display *, Window, int, int, int, int, Atom); +int (*XkbForceDeviceBell_dylibloader_wrapper_xlib)(Display *, int, int, int, int); +int (*XkbDeviceBellEvent_dylibloader_wrapper_xlib)(Display *, Window, int, int, int, int, Atom); +int (*XkbBell_dylibloader_wrapper_xlib)(Display *, Window, int, Atom); +int (*XkbForceBell_dylibloader_wrapper_xlib)(Display *, int); +int (*XkbBellEvent_dylibloader_wrapper_xlib)(Display *, Window, int, Atom); +int (*XkbSelectEvents_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, unsigned int); +int (*XkbSelectEventDetails_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, unsigned long, unsigned long); +void (*XkbNoteMapChanges_dylibloader_wrapper_xlib)(XkbMapChangesPtr, XkbMapNotifyEvent *, unsigned int); +void (*XkbNoteNameChanges_dylibloader_wrapper_xlib)(XkbNameChangesPtr, XkbNamesNotifyEvent *, unsigned int); +int (*XkbGetIndicatorState_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int *); +int (*XkbGetIndicatorMap_dylibloader_wrapper_xlib)(Display *, unsigned long, XkbDescPtr); +int (*XkbSetIndicatorMap_dylibloader_wrapper_xlib)(Display *, unsigned long, XkbDescPtr); +int (*XkbGetNamedIndicator_dylibloader_wrapper_xlib)(Display *, Atom, int *, int *, XkbIndicatorMapPtr, int *); +int (*XkbGetNamedDeviceIndicator_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, unsigned int, Atom, int *, int *, XkbIndicatorMapPtr, int *); +int (*XkbSetNamedIndicator_dylibloader_wrapper_xlib)(Display *, Atom, int, int, int, XkbIndicatorMapPtr); +int (*XkbSetNamedDeviceIndicator_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, unsigned int, Atom, int, int, int, XkbIndicatorMapPtr); +int (*XkbLockModifiers_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, unsigned int); +int (*XkbLatchModifiers_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, unsigned int); +int (*XkbLockGroup_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int); +int (*XkbLatchGroup_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int); +int (*XkbSetServerInternalMods_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int); +int (*XkbSetIgnoreLockMods_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int); +int (*XkbVirtualModsToReal_dylibloader_wrapper_xlib)(XkbDescPtr, unsigned int, unsigned int *); +int (*XkbComputeEffectiveMap_dylibloader_wrapper_xlib)(XkbDescPtr, XkbKeyTypePtr, unsigned char *); +int (*XkbInitCanonicalKeyTypes_dylibloader_wrapper_xlib)(XkbDescPtr, unsigned int, int); +XkbDescPtr (*XkbAllocKeyboard_dylibloader_wrapper_xlib)(void); +void (*XkbFreeKeyboard_dylibloader_wrapper_xlib)(XkbDescPtr, unsigned int, int); +int (*XkbAllocClientMap_dylibloader_wrapper_xlib)(XkbDescPtr, unsigned int, unsigned int); +int (*XkbAllocServerMap_dylibloader_wrapper_xlib)(XkbDescPtr, unsigned int, unsigned int); +void (*XkbFreeClientMap_dylibloader_wrapper_xlib)(XkbDescPtr, unsigned int, int); +void (*XkbFreeServerMap_dylibloader_wrapper_xlib)(XkbDescPtr, unsigned int, int); +XkbKeyTypePtr (*XkbAddKeyType_dylibloader_wrapper_xlib)(XkbDescPtr, Atom, int, int, int); +int (*XkbAllocIndicatorMaps_dylibloader_wrapper_xlib)(XkbDescPtr); +void (*XkbFreeIndicatorMaps_dylibloader_wrapper_xlib)(XkbDescPtr); +XkbDescPtr (*XkbGetMap_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int); +int (*XkbGetUpdatedMap_dylibloader_wrapper_xlib)(Display *, unsigned int, XkbDescPtr); +int (*XkbGetMapChanges_dylibloader_wrapper_xlib)(Display *, XkbDescPtr, XkbMapChangesPtr); +int (*XkbRefreshKeyboardMapping_dylibloader_wrapper_xlib)(XkbMapNotifyEvent *); +int (*XkbGetKeyTypes_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, XkbDescPtr); +int (*XkbGetKeySyms_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, XkbDescPtr); +int (*XkbGetKeyActions_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, XkbDescPtr); +int (*XkbGetKeyBehaviors_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, XkbDescPtr); +int (*XkbGetVirtualMods_dylibloader_wrapper_xlib)(Display *, unsigned int, XkbDescPtr); +int (*XkbGetKeyExplicitComponents_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, XkbDescPtr); +int (*XkbGetKeyModifierMap_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, XkbDescPtr); +int (*XkbGetKeyVirtualModMap_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, XkbDescPtr); +int (*XkbAllocControls_dylibloader_wrapper_xlib)(XkbDescPtr, unsigned int); +void (*XkbFreeControls_dylibloader_wrapper_xlib)(XkbDescPtr, unsigned int, int); +int (*XkbGetControls_dylibloader_wrapper_xlib)(Display *, unsigned long, XkbDescPtr); +int (*XkbSetControls_dylibloader_wrapper_xlib)(Display *, unsigned long, XkbDescPtr); +void (*XkbNoteControlsChanges_dylibloader_wrapper_xlib)(XkbControlsChangesPtr, XkbControlsNotifyEvent *, unsigned int); +int (*XkbAllocCompatMap_dylibloader_wrapper_xlib)(XkbDescPtr, unsigned int, unsigned int); +void (*XkbFreeCompatMap_dylibloader_wrapper_xlib)(XkbDescPtr, unsigned int, int); +int (*XkbGetCompatMap_dylibloader_wrapper_xlib)(Display *, unsigned int, XkbDescPtr); +int (*XkbSetCompatMap_dylibloader_wrapper_xlib)(Display *, unsigned int, XkbDescPtr, int); +int (*XkbAllocNames_dylibloader_wrapper_xlib)(XkbDescPtr, unsigned int, int, int); +int (*XkbGetNames_dylibloader_wrapper_xlib)(Display *, unsigned int, XkbDescPtr); +int (*XkbSetNames_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, unsigned int, XkbDescPtr); +int (*XkbChangeNames_dylibloader_wrapper_xlib)(Display *, XkbDescPtr, XkbNameChangesPtr); +void (*XkbFreeNames_dylibloader_wrapper_xlib)(XkbDescPtr, unsigned int, int); +int (*XkbGetState_dylibloader_wrapper_xlib)(Display *, unsigned int, XkbStatePtr); +int (*XkbSetMap_dylibloader_wrapper_xlib)(Display *, unsigned int, XkbDescPtr); +int (*XkbChangeMap_dylibloader_wrapper_xlib)(Display *, XkbDescPtr, XkbMapChangesPtr); +int (*XkbSetDetectableAutoRepeat_dylibloader_wrapper_xlib)(Display *, int, int *); +int (*XkbGetDetectableAutoRepeat_dylibloader_wrapper_xlib)(Display *, int *); +int (*XkbSetAutoResetControls_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int *, unsigned int *); +int (*XkbGetAutoResetControls_dylibloader_wrapper_xlib)(Display *, unsigned int *, unsigned int *); +int (*XkbSetPerClientControls_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int *); +int (*XkbGetPerClientControls_dylibloader_wrapper_xlib)(Display *, unsigned int *); +int (*XkbCopyKeyType_dylibloader_wrapper_xlib)(XkbKeyTypePtr, XkbKeyTypePtr); +int (*XkbCopyKeyTypes_dylibloader_wrapper_xlib)(XkbKeyTypePtr, XkbKeyTypePtr, int); +int (*XkbResizeKeyType_dylibloader_wrapper_xlib)(XkbDescPtr, int, int, int, int); +KeySym *(*XkbResizeKeySyms_dylibloader_wrapper_xlib)(XkbDescPtr, int, int); +XkbAction *(*XkbResizeKeyActions_dylibloader_wrapper_xlib)(XkbDescPtr, int, int); +int (*XkbChangeTypesOfKey_dylibloader_wrapper_xlib)(XkbDescPtr, int, int, unsigned int, int *, XkbMapChangesPtr); +int (*XkbChangeKeycodeRange_dylibloader_wrapper_xlib)(XkbDescPtr, int, int, XkbChangesPtr); +XkbComponentListPtr (*XkbListComponents_dylibloader_wrapper_xlib)(Display *, unsigned int, XkbComponentNamesPtr, int *); +void (*XkbFreeComponentList_dylibloader_wrapper_xlib)(XkbComponentListPtr); +XkbDescPtr (*XkbGetKeyboard_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int); +XkbDescPtr (*XkbGetKeyboardByName_dylibloader_wrapper_xlib)(Display *, unsigned int, XkbComponentNamesPtr, unsigned int, unsigned int, int); +int (*XkbKeyTypesForCoreSymbols_dylibloader_wrapper_xlib)(XkbDescPtr, int, KeySym *, unsigned int, int *, KeySym *); +int (*XkbApplyCompatMapToKey_dylibloader_wrapper_xlib)(XkbDescPtr, KeyCode, XkbChangesPtr); +int (*XkbUpdateMapFromCore_dylibloader_wrapper_xlib)(XkbDescPtr, KeyCode, int, int, KeySym *, XkbChangesPtr); +XkbDeviceLedInfoPtr (*XkbAddDeviceLedInfo_dylibloader_wrapper_xlib)(XkbDeviceInfoPtr, unsigned int, unsigned int); +int (*XkbResizeDeviceButtonActions_dylibloader_wrapper_xlib)(XkbDeviceInfoPtr, unsigned int); +XkbDeviceInfoPtr (*XkbAllocDeviceInfo_dylibloader_wrapper_xlib)(unsigned int, unsigned int, unsigned int); +void (*XkbFreeDeviceInfo_dylibloader_wrapper_xlib)(XkbDeviceInfoPtr, unsigned int, int); +void (*XkbNoteDeviceChanges_dylibloader_wrapper_xlib)(XkbDeviceChangesPtr, XkbExtensionDeviceNotifyEvent *, unsigned int); +XkbDeviceInfoPtr (*XkbGetDeviceInfo_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, unsigned int, unsigned int); +int (*XkbGetDeviceInfoChanges_dylibloader_wrapper_xlib)(Display *, XkbDeviceInfoPtr, XkbDeviceChangesPtr); +int (*XkbGetDeviceButtonActions_dylibloader_wrapper_xlib)(Display *, XkbDeviceInfoPtr, int, unsigned int, unsigned int); +int (*XkbGetDeviceLedInfo_dylibloader_wrapper_xlib)(Display *, XkbDeviceInfoPtr, unsigned int, unsigned int, unsigned int); +int (*XkbSetDeviceInfo_dylibloader_wrapper_xlib)(Display *, unsigned int, XkbDeviceInfoPtr); +int (*XkbChangeDeviceInfo_dylibloader_wrapper_xlib)(Display *, XkbDeviceInfoPtr, XkbDeviceChangesPtr); +int (*XkbSetDeviceLedInfo_dylibloader_wrapper_xlib)(Display *, XkbDeviceInfoPtr, unsigned int, unsigned int, unsigned int); +int (*XkbSetDeviceButtonActions_dylibloader_wrapper_xlib)(Display *, XkbDeviceInfoPtr, unsigned int, unsigned int); +char (*XkbToControl_dylibloader_wrapper_xlib)(char); +int (*XkbSetDebuggingFlags_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, char *, unsigned int, unsigned int, unsigned int *, unsigned int *); +int (*XkbApplyVirtualModChanges_dylibloader_wrapper_xlib)(XkbDescPtr, unsigned int, XkbChangesPtr); +int (*XkbUpdateActionVirtualMods_dylibloader_wrapper_xlib)(XkbDescPtr, XkbAction *, unsigned int); +void (*XkbUpdateKeyTypeVirtualMods_dylibloader_wrapper_xlib)(XkbDescPtr, XkbKeyTypePtr, unsigned int, XkbChangesPtr); int initialize_xlib(int verbose) { void *handle; char *error; @@ -2548,6 +2548,14 @@ int initialize_xlib(int verbose) { fprintf(stderr, "%s\n", error); } } +// XSetIOErrorExitHandler + *(void **) (&XSetIOErrorExitHandler_dylibloader_wrapper_xlib) = dlsym(handle, "XSetIOErrorExitHandler"); + if (verbose) { + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } + } // XListPixmapFormats *(void **) (&XListPixmapFormats_dylibloader_wrapper_xlib) = dlsym(handle, "XListPixmapFormats"); if (verbose) { @@ -5132,6 +5140,14 @@ int initialize_xlib(int verbose) { fprintf(stderr, "%s\n", error); } } +// XFreeThreads + *(void **) (&XFreeThreads_dylibloader_wrapper_xlib) = dlsym(handle, "XFreeThreads"); + if (verbose) { + error = dlerror(); + if (error != NULL) { + fprintf(stderr, "%s\n", error); + } + } // XAllocClassHint *(void **) (&XAllocClassHint_dylibloader_wrapper_xlib) = dlsym(handle, "XAllocClassHint"); if (verbose) { diff --git a/platform/linuxbsd/x11/dynwrappers/xlib-so_wrap.h b/platform/linuxbsd/x11/dynwrappers/xlib-so_wrap.h index 5bad21002d..3f556a7cda 100644 --- a/platform/linuxbsd/x11/dynwrappers/xlib-so_wrap.h +++ b/platform/linuxbsd/x11/dynwrappers/xlib-so_wrap.h @@ -2,16 +2,9 @@ #define DYLIBLOAD_WRAPPER_XLIB // This file is generated. Do not edit! // see https://github.com/hpvb/dynload-wrapper for details -// generated by generate-wrapper.py 0.3 on 2023-01-23 15:13:26 -// flags: generate-wrapper.py --include ./thirdparty/linuxbsd_headers/X11/Xlib.h --include ./thirdparty/linuxbsd_headers/X11/Xutil.h --include ./thirdparty/linuxbsd_headers/X11/XKBlib.h --sys-include "thirdparty/linuxbsd_headers/X11/Xlib.h" --sys-include "thirdparty/linuxbsd_headers/X11/Xutil.h" --sys-include "thirdparty/linuxbsd_headers/X11/XKBlib.h" --soname libX11.so.6 --init-name xlib --omit-prefix XkbGetDeviceIndicatorState --omit-prefix XkbAddSymInterpret --output-header ./platform/linuxbsd/x11/dynwrappers/xlib-so_wrap.h --output-implementation ./platform/linuxbsd/x11/dynwrappers/xlib-so_wrap.c~ +// generated by generate-wrapper.py 0.6 on 2024-11-09 02:52:36 +// flags: generate-wrapper.py --include ./thirdparty/linuxbsd_headers/X11/Xlib.h --include ./thirdparty/linuxbsd_headers/X11/Xutil.h --include ./thirdparty/linuxbsd_headers/X11/XKBlib.h --sys-include thirdparty/linuxbsd_headers/X11/Xlib.h --sys-include thirdparty/linuxbsd_headers/X11/Xutil.h --sys-include thirdparty/linuxbsd_headers/X11/XKBlib.h --soname libX11.so.6 --init-name xlib --omit-prefix XkbGetDeviceIndicatorState --omit-prefix XkbAddSymInterpret --output-header ./platform/linuxbsd/x11/dynwrappers/xlib-so_wrap.h --output-implementation ./platform/linuxbsd/x11/dynwrappers/xlib-so_wrap.c // -// NOTE: Generated from Xlib 1.6.9. -// This has been handpatched to workaround some issues with the generator that -// will be eventually fixed. In this case, the type of the third argument of -// XIfEvent, XPeekIfEvent and XCheckIfEvent had to be fixed as it wasn't parsed -// fully (it's a Bool function pointer, but it was just being parsed as an int -// pointer). - #include <stdint.h> #define _Xmblen _Xmblen_dylibloader_orig_xlib @@ -103,6 +96,7 @@ #define XScreenNumberOfScreen XScreenNumberOfScreen_dylibloader_orig_xlib #define XSetErrorHandler XSetErrorHandler_dylibloader_orig_xlib #define XSetIOErrorHandler XSetIOErrorHandler_dylibloader_orig_xlib +#define XSetIOErrorExitHandler XSetIOErrorExitHandler_dylibloader_orig_xlib #define XListPixmapFormats XListPixmapFormats_dylibloader_orig_xlib #define XListDepths XListDepths_dylibloader_orig_xlib #define XReconfigureWMWindow XReconfigureWMWindow_dylibloader_orig_xlib @@ -426,6 +420,7 @@ #define _Xwctomb _Xwctomb_dylibloader_orig_xlib #define XGetEventData XGetEventData_dylibloader_orig_xlib #define XFreeEventData XFreeEventData_dylibloader_orig_xlib +#define XFreeThreads XFreeThreads_dylibloader_orig_xlib #define XAllocClassHint XAllocClassHint_dylibloader_orig_xlib #define XAllocIconSize XAllocIconSize_dylibloader_orig_xlib #define XAllocSizeHints XAllocSizeHints_dylibloader_orig_xlib @@ -709,6 +704,7 @@ #undef XScreenNumberOfScreen #undef XSetErrorHandler #undef XSetIOErrorHandler +#undef XSetIOErrorExitHandler #undef XListPixmapFormats #undef XListDepths #undef XReconfigureWMWindow @@ -1032,6 +1028,7 @@ #undef _Xwctomb #undef XGetEventData #undef XFreeEventData +#undef XFreeThreads #undef XAllocClassHint #undef XAllocIconSize #undef XAllocSizeHints @@ -1315,6 +1312,7 @@ extern "C" { #define XScreenNumberOfScreen XScreenNumberOfScreen_dylibloader_wrapper_xlib #define XSetErrorHandler XSetErrorHandler_dylibloader_wrapper_xlib #define XSetIOErrorHandler XSetIOErrorHandler_dylibloader_wrapper_xlib +#define XSetIOErrorExitHandler XSetIOErrorExitHandler_dylibloader_wrapper_xlib #define XListPixmapFormats XListPixmapFormats_dylibloader_wrapper_xlib #define XListDepths XListDepths_dylibloader_wrapper_xlib #define XReconfigureWMWindow XReconfigureWMWindow_dylibloader_wrapper_xlib @@ -1638,6 +1636,7 @@ extern "C" { #define _Xwctomb _Xwctomb_dylibloader_wrapper_xlib #define XGetEventData XGetEventData_dylibloader_wrapper_xlib #define XFreeEventData XFreeEventData_dylibloader_wrapper_xlib +#define XFreeThreads XFreeThreads_dylibloader_wrapper_xlib #define XAllocClassHint XAllocClassHint_dylibloader_wrapper_xlib #define XAllocIconSize XAllocIconSize_dylibloader_wrapper_xlib #define XAllocSizeHints XAllocSizeHints_dylibloader_wrapper_xlib @@ -1829,609 +1828,611 @@ extern "C" { #define XkbApplyVirtualModChanges XkbApplyVirtualModChanges_dylibloader_wrapper_xlib #define XkbUpdateActionVirtualMods XkbUpdateActionVirtualMods_dylibloader_wrapper_xlib #define XkbUpdateKeyTypeVirtualMods XkbUpdateKeyTypeVirtualMods_dylibloader_wrapper_xlib -extern int (*_Xmblen_dylibloader_wrapper_xlib)( char*, int); -extern XFontStruct* (*XLoadQueryFont_dylibloader_wrapper_xlib)( Display*,const char*); -extern XFontStruct* (*XQueryFont_dylibloader_wrapper_xlib)( Display*, XID); -extern XTimeCoord* (*XGetMotionEvents_dylibloader_wrapper_xlib)( Display*, Window, Time, Time, int*); -extern XModifierKeymap* (*XDeleteModifiermapEntry_dylibloader_wrapper_xlib)( XModifierKeymap*, KeyCode, int); -extern XModifierKeymap* (*XGetModifierMapping_dylibloader_wrapper_xlib)( Display*); -extern XModifierKeymap* (*XInsertModifiermapEntry_dylibloader_wrapper_xlib)( XModifierKeymap*, KeyCode, int); -extern XModifierKeymap* (*XNewModifiermap_dylibloader_wrapper_xlib)( int); -extern XImage* (*XCreateImage_dylibloader_wrapper_xlib)( Display*, Visual*, unsigned int, int, int, char*, unsigned int, unsigned int, int, int); -extern int (*XInitImage_dylibloader_wrapper_xlib)( XImage*); -extern XImage* (*XGetImage_dylibloader_wrapper_xlib)( Display*, Drawable, int, int, unsigned int, unsigned int, unsigned long, int); -extern XImage* (*XGetSubImage_dylibloader_wrapper_xlib)( Display*, Drawable, int, int, unsigned int, unsigned int, unsigned long, int, XImage*, int, int); -extern Display* (*XOpenDisplay_dylibloader_wrapper_xlib)(const char*); -extern void (*XrmInitialize_dylibloader_wrapper_xlib)( void); -extern char* (*XFetchBytes_dylibloader_wrapper_xlib)( Display*, int*); -extern char* (*XFetchBuffer_dylibloader_wrapper_xlib)( Display*, int*, int); -extern char* (*XGetAtomName_dylibloader_wrapper_xlib)( Display*, Atom); -extern int (*XGetAtomNames_dylibloader_wrapper_xlib)( Display*, Atom*, int, char**); -extern char* (*XGetDefault_dylibloader_wrapper_xlib)( Display*,const char*,const char*); -extern char* (*XDisplayName_dylibloader_wrapper_xlib)(const char*); -extern char* (*XKeysymToString_dylibloader_wrapper_xlib)( KeySym); -extern int* (*XSynchronize_dylibloader_wrapper_xlib)( Display*, int); -extern int* (*XSetAfterFunction_dylibloader_wrapper_xlib)( Display*, int*); -extern Atom (*XInternAtom_dylibloader_wrapper_xlib)( Display*,const char*, int); -extern int (*XInternAtoms_dylibloader_wrapper_xlib)( Display*, char**, int, int, Atom*); -extern Colormap (*XCopyColormapAndFree_dylibloader_wrapper_xlib)( Display*, Colormap); -extern Colormap (*XCreateColormap_dylibloader_wrapper_xlib)( Display*, Window, Visual*, int); -extern Cursor (*XCreatePixmapCursor_dylibloader_wrapper_xlib)( Display*, Pixmap, Pixmap, XColor*, XColor*, unsigned int, unsigned int); -extern Cursor (*XCreateGlyphCursor_dylibloader_wrapper_xlib)( Display*, Font, Font, unsigned int, unsigned int,const XColor*,const XColor*); -extern Cursor (*XCreateFontCursor_dylibloader_wrapper_xlib)( Display*, unsigned int); -extern Font (*XLoadFont_dylibloader_wrapper_xlib)( Display*,const char*); -extern GC (*XCreateGC_dylibloader_wrapper_xlib)( Display*, Drawable, unsigned long, XGCValues*); -extern GContext (*XGContextFromGC_dylibloader_wrapper_xlib)( GC); -extern void (*XFlushGC_dylibloader_wrapper_xlib)( Display*, GC); -extern Pixmap (*XCreatePixmap_dylibloader_wrapper_xlib)( Display*, Drawable, unsigned int, unsigned int, unsigned int); -extern Pixmap (*XCreateBitmapFromData_dylibloader_wrapper_xlib)( Display*, Drawable,const char*, unsigned int, unsigned int); -extern Pixmap (*XCreatePixmapFromBitmapData_dylibloader_wrapper_xlib)( Display*, Drawable, char*, unsigned int, unsigned int, unsigned long, unsigned long, unsigned int); -extern Window (*XCreateSimpleWindow_dylibloader_wrapper_xlib)( Display*, Window, int, int, unsigned int, unsigned int, unsigned int, unsigned long, unsigned long); -extern Window (*XGetSelectionOwner_dylibloader_wrapper_xlib)( Display*, Atom); -extern Window (*XCreateWindow_dylibloader_wrapper_xlib)( Display*, Window, int, int, unsigned int, unsigned int, unsigned int, int, unsigned int, Visual*, unsigned long, XSetWindowAttributes*); -extern Colormap* (*XListInstalledColormaps_dylibloader_wrapper_xlib)( Display*, Window, int*); -extern char** (*XListFonts_dylibloader_wrapper_xlib)( Display*,const char*, int, int*); -extern char** (*XListFontsWithInfo_dylibloader_wrapper_xlib)( Display*,const char*, int, int*, XFontStruct**); -extern char** (*XGetFontPath_dylibloader_wrapper_xlib)( Display*, int*); -extern char** (*XListExtensions_dylibloader_wrapper_xlib)( Display*, int*); -extern Atom* (*XListProperties_dylibloader_wrapper_xlib)( Display*, Window, int*); -extern XHostAddress* (*XListHosts_dylibloader_wrapper_xlib)( Display*, int*, int*); -extern KeySym (*XKeycodeToKeysym_dylibloader_wrapper_xlib)( Display*, KeyCode, int); -extern KeySym (*XLookupKeysym_dylibloader_wrapper_xlib)( XKeyEvent*, int); -extern KeySym* (*XGetKeyboardMapping_dylibloader_wrapper_xlib)( Display*, KeyCode, int, int*); -extern KeySym (*XStringToKeysym_dylibloader_wrapper_xlib)(const char*); -extern long (*XMaxRequestSize_dylibloader_wrapper_xlib)( Display*); -extern long (*XExtendedMaxRequestSize_dylibloader_wrapper_xlib)( Display*); -extern char* (*XResourceManagerString_dylibloader_wrapper_xlib)( Display*); -extern char* (*XScreenResourceString_dylibloader_wrapper_xlib)( Screen*); -extern unsigned long (*XDisplayMotionBufferSize_dylibloader_wrapper_xlib)( Display*); -extern VisualID (*XVisualIDFromVisual_dylibloader_wrapper_xlib)( Visual*); -extern int (*XInitThreads_dylibloader_wrapper_xlib)( void); -extern void (*XLockDisplay_dylibloader_wrapper_xlib)( Display*); -extern void (*XUnlockDisplay_dylibloader_wrapper_xlib)( Display*); -extern XExtCodes* (*XInitExtension_dylibloader_wrapper_xlib)( Display*,const char*); -extern XExtCodes* (*XAddExtension_dylibloader_wrapper_xlib)( Display*); -extern XExtData* (*XFindOnExtensionList_dylibloader_wrapper_xlib)( XExtData**, int); -extern XExtData** (*XEHeadOfExtensionList_dylibloader_wrapper_xlib)( XEDataObject); -extern Window (*XRootWindow_dylibloader_wrapper_xlib)( Display*, int); -extern Window (*XDefaultRootWindow_dylibloader_wrapper_xlib)( Display*); -extern Window (*XRootWindowOfScreen_dylibloader_wrapper_xlib)( Screen*); -extern Visual* (*XDefaultVisual_dylibloader_wrapper_xlib)( Display*, int); -extern Visual* (*XDefaultVisualOfScreen_dylibloader_wrapper_xlib)( Screen*); -extern GC (*XDefaultGC_dylibloader_wrapper_xlib)( Display*, int); -extern GC (*XDefaultGCOfScreen_dylibloader_wrapper_xlib)( Screen*); -extern unsigned long (*XBlackPixel_dylibloader_wrapper_xlib)( Display*, int); -extern unsigned long (*XWhitePixel_dylibloader_wrapper_xlib)( Display*, int); -extern unsigned long (*XAllPlanes_dylibloader_wrapper_xlib)( void); -extern unsigned long (*XBlackPixelOfScreen_dylibloader_wrapper_xlib)( Screen*); -extern unsigned long (*XWhitePixelOfScreen_dylibloader_wrapper_xlib)( Screen*); -extern unsigned long (*XNextRequest_dylibloader_wrapper_xlib)( Display*); -extern unsigned long (*XLastKnownRequestProcessed_dylibloader_wrapper_xlib)( Display*); -extern char* (*XServerVendor_dylibloader_wrapper_xlib)( Display*); -extern char* (*XDisplayString_dylibloader_wrapper_xlib)( Display*); -extern Colormap (*XDefaultColormap_dylibloader_wrapper_xlib)( Display*, int); -extern Colormap (*XDefaultColormapOfScreen_dylibloader_wrapper_xlib)( Screen*); -extern Display* (*XDisplayOfScreen_dylibloader_wrapper_xlib)( Screen*); -extern Screen* (*XScreenOfDisplay_dylibloader_wrapper_xlib)( Display*, int); -extern Screen* (*XDefaultScreenOfDisplay_dylibloader_wrapper_xlib)( Display*); -extern long (*XEventMaskOfScreen_dylibloader_wrapper_xlib)( Screen*); -extern int (*XScreenNumberOfScreen_dylibloader_wrapper_xlib)( Screen*); -extern XErrorHandler (*XSetErrorHandler_dylibloader_wrapper_xlib)( XErrorHandler); -extern XIOErrorHandler (*XSetIOErrorHandler_dylibloader_wrapper_xlib)( XIOErrorHandler); -extern XPixmapFormatValues* (*XListPixmapFormats_dylibloader_wrapper_xlib)( Display*, int*); -extern int* (*XListDepths_dylibloader_wrapper_xlib)( Display*, int, int*); -extern int (*XReconfigureWMWindow_dylibloader_wrapper_xlib)( Display*, Window, int, unsigned int, XWindowChanges*); -extern int (*XGetWMProtocols_dylibloader_wrapper_xlib)( Display*, Window, Atom**, int*); -extern int (*XSetWMProtocols_dylibloader_wrapper_xlib)( Display*, Window, Atom*, int); -extern int (*XIconifyWindow_dylibloader_wrapper_xlib)( Display*, Window, int); -extern int (*XWithdrawWindow_dylibloader_wrapper_xlib)( Display*, Window, int); -extern int (*XGetCommand_dylibloader_wrapper_xlib)( Display*, Window, char***, int*); -extern int (*XGetWMColormapWindows_dylibloader_wrapper_xlib)( Display*, Window, Window**, int*); -extern int (*XSetWMColormapWindows_dylibloader_wrapper_xlib)( Display*, Window, Window*, int); -extern void (*XFreeStringList_dylibloader_wrapper_xlib)( char**); -extern int (*XSetTransientForHint_dylibloader_wrapper_xlib)( Display*, Window, Window); -extern int (*XActivateScreenSaver_dylibloader_wrapper_xlib)( Display*); -extern int (*XAddHost_dylibloader_wrapper_xlib)( Display*, XHostAddress*); -extern int (*XAddHosts_dylibloader_wrapper_xlib)( Display*, XHostAddress*, int); -extern int (*XAddToExtensionList_dylibloader_wrapper_xlib)(struct _XExtData**, XExtData*); -extern int (*XAddToSaveSet_dylibloader_wrapper_xlib)( Display*, Window); -extern int (*XAllocColor_dylibloader_wrapper_xlib)( Display*, Colormap, XColor*); -extern int (*XAllocColorCells_dylibloader_wrapper_xlib)( Display*, Colormap, int, unsigned long*, unsigned int, unsigned long*, unsigned int); -extern int (*XAllocColorPlanes_dylibloader_wrapper_xlib)( Display*, Colormap, int, unsigned long*, int, int, int, int, unsigned long*, unsigned long*, unsigned long*); -extern int (*XAllocNamedColor_dylibloader_wrapper_xlib)( Display*, Colormap,const char*, XColor*, XColor*); -extern int (*XAllowEvents_dylibloader_wrapper_xlib)( Display*, int, Time); -extern int (*XAutoRepeatOff_dylibloader_wrapper_xlib)( Display*); -extern int (*XAutoRepeatOn_dylibloader_wrapper_xlib)( Display*); -extern int (*XBell_dylibloader_wrapper_xlib)( Display*, int); -extern int (*XBitmapBitOrder_dylibloader_wrapper_xlib)( Display*); -extern int (*XBitmapPad_dylibloader_wrapper_xlib)( Display*); -extern int (*XBitmapUnit_dylibloader_wrapper_xlib)( Display*); -extern int (*XCellsOfScreen_dylibloader_wrapper_xlib)( Screen*); -extern int (*XChangeActivePointerGrab_dylibloader_wrapper_xlib)( Display*, unsigned int, Cursor, Time); -extern int (*XChangeGC_dylibloader_wrapper_xlib)( Display*, GC, unsigned long, XGCValues*); -extern int (*XChangeKeyboardControl_dylibloader_wrapper_xlib)( Display*, unsigned long, XKeyboardControl*); -extern int (*XChangeKeyboardMapping_dylibloader_wrapper_xlib)( Display*, int, int, KeySym*, int); -extern int (*XChangePointerControl_dylibloader_wrapper_xlib)( Display*, int, int, int, int, int); -extern int (*XChangeProperty_dylibloader_wrapper_xlib)( Display*, Window, Atom, Atom, int, int,const unsigned char*, int); -extern int (*XChangeSaveSet_dylibloader_wrapper_xlib)( Display*, Window, int); -extern int (*XChangeWindowAttributes_dylibloader_wrapper_xlib)( Display*, Window, unsigned long, XSetWindowAttributes*); -extern int (*XCheckIfEvent_dylibloader_wrapper_xlib)( Display*, XEvent*, Bool (*) (Display*, XEvent*, XPointer), XPointer); -extern int (*XCheckMaskEvent_dylibloader_wrapper_xlib)( Display*, long, XEvent*); -extern int (*XCheckTypedEvent_dylibloader_wrapper_xlib)( Display*, int, XEvent*); -extern int (*XCheckTypedWindowEvent_dylibloader_wrapper_xlib)( Display*, Window, int, XEvent*); -extern int (*XCheckWindowEvent_dylibloader_wrapper_xlib)( Display*, Window, long, XEvent*); -extern int (*XCirculateSubwindows_dylibloader_wrapper_xlib)( Display*, Window, int); -extern int (*XCirculateSubwindowsDown_dylibloader_wrapper_xlib)( Display*, Window); -extern int (*XCirculateSubwindowsUp_dylibloader_wrapper_xlib)( Display*, Window); -extern int (*XClearArea_dylibloader_wrapper_xlib)( Display*, Window, int, int, unsigned int, unsigned int, int); -extern int (*XClearWindow_dylibloader_wrapper_xlib)( Display*, Window); -extern int (*XCloseDisplay_dylibloader_wrapper_xlib)( Display*); -extern int (*XConfigureWindow_dylibloader_wrapper_xlib)( Display*, Window, unsigned int, XWindowChanges*); -extern int (*XConnectionNumber_dylibloader_wrapper_xlib)( Display*); -extern int (*XConvertSelection_dylibloader_wrapper_xlib)( Display*, Atom, Atom, Atom, Window, Time); -extern int (*XCopyArea_dylibloader_wrapper_xlib)( Display*, Drawable, Drawable, GC, int, int, unsigned int, unsigned int, int, int); -extern int (*XCopyGC_dylibloader_wrapper_xlib)( Display*, GC, unsigned long, GC); -extern int (*XCopyPlane_dylibloader_wrapper_xlib)( Display*, Drawable, Drawable, GC, int, int, unsigned int, unsigned int, int, int, unsigned long); -extern int (*XDefaultDepth_dylibloader_wrapper_xlib)( Display*, int); -extern int (*XDefaultDepthOfScreen_dylibloader_wrapper_xlib)( Screen*); -extern int (*XDefaultScreen_dylibloader_wrapper_xlib)( Display*); -extern int (*XDefineCursor_dylibloader_wrapper_xlib)( Display*, Window, Cursor); -extern int (*XDeleteProperty_dylibloader_wrapper_xlib)( Display*, Window, Atom); -extern int (*XDestroyWindow_dylibloader_wrapper_xlib)( Display*, Window); -extern int (*XDestroySubwindows_dylibloader_wrapper_xlib)( Display*, Window); -extern int (*XDoesBackingStore_dylibloader_wrapper_xlib)( Screen*); -extern int (*XDoesSaveUnders_dylibloader_wrapper_xlib)( Screen*); -extern int (*XDisableAccessControl_dylibloader_wrapper_xlib)( Display*); -extern int (*XDisplayCells_dylibloader_wrapper_xlib)( Display*, int); -extern int (*XDisplayHeight_dylibloader_wrapper_xlib)( Display*, int); -extern int (*XDisplayHeightMM_dylibloader_wrapper_xlib)( Display*, int); -extern int (*XDisplayKeycodes_dylibloader_wrapper_xlib)( Display*, int*, int*); -extern int (*XDisplayPlanes_dylibloader_wrapper_xlib)( Display*, int); -extern int (*XDisplayWidth_dylibloader_wrapper_xlib)( Display*, int); -extern int (*XDisplayWidthMM_dylibloader_wrapper_xlib)( Display*, int); -extern int (*XDrawArc_dylibloader_wrapper_xlib)( Display*, Drawable, GC, int, int, unsigned int, unsigned int, int, int); -extern int (*XDrawArcs_dylibloader_wrapper_xlib)( Display*, Drawable, GC, XArc*, int); -extern int (*XDrawImageString_dylibloader_wrapper_xlib)( Display*, Drawable, GC, int, int,const char*, int); -extern int (*XDrawImageString16_dylibloader_wrapper_xlib)( Display*, Drawable, GC, int, int,const XChar2b*, int); -extern int (*XDrawLine_dylibloader_wrapper_xlib)( Display*, Drawable, GC, int, int, int, int); -extern int (*XDrawLines_dylibloader_wrapper_xlib)( Display*, Drawable, GC, XPoint*, int, int); -extern int (*XDrawPoint_dylibloader_wrapper_xlib)( Display*, Drawable, GC, int, int); -extern int (*XDrawPoints_dylibloader_wrapper_xlib)( Display*, Drawable, GC, XPoint*, int, int); -extern int (*XDrawRectangle_dylibloader_wrapper_xlib)( Display*, Drawable, GC, int, int, unsigned int, unsigned int); -extern int (*XDrawRectangles_dylibloader_wrapper_xlib)( Display*, Drawable, GC, XRectangle*, int); -extern int (*XDrawSegments_dylibloader_wrapper_xlib)( Display*, Drawable, GC, XSegment*, int); -extern int (*XDrawString_dylibloader_wrapper_xlib)( Display*, Drawable, GC, int, int,const char*, int); -extern int (*XDrawString16_dylibloader_wrapper_xlib)( Display*, Drawable, GC, int, int,const XChar2b*, int); -extern int (*XDrawText_dylibloader_wrapper_xlib)( Display*, Drawable, GC, int, int, XTextItem*, int); -extern int (*XDrawText16_dylibloader_wrapper_xlib)( Display*, Drawable, GC, int, int, XTextItem16*, int); -extern int (*XEnableAccessControl_dylibloader_wrapper_xlib)( Display*); -extern int (*XEventsQueued_dylibloader_wrapper_xlib)( Display*, int); -extern int (*XFetchName_dylibloader_wrapper_xlib)( Display*, Window, char**); -extern int (*XFillArc_dylibloader_wrapper_xlib)( Display*, Drawable, GC, int, int, unsigned int, unsigned int, int, int); -extern int (*XFillArcs_dylibloader_wrapper_xlib)( Display*, Drawable, GC, XArc*, int); -extern int (*XFillPolygon_dylibloader_wrapper_xlib)( Display*, Drawable, GC, XPoint*, int, int, int); -extern int (*XFillRectangle_dylibloader_wrapper_xlib)( Display*, Drawable, GC, int, int, unsigned int, unsigned int); -extern int (*XFillRectangles_dylibloader_wrapper_xlib)( Display*, Drawable, GC, XRectangle*, int); -extern int (*XFlush_dylibloader_wrapper_xlib)( Display*); -extern int (*XForceScreenSaver_dylibloader_wrapper_xlib)( Display*, int); -extern int (*XFree_dylibloader_wrapper_xlib)( void*); -extern int (*XFreeColormap_dylibloader_wrapper_xlib)( Display*, Colormap); -extern int (*XFreeColors_dylibloader_wrapper_xlib)( Display*, Colormap, unsigned long*, int, unsigned long); -extern int (*XFreeCursor_dylibloader_wrapper_xlib)( Display*, Cursor); -extern int (*XFreeExtensionList_dylibloader_wrapper_xlib)( char**); -extern int (*XFreeFont_dylibloader_wrapper_xlib)( Display*, XFontStruct*); -extern int (*XFreeFontInfo_dylibloader_wrapper_xlib)( char**, XFontStruct*, int); -extern int (*XFreeFontNames_dylibloader_wrapper_xlib)( char**); -extern int (*XFreeFontPath_dylibloader_wrapper_xlib)( char**); -extern int (*XFreeGC_dylibloader_wrapper_xlib)( Display*, GC); -extern int (*XFreeModifiermap_dylibloader_wrapper_xlib)( XModifierKeymap*); -extern int (*XFreePixmap_dylibloader_wrapper_xlib)( Display*, Pixmap); -extern int (*XGeometry_dylibloader_wrapper_xlib)( Display*, int,const char*,const char*, unsigned int, unsigned int, unsigned int, int, int, int*, int*, int*, int*); -extern int (*XGetErrorDatabaseText_dylibloader_wrapper_xlib)( Display*,const char*,const char*,const char*, char*, int); -extern int (*XGetErrorText_dylibloader_wrapper_xlib)( Display*, int, char*, int); -extern int (*XGetFontProperty_dylibloader_wrapper_xlib)( XFontStruct*, Atom, unsigned long*); -extern int (*XGetGCValues_dylibloader_wrapper_xlib)( Display*, GC, unsigned long, XGCValues*); -extern int (*XGetGeometry_dylibloader_wrapper_xlib)( Display*, Drawable, Window*, int*, int*, unsigned int*, unsigned int*, unsigned int*, unsigned int*); -extern int (*XGetIconName_dylibloader_wrapper_xlib)( Display*, Window, char**); -extern int (*XGetInputFocus_dylibloader_wrapper_xlib)( Display*, Window*, int*); -extern int (*XGetKeyboardControl_dylibloader_wrapper_xlib)( Display*, XKeyboardState*); -extern int (*XGetPointerControl_dylibloader_wrapper_xlib)( Display*, int*, int*, int*); -extern int (*XGetPointerMapping_dylibloader_wrapper_xlib)( Display*, unsigned char*, int); -extern int (*XGetScreenSaver_dylibloader_wrapper_xlib)( Display*, int*, int*, int*, int*); -extern int (*XGetTransientForHint_dylibloader_wrapper_xlib)( Display*, Window, Window*); -extern int (*XGetWindowProperty_dylibloader_wrapper_xlib)( Display*, Window, Atom, long, long, int, Atom, Atom*, int*, unsigned long*, unsigned long*, unsigned char**); -extern int (*XGetWindowAttributes_dylibloader_wrapper_xlib)( Display*, Window, XWindowAttributes*); -extern int (*XGrabButton_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, Window, int, unsigned int, int, int, Window, Cursor); -extern int (*XGrabKey_dylibloader_wrapper_xlib)( Display*, int, unsigned int, Window, int, int, int); -extern int (*XGrabKeyboard_dylibloader_wrapper_xlib)( Display*, Window, int, int, int, Time); -extern int (*XGrabPointer_dylibloader_wrapper_xlib)( Display*, Window, int, unsigned int, int, int, Window, Cursor, Time); -extern int (*XGrabServer_dylibloader_wrapper_xlib)( Display*); -extern int (*XHeightMMOfScreen_dylibloader_wrapper_xlib)( Screen*); -extern int (*XHeightOfScreen_dylibloader_wrapper_xlib)( Screen*); -extern int (*XIfEvent_dylibloader_wrapper_xlib)( Display*, XEvent*, Bool (*) (Display*, XEvent*, XPointer), XPointer); -extern int (*XImageByteOrder_dylibloader_wrapper_xlib)( Display*); -extern int (*XInstallColormap_dylibloader_wrapper_xlib)( Display*, Colormap); -extern KeyCode (*XKeysymToKeycode_dylibloader_wrapper_xlib)( Display*, KeySym); -extern int (*XKillClient_dylibloader_wrapper_xlib)( Display*, XID); -extern int (*XLookupColor_dylibloader_wrapper_xlib)( Display*, Colormap,const char*, XColor*, XColor*); -extern int (*XLowerWindow_dylibloader_wrapper_xlib)( Display*, Window); -extern int (*XMapRaised_dylibloader_wrapper_xlib)( Display*, Window); -extern int (*XMapSubwindows_dylibloader_wrapper_xlib)( Display*, Window); -extern int (*XMapWindow_dylibloader_wrapper_xlib)( Display*, Window); -extern int (*XMaskEvent_dylibloader_wrapper_xlib)( Display*, long, XEvent*); -extern int (*XMaxCmapsOfScreen_dylibloader_wrapper_xlib)( Screen*); -extern int (*XMinCmapsOfScreen_dylibloader_wrapper_xlib)( Screen*); -extern int (*XMoveResizeWindow_dylibloader_wrapper_xlib)( Display*, Window, int, int, unsigned int, unsigned int); -extern int (*XMoveWindow_dylibloader_wrapper_xlib)( Display*, Window, int, int); -extern int (*XNextEvent_dylibloader_wrapper_xlib)( Display*, XEvent*); -extern int (*XNoOp_dylibloader_wrapper_xlib)( Display*); -extern int (*XParseColor_dylibloader_wrapper_xlib)( Display*, Colormap,const char*, XColor*); -extern int (*XParseGeometry_dylibloader_wrapper_xlib)(const char*, int*, int*, unsigned int*, unsigned int*); -extern int (*XPeekEvent_dylibloader_wrapper_xlib)( Display*, XEvent*); -extern int (*XPeekIfEvent_dylibloader_wrapper_xlib)( Display*, XEvent*, Bool (*) (Display*, XEvent*, XPointer), XPointer); -extern int (*XPending_dylibloader_wrapper_xlib)( Display*); -extern int (*XPlanesOfScreen_dylibloader_wrapper_xlib)( Screen*); -extern int (*XProtocolRevision_dylibloader_wrapper_xlib)( Display*); -extern int (*XProtocolVersion_dylibloader_wrapper_xlib)( Display*); -extern int (*XPutBackEvent_dylibloader_wrapper_xlib)( Display*, XEvent*); -extern int (*XPutImage_dylibloader_wrapper_xlib)( Display*, Drawable, GC, XImage*, int, int, int, int, unsigned int, unsigned int); -extern int (*XQLength_dylibloader_wrapper_xlib)( Display*); -extern int (*XQueryBestCursor_dylibloader_wrapper_xlib)( Display*, Drawable, unsigned int, unsigned int, unsigned int*, unsigned int*); -extern int (*XQueryBestSize_dylibloader_wrapper_xlib)( Display*, int, Drawable, unsigned int, unsigned int, unsigned int*, unsigned int*); -extern int (*XQueryBestStipple_dylibloader_wrapper_xlib)( Display*, Drawable, unsigned int, unsigned int, unsigned int*, unsigned int*); -extern int (*XQueryBestTile_dylibloader_wrapper_xlib)( Display*, Drawable, unsigned int, unsigned int, unsigned int*, unsigned int*); -extern int (*XQueryColor_dylibloader_wrapper_xlib)( Display*, Colormap, XColor*); -extern int (*XQueryColors_dylibloader_wrapper_xlib)( Display*, Colormap, XColor*, int); -extern int (*XQueryExtension_dylibloader_wrapper_xlib)( Display*,const char*, int*, int*, int*); -extern int (*XQueryKeymap_dylibloader_wrapper_xlib)( Display*, char [32]); -extern int (*XQueryPointer_dylibloader_wrapper_xlib)( Display*, Window, Window*, Window*, int*, int*, int*, int*, unsigned int*); -extern int (*XQueryTextExtents_dylibloader_wrapper_xlib)( Display*, XID,const char*, int, int*, int*, int*, XCharStruct*); -extern int (*XQueryTextExtents16_dylibloader_wrapper_xlib)( Display*, XID,const XChar2b*, int, int*, int*, int*, XCharStruct*); -extern int (*XQueryTree_dylibloader_wrapper_xlib)( Display*, Window, Window*, Window*, Window**, unsigned int*); -extern int (*XRaiseWindow_dylibloader_wrapper_xlib)( Display*, Window); -extern int (*XReadBitmapFile_dylibloader_wrapper_xlib)( Display*, Drawable,const char*, unsigned int*, unsigned int*, Pixmap*, int*, int*); -extern int (*XReadBitmapFileData_dylibloader_wrapper_xlib)(const char*, unsigned int*, unsigned int*, unsigned char**, int*, int*); -extern int (*XRebindKeysym_dylibloader_wrapper_xlib)( Display*, KeySym, KeySym*, int,const unsigned char*, int); -extern int (*XRecolorCursor_dylibloader_wrapper_xlib)( Display*, Cursor, XColor*, XColor*); -extern int (*XRefreshKeyboardMapping_dylibloader_wrapper_xlib)( XMappingEvent*); -extern int (*XRemoveFromSaveSet_dylibloader_wrapper_xlib)( Display*, Window); -extern int (*XRemoveHost_dylibloader_wrapper_xlib)( Display*, XHostAddress*); -extern int (*XRemoveHosts_dylibloader_wrapper_xlib)( Display*, XHostAddress*, int); -extern int (*XReparentWindow_dylibloader_wrapper_xlib)( Display*, Window, Window, int, int); -extern int (*XResetScreenSaver_dylibloader_wrapper_xlib)( Display*); -extern int (*XResizeWindow_dylibloader_wrapper_xlib)( Display*, Window, unsigned int, unsigned int); -extern int (*XRestackWindows_dylibloader_wrapper_xlib)( Display*, Window*, int); -extern int (*XRotateBuffers_dylibloader_wrapper_xlib)( Display*, int); -extern int (*XRotateWindowProperties_dylibloader_wrapper_xlib)( Display*, Window, Atom*, int, int); -extern int (*XScreenCount_dylibloader_wrapper_xlib)( Display*); -extern int (*XSelectInput_dylibloader_wrapper_xlib)( Display*, Window, long); -extern int (*XSendEvent_dylibloader_wrapper_xlib)( Display*, Window, int, long, XEvent*); -extern int (*XSetAccessControl_dylibloader_wrapper_xlib)( Display*, int); -extern int (*XSetArcMode_dylibloader_wrapper_xlib)( Display*, GC, int); -extern int (*XSetBackground_dylibloader_wrapper_xlib)( Display*, GC, unsigned long); -extern int (*XSetClipMask_dylibloader_wrapper_xlib)( Display*, GC, Pixmap); -extern int (*XSetClipOrigin_dylibloader_wrapper_xlib)( Display*, GC, int, int); -extern int (*XSetClipRectangles_dylibloader_wrapper_xlib)( Display*, GC, int, int, XRectangle*, int, int); -extern int (*XSetCloseDownMode_dylibloader_wrapper_xlib)( Display*, int); -extern int (*XSetCommand_dylibloader_wrapper_xlib)( Display*, Window, char**, int); -extern int (*XSetDashes_dylibloader_wrapper_xlib)( Display*, GC, int,const char*, int); -extern int (*XSetFillRule_dylibloader_wrapper_xlib)( Display*, GC, int); -extern int (*XSetFillStyle_dylibloader_wrapper_xlib)( Display*, GC, int); -extern int (*XSetFont_dylibloader_wrapper_xlib)( Display*, GC, Font); -extern int (*XSetFontPath_dylibloader_wrapper_xlib)( Display*, char**, int); -extern int (*XSetForeground_dylibloader_wrapper_xlib)( Display*, GC, unsigned long); -extern int (*XSetFunction_dylibloader_wrapper_xlib)( Display*, GC, int); -extern int (*XSetGraphicsExposures_dylibloader_wrapper_xlib)( Display*, GC, int); -extern int (*XSetIconName_dylibloader_wrapper_xlib)( Display*, Window,const char*); -extern int (*XSetInputFocus_dylibloader_wrapper_xlib)( Display*, Window, int, Time); -extern int (*XSetLineAttributes_dylibloader_wrapper_xlib)( Display*, GC, unsigned int, int, int, int); -extern int (*XSetModifierMapping_dylibloader_wrapper_xlib)( Display*, XModifierKeymap*); -extern int (*XSetPlaneMask_dylibloader_wrapper_xlib)( Display*, GC, unsigned long); -extern int (*XSetPointerMapping_dylibloader_wrapper_xlib)( Display*,const unsigned char*, int); -extern int (*XSetScreenSaver_dylibloader_wrapper_xlib)( Display*, int, int, int, int); -extern int (*XSetSelectionOwner_dylibloader_wrapper_xlib)( Display*, Atom, Window, Time); -extern int (*XSetState_dylibloader_wrapper_xlib)( Display*, GC, unsigned long, unsigned long, int, unsigned long); -extern int (*XSetStipple_dylibloader_wrapper_xlib)( Display*, GC, Pixmap); -extern int (*XSetSubwindowMode_dylibloader_wrapper_xlib)( Display*, GC, int); -extern int (*XSetTSOrigin_dylibloader_wrapper_xlib)( Display*, GC, int, int); -extern int (*XSetTile_dylibloader_wrapper_xlib)( Display*, GC, Pixmap); -extern int (*XSetWindowBackground_dylibloader_wrapper_xlib)( Display*, Window, unsigned long); -extern int (*XSetWindowBackgroundPixmap_dylibloader_wrapper_xlib)( Display*, Window, Pixmap); -extern int (*XSetWindowBorder_dylibloader_wrapper_xlib)( Display*, Window, unsigned long); -extern int (*XSetWindowBorderPixmap_dylibloader_wrapper_xlib)( Display*, Window, Pixmap); -extern int (*XSetWindowBorderWidth_dylibloader_wrapper_xlib)( Display*, Window, unsigned int); -extern int (*XSetWindowColormap_dylibloader_wrapper_xlib)( Display*, Window, Colormap); -extern int (*XStoreBuffer_dylibloader_wrapper_xlib)( Display*,const char*, int, int); -extern int (*XStoreBytes_dylibloader_wrapper_xlib)( Display*,const char*, int); -extern int (*XStoreColor_dylibloader_wrapper_xlib)( Display*, Colormap, XColor*); -extern int (*XStoreColors_dylibloader_wrapper_xlib)( Display*, Colormap, XColor*, int); -extern int (*XStoreName_dylibloader_wrapper_xlib)( Display*, Window,const char*); -extern int (*XStoreNamedColor_dylibloader_wrapper_xlib)( Display*, Colormap,const char*, unsigned long, int); -extern int (*XSync_dylibloader_wrapper_xlib)( Display*, int); -extern int (*XTextExtents_dylibloader_wrapper_xlib)( XFontStruct*,const char*, int, int*, int*, int*, XCharStruct*); -extern int (*XTextExtents16_dylibloader_wrapper_xlib)( XFontStruct*,const XChar2b*, int, int*, int*, int*, XCharStruct*); -extern int (*XTextWidth_dylibloader_wrapper_xlib)( XFontStruct*,const char*, int); -extern int (*XTextWidth16_dylibloader_wrapper_xlib)( XFontStruct*,const XChar2b*, int); -extern int (*XTranslateCoordinates_dylibloader_wrapper_xlib)( Display*, Window, Window, int, int, int*, int*, Window*); -extern int (*XUndefineCursor_dylibloader_wrapper_xlib)( Display*, Window); -extern int (*XUngrabButton_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, Window); -extern int (*XUngrabKey_dylibloader_wrapper_xlib)( Display*, int, unsigned int, Window); -extern int (*XUngrabKeyboard_dylibloader_wrapper_xlib)( Display*, Time); -extern int (*XUngrabPointer_dylibloader_wrapper_xlib)( Display*, Time); -extern int (*XUngrabServer_dylibloader_wrapper_xlib)( Display*); -extern int (*XUninstallColormap_dylibloader_wrapper_xlib)( Display*, Colormap); -extern int (*XUnloadFont_dylibloader_wrapper_xlib)( Display*, Font); -extern int (*XUnmapSubwindows_dylibloader_wrapper_xlib)( Display*, Window); -extern int (*XUnmapWindow_dylibloader_wrapper_xlib)( Display*, Window); -extern int (*XVendorRelease_dylibloader_wrapper_xlib)( Display*); -extern int (*XWarpPointer_dylibloader_wrapper_xlib)( Display*, Window, Window, int, int, unsigned int, unsigned int, int, int); -extern int (*XWidthMMOfScreen_dylibloader_wrapper_xlib)( Screen*); -extern int (*XWidthOfScreen_dylibloader_wrapper_xlib)( Screen*); -extern int (*XWindowEvent_dylibloader_wrapper_xlib)( Display*, Window, long, XEvent*); -extern int (*XWriteBitmapFile_dylibloader_wrapper_xlib)( Display*,const char*, Pixmap, unsigned int, unsigned int, int, int); -extern int (*XSupportsLocale_dylibloader_wrapper_xlib)( void); -extern char* (*XSetLocaleModifiers_dylibloader_wrapper_xlib)(const char*); -extern XOM (*XOpenOM_dylibloader_wrapper_xlib)( Display*,struct _XrmHashBucketRec*,const char*,const char*); -extern int (*XCloseOM_dylibloader_wrapper_xlib)( XOM); -extern char* (*XSetOMValues_dylibloader_wrapper_xlib)( XOM,...); -extern char* (*XGetOMValues_dylibloader_wrapper_xlib)( XOM,...); -extern Display* (*XDisplayOfOM_dylibloader_wrapper_xlib)( XOM); -extern char* (*XLocaleOfOM_dylibloader_wrapper_xlib)( XOM); -extern XOC (*XCreateOC_dylibloader_wrapper_xlib)( XOM,...); -extern void (*XDestroyOC_dylibloader_wrapper_xlib)( XOC); -extern XOM (*XOMOfOC_dylibloader_wrapper_xlib)( XOC); -extern char* (*XSetOCValues_dylibloader_wrapper_xlib)( XOC,...); -extern char* (*XGetOCValues_dylibloader_wrapper_xlib)( XOC,...); -extern XFontSet (*XCreateFontSet_dylibloader_wrapper_xlib)( Display*,const char*, char***, int*, char**); -extern void (*XFreeFontSet_dylibloader_wrapper_xlib)( Display*, XFontSet); -extern int (*XFontsOfFontSet_dylibloader_wrapper_xlib)( XFontSet, XFontStruct***, char***); -extern char* (*XBaseFontNameListOfFontSet_dylibloader_wrapper_xlib)( XFontSet); -extern char* (*XLocaleOfFontSet_dylibloader_wrapper_xlib)( XFontSet); -extern int (*XContextDependentDrawing_dylibloader_wrapper_xlib)( XFontSet); -extern int (*XDirectionalDependentDrawing_dylibloader_wrapper_xlib)( XFontSet); -extern int (*XContextualDrawing_dylibloader_wrapper_xlib)( XFontSet); -extern XFontSetExtents* (*XExtentsOfFontSet_dylibloader_wrapper_xlib)( XFontSet); -extern int (*XmbTextEscapement_dylibloader_wrapper_xlib)( XFontSet,const char*, int); -extern int (*XwcTextEscapement_dylibloader_wrapper_xlib)( XFontSet,const wchar_t*, int); -extern int (*Xutf8TextEscapement_dylibloader_wrapper_xlib)( XFontSet,const char*, int); -extern int (*XmbTextExtents_dylibloader_wrapper_xlib)( XFontSet,const char*, int, XRectangle*, XRectangle*); -extern int (*XwcTextExtents_dylibloader_wrapper_xlib)( XFontSet,const wchar_t*, int, XRectangle*, XRectangle*); -extern int (*Xutf8TextExtents_dylibloader_wrapper_xlib)( XFontSet,const char*, int, XRectangle*, XRectangle*); -extern int (*XmbTextPerCharExtents_dylibloader_wrapper_xlib)( XFontSet,const char*, int, XRectangle*, XRectangle*, int, int*, XRectangle*, XRectangle*); -extern int (*XwcTextPerCharExtents_dylibloader_wrapper_xlib)( XFontSet,const wchar_t*, int, XRectangle*, XRectangle*, int, int*, XRectangle*, XRectangle*); -extern int (*Xutf8TextPerCharExtents_dylibloader_wrapper_xlib)( XFontSet,const char*, int, XRectangle*, XRectangle*, int, int*, XRectangle*, XRectangle*); -extern void (*XmbDrawText_dylibloader_wrapper_xlib)( Display*, Drawable, GC, int, int, XmbTextItem*, int); -extern void (*XwcDrawText_dylibloader_wrapper_xlib)( Display*, Drawable, GC, int, int, XwcTextItem*, int); -extern void (*Xutf8DrawText_dylibloader_wrapper_xlib)( Display*, Drawable, GC, int, int, XmbTextItem*, int); -extern void (*XmbDrawString_dylibloader_wrapper_xlib)( Display*, Drawable, XFontSet, GC, int, int,const char*, int); -extern void (*XwcDrawString_dylibloader_wrapper_xlib)( Display*, Drawable, XFontSet, GC, int, int,const wchar_t*, int); -extern void (*Xutf8DrawString_dylibloader_wrapper_xlib)( Display*, Drawable, XFontSet, GC, int, int,const char*, int); -extern void (*XmbDrawImageString_dylibloader_wrapper_xlib)( Display*, Drawable, XFontSet, GC, int, int,const char*, int); -extern void (*XwcDrawImageString_dylibloader_wrapper_xlib)( Display*, Drawable, XFontSet, GC, int, int,const wchar_t*, int); -extern void (*Xutf8DrawImageString_dylibloader_wrapper_xlib)( Display*, Drawable, XFontSet, GC, int, int,const char*, int); -extern XIM (*XOpenIM_dylibloader_wrapper_xlib)( Display*,struct _XrmHashBucketRec*, char*, char*); -extern int (*XCloseIM_dylibloader_wrapper_xlib)( XIM); -extern char* (*XGetIMValues_dylibloader_wrapper_xlib)( XIM,...); -extern char* (*XSetIMValues_dylibloader_wrapper_xlib)( XIM,...); -extern Display* (*XDisplayOfIM_dylibloader_wrapper_xlib)( XIM); -extern char* (*XLocaleOfIM_dylibloader_wrapper_xlib)( XIM); -extern XIC (*XCreateIC_dylibloader_wrapper_xlib)( XIM,...); -extern void (*XDestroyIC_dylibloader_wrapper_xlib)( XIC); -extern void (*XSetICFocus_dylibloader_wrapper_xlib)( XIC); -extern void (*XUnsetICFocus_dylibloader_wrapper_xlib)( XIC); -extern wchar_t* (*XwcResetIC_dylibloader_wrapper_xlib)( XIC); -extern char* (*XmbResetIC_dylibloader_wrapper_xlib)( XIC); -extern char* (*Xutf8ResetIC_dylibloader_wrapper_xlib)( XIC); -extern char* (*XSetICValues_dylibloader_wrapper_xlib)( XIC,...); -extern char* (*XGetICValues_dylibloader_wrapper_xlib)( XIC,...); -extern XIM (*XIMOfIC_dylibloader_wrapper_xlib)( XIC); -extern int (*XFilterEvent_dylibloader_wrapper_xlib)( XEvent*, Window); -extern int (*XmbLookupString_dylibloader_wrapper_xlib)( XIC, XKeyPressedEvent*, char*, int, KeySym*, int*); -extern int (*XwcLookupString_dylibloader_wrapper_xlib)( XIC, XKeyPressedEvent*, wchar_t*, int, KeySym*, int*); -extern int (*Xutf8LookupString_dylibloader_wrapper_xlib)( XIC, XKeyPressedEvent*, char*, int, KeySym*, int*); -extern XVaNestedList (*XVaCreateNestedList_dylibloader_wrapper_xlib)( int,...); -extern int (*XRegisterIMInstantiateCallback_dylibloader_wrapper_xlib)( Display*,struct _XrmHashBucketRec*, char*, char*, XIDProc, XPointer); -extern int (*XUnregisterIMInstantiateCallback_dylibloader_wrapper_xlib)( Display*,struct _XrmHashBucketRec*, char*, char*, XIDProc, XPointer); -extern int (*XInternalConnectionNumbers_dylibloader_wrapper_xlib)( Display*, int**, int*); -extern void (*XProcessInternalConnection_dylibloader_wrapper_xlib)( Display*, int); -extern int (*XAddConnectionWatch_dylibloader_wrapper_xlib)( Display*, XConnectionWatchProc, XPointer); -extern void (*XRemoveConnectionWatch_dylibloader_wrapper_xlib)( Display*, XConnectionWatchProc, XPointer); -extern void (*XSetAuthorization_dylibloader_wrapper_xlib)( char*, int, char*, int); -extern int (*_Xmbtowc_dylibloader_wrapper_xlib)( wchar_t*, char*, int); -extern int (*_Xwctomb_dylibloader_wrapper_xlib)( char*, wchar_t); -extern int (*XGetEventData_dylibloader_wrapper_xlib)( Display*, XGenericEventCookie*); -extern void (*XFreeEventData_dylibloader_wrapper_xlib)( Display*, XGenericEventCookie*); -extern XClassHint* (*XAllocClassHint_dylibloader_wrapper_xlib)( void); -extern XIconSize* (*XAllocIconSize_dylibloader_wrapper_xlib)( void); -extern XSizeHints* (*XAllocSizeHints_dylibloader_wrapper_xlib)( void); -extern XStandardColormap* (*XAllocStandardColormap_dylibloader_wrapper_xlib)( void); -extern XWMHints* (*XAllocWMHints_dylibloader_wrapper_xlib)( void); -extern int (*XClipBox_dylibloader_wrapper_xlib)( Region, XRectangle*); -extern Region (*XCreateRegion_dylibloader_wrapper_xlib)( void); -extern const char* (*XDefaultString_dylibloader_wrapper_xlib)( void); -extern int (*XDeleteContext_dylibloader_wrapper_xlib)( Display*, XID, XContext); -extern int (*XDestroyRegion_dylibloader_wrapper_xlib)( Region); -extern int (*XEmptyRegion_dylibloader_wrapper_xlib)( Region); -extern int (*XEqualRegion_dylibloader_wrapper_xlib)( Region, Region); -extern int (*XFindContext_dylibloader_wrapper_xlib)( Display*, XID, XContext, XPointer*); -extern int (*XGetClassHint_dylibloader_wrapper_xlib)( Display*, Window, XClassHint*); -extern int (*XGetIconSizes_dylibloader_wrapper_xlib)( Display*, Window, XIconSize**, int*); -extern int (*XGetNormalHints_dylibloader_wrapper_xlib)( Display*, Window, XSizeHints*); -extern int (*XGetRGBColormaps_dylibloader_wrapper_xlib)( Display*, Window, XStandardColormap**, int*, Atom); -extern int (*XGetSizeHints_dylibloader_wrapper_xlib)( Display*, Window, XSizeHints*, Atom); -extern int (*XGetStandardColormap_dylibloader_wrapper_xlib)( Display*, Window, XStandardColormap*, Atom); -extern int (*XGetTextProperty_dylibloader_wrapper_xlib)( Display*, Window, XTextProperty*, Atom); -extern XVisualInfo* (*XGetVisualInfo_dylibloader_wrapper_xlib)( Display*, long, XVisualInfo*, int*); -extern int (*XGetWMClientMachine_dylibloader_wrapper_xlib)( Display*, Window, XTextProperty*); -extern XWMHints* (*XGetWMHints_dylibloader_wrapper_xlib)( Display*, Window); -extern int (*XGetWMIconName_dylibloader_wrapper_xlib)( Display*, Window, XTextProperty*); -extern int (*XGetWMName_dylibloader_wrapper_xlib)( Display*, Window, XTextProperty*); -extern int (*XGetWMNormalHints_dylibloader_wrapper_xlib)( Display*, Window, XSizeHints*, long*); -extern int (*XGetWMSizeHints_dylibloader_wrapper_xlib)( Display*, Window, XSizeHints*, long*, Atom); -extern int (*XGetZoomHints_dylibloader_wrapper_xlib)( Display*, Window, XSizeHints*); -extern int (*XIntersectRegion_dylibloader_wrapper_xlib)( Region, Region, Region); -extern void (*XConvertCase_dylibloader_wrapper_xlib)( KeySym, KeySym*, KeySym*); -extern int (*XLookupString_dylibloader_wrapper_xlib)( XKeyEvent*, char*, int, KeySym*, XComposeStatus*); -extern int (*XMatchVisualInfo_dylibloader_wrapper_xlib)( Display*, int, int, int, XVisualInfo*); -extern int (*XOffsetRegion_dylibloader_wrapper_xlib)( Region, int, int); -extern int (*XPointInRegion_dylibloader_wrapper_xlib)( Region, int, int); -extern Region (*XPolygonRegion_dylibloader_wrapper_xlib)( XPoint*, int, int); -extern int (*XRectInRegion_dylibloader_wrapper_xlib)( Region, int, int, unsigned int, unsigned int); -extern int (*XSaveContext_dylibloader_wrapper_xlib)( Display*, XID, XContext,const char*); -extern int (*XSetClassHint_dylibloader_wrapper_xlib)( Display*, Window, XClassHint*); -extern int (*XSetIconSizes_dylibloader_wrapper_xlib)( Display*, Window, XIconSize*, int); -extern int (*XSetNormalHints_dylibloader_wrapper_xlib)( Display*, Window, XSizeHints*); -extern void (*XSetRGBColormaps_dylibloader_wrapper_xlib)( Display*, Window, XStandardColormap*, int, Atom); -extern int (*XSetSizeHints_dylibloader_wrapper_xlib)( Display*, Window, XSizeHints*, Atom); -extern int (*XSetStandardProperties_dylibloader_wrapper_xlib)( Display*, Window,const char*,const char*, Pixmap, char**, int, XSizeHints*); -extern void (*XSetTextProperty_dylibloader_wrapper_xlib)( Display*, Window, XTextProperty*, Atom); -extern void (*XSetWMClientMachine_dylibloader_wrapper_xlib)( Display*, Window, XTextProperty*); -extern int (*XSetWMHints_dylibloader_wrapper_xlib)( Display*, Window, XWMHints*); -extern void (*XSetWMIconName_dylibloader_wrapper_xlib)( Display*, Window, XTextProperty*); -extern void (*XSetWMName_dylibloader_wrapper_xlib)( Display*, Window, XTextProperty*); -extern void (*XSetWMNormalHints_dylibloader_wrapper_xlib)( Display*, Window, XSizeHints*); -extern void (*XSetWMProperties_dylibloader_wrapper_xlib)( Display*, Window, XTextProperty*, XTextProperty*, char**, int, XSizeHints*, XWMHints*, XClassHint*); -extern void (*XmbSetWMProperties_dylibloader_wrapper_xlib)( Display*, Window,const char*,const char*, char**, int, XSizeHints*, XWMHints*, XClassHint*); -extern void (*Xutf8SetWMProperties_dylibloader_wrapper_xlib)( Display*, Window,const char*,const char*, char**, int, XSizeHints*, XWMHints*, XClassHint*); -extern void (*XSetWMSizeHints_dylibloader_wrapper_xlib)( Display*, Window, XSizeHints*, Atom); -extern int (*XSetRegion_dylibloader_wrapper_xlib)( Display*, GC, Region); -extern void (*XSetStandardColormap_dylibloader_wrapper_xlib)( Display*, Window, XStandardColormap*, Atom); -extern int (*XSetZoomHints_dylibloader_wrapper_xlib)( Display*, Window, XSizeHints*); -extern int (*XShrinkRegion_dylibloader_wrapper_xlib)( Region, int, int); -extern int (*XStringListToTextProperty_dylibloader_wrapper_xlib)( char**, int, XTextProperty*); -extern int (*XSubtractRegion_dylibloader_wrapper_xlib)( Region, Region, Region); -extern int (*XmbTextListToTextProperty_dylibloader_wrapper_xlib)( Display*, char**, int, XICCEncodingStyle, XTextProperty*); -extern int (*XwcTextListToTextProperty_dylibloader_wrapper_xlib)( Display*, wchar_t**, int, XICCEncodingStyle, XTextProperty*); -extern int (*Xutf8TextListToTextProperty_dylibloader_wrapper_xlib)( Display*, char**, int, XICCEncodingStyle, XTextProperty*); -extern void (*XwcFreeStringList_dylibloader_wrapper_xlib)( wchar_t**); -extern int (*XTextPropertyToStringList_dylibloader_wrapper_xlib)( XTextProperty*, char***, int*); -extern int (*XmbTextPropertyToTextList_dylibloader_wrapper_xlib)( Display*,const XTextProperty*, char***, int*); -extern int (*XwcTextPropertyToTextList_dylibloader_wrapper_xlib)( Display*,const XTextProperty*, wchar_t***, int*); -extern int (*Xutf8TextPropertyToTextList_dylibloader_wrapper_xlib)( Display*,const XTextProperty*, char***, int*); -extern int (*XUnionRectWithRegion_dylibloader_wrapper_xlib)( XRectangle*, Region, Region); -extern int (*XUnionRegion_dylibloader_wrapper_xlib)( Region, Region, Region); -extern int (*XWMGeometry_dylibloader_wrapper_xlib)( Display*, int,const char*,const char*, unsigned int, XSizeHints*, int*, int*, int*, int*, int*); -extern int (*XXorRegion_dylibloader_wrapper_xlib)( Region, Region, Region); -extern int (*XkbIgnoreExtension_dylibloader_wrapper_xlib)( int); -extern Display* (*XkbOpenDisplay_dylibloader_wrapper_xlib)( char*, int*, int*, int*, int*, int*); -extern int (*XkbQueryExtension_dylibloader_wrapper_xlib)( Display*, int*, int*, int*, int*, int*); -extern int (*XkbUseExtension_dylibloader_wrapper_xlib)( Display*, int*, int*); -extern int (*XkbLibraryVersion_dylibloader_wrapper_xlib)( int*, int*); -extern unsigned int (*XkbSetXlibControls_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int); -extern unsigned int (*XkbGetXlibControls_dylibloader_wrapper_xlib)( Display*); -extern unsigned int (*XkbXlibControlsImplemented_dylibloader_wrapper_xlib)( void); -extern void (*XkbSetAtomFuncs_dylibloader_wrapper_xlib)( XkbInternAtomFunc, XkbGetAtomNameFunc); -extern KeySym (*XkbKeycodeToKeysym_dylibloader_wrapper_xlib)( Display*, KeyCode, int, int); -extern unsigned int (*XkbKeysymToModifiers_dylibloader_wrapper_xlib)( Display*, KeySym); -extern int (*XkbLookupKeySym_dylibloader_wrapper_xlib)( Display*, KeyCode, unsigned int, unsigned int*, KeySym*); -extern int (*XkbLookupKeyBinding_dylibloader_wrapper_xlib)( Display*, KeySym, unsigned int, char*, int, int*); -extern int (*XkbTranslateKeyCode_dylibloader_wrapper_xlib)( XkbDescPtr, KeyCode, unsigned int, unsigned int*, KeySym*); -extern int (*XkbTranslateKeySym_dylibloader_wrapper_xlib)( Display*, KeySym*, unsigned int, char*, int, int*); -extern int (*XkbSetAutoRepeatRate_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, unsigned int); -extern int (*XkbGetAutoRepeatRate_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int*, unsigned int*); -extern int (*XkbChangeEnabledControls_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, unsigned int); -extern int (*XkbDeviceBell_dylibloader_wrapper_xlib)( Display*, Window, int, int, int, int, Atom); -extern int (*XkbForceDeviceBell_dylibloader_wrapper_xlib)( Display*, int, int, int, int); -extern int (*XkbDeviceBellEvent_dylibloader_wrapper_xlib)( Display*, Window, int, int, int, int, Atom); -extern int (*XkbBell_dylibloader_wrapper_xlib)( Display*, Window, int, Atom); -extern int (*XkbForceBell_dylibloader_wrapper_xlib)( Display*, int); -extern int (*XkbBellEvent_dylibloader_wrapper_xlib)( Display*, Window, int, Atom); -extern int (*XkbSelectEvents_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, unsigned int); -extern int (*XkbSelectEventDetails_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, unsigned long, unsigned long); -extern void (*XkbNoteMapChanges_dylibloader_wrapper_xlib)( XkbMapChangesPtr, XkbMapNotifyEvent*, unsigned int); -extern void (*XkbNoteNameChanges_dylibloader_wrapper_xlib)( XkbNameChangesPtr, XkbNamesNotifyEvent*, unsigned int); -extern int (*XkbGetIndicatorState_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int*); -extern int (*XkbGetIndicatorMap_dylibloader_wrapper_xlib)( Display*, unsigned long, XkbDescPtr); -extern int (*XkbSetIndicatorMap_dylibloader_wrapper_xlib)( Display*, unsigned long, XkbDescPtr); -extern int (*XkbGetNamedIndicator_dylibloader_wrapper_xlib)( Display*, Atom, int*, int*, XkbIndicatorMapPtr, int*); -extern int (*XkbGetNamedDeviceIndicator_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, unsigned int, Atom, int*, int*, XkbIndicatorMapPtr, int*); -extern int (*XkbSetNamedIndicator_dylibloader_wrapper_xlib)( Display*, Atom, int, int, int, XkbIndicatorMapPtr); -extern int (*XkbSetNamedDeviceIndicator_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, unsigned int, Atom, int, int, int, XkbIndicatorMapPtr); -extern int (*XkbLockModifiers_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, unsigned int); -extern int (*XkbLatchModifiers_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, unsigned int); -extern int (*XkbLockGroup_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int); -extern int (*XkbLatchGroup_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int); -extern int (*XkbSetServerInternalMods_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int); -extern int (*XkbSetIgnoreLockMods_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int); -extern int (*XkbVirtualModsToReal_dylibloader_wrapper_xlib)( XkbDescPtr, unsigned int, unsigned int*); -extern int (*XkbComputeEffectiveMap_dylibloader_wrapper_xlib)( XkbDescPtr, XkbKeyTypePtr, unsigned char*); -extern int (*XkbInitCanonicalKeyTypes_dylibloader_wrapper_xlib)( XkbDescPtr, unsigned int, int); -extern XkbDescPtr (*XkbAllocKeyboard_dylibloader_wrapper_xlib)( void); -extern void (*XkbFreeKeyboard_dylibloader_wrapper_xlib)( XkbDescPtr, unsigned int, int); -extern int (*XkbAllocClientMap_dylibloader_wrapper_xlib)( XkbDescPtr, unsigned int, unsigned int); -extern int (*XkbAllocServerMap_dylibloader_wrapper_xlib)( XkbDescPtr, unsigned int, unsigned int); -extern void (*XkbFreeClientMap_dylibloader_wrapper_xlib)( XkbDescPtr, unsigned int, int); -extern void (*XkbFreeServerMap_dylibloader_wrapper_xlib)( XkbDescPtr, unsigned int, int); -extern XkbKeyTypePtr (*XkbAddKeyType_dylibloader_wrapper_xlib)( XkbDescPtr, Atom, int, int, int); -extern int (*XkbAllocIndicatorMaps_dylibloader_wrapper_xlib)( XkbDescPtr); -extern void (*XkbFreeIndicatorMaps_dylibloader_wrapper_xlib)( XkbDescPtr); -extern XkbDescPtr (*XkbGetMap_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int); -extern int (*XkbGetUpdatedMap_dylibloader_wrapper_xlib)( Display*, unsigned int, XkbDescPtr); -extern int (*XkbGetMapChanges_dylibloader_wrapper_xlib)( Display*, XkbDescPtr, XkbMapChangesPtr); -extern int (*XkbRefreshKeyboardMapping_dylibloader_wrapper_xlib)( XkbMapNotifyEvent*); -extern int (*XkbGetKeyTypes_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, XkbDescPtr); -extern int (*XkbGetKeySyms_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, XkbDescPtr); -extern int (*XkbGetKeyActions_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, XkbDescPtr); -extern int (*XkbGetKeyBehaviors_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, XkbDescPtr); -extern int (*XkbGetVirtualMods_dylibloader_wrapper_xlib)( Display*, unsigned int, XkbDescPtr); -extern int (*XkbGetKeyExplicitComponents_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, XkbDescPtr); -extern int (*XkbGetKeyModifierMap_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, XkbDescPtr); -extern int (*XkbGetKeyVirtualModMap_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, XkbDescPtr); -extern int (*XkbAllocControls_dylibloader_wrapper_xlib)( XkbDescPtr, unsigned int); -extern void (*XkbFreeControls_dylibloader_wrapper_xlib)( XkbDescPtr, unsigned int, int); -extern int (*XkbGetControls_dylibloader_wrapper_xlib)( Display*, unsigned long, XkbDescPtr); -extern int (*XkbSetControls_dylibloader_wrapper_xlib)( Display*, unsigned long, XkbDescPtr); -extern void (*XkbNoteControlsChanges_dylibloader_wrapper_xlib)( XkbControlsChangesPtr, XkbControlsNotifyEvent*, unsigned int); -extern int (*XkbAllocCompatMap_dylibloader_wrapper_xlib)( XkbDescPtr, unsigned int, unsigned int); -extern void (*XkbFreeCompatMap_dylibloader_wrapper_xlib)( XkbDescPtr, unsigned int, int); -extern int (*XkbGetCompatMap_dylibloader_wrapper_xlib)( Display*, unsigned int, XkbDescPtr); -extern int (*XkbSetCompatMap_dylibloader_wrapper_xlib)( Display*, unsigned int, XkbDescPtr, int); -extern int (*XkbAllocNames_dylibloader_wrapper_xlib)( XkbDescPtr, unsigned int, int, int); -extern int (*XkbGetNames_dylibloader_wrapper_xlib)( Display*, unsigned int, XkbDescPtr); -extern int (*XkbSetNames_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, unsigned int, XkbDescPtr); -extern int (*XkbChangeNames_dylibloader_wrapper_xlib)( Display*, XkbDescPtr, XkbNameChangesPtr); -extern void (*XkbFreeNames_dylibloader_wrapper_xlib)( XkbDescPtr, unsigned int, int); -extern int (*XkbGetState_dylibloader_wrapper_xlib)( Display*, unsigned int, XkbStatePtr); -extern int (*XkbSetMap_dylibloader_wrapper_xlib)( Display*, unsigned int, XkbDescPtr); -extern int (*XkbChangeMap_dylibloader_wrapper_xlib)( Display*, XkbDescPtr, XkbMapChangesPtr); -extern int (*XkbSetDetectableAutoRepeat_dylibloader_wrapper_xlib)( Display*, int, int*); -extern int (*XkbGetDetectableAutoRepeat_dylibloader_wrapper_xlib)( Display*, int*); -extern int (*XkbSetAutoResetControls_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int*, unsigned int*); -extern int (*XkbGetAutoResetControls_dylibloader_wrapper_xlib)( Display*, unsigned int*, unsigned int*); -extern int (*XkbSetPerClientControls_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int*); -extern int (*XkbGetPerClientControls_dylibloader_wrapper_xlib)( Display*, unsigned int*); -extern int (*XkbCopyKeyType_dylibloader_wrapper_xlib)( XkbKeyTypePtr, XkbKeyTypePtr); -extern int (*XkbCopyKeyTypes_dylibloader_wrapper_xlib)( XkbKeyTypePtr, XkbKeyTypePtr, int); -extern int (*XkbResizeKeyType_dylibloader_wrapper_xlib)( XkbDescPtr, int, int, int, int); -extern KeySym* (*XkbResizeKeySyms_dylibloader_wrapper_xlib)( XkbDescPtr, int, int); -extern XkbAction* (*XkbResizeKeyActions_dylibloader_wrapper_xlib)( XkbDescPtr, int, int); -extern int (*XkbChangeTypesOfKey_dylibloader_wrapper_xlib)( XkbDescPtr, int, int, unsigned int, int*, XkbMapChangesPtr); -extern int (*XkbChangeKeycodeRange_dylibloader_wrapper_xlib)( XkbDescPtr, int, int, XkbChangesPtr); -extern XkbComponentListPtr (*XkbListComponents_dylibloader_wrapper_xlib)( Display*, unsigned int, XkbComponentNamesPtr, int*); -extern void (*XkbFreeComponentList_dylibloader_wrapper_xlib)( XkbComponentListPtr); -extern XkbDescPtr (*XkbGetKeyboard_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int); -extern XkbDescPtr (*XkbGetKeyboardByName_dylibloader_wrapper_xlib)( Display*, unsigned int, XkbComponentNamesPtr, unsigned int, unsigned int, int); -extern int (*XkbKeyTypesForCoreSymbols_dylibloader_wrapper_xlib)( XkbDescPtr, int, KeySym*, unsigned int, int*, KeySym*); -extern int (*XkbApplyCompatMapToKey_dylibloader_wrapper_xlib)( XkbDescPtr, KeyCode, XkbChangesPtr); -extern int (*XkbUpdateMapFromCore_dylibloader_wrapper_xlib)( XkbDescPtr, KeyCode, int, int, KeySym*, XkbChangesPtr); -extern XkbDeviceLedInfoPtr (*XkbAddDeviceLedInfo_dylibloader_wrapper_xlib)( XkbDeviceInfoPtr, unsigned int, unsigned int); -extern int (*XkbResizeDeviceButtonActions_dylibloader_wrapper_xlib)( XkbDeviceInfoPtr, unsigned int); -extern XkbDeviceInfoPtr (*XkbAllocDeviceInfo_dylibloader_wrapper_xlib)( unsigned int, unsigned int, unsigned int); -extern void (*XkbFreeDeviceInfo_dylibloader_wrapper_xlib)( XkbDeviceInfoPtr, unsigned int, int); -extern void (*XkbNoteDeviceChanges_dylibloader_wrapper_xlib)( XkbDeviceChangesPtr, XkbExtensionDeviceNotifyEvent*, unsigned int); -extern XkbDeviceInfoPtr (*XkbGetDeviceInfo_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, unsigned int, unsigned int); -extern int (*XkbGetDeviceInfoChanges_dylibloader_wrapper_xlib)( Display*, XkbDeviceInfoPtr, XkbDeviceChangesPtr); -extern int (*XkbGetDeviceButtonActions_dylibloader_wrapper_xlib)( Display*, XkbDeviceInfoPtr, int, unsigned int, unsigned int); -extern int (*XkbGetDeviceLedInfo_dylibloader_wrapper_xlib)( Display*, XkbDeviceInfoPtr, unsigned int, unsigned int, unsigned int); -extern int (*XkbSetDeviceInfo_dylibloader_wrapper_xlib)( Display*, unsigned int, XkbDeviceInfoPtr); -extern int (*XkbChangeDeviceInfo_dylibloader_wrapper_xlib)( Display*, XkbDeviceInfoPtr, XkbDeviceChangesPtr); -extern int (*XkbSetDeviceLedInfo_dylibloader_wrapper_xlib)( Display*, XkbDeviceInfoPtr, unsigned int, unsigned int, unsigned int); -extern int (*XkbSetDeviceButtonActions_dylibloader_wrapper_xlib)( Display*, XkbDeviceInfoPtr, unsigned int, unsigned int); -extern char (*XkbToControl_dylibloader_wrapper_xlib)( char); -extern int (*XkbSetDebuggingFlags_dylibloader_wrapper_xlib)( Display*, unsigned int, unsigned int, char*, unsigned int, unsigned int, unsigned int*, unsigned int*); -extern int (*XkbApplyVirtualModChanges_dylibloader_wrapper_xlib)( XkbDescPtr, unsigned int, XkbChangesPtr); -extern int (*XkbUpdateActionVirtualMods_dylibloader_wrapper_xlib)( XkbDescPtr, XkbAction*, unsigned int); -extern void (*XkbUpdateKeyTypeVirtualMods_dylibloader_wrapper_xlib)( XkbDescPtr, XkbKeyTypePtr, unsigned int, XkbChangesPtr); +extern int (*_Xmblen_dylibloader_wrapper_xlib)(char *, int); +extern XFontStruct *(*XLoadQueryFont_dylibloader_wrapper_xlib)(Display *, const char *); +extern XFontStruct *(*XQueryFont_dylibloader_wrapper_xlib)(Display *, XID); +extern XTimeCoord *(*XGetMotionEvents_dylibloader_wrapper_xlib)(Display *, Window, Time, Time, int *); +extern XModifierKeymap *(*XDeleteModifiermapEntry_dylibloader_wrapper_xlib)(XModifierKeymap *, KeyCode, int); +extern XModifierKeymap *(*XGetModifierMapping_dylibloader_wrapper_xlib)(Display *); +extern XModifierKeymap *(*XInsertModifiermapEntry_dylibloader_wrapper_xlib)(XModifierKeymap *, KeyCode, int); +extern XModifierKeymap *(*XNewModifiermap_dylibloader_wrapper_xlib)(int); +extern XImage *(*XCreateImage_dylibloader_wrapper_xlib)(Display *, Visual *, unsigned int, int, int, char *, unsigned int, unsigned int, int, int); +extern int (*XInitImage_dylibloader_wrapper_xlib)(XImage *); +extern XImage *(*XGetImage_dylibloader_wrapper_xlib)(Display *, Drawable, int, int, unsigned int, unsigned int, unsigned long, int); +extern XImage *(*XGetSubImage_dylibloader_wrapper_xlib)(Display *, Drawable, int, int, unsigned int, unsigned int, unsigned long, int, XImage *, int, int); +extern Display *(*XOpenDisplay_dylibloader_wrapper_xlib)(const char *); +extern void (*XrmInitialize_dylibloader_wrapper_xlib)(void); +extern char *(*XFetchBytes_dylibloader_wrapper_xlib)(Display *, int *); +extern char *(*XFetchBuffer_dylibloader_wrapper_xlib)(Display *, int *, int); +extern char *(*XGetAtomName_dylibloader_wrapper_xlib)(Display *, Atom); +extern int (*XGetAtomNames_dylibloader_wrapper_xlib)(Display *, Atom *, int, char **); +extern char *(*XGetDefault_dylibloader_wrapper_xlib)(Display *, const char *, const char *); +extern char *(*XDisplayName_dylibloader_wrapper_xlib)(const char *); +extern char *(*XKeysymToString_dylibloader_wrapper_xlib)(KeySym); +extern int (*(*XSynchronize_dylibloader_wrapper_xlib)(Display *, int))(Display *); +extern int (*(*XSetAfterFunction_dylibloader_wrapper_xlib)(Display *, int (*)(Display *)))(Display *); +extern Atom (*XInternAtom_dylibloader_wrapper_xlib)(Display *, const char *, int); +extern int (*XInternAtoms_dylibloader_wrapper_xlib)(Display *, char **, int, int, Atom *); +extern Colormap (*XCopyColormapAndFree_dylibloader_wrapper_xlib)(Display *, Colormap); +extern Colormap (*XCreateColormap_dylibloader_wrapper_xlib)(Display *, Window, Visual *, int); +extern Cursor (*XCreatePixmapCursor_dylibloader_wrapper_xlib)(Display *, Pixmap, Pixmap, XColor *, XColor *, unsigned int, unsigned int); +extern Cursor (*XCreateGlyphCursor_dylibloader_wrapper_xlib)(Display *, Font, Font, unsigned int, unsigned int, const XColor *, const XColor *); +extern Cursor (*XCreateFontCursor_dylibloader_wrapper_xlib)(Display *, unsigned int); +extern Font (*XLoadFont_dylibloader_wrapper_xlib)(Display *, const char *); +extern GC (*XCreateGC_dylibloader_wrapper_xlib)(Display *, Drawable, unsigned long, XGCValues *); +extern GContext (*XGContextFromGC_dylibloader_wrapper_xlib)(GC); +extern void (*XFlushGC_dylibloader_wrapper_xlib)(Display *, GC); +extern Pixmap (*XCreatePixmap_dylibloader_wrapper_xlib)(Display *, Drawable, unsigned int, unsigned int, unsigned int); +extern Pixmap (*XCreateBitmapFromData_dylibloader_wrapper_xlib)(Display *, Drawable, const char *, unsigned int, unsigned int); +extern Pixmap (*XCreatePixmapFromBitmapData_dylibloader_wrapper_xlib)(Display *, Drawable, char *, unsigned int, unsigned int, unsigned long, unsigned long, unsigned int); +extern Window (*XCreateSimpleWindow_dylibloader_wrapper_xlib)(Display *, Window, int, int, unsigned int, unsigned int, unsigned int, unsigned long, unsigned long); +extern Window (*XGetSelectionOwner_dylibloader_wrapper_xlib)(Display *, Atom); +extern Window (*XCreateWindow_dylibloader_wrapper_xlib)(Display *, Window, int, int, unsigned int, unsigned int, unsigned int, int, unsigned int, Visual *, unsigned long, XSetWindowAttributes *); +extern Colormap *(*XListInstalledColormaps_dylibloader_wrapper_xlib)(Display *, Window, int *); +extern char **(*XListFonts_dylibloader_wrapper_xlib)(Display *, const char *, int, int *); +extern char **(*XListFontsWithInfo_dylibloader_wrapper_xlib)(Display *, const char *, int, int *, XFontStruct **); +extern char **(*XGetFontPath_dylibloader_wrapper_xlib)(Display *, int *); +extern char **(*XListExtensions_dylibloader_wrapper_xlib)(Display *, int *); +extern Atom *(*XListProperties_dylibloader_wrapper_xlib)(Display *, Window, int *); +extern XHostAddress *(*XListHosts_dylibloader_wrapper_xlib)(Display *, int *, int *); +extern KeySym (*XKeycodeToKeysym_dylibloader_wrapper_xlib)(Display *, KeyCode, int); +extern KeySym (*XLookupKeysym_dylibloader_wrapper_xlib)(XKeyEvent *, int); +extern KeySym *(*XGetKeyboardMapping_dylibloader_wrapper_xlib)(Display *, KeyCode, int, int *); +extern KeySym (*XStringToKeysym_dylibloader_wrapper_xlib)(const char *); +extern long (*XMaxRequestSize_dylibloader_wrapper_xlib)(Display *); +extern long (*XExtendedMaxRequestSize_dylibloader_wrapper_xlib)(Display *); +extern char *(*XResourceManagerString_dylibloader_wrapper_xlib)(Display *); +extern char *(*XScreenResourceString_dylibloader_wrapper_xlib)(Screen *); +extern unsigned long (*XDisplayMotionBufferSize_dylibloader_wrapper_xlib)(Display *); +extern VisualID (*XVisualIDFromVisual_dylibloader_wrapper_xlib)(Visual *); +extern int (*XInitThreads_dylibloader_wrapper_xlib)(void); +extern void (*XLockDisplay_dylibloader_wrapper_xlib)(Display *); +extern void (*XUnlockDisplay_dylibloader_wrapper_xlib)(Display *); +extern XExtCodes *(*XInitExtension_dylibloader_wrapper_xlib)(Display *, const char *); +extern XExtCodes *(*XAddExtension_dylibloader_wrapper_xlib)(Display *); +extern XExtData *(*XFindOnExtensionList_dylibloader_wrapper_xlib)(XExtData **, int); +extern XExtData **(*XEHeadOfExtensionList_dylibloader_wrapper_xlib)(XEDataObject); +extern Window (*XRootWindow_dylibloader_wrapper_xlib)(Display *, int); +extern Window (*XDefaultRootWindow_dylibloader_wrapper_xlib)(Display *); +extern Window (*XRootWindowOfScreen_dylibloader_wrapper_xlib)(Screen *); +extern Visual *(*XDefaultVisual_dylibloader_wrapper_xlib)(Display *, int); +extern Visual *(*XDefaultVisualOfScreen_dylibloader_wrapper_xlib)(Screen *); +extern GC (*XDefaultGC_dylibloader_wrapper_xlib)(Display *, int); +extern GC (*XDefaultGCOfScreen_dylibloader_wrapper_xlib)(Screen *); +extern unsigned long (*XBlackPixel_dylibloader_wrapper_xlib)(Display *, int); +extern unsigned long (*XWhitePixel_dylibloader_wrapper_xlib)(Display *, int); +extern unsigned long (*XAllPlanes_dylibloader_wrapper_xlib)(void); +extern unsigned long (*XBlackPixelOfScreen_dylibloader_wrapper_xlib)(Screen *); +extern unsigned long (*XWhitePixelOfScreen_dylibloader_wrapper_xlib)(Screen *); +extern unsigned long (*XNextRequest_dylibloader_wrapper_xlib)(Display *); +extern unsigned long (*XLastKnownRequestProcessed_dylibloader_wrapper_xlib)(Display *); +extern char *(*XServerVendor_dylibloader_wrapper_xlib)(Display *); +extern char *(*XDisplayString_dylibloader_wrapper_xlib)(Display *); +extern Colormap (*XDefaultColormap_dylibloader_wrapper_xlib)(Display *, int); +extern Colormap (*XDefaultColormapOfScreen_dylibloader_wrapper_xlib)(Screen *); +extern Display *(*XDisplayOfScreen_dylibloader_wrapper_xlib)(Screen *); +extern Screen *(*XScreenOfDisplay_dylibloader_wrapper_xlib)(Display *, int); +extern Screen *(*XDefaultScreenOfDisplay_dylibloader_wrapper_xlib)(Display *); +extern long (*XEventMaskOfScreen_dylibloader_wrapper_xlib)(Screen *); +extern int (*XScreenNumberOfScreen_dylibloader_wrapper_xlib)(Screen *); +extern XErrorHandler (*XSetErrorHandler_dylibloader_wrapper_xlib)(XErrorHandler); +extern XIOErrorHandler (*XSetIOErrorHandler_dylibloader_wrapper_xlib)(XIOErrorHandler); +extern void (*XSetIOErrorExitHandler_dylibloader_wrapper_xlib)(Display *, XIOErrorExitHandler, void *); +extern XPixmapFormatValues *(*XListPixmapFormats_dylibloader_wrapper_xlib)(Display *, int *); +extern int *(*XListDepths_dylibloader_wrapper_xlib)(Display *, int, int *); +extern int (*XReconfigureWMWindow_dylibloader_wrapper_xlib)(Display *, Window, int, unsigned int, XWindowChanges *); +extern int (*XGetWMProtocols_dylibloader_wrapper_xlib)(Display *, Window, Atom **, int *); +extern int (*XSetWMProtocols_dylibloader_wrapper_xlib)(Display *, Window, Atom *, int); +extern int (*XIconifyWindow_dylibloader_wrapper_xlib)(Display *, Window, int); +extern int (*XWithdrawWindow_dylibloader_wrapper_xlib)(Display *, Window, int); +extern int (*XGetCommand_dylibloader_wrapper_xlib)(Display *, Window, char ***, int *); +extern int (*XGetWMColormapWindows_dylibloader_wrapper_xlib)(Display *, Window, Window **, int *); +extern int (*XSetWMColormapWindows_dylibloader_wrapper_xlib)(Display *, Window, Window *, int); +extern void (*XFreeStringList_dylibloader_wrapper_xlib)(char **); +extern int (*XSetTransientForHint_dylibloader_wrapper_xlib)(Display *, Window, Window); +extern int (*XActivateScreenSaver_dylibloader_wrapper_xlib)(Display *); +extern int (*XAddHost_dylibloader_wrapper_xlib)(Display *, XHostAddress *); +extern int (*XAddHosts_dylibloader_wrapper_xlib)(Display *, XHostAddress *, int); +extern int (*XAddToExtensionList_dylibloader_wrapper_xlib)(struct _XExtData **, XExtData *); +extern int (*XAddToSaveSet_dylibloader_wrapper_xlib)(Display *, Window); +extern int (*XAllocColor_dylibloader_wrapper_xlib)(Display *, Colormap, XColor *); +extern int (*XAllocColorCells_dylibloader_wrapper_xlib)(Display *, Colormap, int, unsigned long *, unsigned int, unsigned long *, unsigned int); +extern int (*XAllocColorPlanes_dylibloader_wrapper_xlib)(Display *, Colormap, int, unsigned long *, int, int, int, int, unsigned long *, unsigned long *, unsigned long *); +extern int (*XAllocNamedColor_dylibloader_wrapper_xlib)(Display *, Colormap, const char *, XColor *, XColor *); +extern int (*XAllowEvents_dylibloader_wrapper_xlib)(Display *, int, Time); +extern int (*XAutoRepeatOff_dylibloader_wrapper_xlib)(Display *); +extern int (*XAutoRepeatOn_dylibloader_wrapper_xlib)(Display *); +extern int (*XBell_dylibloader_wrapper_xlib)(Display *, int); +extern int (*XBitmapBitOrder_dylibloader_wrapper_xlib)(Display *); +extern int (*XBitmapPad_dylibloader_wrapper_xlib)(Display *); +extern int (*XBitmapUnit_dylibloader_wrapper_xlib)(Display *); +extern int (*XCellsOfScreen_dylibloader_wrapper_xlib)(Screen *); +extern int (*XChangeActivePointerGrab_dylibloader_wrapper_xlib)(Display *, unsigned int, Cursor, Time); +extern int (*XChangeGC_dylibloader_wrapper_xlib)(Display *, GC, unsigned long, XGCValues *); +extern int (*XChangeKeyboardControl_dylibloader_wrapper_xlib)(Display *, unsigned long, XKeyboardControl *); +extern int (*XChangeKeyboardMapping_dylibloader_wrapper_xlib)(Display *, int, int, KeySym *, int); +extern int (*XChangePointerControl_dylibloader_wrapper_xlib)(Display *, int, int, int, int, int); +extern int (*XChangeProperty_dylibloader_wrapper_xlib)(Display *, Window, Atom, Atom, int, int, const unsigned char *, int); +extern int (*XChangeSaveSet_dylibloader_wrapper_xlib)(Display *, Window, int); +extern int (*XChangeWindowAttributes_dylibloader_wrapper_xlib)(Display *, Window, unsigned long, XSetWindowAttributes *); +extern int (*XCheckIfEvent_dylibloader_wrapper_xlib)(Display *, XEvent *, int (*)(Display *, XEvent *, XPointer), XPointer); +extern int (*XCheckMaskEvent_dylibloader_wrapper_xlib)(Display *, long, XEvent *); +extern int (*XCheckTypedEvent_dylibloader_wrapper_xlib)(Display *, int, XEvent *); +extern int (*XCheckTypedWindowEvent_dylibloader_wrapper_xlib)(Display *, Window, int, XEvent *); +extern int (*XCheckWindowEvent_dylibloader_wrapper_xlib)(Display *, Window, long, XEvent *); +extern int (*XCirculateSubwindows_dylibloader_wrapper_xlib)(Display *, Window, int); +extern int (*XCirculateSubwindowsDown_dylibloader_wrapper_xlib)(Display *, Window); +extern int (*XCirculateSubwindowsUp_dylibloader_wrapper_xlib)(Display *, Window); +extern int (*XClearArea_dylibloader_wrapper_xlib)(Display *, Window, int, int, unsigned int, unsigned int, int); +extern int (*XClearWindow_dylibloader_wrapper_xlib)(Display *, Window); +extern int (*XCloseDisplay_dylibloader_wrapper_xlib)(Display *); +extern int (*XConfigureWindow_dylibloader_wrapper_xlib)(Display *, Window, unsigned int, XWindowChanges *); +extern int (*XConnectionNumber_dylibloader_wrapper_xlib)(Display *); +extern int (*XConvertSelection_dylibloader_wrapper_xlib)(Display *, Atom, Atom, Atom, Window, Time); +extern int (*XCopyArea_dylibloader_wrapper_xlib)(Display *, Drawable, Drawable, GC, int, int, unsigned int, unsigned int, int, int); +extern int (*XCopyGC_dylibloader_wrapper_xlib)(Display *, GC, unsigned long, GC); +extern int (*XCopyPlane_dylibloader_wrapper_xlib)(Display *, Drawable, Drawable, GC, int, int, unsigned int, unsigned int, int, int, unsigned long); +extern int (*XDefaultDepth_dylibloader_wrapper_xlib)(Display *, int); +extern int (*XDefaultDepthOfScreen_dylibloader_wrapper_xlib)(Screen *); +extern int (*XDefaultScreen_dylibloader_wrapper_xlib)(Display *); +extern int (*XDefineCursor_dylibloader_wrapper_xlib)(Display *, Window, Cursor); +extern int (*XDeleteProperty_dylibloader_wrapper_xlib)(Display *, Window, Atom); +extern int (*XDestroyWindow_dylibloader_wrapper_xlib)(Display *, Window); +extern int (*XDestroySubwindows_dylibloader_wrapper_xlib)(Display *, Window); +extern int (*XDoesBackingStore_dylibloader_wrapper_xlib)(Screen *); +extern int (*XDoesSaveUnders_dylibloader_wrapper_xlib)(Screen *); +extern int (*XDisableAccessControl_dylibloader_wrapper_xlib)(Display *); +extern int (*XDisplayCells_dylibloader_wrapper_xlib)(Display *, int); +extern int (*XDisplayHeight_dylibloader_wrapper_xlib)(Display *, int); +extern int (*XDisplayHeightMM_dylibloader_wrapper_xlib)(Display *, int); +extern int (*XDisplayKeycodes_dylibloader_wrapper_xlib)(Display *, int *, int *); +extern int (*XDisplayPlanes_dylibloader_wrapper_xlib)(Display *, int); +extern int (*XDisplayWidth_dylibloader_wrapper_xlib)(Display *, int); +extern int (*XDisplayWidthMM_dylibloader_wrapper_xlib)(Display *, int); +extern int (*XDrawArc_dylibloader_wrapper_xlib)(Display *, Drawable, GC, int, int, unsigned int, unsigned int, int, int); +extern int (*XDrawArcs_dylibloader_wrapper_xlib)(Display *, Drawable, GC, XArc *, int); +extern int (*XDrawImageString_dylibloader_wrapper_xlib)(Display *, Drawable, GC, int, int, const char *, int); +extern int (*XDrawImageString16_dylibloader_wrapper_xlib)(Display *, Drawable, GC, int, int, const XChar2b *, int); +extern int (*XDrawLine_dylibloader_wrapper_xlib)(Display *, Drawable, GC, int, int, int, int); +extern int (*XDrawLines_dylibloader_wrapper_xlib)(Display *, Drawable, GC, XPoint *, int, int); +extern int (*XDrawPoint_dylibloader_wrapper_xlib)(Display *, Drawable, GC, int, int); +extern int (*XDrawPoints_dylibloader_wrapper_xlib)(Display *, Drawable, GC, XPoint *, int, int); +extern int (*XDrawRectangle_dylibloader_wrapper_xlib)(Display *, Drawable, GC, int, int, unsigned int, unsigned int); +extern int (*XDrawRectangles_dylibloader_wrapper_xlib)(Display *, Drawable, GC, XRectangle *, int); +extern int (*XDrawSegments_dylibloader_wrapper_xlib)(Display *, Drawable, GC, XSegment *, int); +extern int (*XDrawString_dylibloader_wrapper_xlib)(Display *, Drawable, GC, int, int, const char *, int); +extern int (*XDrawString16_dylibloader_wrapper_xlib)(Display *, Drawable, GC, int, int, const XChar2b *, int); +extern int (*XDrawText_dylibloader_wrapper_xlib)(Display *, Drawable, GC, int, int, XTextItem *, int); +extern int (*XDrawText16_dylibloader_wrapper_xlib)(Display *, Drawable, GC, int, int, XTextItem16 *, int); +extern int (*XEnableAccessControl_dylibloader_wrapper_xlib)(Display *); +extern int (*XEventsQueued_dylibloader_wrapper_xlib)(Display *, int); +extern int (*XFetchName_dylibloader_wrapper_xlib)(Display *, Window, char **); +extern int (*XFillArc_dylibloader_wrapper_xlib)(Display *, Drawable, GC, int, int, unsigned int, unsigned int, int, int); +extern int (*XFillArcs_dylibloader_wrapper_xlib)(Display *, Drawable, GC, XArc *, int); +extern int (*XFillPolygon_dylibloader_wrapper_xlib)(Display *, Drawable, GC, XPoint *, int, int, int); +extern int (*XFillRectangle_dylibloader_wrapper_xlib)(Display *, Drawable, GC, int, int, unsigned int, unsigned int); +extern int (*XFillRectangles_dylibloader_wrapper_xlib)(Display *, Drawable, GC, XRectangle *, int); +extern int (*XFlush_dylibloader_wrapper_xlib)(Display *); +extern int (*XForceScreenSaver_dylibloader_wrapper_xlib)(Display *, int); +extern int (*XFree_dylibloader_wrapper_xlib)(void *); +extern int (*XFreeColormap_dylibloader_wrapper_xlib)(Display *, Colormap); +extern int (*XFreeColors_dylibloader_wrapper_xlib)(Display *, Colormap, unsigned long *, int, unsigned long); +extern int (*XFreeCursor_dylibloader_wrapper_xlib)(Display *, Cursor); +extern int (*XFreeExtensionList_dylibloader_wrapper_xlib)(char **); +extern int (*XFreeFont_dylibloader_wrapper_xlib)(Display *, XFontStruct *); +extern int (*XFreeFontInfo_dylibloader_wrapper_xlib)(char **, XFontStruct *, int); +extern int (*XFreeFontNames_dylibloader_wrapper_xlib)(char **); +extern int (*XFreeFontPath_dylibloader_wrapper_xlib)(char **); +extern int (*XFreeGC_dylibloader_wrapper_xlib)(Display *, GC); +extern int (*XFreeModifiermap_dylibloader_wrapper_xlib)(XModifierKeymap *); +extern int (*XFreePixmap_dylibloader_wrapper_xlib)(Display *, Pixmap); +extern int (*XGeometry_dylibloader_wrapper_xlib)(Display *, int, const char *, const char *, unsigned int, unsigned int, unsigned int, int, int, int *, int *, int *, int *); +extern int (*XGetErrorDatabaseText_dylibloader_wrapper_xlib)(Display *, const char *, const char *, const char *, char *, int); +extern int (*XGetErrorText_dylibloader_wrapper_xlib)(Display *, int, char *, int); +extern int (*XGetFontProperty_dylibloader_wrapper_xlib)(XFontStruct *, Atom, unsigned long *); +extern int (*XGetGCValues_dylibloader_wrapper_xlib)(Display *, GC, unsigned long, XGCValues *); +extern int (*XGetGeometry_dylibloader_wrapper_xlib)(Display *, Drawable, Window *, int *, int *, unsigned int *, unsigned int *, unsigned int *, unsigned int *); +extern int (*XGetIconName_dylibloader_wrapper_xlib)(Display *, Window, char **); +extern int (*XGetInputFocus_dylibloader_wrapper_xlib)(Display *, Window *, int *); +extern int (*XGetKeyboardControl_dylibloader_wrapper_xlib)(Display *, XKeyboardState *); +extern int (*XGetPointerControl_dylibloader_wrapper_xlib)(Display *, int *, int *, int *); +extern int (*XGetPointerMapping_dylibloader_wrapper_xlib)(Display *, unsigned char *, int); +extern int (*XGetScreenSaver_dylibloader_wrapper_xlib)(Display *, int *, int *, int *, int *); +extern int (*XGetTransientForHint_dylibloader_wrapper_xlib)(Display *, Window, Window *); +extern int (*XGetWindowProperty_dylibloader_wrapper_xlib)(Display *, Window, Atom, long, long, int, Atom, Atom *, int *, unsigned long *, unsigned long *, unsigned char **); +extern int (*XGetWindowAttributes_dylibloader_wrapper_xlib)(Display *, Window, XWindowAttributes *); +extern int (*XGrabButton_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, Window, int, unsigned int, int, int, Window, Cursor); +extern int (*XGrabKey_dylibloader_wrapper_xlib)(Display *, int, unsigned int, Window, int, int, int); +extern int (*XGrabKeyboard_dylibloader_wrapper_xlib)(Display *, Window, int, int, int, Time); +extern int (*XGrabPointer_dylibloader_wrapper_xlib)(Display *, Window, int, unsigned int, int, int, Window, Cursor, Time); +extern int (*XGrabServer_dylibloader_wrapper_xlib)(Display *); +extern int (*XHeightMMOfScreen_dylibloader_wrapper_xlib)(Screen *); +extern int (*XHeightOfScreen_dylibloader_wrapper_xlib)(Screen *); +extern int (*XIfEvent_dylibloader_wrapper_xlib)(Display *, XEvent *, int (*)(Display *, XEvent *, XPointer), XPointer); +extern int (*XImageByteOrder_dylibloader_wrapper_xlib)(Display *); +extern int (*XInstallColormap_dylibloader_wrapper_xlib)(Display *, Colormap); +extern KeyCode (*XKeysymToKeycode_dylibloader_wrapper_xlib)(Display *, KeySym); +extern int (*XKillClient_dylibloader_wrapper_xlib)(Display *, XID); +extern int (*XLookupColor_dylibloader_wrapper_xlib)(Display *, Colormap, const char *, XColor *, XColor *); +extern int (*XLowerWindow_dylibloader_wrapper_xlib)(Display *, Window); +extern int (*XMapRaised_dylibloader_wrapper_xlib)(Display *, Window); +extern int (*XMapSubwindows_dylibloader_wrapper_xlib)(Display *, Window); +extern int (*XMapWindow_dylibloader_wrapper_xlib)(Display *, Window); +extern int (*XMaskEvent_dylibloader_wrapper_xlib)(Display *, long, XEvent *); +extern int (*XMaxCmapsOfScreen_dylibloader_wrapper_xlib)(Screen *); +extern int (*XMinCmapsOfScreen_dylibloader_wrapper_xlib)(Screen *); +extern int (*XMoveResizeWindow_dylibloader_wrapper_xlib)(Display *, Window, int, int, unsigned int, unsigned int); +extern int (*XMoveWindow_dylibloader_wrapper_xlib)(Display *, Window, int, int); +extern int (*XNextEvent_dylibloader_wrapper_xlib)(Display *, XEvent *); +extern int (*XNoOp_dylibloader_wrapper_xlib)(Display *); +extern int (*XParseColor_dylibloader_wrapper_xlib)(Display *, Colormap, const char *, XColor *); +extern int (*XParseGeometry_dylibloader_wrapper_xlib)(const char *, int *, int *, unsigned int *, unsigned int *); +extern int (*XPeekEvent_dylibloader_wrapper_xlib)(Display *, XEvent *); +extern int (*XPeekIfEvent_dylibloader_wrapper_xlib)(Display *, XEvent *, int (*)(Display *, XEvent *, XPointer), XPointer); +extern int (*XPending_dylibloader_wrapper_xlib)(Display *); +extern int (*XPlanesOfScreen_dylibloader_wrapper_xlib)(Screen *); +extern int (*XProtocolRevision_dylibloader_wrapper_xlib)(Display *); +extern int (*XProtocolVersion_dylibloader_wrapper_xlib)(Display *); +extern int (*XPutBackEvent_dylibloader_wrapper_xlib)(Display *, XEvent *); +extern int (*XPutImage_dylibloader_wrapper_xlib)(Display *, Drawable, GC, XImage *, int, int, int, int, unsigned int, unsigned int); +extern int (*XQLength_dylibloader_wrapper_xlib)(Display *); +extern int (*XQueryBestCursor_dylibloader_wrapper_xlib)(Display *, Drawable, unsigned int, unsigned int, unsigned int *, unsigned int *); +extern int (*XQueryBestSize_dylibloader_wrapper_xlib)(Display *, int, Drawable, unsigned int, unsigned int, unsigned int *, unsigned int *); +extern int (*XQueryBestStipple_dylibloader_wrapper_xlib)(Display *, Drawable, unsigned int, unsigned int, unsigned int *, unsigned int *); +extern int (*XQueryBestTile_dylibloader_wrapper_xlib)(Display *, Drawable, unsigned int, unsigned int, unsigned int *, unsigned int *); +extern int (*XQueryColor_dylibloader_wrapper_xlib)(Display *, Colormap, XColor *); +extern int (*XQueryColors_dylibloader_wrapper_xlib)(Display *, Colormap, XColor *, int); +extern int (*XQueryExtension_dylibloader_wrapper_xlib)(Display *, const char *, int *, int *, int *); +extern int (*XQueryKeymap_dylibloader_wrapper_xlib)(Display *, char [32]); +extern int (*XQueryPointer_dylibloader_wrapper_xlib)(Display *, Window, Window *, Window *, int *, int *, int *, int *, unsigned int *); +extern int (*XQueryTextExtents_dylibloader_wrapper_xlib)(Display *, XID, const char *, int, int *, int *, int *, XCharStruct *); +extern int (*XQueryTextExtents16_dylibloader_wrapper_xlib)(Display *, XID, const XChar2b *, int, int *, int *, int *, XCharStruct *); +extern int (*XQueryTree_dylibloader_wrapper_xlib)(Display *, Window, Window *, Window *, Window **, unsigned int *); +extern int (*XRaiseWindow_dylibloader_wrapper_xlib)(Display *, Window); +extern int (*XReadBitmapFile_dylibloader_wrapper_xlib)(Display *, Drawable, const char *, unsigned int *, unsigned int *, Pixmap *, int *, int *); +extern int (*XReadBitmapFileData_dylibloader_wrapper_xlib)(const char *, unsigned int *, unsigned int *, unsigned char **, int *, int *); +extern int (*XRebindKeysym_dylibloader_wrapper_xlib)(Display *, KeySym, KeySym *, int, const unsigned char *, int); +extern int (*XRecolorCursor_dylibloader_wrapper_xlib)(Display *, Cursor, XColor *, XColor *); +extern int (*XRefreshKeyboardMapping_dylibloader_wrapper_xlib)(XMappingEvent *); +extern int (*XRemoveFromSaveSet_dylibloader_wrapper_xlib)(Display *, Window); +extern int (*XRemoveHost_dylibloader_wrapper_xlib)(Display *, XHostAddress *); +extern int (*XRemoveHosts_dylibloader_wrapper_xlib)(Display *, XHostAddress *, int); +extern int (*XReparentWindow_dylibloader_wrapper_xlib)(Display *, Window, Window, int, int); +extern int (*XResetScreenSaver_dylibloader_wrapper_xlib)(Display *); +extern int (*XResizeWindow_dylibloader_wrapper_xlib)(Display *, Window, unsigned int, unsigned int); +extern int (*XRestackWindows_dylibloader_wrapper_xlib)(Display *, Window *, int); +extern int (*XRotateBuffers_dylibloader_wrapper_xlib)(Display *, int); +extern int (*XRotateWindowProperties_dylibloader_wrapper_xlib)(Display *, Window, Atom *, int, int); +extern int (*XScreenCount_dylibloader_wrapper_xlib)(Display *); +extern int (*XSelectInput_dylibloader_wrapper_xlib)(Display *, Window, long); +extern int (*XSendEvent_dylibloader_wrapper_xlib)(Display *, Window, int, long, XEvent *); +extern int (*XSetAccessControl_dylibloader_wrapper_xlib)(Display *, int); +extern int (*XSetArcMode_dylibloader_wrapper_xlib)(Display *, GC, int); +extern int (*XSetBackground_dylibloader_wrapper_xlib)(Display *, GC, unsigned long); +extern int (*XSetClipMask_dylibloader_wrapper_xlib)(Display *, GC, Pixmap); +extern int (*XSetClipOrigin_dylibloader_wrapper_xlib)(Display *, GC, int, int); +extern int (*XSetClipRectangles_dylibloader_wrapper_xlib)(Display *, GC, int, int, XRectangle *, int, int); +extern int (*XSetCloseDownMode_dylibloader_wrapper_xlib)(Display *, int); +extern int (*XSetCommand_dylibloader_wrapper_xlib)(Display *, Window, char **, int); +extern int (*XSetDashes_dylibloader_wrapper_xlib)(Display *, GC, int, const char *, int); +extern int (*XSetFillRule_dylibloader_wrapper_xlib)(Display *, GC, int); +extern int (*XSetFillStyle_dylibloader_wrapper_xlib)(Display *, GC, int); +extern int (*XSetFont_dylibloader_wrapper_xlib)(Display *, GC, Font); +extern int (*XSetFontPath_dylibloader_wrapper_xlib)(Display *, char **, int); +extern int (*XSetForeground_dylibloader_wrapper_xlib)(Display *, GC, unsigned long); +extern int (*XSetFunction_dylibloader_wrapper_xlib)(Display *, GC, int); +extern int (*XSetGraphicsExposures_dylibloader_wrapper_xlib)(Display *, GC, int); +extern int (*XSetIconName_dylibloader_wrapper_xlib)(Display *, Window, const char *); +extern int (*XSetInputFocus_dylibloader_wrapper_xlib)(Display *, Window, int, Time); +extern int (*XSetLineAttributes_dylibloader_wrapper_xlib)(Display *, GC, unsigned int, int, int, int); +extern int (*XSetModifierMapping_dylibloader_wrapper_xlib)(Display *, XModifierKeymap *); +extern int (*XSetPlaneMask_dylibloader_wrapper_xlib)(Display *, GC, unsigned long); +extern int (*XSetPointerMapping_dylibloader_wrapper_xlib)(Display *, const unsigned char *, int); +extern int (*XSetScreenSaver_dylibloader_wrapper_xlib)(Display *, int, int, int, int); +extern int (*XSetSelectionOwner_dylibloader_wrapper_xlib)(Display *, Atom, Window, Time); +extern int (*XSetState_dylibloader_wrapper_xlib)(Display *, GC, unsigned long, unsigned long, int, unsigned long); +extern int (*XSetStipple_dylibloader_wrapper_xlib)(Display *, GC, Pixmap); +extern int (*XSetSubwindowMode_dylibloader_wrapper_xlib)(Display *, GC, int); +extern int (*XSetTSOrigin_dylibloader_wrapper_xlib)(Display *, GC, int, int); +extern int (*XSetTile_dylibloader_wrapper_xlib)(Display *, GC, Pixmap); +extern int (*XSetWindowBackground_dylibloader_wrapper_xlib)(Display *, Window, unsigned long); +extern int (*XSetWindowBackgroundPixmap_dylibloader_wrapper_xlib)(Display *, Window, Pixmap); +extern int (*XSetWindowBorder_dylibloader_wrapper_xlib)(Display *, Window, unsigned long); +extern int (*XSetWindowBorderPixmap_dylibloader_wrapper_xlib)(Display *, Window, Pixmap); +extern int (*XSetWindowBorderWidth_dylibloader_wrapper_xlib)(Display *, Window, unsigned int); +extern int (*XSetWindowColormap_dylibloader_wrapper_xlib)(Display *, Window, Colormap); +extern int (*XStoreBuffer_dylibloader_wrapper_xlib)(Display *, const char *, int, int); +extern int (*XStoreBytes_dylibloader_wrapper_xlib)(Display *, const char *, int); +extern int (*XStoreColor_dylibloader_wrapper_xlib)(Display *, Colormap, XColor *); +extern int (*XStoreColors_dylibloader_wrapper_xlib)(Display *, Colormap, XColor *, int); +extern int (*XStoreName_dylibloader_wrapper_xlib)(Display *, Window, const char *); +extern int (*XStoreNamedColor_dylibloader_wrapper_xlib)(Display *, Colormap, const char *, unsigned long, int); +extern int (*XSync_dylibloader_wrapper_xlib)(Display *, int); +extern int (*XTextExtents_dylibloader_wrapper_xlib)(XFontStruct *, const char *, int, int *, int *, int *, XCharStruct *); +extern int (*XTextExtents16_dylibloader_wrapper_xlib)(XFontStruct *, const XChar2b *, int, int *, int *, int *, XCharStruct *); +extern int (*XTextWidth_dylibloader_wrapper_xlib)(XFontStruct *, const char *, int); +extern int (*XTextWidth16_dylibloader_wrapper_xlib)(XFontStruct *, const XChar2b *, int); +extern int (*XTranslateCoordinates_dylibloader_wrapper_xlib)(Display *, Window, Window, int, int, int *, int *, Window *); +extern int (*XUndefineCursor_dylibloader_wrapper_xlib)(Display *, Window); +extern int (*XUngrabButton_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, Window); +extern int (*XUngrabKey_dylibloader_wrapper_xlib)(Display *, int, unsigned int, Window); +extern int (*XUngrabKeyboard_dylibloader_wrapper_xlib)(Display *, Time); +extern int (*XUngrabPointer_dylibloader_wrapper_xlib)(Display *, Time); +extern int (*XUngrabServer_dylibloader_wrapper_xlib)(Display *); +extern int (*XUninstallColormap_dylibloader_wrapper_xlib)(Display *, Colormap); +extern int (*XUnloadFont_dylibloader_wrapper_xlib)(Display *, Font); +extern int (*XUnmapSubwindows_dylibloader_wrapper_xlib)(Display *, Window); +extern int (*XUnmapWindow_dylibloader_wrapper_xlib)(Display *, Window); +extern int (*XVendorRelease_dylibloader_wrapper_xlib)(Display *); +extern int (*XWarpPointer_dylibloader_wrapper_xlib)(Display *, Window, Window, int, int, unsigned int, unsigned int, int, int); +extern int (*XWidthMMOfScreen_dylibloader_wrapper_xlib)(Screen *); +extern int (*XWidthOfScreen_dylibloader_wrapper_xlib)(Screen *); +extern int (*XWindowEvent_dylibloader_wrapper_xlib)(Display *, Window, long, XEvent *); +extern int (*XWriteBitmapFile_dylibloader_wrapper_xlib)(Display *, const char *, Pixmap, unsigned int, unsigned int, int, int); +extern int (*XSupportsLocale_dylibloader_wrapper_xlib)(void); +extern char *(*XSetLocaleModifiers_dylibloader_wrapper_xlib)(const char *); +extern XOM (*XOpenOM_dylibloader_wrapper_xlib)(Display *, struct _XrmHashBucketRec *, const char *, const char *); +extern int (*XCloseOM_dylibloader_wrapper_xlib)(XOM); +extern char *(*XSetOMValues_dylibloader_wrapper_xlib)(XOM, ...); +extern char *(*XGetOMValues_dylibloader_wrapper_xlib)(XOM, ...); +extern Display *(*XDisplayOfOM_dylibloader_wrapper_xlib)(XOM); +extern char *(*XLocaleOfOM_dylibloader_wrapper_xlib)(XOM); +extern XOC (*XCreateOC_dylibloader_wrapper_xlib)(XOM, ...); +extern void (*XDestroyOC_dylibloader_wrapper_xlib)(XOC); +extern XOM (*XOMOfOC_dylibloader_wrapper_xlib)(XOC); +extern char *(*XSetOCValues_dylibloader_wrapper_xlib)(XOC, ...); +extern char *(*XGetOCValues_dylibloader_wrapper_xlib)(XOC, ...); +extern XFontSet (*XCreateFontSet_dylibloader_wrapper_xlib)(Display *, const char *, char ***, int *, char **); +extern void (*XFreeFontSet_dylibloader_wrapper_xlib)(Display *, XFontSet); +extern int (*XFontsOfFontSet_dylibloader_wrapper_xlib)(XFontSet, XFontStruct ***, char ***); +extern char *(*XBaseFontNameListOfFontSet_dylibloader_wrapper_xlib)(XFontSet); +extern char *(*XLocaleOfFontSet_dylibloader_wrapper_xlib)(XFontSet); +extern int (*XContextDependentDrawing_dylibloader_wrapper_xlib)(XFontSet); +extern int (*XDirectionalDependentDrawing_dylibloader_wrapper_xlib)(XFontSet); +extern int (*XContextualDrawing_dylibloader_wrapper_xlib)(XFontSet); +extern XFontSetExtents *(*XExtentsOfFontSet_dylibloader_wrapper_xlib)(XFontSet); +extern int (*XmbTextEscapement_dylibloader_wrapper_xlib)(XFontSet, const char *, int); +extern int (*XwcTextEscapement_dylibloader_wrapper_xlib)(XFontSet, const wchar_t *, int); +extern int (*Xutf8TextEscapement_dylibloader_wrapper_xlib)(XFontSet, const char *, int); +extern int (*XmbTextExtents_dylibloader_wrapper_xlib)(XFontSet, const char *, int, XRectangle *, XRectangle *); +extern int (*XwcTextExtents_dylibloader_wrapper_xlib)(XFontSet, const wchar_t *, int, XRectangle *, XRectangle *); +extern int (*Xutf8TextExtents_dylibloader_wrapper_xlib)(XFontSet, const char *, int, XRectangle *, XRectangle *); +extern int (*XmbTextPerCharExtents_dylibloader_wrapper_xlib)(XFontSet, const char *, int, XRectangle *, XRectangle *, int, int *, XRectangle *, XRectangle *); +extern int (*XwcTextPerCharExtents_dylibloader_wrapper_xlib)(XFontSet, const wchar_t *, int, XRectangle *, XRectangle *, int, int *, XRectangle *, XRectangle *); +extern int (*Xutf8TextPerCharExtents_dylibloader_wrapper_xlib)(XFontSet, const char *, int, XRectangle *, XRectangle *, int, int *, XRectangle *, XRectangle *); +extern void (*XmbDrawText_dylibloader_wrapper_xlib)(Display *, Drawable, GC, int, int, XmbTextItem *, int); +extern void (*XwcDrawText_dylibloader_wrapper_xlib)(Display *, Drawable, GC, int, int, XwcTextItem *, int); +extern void (*Xutf8DrawText_dylibloader_wrapper_xlib)(Display *, Drawable, GC, int, int, XmbTextItem *, int); +extern void (*XmbDrawString_dylibloader_wrapper_xlib)(Display *, Drawable, XFontSet, GC, int, int, const char *, int); +extern void (*XwcDrawString_dylibloader_wrapper_xlib)(Display *, Drawable, XFontSet, GC, int, int, const wchar_t *, int); +extern void (*Xutf8DrawString_dylibloader_wrapper_xlib)(Display *, Drawable, XFontSet, GC, int, int, const char *, int); +extern void (*XmbDrawImageString_dylibloader_wrapper_xlib)(Display *, Drawable, XFontSet, GC, int, int, const char *, int); +extern void (*XwcDrawImageString_dylibloader_wrapper_xlib)(Display *, Drawable, XFontSet, GC, int, int, const wchar_t *, int); +extern void (*Xutf8DrawImageString_dylibloader_wrapper_xlib)(Display *, Drawable, XFontSet, GC, int, int, const char *, int); +extern XIM (*XOpenIM_dylibloader_wrapper_xlib)(Display *, struct _XrmHashBucketRec *, char *, char *); +extern int (*XCloseIM_dylibloader_wrapper_xlib)(XIM); +extern char *(*XGetIMValues_dylibloader_wrapper_xlib)(XIM, ...); +extern char *(*XSetIMValues_dylibloader_wrapper_xlib)(XIM, ...); +extern Display *(*XDisplayOfIM_dylibloader_wrapper_xlib)(XIM); +extern char *(*XLocaleOfIM_dylibloader_wrapper_xlib)(XIM); +extern XIC (*XCreateIC_dylibloader_wrapper_xlib)(XIM, ...); +extern void (*XDestroyIC_dylibloader_wrapper_xlib)(XIC); +extern void (*XSetICFocus_dylibloader_wrapper_xlib)(XIC); +extern void (*XUnsetICFocus_dylibloader_wrapper_xlib)(XIC); +extern wchar_t *(*XwcResetIC_dylibloader_wrapper_xlib)(XIC); +extern char *(*XmbResetIC_dylibloader_wrapper_xlib)(XIC); +extern char *(*Xutf8ResetIC_dylibloader_wrapper_xlib)(XIC); +extern char *(*XSetICValues_dylibloader_wrapper_xlib)(XIC, ...); +extern char *(*XGetICValues_dylibloader_wrapper_xlib)(XIC, ...); +extern XIM (*XIMOfIC_dylibloader_wrapper_xlib)(XIC); +extern int (*XFilterEvent_dylibloader_wrapper_xlib)(XEvent *, Window); +extern int (*XmbLookupString_dylibloader_wrapper_xlib)(XIC, XKeyPressedEvent *, char *, int, KeySym *, int *); +extern int (*XwcLookupString_dylibloader_wrapper_xlib)(XIC, XKeyPressedEvent *, wchar_t *, int, KeySym *, int *); +extern int (*Xutf8LookupString_dylibloader_wrapper_xlib)(XIC, XKeyPressedEvent *, char *, int, KeySym *, int *); +extern XVaNestedList (*XVaCreateNestedList_dylibloader_wrapper_xlib)(int, ...); +extern int (*XRegisterIMInstantiateCallback_dylibloader_wrapper_xlib)(Display *, struct _XrmHashBucketRec *, char *, char *, XIDProc, XPointer); +extern int (*XUnregisterIMInstantiateCallback_dylibloader_wrapper_xlib)(Display *, struct _XrmHashBucketRec *, char *, char *, XIDProc, XPointer); +extern int (*XInternalConnectionNumbers_dylibloader_wrapper_xlib)(Display *, int **, int *); +extern void (*XProcessInternalConnection_dylibloader_wrapper_xlib)(Display *, int); +extern int (*XAddConnectionWatch_dylibloader_wrapper_xlib)(Display *, XConnectionWatchProc, XPointer); +extern void (*XRemoveConnectionWatch_dylibloader_wrapper_xlib)(Display *, XConnectionWatchProc, XPointer); +extern void (*XSetAuthorization_dylibloader_wrapper_xlib)(char *, int, char *, int); +extern int (*_Xmbtowc_dylibloader_wrapper_xlib)(wchar_t *, char *, int); +extern int (*_Xwctomb_dylibloader_wrapper_xlib)(char *, wchar_t); +extern int (*XGetEventData_dylibloader_wrapper_xlib)(Display *, XGenericEventCookie *); +extern void (*XFreeEventData_dylibloader_wrapper_xlib)(Display *, XGenericEventCookie *); +extern int (*XFreeThreads_dylibloader_wrapper_xlib)(void); +extern XClassHint *(*XAllocClassHint_dylibloader_wrapper_xlib)(void); +extern XIconSize *(*XAllocIconSize_dylibloader_wrapper_xlib)(void); +extern XSizeHints *(*XAllocSizeHints_dylibloader_wrapper_xlib)(void); +extern XStandardColormap *(*XAllocStandardColormap_dylibloader_wrapper_xlib)(void); +extern XWMHints *(*XAllocWMHints_dylibloader_wrapper_xlib)(void); +extern int (*XClipBox_dylibloader_wrapper_xlib)(Region, XRectangle *); +extern Region (*XCreateRegion_dylibloader_wrapper_xlib)(void); +extern const char *(*XDefaultString_dylibloader_wrapper_xlib)(void); +extern int (*XDeleteContext_dylibloader_wrapper_xlib)(Display *, XID, XContext); +extern int (*XDestroyRegion_dylibloader_wrapper_xlib)(Region); +extern int (*XEmptyRegion_dylibloader_wrapper_xlib)(Region); +extern int (*XEqualRegion_dylibloader_wrapper_xlib)(Region, Region); +extern int (*XFindContext_dylibloader_wrapper_xlib)(Display *, XID, XContext, XPointer *); +extern int (*XGetClassHint_dylibloader_wrapper_xlib)(Display *, Window, XClassHint *); +extern int (*XGetIconSizes_dylibloader_wrapper_xlib)(Display *, Window, XIconSize **, int *); +extern int (*XGetNormalHints_dylibloader_wrapper_xlib)(Display *, Window, XSizeHints *); +extern int (*XGetRGBColormaps_dylibloader_wrapper_xlib)(Display *, Window, XStandardColormap **, int *, Atom); +extern int (*XGetSizeHints_dylibloader_wrapper_xlib)(Display *, Window, XSizeHints *, Atom); +extern int (*XGetStandardColormap_dylibloader_wrapper_xlib)(Display *, Window, XStandardColormap *, Atom); +extern int (*XGetTextProperty_dylibloader_wrapper_xlib)(Display *, Window, XTextProperty *, Atom); +extern XVisualInfo *(*XGetVisualInfo_dylibloader_wrapper_xlib)(Display *, long, XVisualInfo *, int *); +extern int (*XGetWMClientMachine_dylibloader_wrapper_xlib)(Display *, Window, XTextProperty *); +extern XWMHints *(*XGetWMHints_dylibloader_wrapper_xlib)(Display *, Window); +extern int (*XGetWMIconName_dylibloader_wrapper_xlib)(Display *, Window, XTextProperty *); +extern int (*XGetWMName_dylibloader_wrapper_xlib)(Display *, Window, XTextProperty *); +extern int (*XGetWMNormalHints_dylibloader_wrapper_xlib)(Display *, Window, XSizeHints *, long *); +extern int (*XGetWMSizeHints_dylibloader_wrapper_xlib)(Display *, Window, XSizeHints *, long *, Atom); +extern int (*XGetZoomHints_dylibloader_wrapper_xlib)(Display *, Window, XSizeHints *); +extern int (*XIntersectRegion_dylibloader_wrapper_xlib)(Region, Region, Region); +extern void (*XConvertCase_dylibloader_wrapper_xlib)(KeySym, KeySym *, KeySym *); +extern int (*XLookupString_dylibloader_wrapper_xlib)(XKeyEvent *, char *, int, KeySym *, XComposeStatus *); +extern int (*XMatchVisualInfo_dylibloader_wrapper_xlib)(Display *, int, int, int, XVisualInfo *); +extern int (*XOffsetRegion_dylibloader_wrapper_xlib)(Region, int, int); +extern int (*XPointInRegion_dylibloader_wrapper_xlib)(Region, int, int); +extern Region (*XPolygonRegion_dylibloader_wrapper_xlib)(XPoint *, int, int); +extern int (*XRectInRegion_dylibloader_wrapper_xlib)(Region, int, int, unsigned int, unsigned int); +extern int (*XSaveContext_dylibloader_wrapper_xlib)(Display *, XID, XContext, const char *); +extern int (*XSetClassHint_dylibloader_wrapper_xlib)(Display *, Window, XClassHint *); +extern int (*XSetIconSizes_dylibloader_wrapper_xlib)(Display *, Window, XIconSize *, int); +extern int (*XSetNormalHints_dylibloader_wrapper_xlib)(Display *, Window, XSizeHints *); +extern void (*XSetRGBColormaps_dylibloader_wrapper_xlib)(Display *, Window, XStandardColormap *, int, Atom); +extern int (*XSetSizeHints_dylibloader_wrapper_xlib)(Display *, Window, XSizeHints *, Atom); +extern int (*XSetStandardProperties_dylibloader_wrapper_xlib)(Display *, Window, const char *, const char *, Pixmap, char **, int, XSizeHints *); +extern void (*XSetTextProperty_dylibloader_wrapper_xlib)(Display *, Window, XTextProperty *, Atom); +extern void (*XSetWMClientMachine_dylibloader_wrapper_xlib)(Display *, Window, XTextProperty *); +extern int (*XSetWMHints_dylibloader_wrapper_xlib)(Display *, Window, XWMHints *); +extern void (*XSetWMIconName_dylibloader_wrapper_xlib)(Display *, Window, XTextProperty *); +extern void (*XSetWMName_dylibloader_wrapper_xlib)(Display *, Window, XTextProperty *); +extern void (*XSetWMNormalHints_dylibloader_wrapper_xlib)(Display *, Window, XSizeHints *); +extern void (*XSetWMProperties_dylibloader_wrapper_xlib)(Display *, Window, XTextProperty *, XTextProperty *, char **, int, XSizeHints *, XWMHints *, XClassHint *); +extern void (*XmbSetWMProperties_dylibloader_wrapper_xlib)(Display *, Window, const char *, const char *, char **, int, XSizeHints *, XWMHints *, XClassHint *); +extern void (*Xutf8SetWMProperties_dylibloader_wrapper_xlib)(Display *, Window, const char *, const char *, char **, int, XSizeHints *, XWMHints *, XClassHint *); +extern void (*XSetWMSizeHints_dylibloader_wrapper_xlib)(Display *, Window, XSizeHints *, Atom); +extern int (*XSetRegion_dylibloader_wrapper_xlib)(Display *, GC, Region); +extern void (*XSetStandardColormap_dylibloader_wrapper_xlib)(Display *, Window, XStandardColormap *, Atom); +extern int (*XSetZoomHints_dylibloader_wrapper_xlib)(Display *, Window, XSizeHints *); +extern int (*XShrinkRegion_dylibloader_wrapper_xlib)(Region, int, int); +extern int (*XStringListToTextProperty_dylibloader_wrapper_xlib)(char **, int, XTextProperty *); +extern int (*XSubtractRegion_dylibloader_wrapper_xlib)(Region, Region, Region); +extern int (*XmbTextListToTextProperty_dylibloader_wrapper_xlib)(Display *, char **, int, XICCEncodingStyle, XTextProperty *); +extern int (*XwcTextListToTextProperty_dylibloader_wrapper_xlib)(Display *, wchar_t **, int, XICCEncodingStyle, XTextProperty *); +extern int (*Xutf8TextListToTextProperty_dylibloader_wrapper_xlib)(Display *, char **, int, XICCEncodingStyle, XTextProperty *); +extern void (*XwcFreeStringList_dylibloader_wrapper_xlib)(wchar_t **); +extern int (*XTextPropertyToStringList_dylibloader_wrapper_xlib)(XTextProperty *, char ***, int *); +extern int (*XmbTextPropertyToTextList_dylibloader_wrapper_xlib)(Display *, const XTextProperty *, char ***, int *); +extern int (*XwcTextPropertyToTextList_dylibloader_wrapper_xlib)(Display *, const XTextProperty *, wchar_t ***, int *); +extern int (*Xutf8TextPropertyToTextList_dylibloader_wrapper_xlib)(Display *, const XTextProperty *, char ***, int *); +extern int (*XUnionRectWithRegion_dylibloader_wrapper_xlib)(XRectangle *, Region, Region); +extern int (*XUnionRegion_dylibloader_wrapper_xlib)(Region, Region, Region); +extern int (*XWMGeometry_dylibloader_wrapper_xlib)(Display *, int, const char *, const char *, unsigned int, XSizeHints *, int *, int *, int *, int *, int *); +extern int (*XXorRegion_dylibloader_wrapper_xlib)(Region, Region, Region); +extern int (*XkbIgnoreExtension_dylibloader_wrapper_xlib)(int); +extern Display *(*XkbOpenDisplay_dylibloader_wrapper_xlib)(char *, int *, int *, int *, int *, int *); +extern int (*XkbQueryExtension_dylibloader_wrapper_xlib)(Display *, int *, int *, int *, int *, int *); +extern int (*XkbUseExtension_dylibloader_wrapper_xlib)(Display *, int *, int *); +extern int (*XkbLibraryVersion_dylibloader_wrapper_xlib)(int *, int *); +extern unsigned int (*XkbSetXlibControls_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int); +extern unsigned int (*XkbGetXlibControls_dylibloader_wrapper_xlib)(Display *); +extern unsigned int (*XkbXlibControlsImplemented_dylibloader_wrapper_xlib)(void); +extern void (*XkbSetAtomFuncs_dylibloader_wrapper_xlib)(XkbInternAtomFunc, XkbGetAtomNameFunc); +extern KeySym (*XkbKeycodeToKeysym_dylibloader_wrapper_xlib)(Display *, KeyCode, int, int); +extern unsigned int (*XkbKeysymToModifiers_dylibloader_wrapper_xlib)(Display *, KeySym); +extern int (*XkbLookupKeySym_dylibloader_wrapper_xlib)(Display *, KeyCode, unsigned int, unsigned int *, KeySym *); +extern int (*XkbLookupKeyBinding_dylibloader_wrapper_xlib)(Display *, KeySym, unsigned int, char *, int, int *); +extern int (*XkbTranslateKeyCode_dylibloader_wrapper_xlib)(XkbDescPtr, KeyCode, unsigned int, unsigned int *, KeySym *); +extern int (*XkbTranslateKeySym_dylibloader_wrapper_xlib)(Display *, KeySym *, unsigned int, char *, int, int *); +extern int (*XkbSetAutoRepeatRate_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, unsigned int); +extern int (*XkbGetAutoRepeatRate_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int *, unsigned int *); +extern int (*XkbChangeEnabledControls_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, unsigned int); +extern int (*XkbDeviceBell_dylibloader_wrapper_xlib)(Display *, Window, int, int, int, int, Atom); +extern int (*XkbForceDeviceBell_dylibloader_wrapper_xlib)(Display *, int, int, int, int); +extern int (*XkbDeviceBellEvent_dylibloader_wrapper_xlib)(Display *, Window, int, int, int, int, Atom); +extern int (*XkbBell_dylibloader_wrapper_xlib)(Display *, Window, int, Atom); +extern int (*XkbForceBell_dylibloader_wrapper_xlib)(Display *, int); +extern int (*XkbBellEvent_dylibloader_wrapper_xlib)(Display *, Window, int, Atom); +extern int (*XkbSelectEvents_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, unsigned int); +extern int (*XkbSelectEventDetails_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, unsigned long, unsigned long); +extern void (*XkbNoteMapChanges_dylibloader_wrapper_xlib)(XkbMapChangesPtr, XkbMapNotifyEvent *, unsigned int); +extern void (*XkbNoteNameChanges_dylibloader_wrapper_xlib)(XkbNameChangesPtr, XkbNamesNotifyEvent *, unsigned int); +extern int (*XkbGetIndicatorState_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int *); +extern int (*XkbGetIndicatorMap_dylibloader_wrapper_xlib)(Display *, unsigned long, XkbDescPtr); +extern int (*XkbSetIndicatorMap_dylibloader_wrapper_xlib)(Display *, unsigned long, XkbDescPtr); +extern int (*XkbGetNamedIndicator_dylibloader_wrapper_xlib)(Display *, Atom, int *, int *, XkbIndicatorMapPtr, int *); +extern int (*XkbGetNamedDeviceIndicator_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, unsigned int, Atom, int *, int *, XkbIndicatorMapPtr, int *); +extern int (*XkbSetNamedIndicator_dylibloader_wrapper_xlib)(Display *, Atom, int, int, int, XkbIndicatorMapPtr); +extern int (*XkbSetNamedDeviceIndicator_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, unsigned int, Atom, int, int, int, XkbIndicatorMapPtr); +extern int (*XkbLockModifiers_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, unsigned int); +extern int (*XkbLatchModifiers_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, unsigned int); +extern int (*XkbLockGroup_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int); +extern int (*XkbLatchGroup_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int); +extern int (*XkbSetServerInternalMods_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int); +extern int (*XkbSetIgnoreLockMods_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int); +extern int (*XkbVirtualModsToReal_dylibloader_wrapper_xlib)(XkbDescPtr, unsigned int, unsigned int *); +extern int (*XkbComputeEffectiveMap_dylibloader_wrapper_xlib)(XkbDescPtr, XkbKeyTypePtr, unsigned char *); +extern int (*XkbInitCanonicalKeyTypes_dylibloader_wrapper_xlib)(XkbDescPtr, unsigned int, int); +extern XkbDescPtr (*XkbAllocKeyboard_dylibloader_wrapper_xlib)(void); +extern void (*XkbFreeKeyboard_dylibloader_wrapper_xlib)(XkbDescPtr, unsigned int, int); +extern int (*XkbAllocClientMap_dylibloader_wrapper_xlib)(XkbDescPtr, unsigned int, unsigned int); +extern int (*XkbAllocServerMap_dylibloader_wrapper_xlib)(XkbDescPtr, unsigned int, unsigned int); +extern void (*XkbFreeClientMap_dylibloader_wrapper_xlib)(XkbDescPtr, unsigned int, int); +extern void (*XkbFreeServerMap_dylibloader_wrapper_xlib)(XkbDescPtr, unsigned int, int); +extern XkbKeyTypePtr (*XkbAddKeyType_dylibloader_wrapper_xlib)(XkbDescPtr, Atom, int, int, int); +extern int (*XkbAllocIndicatorMaps_dylibloader_wrapper_xlib)(XkbDescPtr); +extern void (*XkbFreeIndicatorMaps_dylibloader_wrapper_xlib)(XkbDescPtr); +extern XkbDescPtr (*XkbGetMap_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int); +extern int (*XkbGetUpdatedMap_dylibloader_wrapper_xlib)(Display *, unsigned int, XkbDescPtr); +extern int (*XkbGetMapChanges_dylibloader_wrapper_xlib)(Display *, XkbDescPtr, XkbMapChangesPtr); +extern int (*XkbRefreshKeyboardMapping_dylibloader_wrapper_xlib)(XkbMapNotifyEvent *); +extern int (*XkbGetKeyTypes_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, XkbDescPtr); +extern int (*XkbGetKeySyms_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, XkbDescPtr); +extern int (*XkbGetKeyActions_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, XkbDescPtr); +extern int (*XkbGetKeyBehaviors_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, XkbDescPtr); +extern int (*XkbGetVirtualMods_dylibloader_wrapper_xlib)(Display *, unsigned int, XkbDescPtr); +extern int (*XkbGetKeyExplicitComponents_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, XkbDescPtr); +extern int (*XkbGetKeyModifierMap_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, XkbDescPtr); +extern int (*XkbGetKeyVirtualModMap_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, XkbDescPtr); +extern int (*XkbAllocControls_dylibloader_wrapper_xlib)(XkbDescPtr, unsigned int); +extern void (*XkbFreeControls_dylibloader_wrapper_xlib)(XkbDescPtr, unsigned int, int); +extern int (*XkbGetControls_dylibloader_wrapper_xlib)(Display *, unsigned long, XkbDescPtr); +extern int (*XkbSetControls_dylibloader_wrapper_xlib)(Display *, unsigned long, XkbDescPtr); +extern void (*XkbNoteControlsChanges_dylibloader_wrapper_xlib)(XkbControlsChangesPtr, XkbControlsNotifyEvent *, unsigned int); +extern int (*XkbAllocCompatMap_dylibloader_wrapper_xlib)(XkbDescPtr, unsigned int, unsigned int); +extern void (*XkbFreeCompatMap_dylibloader_wrapper_xlib)(XkbDescPtr, unsigned int, int); +extern int (*XkbGetCompatMap_dylibloader_wrapper_xlib)(Display *, unsigned int, XkbDescPtr); +extern int (*XkbSetCompatMap_dylibloader_wrapper_xlib)(Display *, unsigned int, XkbDescPtr, int); +extern int (*XkbAllocNames_dylibloader_wrapper_xlib)(XkbDescPtr, unsigned int, int, int); +extern int (*XkbGetNames_dylibloader_wrapper_xlib)(Display *, unsigned int, XkbDescPtr); +extern int (*XkbSetNames_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, unsigned int, XkbDescPtr); +extern int (*XkbChangeNames_dylibloader_wrapper_xlib)(Display *, XkbDescPtr, XkbNameChangesPtr); +extern void (*XkbFreeNames_dylibloader_wrapper_xlib)(XkbDescPtr, unsigned int, int); +extern int (*XkbGetState_dylibloader_wrapper_xlib)(Display *, unsigned int, XkbStatePtr); +extern int (*XkbSetMap_dylibloader_wrapper_xlib)(Display *, unsigned int, XkbDescPtr); +extern int (*XkbChangeMap_dylibloader_wrapper_xlib)(Display *, XkbDescPtr, XkbMapChangesPtr); +extern int (*XkbSetDetectableAutoRepeat_dylibloader_wrapper_xlib)(Display *, int, int *); +extern int (*XkbGetDetectableAutoRepeat_dylibloader_wrapper_xlib)(Display *, int *); +extern int (*XkbSetAutoResetControls_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int *, unsigned int *); +extern int (*XkbGetAutoResetControls_dylibloader_wrapper_xlib)(Display *, unsigned int *, unsigned int *); +extern int (*XkbSetPerClientControls_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int *); +extern int (*XkbGetPerClientControls_dylibloader_wrapper_xlib)(Display *, unsigned int *); +extern int (*XkbCopyKeyType_dylibloader_wrapper_xlib)(XkbKeyTypePtr, XkbKeyTypePtr); +extern int (*XkbCopyKeyTypes_dylibloader_wrapper_xlib)(XkbKeyTypePtr, XkbKeyTypePtr, int); +extern int (*XkbResizeKeyType_dylibloader_wrapper_xlib)(XkbDescPtr, int, int, int, int); +extern KeySym *(*XkbResizeKeySyms_dylibloader_wrapper_xlib)(XkbDescPtr, int, int); +extern XkbAction *(*XkbResizeKeyActions_dylibloader_wrapper_xlib)(XkbDescPtr, int, int); +extern int (*XkbChangeTypesOfKey_dylibloader_wrapper_xlib)(XkbDescPtr, int, int, unsigned int, int *, XkbMapChangesPtr); +extern int (*XkbChangeKeycodeRange_dylibloader_wrapper_xlib)(XkbDescPtr, int, int, XkbChangesPtr); +extern XkbComponentListPtr (*XkbListComponents_dylibloader_wrapper_xlib)(Display *, unsigned int, XkbComponentNamesPtr, int *); +extern void (*XkbFreeComponentList_dylibloader_wrapper_xlib)(XkbComponentListPtr); +extern XkbDescPtr (*XkbGetKeyboard_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int); +extern XkbDescPtr (*XkbGetKeyboardByName_dylibloader_wrapper_xlib)(Display *, unsigned int, XkbComponentNamesPtr, unsigned int, unsigned int, int); +extern int (*XkbKeyTypesForCoreSymbols_dylibloader_wrapper_xlib)(XkbDescPtr, int, KeySym *, unsigned int, int *, KeySym *); +extern int (*XkbApplyCompatMapToKey_dylibloader_wrapper_xlib)(XkbDescPtr, KeyCode, XkbChangesPtr); +extern int (*XkbUpdateMapFromCore_dylibloader_wrapper_xlib)(XkbDescPtr, KeyCode, int, int, KeySym *, XkbChangesPtr); +extern XkbDeviceLedInfoPtr (*XkbAddDeviceLedInfo_dylibloader_wrapper_xlib)(XkbDeviceInfoPtr, unsigned int, unsigned int); +extern int (*XkbResizeDeviceButtonActions_dylibloader_wrapper_xlib)(XkbDeviceInfoPtr, unsigned int); +extern XkbDeviceInfoPtr (*XkbAllocDeviceInfo_dylibloader_wrapper_xlib)(unsigned int, unsigned int, unsigned int); +extern void (*XkbFreeDeviceInfo_dylibloader_wrapper_xlib)(XkbDeviceInfoPtr, unsigned int, int); +extern void (*XkbNoteDeviceChanges_dylibloader_wrapper_xlib)(XkbDeviceChangesPtr, XkbExtensionDeviceNotifyEvent *, unsigned int); +extern XkbDeviceInfoPtr (*XkbGetDeviceInfo_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, unsigned int, unsigned int); +extern int (*XkbGetDeviceInfoChanges_dylibloader_wrapper_xlib)(Display *, XkbDeviceInfoPtr, XkbDeviceChangesPtr); +extern int (*XkbGetDeviceButtonActions_dylibloader_wrapper_xlib)(Display *, XkbDeviceInfoPtr, int, unsigned int, unsigned int); +extern int (*XkbGetDeviceLedInfo_dylibloader_wrapper_xlib)(Display *, XkbDeviceInfoPtr, unsigned int, unsigned int, unsigned int); +extern int (*XkbSetDeviceInfo_dylibloader_wrapper_xlib)(Display *, unsigned int, XkbDeviceInfoPtr); +extern int (*XkbChangeDeviceInfo_dylibloader_wrapper_xlib)(Display *, XkbDeviceInfoPtr, XkbDeviceChangesPtr); +extern int (*XkbSetDeviceLedInfo_dylibloader_wrapper_xlib)(Display *, XkbDeviceInfoPtr, unsigned int, unsigned int, unsigned int); +extern int (*XkbSetDeviceButtonActions_dylibloader_wrapper_xlib)(Display *, XkbDeviceInfoPtr, unsigned int, unsigned int); +extern char (*XkbToControl_dylibloader_wrapper_xlib)(char); +extern int (*XkbSetDebuggingFlags_dylibloader_wrapper_xlib)(Display *, unsigned int, unsigned int, char *, unsigned int, unsigned int, unsigned int *, unsigned int *); +extern int (*XkbApplyVirtualModChanges_dylibloader_wrapper_xlib)(XkbDescPtr, unsigned int, XkbChangesPtr); +extern int (*XkbUpdateActionVirtualMods_dylibloader_wrapper_xlib)(XkbDescPtr, XkbAction *, unsigned int); +extern void (*XkbUpdateKeyTypeVirtualMods_dylibloader_wrapper_xlib)(XkbDescPtr, XkbKeyTypePtr, unsigned int, XkbChangesPtr); int initialize_xlib(int verbose); #ifdef __cplusplus } diff --git a/platform/linuxbsd/x11/dynwrappers/xrandr-so_wrap.c b/platform/linuxbsd/x11/dynwrappers/xrandr-so_wrap.c index 05f98d2506..bc9de62caa 100644 --- a/platform/linuxbsd/x11/dynwrappers/xrandr-so_wrap.c +++ b/platform/linuxbsd/x11/dynwrappers/xrandr-so_wrap.c @@ -1,12 +1,8 @@ // This file is generated. Do not edit! // see https://github.com/hpvb/dynload-wrapper for details -// generated by generate-wrapper.py 0.3 on 2023-01-23 15:13:54 -// flags: generate-wrapper.py --include ./thirdparty/linuxbsd_headers/X11/extensions/Xrandr.h --sys-include "thirdparty/linuxbsd_headers/X11/extensions/Xrandr.h" --soname libXrandr.so.2 --init-name xrandr --output-header ./platform/linuxbsd/x11/dynwrappers/xrandr-so_wrap.h --output-implementation ./platform/linuxbsd/x11/dynwrappers/xrandr-so_wrap.c +// generated by generate-wrapper.py 0.6 on 2024-11-09 02:52:37 +// flags: generate-wrapper.py --include ./thirdparty/linuxbsd_headers/X11/extensions/Xrandr.h --sys-include thirdparty/linuxbsd_headers/X11/extensions/Xrandr.h --soname libXrandr.so.2 --init-name xrandr --output-header ./platform/linuxbsd/x11/dynwrappers/xrandr-so_wrap.h --output-implementation ./platform/linuxbsd/x11/dynwrappers/xrandr-so_wrap.c --ignore-other // -// NOTE: Generated from Xrandr 1.5.2. -// This has been handpatched to workaround some issues with the generator that -// will be eventually fixed. In this case, non-existent symbols inherited from -// libX11 and libXrender, but absent in libXrandr.so.2, were removed. #include <stdint.h> #define XRRQueryExtension XRRQueryExtension_dylibloader_orig_xrandr @@ -152,76 +148,76 @@ #undef XRRFreeMonitors #include <dlfcn.h> #include <stdio.h> -int (*XRRQueryExtension_dylibloader_wrapper_xrandr)( Display*, int*, int*); -int (*XRRQueryVersion_dylibloader_wrapper_xrandr)( Display*, int*, int*); -XRRScreenConfiguration* (*XRRGetScreenInfo_dylibloader_wrapper_xrandr)( Display*, Window); -void (*XRRFreeScreenConfigInfo_dylibloader_wrapper_xrandr)( XRRScreenConfiguration*); -int (*XRRSetScreenConfig_dylibloader_wrapper_xrandr)( Display*, XRRScreenConfiguration*, Drawable, int, Rotation, Time); -int (*XRRSetScreenConfigAndRate_dylibloader_wrapper_xrandr)( Display*, XRRScreenConfiguration*, Drawable, int, Rotation, short, Time); -Rotation (*XRRConfigRotations_dylibloader_wrapper_xrandr)( XRRScreenConfiguration*, Rotation*); -Time (*XRRConfigTimes_dylibloader_wrapper_xrandr)( XRRScreenConfiguration*, Time*); -XRRScreenSize* (*XRRConfigSizes_dylibloader_wrapper_xrandr)( XRRScreenConfiguration*, int*); -short* (*XRRConfigRates_dylibloader_wrapper_xrandr)( XRRScreenConfiguration*, int, int*); -SizeID (*XRRConfigCurrentConfiguration_dylibloader_wrapper_xrandr)( XRRScreenConfiguration*, Rotation*); -short (*XRRConfigCurrentRate_dylibloader_wrapper_xrandr)( XRRScreenConfiguration*); -int (*XRRRootToScreen_dylibloader_wrapper_xrandr)( Display*, Window); -void (*XRRSelectInput_dylibloader_wrapper_xrandr)( Display*, Window, int); -Rotation (*XRRRotations_dylibloader_wrapper_xrandr)( Display*, int, Rotation*); -XRRScreenSize* (*XRRSizes_dylibloader_wrapper_xrandr)( Display*, int, int*); -short* (*XRRRates_dylibloader_wrapper_xrandr)( Display*, int, int, int*); -Time (*XRRTimes_dylibloader_wrapper_xrandr)( Display*, int, Time*); -int (*XRRGetScreenSizeRange_dylibloader_wrapper_xrandr)( Display*, Window, int*, int*, int*, int*); -void (*XRRSetScreenSize_dylibloader_wrapper_xrandr)( Display*, Window, int, int, int, int); -XRRScreenResources* (*XRRGetScreenResources_dylibloader_wrapper_xrandr)( Display*, Window); -void (*XRRFreeScreenResources_dylibloader_wrapper_xrandr)( XRRScreenResources*); -XRROutputInfo* (*XRRGetOutputInfo_dylibloader_wrapper_xrandr)( Display*, XRRScreenResources*, RROutput); -void (*XRRFreeOutputInfo_dylibloader_wrapper_xrandr)( XRROutputInfo*); -Atom* (*XRRListOutputProperties_dylibloader_wrapper_xrandr)( Display*, RROutput, int*); -XRRPropertyInfo* (*XRRQueryOutputProperty_dylibloader_wrapper_xrandr)( Display*, RROutput, Atom); -void (*XRRConfigureOutputProperty_dylibloader_wrapper_xrandr)( Display*, RROutput, Atom, int, int, int, long*); -void (*XRRChangeOutputProperty_dylibloader_wrapper_xrandr)( Display*, RROutput, Atom, Atom, int, int,const unsigned char*, int); -void (*XRRDeleteOutputProperty_dylibloader_wrapper_xrandr)( Display*, RROutput, Atom); -int (*XRRGetOutputProperty_dylibloader_wrapper_xrandr)( Display*, RROutput, Atom, long, long, int, int, Atom, Atom*, int*, unsigned long*, unsigned long*, unsigned char**); -XRRModeInfo* (*XRRAllocModeInfo_dylibloader_wrapper_xrandr)(const char*, int); -RRMode (*XRRCreateMode_dylibloader_wrapper_xrandr)( Display*, Window, XRRModeInfo*); -void (*XRRDestroyMode_dylibloader_wrapper_xrandr)( Display*, RRMode); -void (*XRRAddOutputMode_dylibloader_wrapper_xrandr)( Display*, RROutput, RRMode); -void (*XRRDeleteOutputMode_dylibloader_wrapper_xrandr)( Display*, RROutput, RRMode); -void (*XRRFreeModeInfo_dylibloader_wrapper_xrandr)( XRRModeInfo*); -XRRCrtcInfo* (*XRRGetCrtcInfo_dylibloader_wrapper_xrandr)( Display*, XRRScreenResources*, RRCrtc); -void (*XRRFreeCrtcInfo_dylibloader_wrapper_xrandr)( XRRCrtcInfo*); -int (*XRRSetCrtcConfig_dylibloader_wrapper_xrandr)( Display*, XRRScreenResources*, RRCrtc, Time, int, int, RRMode, Rotation, RROutput*, int); -int (*XRRGetCrtcGammaSize_dylibloader_wrapper_xrandr)( Display*, RRCrtc); -XRRCrtcGamma* (*XRRGetCrtcGamma_dylibloader_wrapper_xrandr)( Display*, RRCrtc); -XRRCrtcGamma* (*XRRAllocGamma_dylibloader_wrapper_xrandr)( int); -void (*XRRSetCrtcGamma_dylibloader_wrapper_xrandr)( Display*, RRCrtc, XRRCrtcGamma*); -void (*XRRFreeGamma_dylibloader_wrapper_xrandr)( XRRCrtcGamma*); -XRRScreenResources* (*XRRGetScreenResourcesCurrent_dylibloader_wrapper_xrandr)( Display*, Window); -void (*XRRSetCrtcTransform_dylibloader_wrapper_xrandr)( Display*, RRCrtc, XTransform*,const char*, XFixed*, int); -int (*XRRGetCrtcTransform_dylibloader_wrapper_xrandr)( Display*, RRCrtc, XRRCrtcTransformAttributes**); -int (*XRRUpdateConfiguration_dylibloader_wrapper_xrandr)( XEvent*); -XRRPanning* (*XRRGetPanning_dylibloader_wrapper_xrandr)( Display*, XRRScreenResources*, RRCrtc); -void (*XRRFreePanning_dylibloader_wrapper_xrandr)( XRRPanning*); -int (*XRRSetPanning_dylibloader_wrapper_xrandr)( Display*, XRRScreenResources*, RRCrtc, XRRPanning*); -void (*XRRSetOutputPrimary_dylibloader_wrapper_xrandr)( Display*, Window, RROutput); -RROutput (*XRRGetOutputPrimary_dylibloader_wrapper_xrandr)( Display*, Window); -XRRProviderResources* (*XRRGetProviderResources_dylibloader_wrapper_xrandr)( Display*, Window); -void (*XRRFreeProviderResources_dylibloader_wrapper_xrandr)( XRRProviderResources*); -XRRProviderInfo* (*XRRGetProviderInfo_dylibloader_wrapper_xrandr)( Display*, XRRScreenResources*, RRProvider); -void (*XRRFreeProviderInfo_dylibloader_wrapper_xrandr)( XRRProviderInfo*); -int (*XRRSetProviderOutputSource_dylibloader_wrapper_xrandr)( Display*, XID, XID); -int (*XRRSetProviderOffloadSink_dylibloader_wrapper_xrandr)( Display*, XID, XID); -Atom* (*XRRListProviderProperties_dylibloader_wrapper_xrandr)( Display*, RRProvider, int*); -XRRPropertyInfo* (*XRRQueryProviderProperty_dylibloader_wrapper_xrandr)( Display*, RRProvider, Atom); -void (*XRRConfigureProviderProperty_dylibloader_wrapper_xrandr)( Display*, RRProvider, Atom, int, int, int, long*); -void (*XRRChangeProviderProperty_dylibloader_wrapper_xrandr)( Display*, RRProvider, Atom, Atom, int, int,const unsigned char*, int); -void (*XRRDeleteProviderProperty_dylibloader_wrapper_xrandr)( Display*, RRProvider, Atom); -int (*XRRGetProviderProperty_dylibloader_wrapper_xrandr)( Display*, RRProvider, Atom, long, long, int, int, Atom, Atom*, int*, unsigned long*, unsigned long*, unsigned char**); -XRRMonitorInfo* (*XRRAllocateMonitor_dylibloader_wrapper_xrandr)( Display*, int); -XRRMonitorInfo* (*XRRGetMonitors_dylibloader_wrapper_xrandr)( Display*, Window, int, int*); -void (*XRRSetMonitor_dylibloader_wrapper_xrandr)( Display*, Window, XRRMonitorInfo*); -void (*XRRDeleteMonitor_dylibloader_wrapper_xrandr)( Display*, Window, Atom); -void (*XRRFreeMonitors_dylibloader_wrapper_xrandr)( XRRMonitorInfo*); +int (*XRRQueryExtension_dylibloader_wrapper_xrandr)(Display *, int *, int *); +int (*XRRQueryVersion_dylibloader_wrapper_xrandr)(Display *, int *, int *); +XRRScreenConfiguration *(*XRRGetScreenInfo_dylibloader_wrapper_xrandr)(Display *, Window); +void (*XRRFreeScreenConfigInfo_dylibloader_wrapper_xrandr)(XRRScreenConfiguration *); +int (*XRRSetScreenConfig_dylibloader_wrapper_xrandr)(Display *, XRRScreenConfiguration *, Drawable, int, Rotation, Time); +int (*XRRSetScreenConfigAndRate_dylibloader_wrapper_xrandr)(Display *, XRRScreenConfiguration *, Drawable, int, Rotation, short, Time); +Rotation (*XRRConfigRotations_dylibloader_wrapper_xrandr)(XRRScreenConfiguration *, Rotation *); +Time (*XRRConfigTimes_dylibloader_wrapper_xrandr)(XRRScreenConfiguration *, Time *); +XRRScreenSize *(*XRRConfigSizes_dylibloader_wrapper_xrandr)(XRRScreenConfiguration *, int *); +short *(*XRRConfigRates_dylibloader_wrapper_xrandr)(XRRScreenConfiguration *, int, int *); +SizeID (*XRRConfigCurrentConfiguration_dylibloader_wrapper_xrandr)(XRRScreenConfiguration *, Rotation *); +short (*XRRConfigCurrentRate_dylibloader_wrapper_xrandr)(XRRScreenConfiguration *); +int (*XRRRootToScreen_dylibloader_wrapper_xrandr)(Display *, Window); +void (*XRRSelectInput_dylibloader_wrapper_xrandr)(Display *, Window, int); +Rotation (*XRRRotations_dylibloader_wrapper_xrandr)(Display *, int, Rotation *); +XRRScreenSize *(*XRRSizes_dylibloader_wrapper_xrandr)(Display *, int, int *); +short *(*XRRRates_dylibloader_wrapper_xrandr)(Display *, int, int, int *); +Time (*XRRTimes_dylibloader_wrapper_xrandr)(Display *, int, Time *); +int (*XRRGetScreenSizeRange_dylibloader_wrapper_xrandr)(Display *, Window, int *, int *, int *, int *); +void (*XRRSetScreenSize_dylibloader_wrapper_xrandr)(Display *, Window, int, int, int, int); +XRRScreenResources *(*XRRGetScreenResources_dylibloader_wrapper_xrandr)(Display *, Window); +void (*XRRFreeScreenResources_dylibloader_wrapper_xrandr)(XRRScreenResources *); +XRROutputInfo *(*XRRGetOutputInfo_dylibloader_wrapper_xrandr)(Display *, XRRScreenResources *, RROutput); +void (*XRRFreeOutputInfo_dylibloader_wrapper_xrandr)(XRROutputInfo *); +Atom *(*XRRListOutputProperties_dylibloader_wrapper_xrandr)(Display *, RROutput, int *); +XRRPropertyInfo *(*XRRQueryOutputProperty_dylibloader_wrapper_xrandr)(Display *, RROutput, Atom); +void (*XRRConfigureOutputProperty_dylibloader_wrapper_xrandr)(Display *, RROutput, Atom, int, int, int, long *); +void (*XRRChangeOutputProperty_dylibloader_wrapper_xrandr)(Display *, RROutput, Atom, Atom, int, int, const unsigned char *, int); +void (*XRRDeleteOutputProperty_dylibloader_wrapper_xrandr)(Display *, RROutput, Atom); +int (*XRRGetOutputProperty_dylibloader_wrapper_xrandr)(Display *, RROutput, Atom, long, long, int, int, Atom, Atom *, int *, unsigned long *, unsigned long *, unsigned char **); +XRRModeInfo *(*XRRAllocModeInfo_dylibloader_wrapper_xrandr)(const char *, int); +RRMode (*XRRCreateMode_dylibloader_wrapper_xrandr)(Display *, Window, XRRModeInfo *); +void (*XRRDestroyMode_dylibloader_wrapper_xrandr)(Display *, RRMode); +void (*XRRAddOutputMode_dylibloader_wrapper_xrandr)(Display *, RROutput, RRMode); +void (*XRRDeleteOutputMode_dylibloader_wrapper_xrandr)(Display *, RROutput, RRMode); +void (*XRRFreeModeInfo_dylibloader_wrapper_xrandr)(XRRModeInfo *); +XRRCrtcInfo *(*XRRGetCrtcInfo_dylibloader_wrapper_xrandr)(Display *, XRRScreenResources *, RRCrtc); +void (*XRRFreeCrtcInfo_dylibloader_wrapper_xrandr)(XRRCrtcInfo *); +int (*XRRSetCrtcConfig_dylibloader_wrapper_xrandr)(Display *, XRRScreenResources *, RRCrtc, Time, int, int, RRMode, Rotation, RROutput *, int); +int (*XRRGetCrtcGammaSize_dylibloader_wrapper_xrandr)(Display *, RRCrtc); +XRRCrtcGamma *(*XRRGetCrtcGamma_dylibloader_wrapper_xrandr)(Display *, RRCrtc); +XRRCrtcGamma *(*XRRAllocGamma_dylibloader_wrapper_xrandr)(int); +void (*XRRSetCrtcGamma_dylibloader_wrapper_xrandr)(Display *, RRCrtc, XRRCrtcGamma *); +void (*XRRFreeGamma_dylibloader_wrapper_xrandr)(XRRCrtcGamma *); +XRRScreenResources *(*XRRGetScreenResourcesCurrent_dylibloader_wrapper_xrandr)(Display *, Window); +void (*XRRSetCrtcTransform_dylibloader_wrapper_xrandr)(Display *, RRCrtc, XTransform *, const char *, XFixed *, int); +int (*XRRGetCrtcTransform_dylibloader_wrapper_xrandr)(Display *, RRCrtc, XRRCrtcTransformAttributes **); +int (*XRRUpdateConfiguration_dylibloader_wrapper_xrandr)(XEvent *); +XRRPanning *(*XRRGetPanning_dylibloader_wrapper_xrandr)(Display *, XRRScreenResources *, RRCrtc); +void (*XRRFreePanning_dylibloader_wrapper_xrandr)(XRRPanning *); +int (*XRRSetPanning_dylibloader_wrapper_xrandr)(Display *, XRRScreenResources *, RRCrtc, XRRPanning *); +void (*XRRSetOutputPrimary_dylibloader_wrapper_xrandr)(Display *, Window, RROutput); +RROutput (*XRRGetOutputPrimary_dylibloader_wrapper_xrandr)(Display *, Window); +XRRProviderResources *(*XRRGetProviderResources_dylibloader_wrapper_xrandr)(Display *, Window); +void (*XRRFreeProviderResources_dylibloader_wrapper_xrandr)(XRRProviderResources *); +XRRProviderInfo *(*XRRGetProviderInfo_dylibloader_wrapper_xrandr)(Display *, XRRScreenResources *, RRProvider); +void (*XRRFreeProviderInfo_dylibloader_wrapper_xrandr)(XRRProviderInfo *); +int (*XRRSetProviderOutputSource_dylibloader_wrapper_xrandr)(Display *, XID, XID); +int (*XRRSetProviderOffloadSink_dylibloader_wrapper_xrandr)(Display *, XID, XID); +Atom *(*XRRListProviderProperties_dylibloader_wrapper_xrandr)(Display *, RRProvider, int *); +XRRPropertyInfo *(*XRRQueryProviderProperty_dylibloader_wrapper_xrandr)(Display *, RRProvider, Atom); +void (*XRRConfigureProviderProperty_dylibloader_wrapper_xrandr)(Display *, RRProvider, Atom, int, int, int, long *); +void (*XRRChangeProviderProperty_dylibloader_wrapper_xrandr)(Display *, RRProvider, Atom, Atom, int, int, const unsigned char *, int); +void (*XRRDeleteProviderProperty_dylibloader_wrapper_xrandr)(Display *, RRProvider, Atom); +int (*XRRGetProviderProperty_dylibloader_wrapper_xrandr)(Display *, RRProvider, Atom, long, long, int, int, Atom, Atom *, int *, unsigned long *, unsigned long *, unsigned char **); +XRRMonitorInfo *(*XRRAllocateMonitor_dylibloader_wrapper_xrandr)(Display *, int); +XRRMonitorInfo *(*XRRGetMonitors_dylibloader_wrapper_xrandr)(Display *, Window, int, int *); +void (*XRRSetMonitor_dylibloader_wrapper_xrandr)(Display *, Window, XRRMonitorInfo *); +void (*XRRDeleteMonitor_dylibloader_wrapper_xrandr)(Display *, Window, Atom); +void (*XRRFreeMonitors_dylibloader_wrapper_xrandr)(XRRMonitorInfo *); int initialize_xrandr(int verbose) { void *handle; char *error; diff --git a/platform/linuxbsd/x11/dynwrappers/xrandr-so_wrap.h b/platform/linuxbsd/x11/dynwrappers/xrandr-so_wrap.h index db5d44203d..c055705f69 100644 --- a/platform/linuxbsd/x11/dynwrappers/xrandr-so_wrap.h +++ b/platform/linuxbsd/x11/dynwrappers/xrandr-so_wrap.h @@ -2,13 +2,9 @@ #define DYLIBLOAD_WRAPPER_XRANDR // This file is generated. Do not edit! // see https://github.com/hpvb/dynload-wrapper for details -// generated by generate-wrapper.py 0.3 on 2023-01-23 15:13:54 -// flags: generate-wrapper.py --include ./thirdparty/linuxbsd_headers/X11/extensions/Xrandr.h --sys-include "thirdparty/linuxbsd_headers/X11/extensions/Xrandr.h" --soname libXrandr.so.2 --init-name xrandr --output-header ./platform/linuxbsd/x11/dynwrappers/xrandr-so_wrap.h --output-implementation ./platform/linuxbsd/x11/dynwrappers/xrandr-so_wrap.c +// generated by generate-wrapper.py 0.6 on 2024-11-09 02:52:37 +// flags: generate-wrapper.py --include ./thirdparty/linuxbsd_headers/X11/extensions/Xrandr.h --sys-include thirdparty/linuxbsd_headers/X11/extensions/Xrandr.h --soname libXrandr.so.2 --init-name xrandr --output-header ./platform/linuxbsd/x11/dynwrappers/xrandr-so_wrap.h --output-implementation ./platform/linuxbsd/x11/dynwrappers/xrandr-so_wrap.c --ignore-other // -// NOTE: Generated from Xrandr 1.5.2. -// This has been handpatched to workaround some issues with the generator that -// will be eventually fixed. In this case, non-existent symbols inherited from -// libX11 and libXrender, but absent in libXrandr.so.2, were removed. #include <stdint.h> #define XRRQueryExtension XRRQueryExtension_dylibloader_orig_xrandr @@ -225,76 +221,76 @@ extern "C" { #define XRRSetMonitor XRRSetMonitor_dylibloader_wrapper_xrandr #define XRRDeleteMonitor XRRDeleteMonitor_dylibloader_wrapper_xrandr #define XRRFreeMonitors XRRFreeMonitors_dylibloader_wrapper_xrandr -extern int (*XRRQueryExtension_dylibloader_wrapper_xrandr)( Display*, int*, int*); -extern int (*XRRQueryVersion_dylibloader_wrapper_xrandr)( Display*, int*, int*); -extern XRRScreenConfiguration* (*XRRGetScreenInfo_dylibloader_wrapper_xrandr)( Display*, Window); -extern void (*XRRFreeScreenConfigInfo_dylibloader_wrapper_xrandr)( XRRScreenConfiguration*); -extern int (*XRRSetScreenConfig_dylibloader_wrapper_xrandr)( Display*, XRRScreenConfiguration*, Drawable, int, Rotation, Time); -extern int (*XRRSetScreenConfigAndRate_dylibloader_wrapper_xrandr)( Display*, XRRScreenConfiguration*, Drawable, int, Rotation, short, Time); -extern Rotation (*XRRConfigRotations_dylibloader_wrapper_xrandr)( XRRScreenConfiguration*, Rotation*); -extern Time (*XRRConfigTimes_dylibloader_wrapper_xrandr)( XRRScreenConfiguration*, Time*); -extern XRRScreenSize* (*XRRConfigSizes_dylibloader_wrapper_xrandr)( XRRScreenConfiguration*, int*); -extern short* (*XRRConfigRates_dylibloader_wrapper_xrandr)( XRRScreenConfiguration*, int, int*); -extern SizeID (*XRRConfigCurrentConfiguration_dylibloader_wrapper_xrandr)( XRRScreenConfiguration*, Rotation*); -extern short (*XRRConfigCurrentRate_dylibloader_wrapper_xrandr)( XRRScreenConfiguration*); -extern int (*XRRRootToScreen_dylibloader_wrapper_xrandr)( Display*, Window); -extern void (*XRRSelectInput_dylibloader_wrapper_xrandr)( Display*, Window, int); -extern Rotation (*XRRRotations_dylibloader_wrapper_xrandr)( Display*, int, Rotation*); -extern XRRScreenSize* (*XRRSizes_dylibloader_wrapper_xrandr)( Display*, int, int*); -extern short* (*XRRRates_dylibloader_wrapper_xrandr)( Display*, int, int, int*); -extern Time (*XRRTimes_dylibloader_wrapper_xrandr)( Display*, int, Time*); -extern int (*XRRGetScreenSizeRange_dylibloader_wrapper_xrandr)( Display*, Window, int*, int*, int*, int*); -extern void (*XRRSetScreenSize_dylibloader_wrapper_xrandr)( Display*, Window, int, int, int, int); -extern XRRScreenResources* (*XRRGetScreenResources_dylibloader_wrapper_xrandr)( Display*, Window); -extern void (*XRRFreeScreenResources_dylibloader_wrapper_xrandr)( XRRScreenResources*); -extern XRROutputInfo* (*XRRGetOutputInfo_dylibloader_wrapper_xrandr)( Display*, XRRScreenResources*, RROutput); -extern void (*XRRFreeOutputInfo_dylibloader_wrapper_xrandr)( XRROutputInfo*); -extern Atom* (*XRRListOutputProperties_dylibloader_wrapper_xrandr)( Display*, RROutput, int*); -extern XRRPropertyInfo* (*XRRQueryOutputProperty_dylibloader_wrapper_xrandr)( Display*, RROutput, Atom); -extern void (*XRRConfigureOutputProperty_dylibloader_wrapper_xrandr)( Display*, RROutput, Atom, int, int, int, long*); -extern void (*XRRChangeOutputProperty_dylibloader_wrapper_xrandr)( Display*, RROutput, Atom, Atom, int, int,const unsigned char*, int); -extern void (*XRRDeleteOutputProperty_dylibloader_wrapper_xrandr)( Display*, RROutput, Atom); -extern int (*XRRGetOutputProperty_dylibloader_wrapper_xrandr)( Display*, RROutput, Atom, long, long, int, int, Atom, Atom*, int*, unsigned long*, unsigned long*, unsigned char**); -extern XRRModeInfo* (*XRRAllocModeInfo_dylibloader_wrapper_xrandr)(const char*, int); -extern RRMode (*XRRCreateMode_dylibloader_wrapper_xrandr)( Display*, Window, XRRModeInfo*); -extern void (*XRRDestroyMode_dylibloader_wrapper_xrandr)( Display*, RRMode); -extern void (*XRRAddOutputMode_dylibloader_wrapper_xrandr)( Display*, RROutput, RRMode); -extern void (*XRRDeleteOutputMode_dylibloader_wrapper_xrandr)( Display*, RROutput, RRMode); -extern void (*XRRFreeModeInfo_dylibloader_wrapper_xrandr)( XRRModeInfo*); -extern XRRCrtcInfo* (*XRRGetCrtcInfo_dylibloader_wrapper_xrandr)( Display*, XRRScreenResources*, RRCrtc); -extern void (*XRRFreeCrtcInfo_dylibloader_wrapper_xrandr)( XRRCrtcInfo*); -extern int (*XRRSetCrtcConfig_dylibloader_wrapper_xrandr)( Display*, XRRScreenResources*, RRCrtc, Time, int, int, RRMode, Rotation, RROutput*, int); -extern int (*XRRGetCrtcGammaSize_dylibloader_wrapper_xrandr)( Display*, RRCrtc); -extern XRRCrtcGamma* (*XRRGetCrtcGamma_dylibloader_wrapper_xrandr)( Display*, RRCrtc); -extern XRRCrtcGamma* (*XRRAllocGamma_dylibloader_wrapper_xrandr)( int); -extern void (*XRRSetCrtcGamma_dylibloader_wrapper_xrandr)( Display*, RRCrtc, XRRCrtcGamma*); -extern void (*XRRFreeGamma_dylibloader_wrapper_xrandr)( XRRCrtcGamma*); -extern XRRScreenResources* (*XRRGetScreenResourcesCurrent_dylibloader_wrapper_xrandr)( Display*, Window); -extern void (*XRRSetCrtcTransform_dylibloader_wrapper_xrandr)( Display*, RRCrtc, XTransform*,const char*, XFixed*, int); -extern int (*XRRGetCrtcTransform_dylibloader_wrapper_xrandr)( Display*, RRCrtc, XRRCrtcTransformAttributes**); -extern int (*XRRUpdateConfiguration_dylibloader_wrapper_xrandr)( XEvent*); -extern XRRPanning* (*XRRGetPanning_dylibloader_wrapper_xrandr)( Display*, XRRScreenResources*, RRCrtc); -extern void (*XRRFreePanning_dylibloader_wrapper_xrandr)( XRRPanning*); -extern int (*XRRSetPanning_dylibloader_wrapper_xrandr)( Display*, XRRScreenResources*, RRCrtc, XRRPanning*); -extern void (*XRRSetOutputPrimary_dylibloader_wrapper_xrandr)( Display*, Window, RROutput); -extern RROutput (*XRRGetOutputPrimary_dylibloader_wrapper_xrandr)( Display*, Window); -extern XRRProviderResources* (*XRRGetProviderResources_dylibloader_wrapper_xrandr)( Display*, Window); -extern void (*XRRFreeProviderResources_dylibloader_wrapper_xrandr)( XRRProviderResources*); -extern XRRProviderInfo* (*XRRGetProviderInfo_dylibloader_wrapper_xrandr)( Display*, XRRScreenResources*, RRProvider); -extern void (*XRRFreeProviderInfo_dylibloader_wrapper_xrandr)( XRRProviderInfo*); -extern int (*XRRSetProviderOutputSource_dylibloader_wrapper_xrandr)( Display*, XID, XID); -extern int (*XRRSetProviderOffloadSink_dylibloader_wrapper_xrandr)( Display*, XID, XID); -extern Atom* (*XRRListProviderProperties_dylibloader_wrapper_xrandr)( Display*, RRProvider, int*); -extern XRRPropertyInfo* (*XRRQueryProviderProperty_dylibloader_wrapper_xrandr)( Display*, RRProvider, Atom); -extern void (*XRRConfigureProviderProperty_dylibloader_wrapper_xrandr)( Display*, RRProvider, Atom, int, int, int, long*); -extern void (*XRRChangeProviderProperty_dylibloader_wrapper_xrandr)( Display*, RRProvider, Atom, Atom, int, int,const unsigned char*, int); -extern void (*XRRDeleteProviderProperty_dylibloader_wrapper_xrandr)( Display*, RRProvider, Atom); -extern int (*XRRGetProviderProperty_dylibloader_wrapper_xrandr)( Display*, RRProvider, Atom, long, long, int, int, Atom, Atom*, int*, unsigned long*, unsigned long*, unsigned char**); -extern XRRMonitorInfo* (*XRRAllocateMonitor_dylibloader_wrapper_xrandr)( Display*, int); -extern XRRMonitorInfo* (*XRRGetMonitors_dylibloader_wrapper_xrandr)( Display*, Window, int, int*); -extern void (*XRRSetMonitor_dylibloader_wrapper_xrandr)( Display*, Window, XRRMonitorInfo*); -extern void (*XRRDeleteMonitor_dylibloader_wrapper_xrandr)( Display*, Window, Atom); -extern void (*XRRFreeMonitors_dylibloader_wrapper_xrandr)( XRRMonitorInfo*); +extern int (*XRRQueryExtension_dylibloader_wrapper_xrandr)(Display *, int *, int *); +extern int (*XRRQueryVersion_dylibloader_wrapper_xrandr)(Display *, int *, int *); +extern XRRScreenConfiguration *(*XRRGetScreenInfo_dylibloader_wrapper_xrandr)(Display *, Window); +extern void (*XRRFreeScreenConfigInfo_dylibloader_wrapper_xrandr)(XRRScreenConfiguration *); +extern int (*XRRSetScreenConfig_dylibloader_wrapper_xrandr)(Display *, XRRScreenConfiguration *, Drawable, int, Rotation, Time); +extern int (*XRRSetScreenConfigAndRate_dylibloader_wrapper_xrandr)(Display *, XRRScreenConfiguration *, Drawable, int, Rotation, short, Time); +extern Rotation (*XRRConfigRotations_dylibloader_wrapper_xrandr)(XRRScreenConfiguration *, Rotation *); +extern Time (*XRRConfigTimes_dylibloader_wrapper_xrandr)(XRRScreenConfiguration *, Time *); +extern XRRScreenSize *(*XRRConfigSizes_dylibloader_wrapper_xrandr)(XRRScreenConfiguration *, int *); +extern short *(*XRRConfigRates_dylibloader_wrapper_xrandr)(XRRScreenConfiguration *, int, int *); +extern SizeID (*XRRConfigCurrentConfiguration_dylibloader_wrapper_xrandr)(XRRScreenConfiguration *, Rotation *); +extern short (*XRRConfigCurrentRate_dylibloader_wrapper_xrandr)(XRRScreenConfiguration *); +extern int (*XRRRootToScreen_dylibloader_wrapper_xrandr)(Display *, Window); +extern void (*XRRSelectInput_dylibloader_wrapper_xrandr)(Display *, Window, int); +extern Rotation (*XRRRotations_dylibloader_wrapper_xrandr)(Display *, int, Rotation *); +extern XRRScreenSize *(*XRRSizes_dylibloader_wrapper_xrandr)(Display *, int, int *); +extern short *(*XRRRates_dylibloader_wrapper_xrandr)(Display *, int, int, int *); +extern Time (*XRRTimes_dylibloader_wrapper_xrandr)(Display *, int, Time *); +extern int (*XRRGetScreenSizeRange_dylibloader_wrapper_xrandr)(Display *, Window, int *, int *, int *, int *); +extern void (*XRRSetScreenSize_dylibloader_wrapper_xrandr)(Display *, Window, int, int, int, int); +extern XRRScreenResources *(*XRRGetScreenResources_dylibloader_wrapper_xrandr)(Display *, Window); +extern void (*XRRFreeScreenResources_dylibloader_wrapper_xrandr)(XRRScreenResources *); +extern XRROutputInfo *(*XRRGetOutputInfo_dylibloader_wrapper_xrandr)(Display *, XRRScreenResources *, RROutput); +extern void (*XRRFreeOutputInfo_dylibloader_wrapper_xrandr)(XRROutputInfo *); +extern Atom *(*XRRListOutputProperties_dylibloader_wrapper_xrandr)(Display *, RROutput, int *); +extern XRRPropertyInfo *(*XRRQueryOutputProperty_dylibloader_wrapper_xrandr)(Display *, RROutput, Atom); +extern void (*XRRConfigureOutputProperty_dylibloader_wrapper_xrandr)(Display *, RROutput, Atom, int, int, int, long *); +extern void (*XRRChangeOutputProperty_dylibloader_wrapper_xrandr)(Display *, RROutput, Atom, Atom, int, int, const unsigned char *, int); +extern void (*XRRDeleteOutputProperty_dylibloader_wrapper_xrandr)(Display *, RROutput, Atom); +extern int (*XRRGetOutputProperty_dylibloader_wrapper_xrandr)(Display *, RROutput, Atom, long, long, int, int, Atom, Atom *, int *, unsigned long *, unsigned long *, unsigned char **); +extern XRRModeInfo *(*XRRAllocModeInfo_dylibloader_wrapper_xrandr)(const char *, int); +extern RRMode (*XRRCreateMode_dylibloader_wrapper_xrandr)(Display *, Window, XRRModeInfo *); +extern void (*XRRDestroyMode_dylibloader_wrapper_xrandr)(Display *, RRMode); +extern void (*XRRAddOutputMode_dylibloader_wrapper_xrandr)(Display *, RROutput, RRMode); +extern void (*XRRDeleteOutputMode_dylibloader_wrapper_xrandr)(Display *, RROutput, RRMode); +extern void (*XRRFreeModeInfo_dylibloader_wrapper_xrandr)(XRRModeInfo *); +extern XRRCrtcInfo *(*XRRGetCrtcInfo_dylibloader_wrapper_xrandr)(Display *, XRRScreenResources *, RRCrtc); +extern void (*XRRFreeCrtcInfo_dylibloader_wrapper_xrandr)(XRRCrtcInfo *); +extern int (*XRRSetCrtcConfig_dylibloader_wrapper_xrandr)(Display *, XRRScreenResources *, RRCrtc, Time, int, int, RRMode, Rotation, RROutput *, int); +extern int (*XRRGetCrtcGammaSize_dylibloader_wrapper_xrandr)(Display *, RRCrtc); +extern XRRCrtcGamma *(*XRRGetCrtcGamma_dylibloader_wrapper_xrandr)(Display *, RRCrtc); +extern XRRCrtcGamma *(*XRRAllocGamma_dylibloader_wrapper_xrandr)(int); +extern void (*XRRSetCrtcGamma_dylibloader_wrapper_xrandr)(Display *, RRCrtc, XRRCrtcGamma *); +extern void (*XRRFreeGamma_dylibloader_wrapper_xrandr)(XRRCrtcGamma *); +extern XRRScreenResources *(*XRRGetScreenResourcesCurrent_dylibloader_wrapper_xrandr)(Display *, Window); +extern void (*XRRSetCrtcTransform_dylibloader_wrapper_xrandr)(Display *, RRCrtc, XTransform *, const char *, XFixed *, int); +extern int (*XRRGetCrtcTransform_dylibloader_wrapper_xrandr)(Display *, RRCrtc, XRRCrtcTransformAttributes **); +extern int (*XRRUpdateConfiguration_dylibloader_wrapper_xrandr)(XEvent *); +extern XRRPanning *(*XRRGetPanning_dylibloader_wrapper_xrandr)(Display *, XRRScreenResources *, RRCrtc); +extern void (*XRRFreePanning_dylibloader_wrapper_xrandr)(XRRPanning *); +extern int (*XRRSetPanning_dylibloader_wrapper_xrandr)(Display *, XRRScreenResources *, RRCrtc, XRRPanning *); +extern void (*XRRSetOutputPrimary_dylibloader_wrapper_xrandr)(Display *, Window, RROutput); +extern RROutput (*XRRGetOutputPrimary_dylibloader_wrapper_xrandr)(Display *, Window); +extern XRRProviderResources *(*XRRGetProviderResources_dylibloader_wrapper_xrandr)(Display *, Window); +extern void (*XRRFreeProviderResources_dylibloader_wrapper_xrandr)(XRRProviderResources *); +extern XRRProviderInfo *(*XRRGetProviderInfo_dylibloader_wrapper_xrandr)(Display *, XRRScreenResources *, RRProvider); +extern void (*XRRFreeProviderInfo_dylibloader_wrapper_xrandr)(XRRProviderInfo *); +extern int (*XRRSetProviderOutputSource_dylibloader_wrapper_xrandr)(Display *, XID, XID); +extern int (*XRRSetProviderOffloadSink_dylibloader_wrapper_xrandr)(Display *, XID, XID); +extern Atom *(*XRRListProviderProperties_dylibloader_wrapper_xrandr)(Display *, RRProvider, int *); +extern XRRPropertyInfo *(*XRRQueryProviderProperty_dylibloader_wrapper_xrandr)(Display *, RRProvider, Atom); +extern void (*XRRConfigureProviderProperty_dylibloader_wrapper_xrandr)(Display *, RRProvider, Atom, int, int, int, long *); +extern void (*XRRChangeProviderProperty_dylibloader_wrapper_xrandr)(Display *, RRProvider, Atom, Atom, int, int, const unsigned char *, int); +extern void (*XRRDeleteProviderProperty_dylibloader_wrapper_xrandr)(Display *, RRProvider, Atom); +extern int (*XRRGetProviderProperty_dylibloader_wrapper_xrandr)(Display *, RRProvider, Atom, long, long, int, int, Atom, Atom *, int *, unsigned long *, unsigned long *, unsigned char **); +extern XRRMonitorInfo *(*XRRAllocateMonitor_dylibloader_wrapper_xrandr)(Display *, int); +extern XRRMonitorInfo *(*XRRGetMonitors_dylibloader_wrapper_xrandr)(Display *, Window, int, int *); +extern void (*XRRSetMonitor_dylibloader_wrapper_xrandr)(Display *, Window, XRRMonitorInfo *); +extern void (*XRRDeleteMonitor_dylibloader_wrapper_xrandr)(Display *, Window, Atom); +extern void (*XRRFreeMonitors_dylibloader_wrapper_xrandr)(XRRMonitorInfo *); int initialize_xrandr(int verbose); #ifdef __cplusplus } diff --git a/platform/linuxbsd/x11/dynwrappers/xrender-so_wrap.c b/platform/linuxbsd/x11/dynwrappers/xrender-so_wrap.c index 7421f94601..e1cd987eca 100644 --- a/platform/linuxbsd/x11/dynwrappers/xrender-so_wrap.c +++ b/platform/linuxbsd/x11/dynwrappers/xrender-so_wrap.c @@ -1,12 +1,8 @@ // This file is generated. Do not edit! // see https://github.com/hpvb/dynload-wrapper for details -// generated by generate-wrapper.py 0.3 on 2023-01-23 15:14:14 -// flags: generate-wrapper.py --include ./thirdparty/linuxbsd_headers/X11/extensions/Xrender.h --sys-include "thirdparty/linuxbsd_headers/X11/extensions/Xrender.h" --soname libXrender.so.1 --init-name xrender --output-header ./platform/linuxbsd/x11/dynwrappers/xrender-so_wrap.h --output-implementation ./platform/linuxbsd/x11/dynwrappers/xrender-so_wrap.c~ +// generated by generate-wrapper.py 0.6 on 2024-11-09 02:52:37 +// flags: generate-wrapper.py --include ./thirdparty/linuxbsd_headers/X11/extensions/Xrender.h --sys-include thirdparty/linuxbsd_headers/X11/extensions/Xrender.h --soname libXrender.so.1 --init-name xrender --output-header ./platform/linuxbsd/x11/dynwrappers/xrender-so_wrap.h --output-implementation ./platform/linuxbsd/x11/dynwrappers/xrender-so_wrap.c --ignore-other // -// NOTE: Generated from Xrender 0.9.10. -// This has been handpatched to workaround some issues with the generator that -// will be eventually fixed. In this case, non-existent symbols inherited from -// libX11, but absent in libXrender.so.1, were removed. #include <stdint.h> #define XRenderQueryExtension XRenderQueryExtension_dylibloader_orig_xrender @@ -100,50 +96,50 @@ #undef XRenderCreateConicalGradient #include <dlfcn.h> #include <stdio.h> -int (*XRenderQueryExtension_dylibloader_wrapper_xrender)( Display*, int*, int*); -int (*XRenderQueryVersion_dylibloader_wrapper_xrender)( Display*, int*, int*); -int (*XRenderQueryFormats_dylibloader_wrapper_xrender)( Display*); -int (*XRenderQuerySubpixelOrder_dylibloader_wrapper_xrender)( Display*, int); -int (*XRenderSetSubpixelOrder_dylibloader_wrapper_xrender)( Display*, int, int); -XRenderPictFormat* (*XRenderFindVisualFormat_dylibloader_wrapper_xrender)( Display*,const Visual*); -XRenderPictFormat* (*XRenderFindFormat_dylibloader_wrapper_xrender)( Display*, unsigned long,const XRenderPictFormat*, int); -XRenderPictFormat* (*XRenderFindStandardFormat_dylibloader_wrapper_xrender)( Display*, int); -XIndexValue* (*XRenderQueryPictIndexValues_dylibloader_wrapper_xrender)( Display*,const XRenderPictFormat*, int*); -Picture (*XRenderCreatePicture_dylibloader_wrapper_xrender)( Display*, Drawable,const XRenderPictFormat*, unsigned long,const XRenderPictureAttributes*); -void (*XRenderChangePicture_dylibloader_wrapper_xrender)( Display*, Picture, unsigned long,const XRenderPictureAttributes*); -void (*XRenderSetPictureClipRectangles_dylibloader_wrapper_xrender)( Display*, Picture, int, int,const XRectangle*, int); -void (*XRenderSetPictureClipRegion_dylibloader_wrapper_xrender)( Display*, Picture, Region); -void (*XRenderSetPictureTransform_dylibloader_wrapper_xrender)( Display*, Picture, XTransform*); -void (*XRenderFreePicture_dylibloader_wrapper_xrender)( Display*, Picture); -void (*XRenderComposite_dylibloader_wrapper_xrender)( Display*, int, Picture, Picture, Picture, int, int, int, int, int, int, unsigned int, unsigned int); -GlyphSet (*XRenderCreateGlyphSet_dylibloader_wrapper_xrender)( Display*,const XRenderPictFormat*); -GlyphSet (*XRenderReferenceGlyphSet_dylibloader_wrapper_xrender)( Display*, GlyphSet); -void (*XRenderFreeGlyphSet_dylibloader_wrapper_xrender)( Display*, GlyphSet); -void (*XRenderAddGlyphs_dylibloader_wrapper_xrender)( Display*, GlyphSet,const Glyph*,const XGlyphInfo*, int,const char*, int); -void (*XRenderFreeGlyphs_dylibloader_wrapper_xrender)( Display*, GlyphSet,const Glyph*, int); -void (*XRenderCompositeString8_dylibloader_wrapper_xrender)( Display*, int, Picture, Picture,const XRenderPictFormat*, GlyphSet, int, int, int, int,const char*, int); -void (*XRenderCompositeString16_dylibloader_wrapper_xrender)( Display*, int, Picture, Picture,const XRenderPictFormat*, GlyphSet, int, int, int, int,const unsigned short*, int); -void (*XRenderCompositeString32_dylibloader_wrapper_xrender)( Display*, int, Picture, Picture,const XRenderPictFormat*, GlyphSet, int, int, int, int,const unsigned int*, int); -void (*XRenderCompositeText8_dylibloader_wrapper_xrender)( Display*, int, Picture, Picture,const XRenderPictFormat*, int, int, int, int,const XGlyphElt8*, int); -void (*XRenderCompositeText16_dylibloader_wrapper_xrender)( Display*, int, Picture, Picture,const XRenderPictFormat*, int, int, int, int,const XGlyphElt16*, int); -void (*XRenderCompositeText32_dylibloader_wrapper_xrender)( Display*, int, Picture, Picture,const XRenderPictFormat*, int, int, int, int,const XGlyphElt32*, int); -void (*XRenderFillRectangle_dylibloader_wrapper_xrender)( Display*, int, Picture,const XRenderColor*, int, int, unsigned int, unsigned int); -void (*XRenderFillRectangles_dylibloader_wrapper_xrender)( Display*, int, Picture,const XRenderColor*,const XRectangle*, int); -void (*XRenderCompositeTrapezoids_dylibloader_wrapper_xrender)( Display*, int, Picture, Picture,const XRenderPictFormat*, int, int,const XTrapezoid*, int); -void (*XRenderCompositeTriangles_dylibloader_wrapper_xrender)( Display*, int, Picture, Picture,const XRenderPictFormat*, int, int,const XTriangle*, int); -void (*XRenderCompositeTriStrip_dylibloader_wrapper_xrender)( Display*, int, Picture, Picture,const XRenderPictFormat*, int, int,const XPointFixed*, int); -void (*XRenderCompositeTriFan_dylibloader_wrapper_xrender)( Display*, int, Picture, Picture,const XRenderPictFormat*, int, int,const XPointFixed*, int); -void (*XRenderCompositeDoublePoly_dylibloader_wrapper_xrender)( Display*, int, Picture, Picture,const XRenderPictFormat*, int, int, int, int,const XPointDouble*, int, int); -int (*XRenderParseColor_dylibloader_wrapper_xrender)( Display*, char*, XRenderColor*); -Cursor (*XRenderCreateCursor_dylibloader_wrapper_xrender)( Display*, Picture, unsigned int, unsigned int); -XFilters* (*XRenderQueryFilters_dylibloader_wrapper_xrender)( Display*, Drawable); -void (*XRenderSetPictureFilter_dylibloader_wrapper_xrender)( Display*, Picture,const char*, XFixed*, int); -Cursor (*XRenderCreateAnimCursor_dylibloader_wrapper_xrender)( Display*, int, XAnimCursor*); -void (*XRenderAddTraps_dylibloader_wrapper_xrender)( Display*, Picture, int, int,const XTrap*, int); -Picture (*XRenderCreateSolidFill_dylibloader_wrapper_xrender)( Display*,const XRenderColor*); -Picture (*XRenderCreateLinearGradient_dylibloader_wrapper_xrender)( Display*,const XLinearGradient*,const XFixed*,const XRenderColor*, int); -Picture (*XRenderCreateRadialGradient_dylibloader_wrapper_xrender)( Display*,const XRadialGradient*,const XFixed*,const XRenderColor*, int); -Picture (*XRenderCreateConicalGradient_dylibloader_wrapper_xrender)( Display*,const XConicalGradient*,const XFixed*,const XRenderColor*, int); +int (*XRenderQueryExtension_dylibloader_wrapper_xrender)(Display *, int *, int *); +int (*XRenderQueryVersion_dylibloader_wrapper_xrender)(Display *, int *, int *); +int (*XRenderQueryFormats_dylibloader_wrapper_xrender)(Display *); +int (*XRenderQuerySubpixelOrder_dylibloader_wrapper_xrender)(Display *, int); +int (*XRenderSetSubpixelOrder_dylibloader_wrapper_xrender)(Display *, int, int); +XRenderPictFormat *(*XRenderFindVisualFormat_dylibloader_wrapper_xrender)(Display *, const Visual *); +XRenderPictFormat *(*XRenderFindFormat_dylibloader_wrapper_xrender)(Display *, unsigned long, const XRenderPictFormat *, int); +XRenderPictFormat *(*XRenderFindStandardFormat_dylibloader_wrapper_xrender)(Display *, int); +XIndexValue *(*XRenderQueryPictIndexValues_dylibloader_wrapper_xrender)(Display *, const XRenderPictFormat *, int *); +Picture (*XRenderCreatePicture_dylibloader_wrapper_xrender)(Display *, Drawable, const XRenderPictFormat *, unsigned long, const XRenderPictureAttributes *); +void (*XRenderChangePicture_dylibloader_wrapper_xrender)(Display *, Picture, unsigned long, const XRenderPictureAttributes *); +void (*XRenderSetPictureClipRectangles_dylibloader_wrapper_xrender)(Display *, Picture, int, int, const XRectangle *, int); +void (*XRenderSetPictureClipRegion_dylibloader_wrapper_xrender)(Display *, Picture, Region); +void (*XRenderSetPictureTransform_dylibloader_wrapper_xrender)(Display *, Picture, XTransform *); +void (*XRenderFreePicture_dylibloader_wrapper_xrender)(Display *, Picture); +void (*XRenderComposite_dylibloader_wrapper_xrender)(Display *, int, Picture, Picture, Picture, int, int, int, int, int, int, unsigned int, unsigned int); +GlyphSet (*XRenderCreateGlyphSet_dylibloader_wrapper_xrender)(Display *, const XRenderPictFormat *); +GlyphSet (*XRenderReferenceGlyphSet_dylibloader_wrapper_xrender)(Display *, GlyphSet); +void (*XRenderFreeGlyphSet_dylibloader_wrapper_xrender)(Display *, GlyphSet); +void (*XRenderAddGlyphs_dylibloader_wrapper_xrender)(Display *, GlyphSet, const Glyph *, const XGlyphInfo *, int, const char *, int); +void (*XRenderFreeGlyphs_dylibloader_wrapper_xrender)(Display *, GlyphSet, const Glyph *, int); +void (*XRenderCompositeString8_dylibloader_wrapper_xrender)(Display *, int, Picture, Picture, const XRenderPictFormat *, GlyphSet, int, int, int, int, const char *, int); +void (*XRenderCompositeString16_dylibloader_wrapper_xrender)(Display *, int, Picture, Picture, const XRenderPictFormat *, GlyphSet, int, int, int, int, const unsigned short *, int); +void (*XRenderCompositeString32_dylibloader_wrapper_xrender)(Display *, int, Picture, Picture, const XRenderPictFormat *, GlyphSet, int, int, int, int, const unsigned int *, int); +void (*XRenderCompositeText8_dylibloader_wrapper_xrender)(Display *, int, Picture, Picture, const XRenderPictFormat *, int, int, int, int, const XGlyphElt8 *, int); +void (*XRenderCompositeText16_dylibloader_wrapper_xrender)(Display *, int, Picture, Picture, const XRenderPictFormat *, int, int, int, int, const XGlyphElt16 *, int); +void (*XRenderCompositeText32_dylibloader_wrapper_xrender)(Display *, int, Picture, Picture, const XRenderPictFormat *, int, int, int, int, const XGlyphElt32 *, int); +void (*XRenderFillRectangle_dylibloader_wrapper_xrender)(Display *, int, Picture, const XRenderColor *, int, int, unsigned int, unsigned int); +void (*XRenderFillRectangles_dylibloader_wrapper_xrender)(Display *, int, Picture, const XRenderColor *, const XRectangle *, int); +void (*XRenderCompositeTrapezoids_dylibloader_wrapper_xrender)(Display *, int, Picture, Picture, const XRenderPictFormat *, int, int, const XTrapezoid *, int); +void (*XRenderCompositeTriangles_dylibloader_wrapper_xrender)(Display *, int, Picture, Picture, const XRenderPictFormat *, int, int, const XTriangle *, int); +void (*XRenderCompositeTriStrip_dylibloader_wrapper_xrender)(Display *, int, Picture, Picture, const XRenderPictFormat *, int, int, const XPointFixed *, int); +void (*XRenderCompositeTriFan_dylibloader_wrapper_xrender)(Display *, int, Picture, Picture, const XRenderPictFormat *, int, int, const XPointFixed *, int); +void (*XRenderCompositeDoublePoly_dylibloader_wrapper_xrender)(Display *, int, Picture, Picture, const XRenderPictFormat *, int, int, int, int, const XPointDouble *, int, int); +int (*XRenderParseColor_dylibloader_wrapper_xrender)(Display *, char *, XRenderColor *); +Cursor (*XRenderCreateCursor_dylibloader_wrapper_xrender)(Display *, Picture, unsigned int, unsigned int); +XFilters *(*XRenderQueryFilters_dylibloader_wrapper_xrender)(Display *, Drawable); +void (*XRenderSetPictureFilter_dylibloader_wrapper_xrender)(Display *, Picture, const char *, XFixed *, int); +Cursor (*XRenderCreateAnimCursor_dylibloader_wrapper_xrender)(Display *, int, XAnimCursor *); +void (*XRenderAddTraps_dylibloader_wrapper_xrender)(Display *, Picture, int, int, const XTrap *, int); +Picture (*XRenderCreateSolidFill_dylibloader_wrapper_xrender)(Display *, const XRenderColor *); +Picture (*XRenderCreateLinearGradient_dylibloader_wrapper_xrender)(Display *, const XLinearGradient *, const XFixed *, const XRenderColor *, int); +Picture (*XRenderCreateRadialGradient_dylibloader_wrapper_xrender)(Display *, const XRadialGradient *, const XFixed *, const XRenderColor *, int); +Picture (*XRenderCreateConicalGradient_dylibloader_wrapper_xrender)(Display *, const XConicalGradient *, const XFixed *, const XRenderColor *, int); int initialize_xrender(int verbose) { void *handle; char *error; diff --git a/platform/linuxbsd/x11/dynwrappers/xrender-so_wrap.h b/platform/linuxbsd/x11/dynwrappers/xrender-so_wrap.h index 5d3f695959..3d0e8901ea 100644 --- a/platform/linuxbsd/x11/dynwrappers/xrender-so_wrap.h +++ b/platform/linuxbsd/x11/dynwrappers/xrender-so_wrap.h @@ -2,13 +2,9 @@ #define DYLIBLOAD_WRAPPER_XRENDER // This file is generated. Do not edit! // see https://github.com/hpvb/dynload-wrapper for details -// generated by generate-wrapper.py 0.3 on 2023-01-23 15:14:14 -// flags: generate-wrapper.py --include ./thirdparty/linuxbsd_headers/X11/extensions/Xrender.h --sys-include "thirdparty/linuxbsd_headers/X11/extensions/Xrender.h" --soname libXrender.so.1 --init-name xrender --output-header ./platform/linuxbsd/x11/dynwrappers/xrender-so_wrap.h --output-implementation ./platform/linuxbsd/x11/dynwrappers/xrender-so_wrap.c~ +// generated by generate-wrapper.py 0.6 on 2024-11-09 02:52:37 +// flags: generate-wrapper.py --include ./thirdparty/linuxbsd_headers/X11/extensions/Xrender.h --sys-include thirdparty/linuxbsd_headers/X11/extensions/Xrender.h --soname libXrender.so.1 --init-name xrender --output-header ./platform/linuxbsd/x11/dynwrappers/xrender-so_wrap.h --output-implementation ./platform/linuxbsd/x11/dynwrappers/xrender-so_wrap.c --ignore-other // -// NOTE: Generated from Xrender 0.9.10. -// This has been handpatched to workaround some issues with the generator that -// will be eventually fixed. In this case, non-existent symbols inherited from -// libX11, but absent in libXrender.so.1, were removed. #include <stdint.h> #define XRenderQueryExtension XRenderQueryExtension_dylibloader_orig_xrender @@ -147,50 +143,50 @@ extern "C" { #define XRenderCreateLinearGradient XRenderCreateLinearGradient_dylibloader_wrapper_xrender #define XRenderCreateRadialGradient XRenderCreateRadialGradient_dylibloader_wrapper_xrender #define XRenderCreateConicalGradient XRenderCreateConicalGradient_dylibloader_wrapper_xrender -extern int (*XRenderQueryExtension_dylibloader_wrapper_xrender)( Display*, int*, int*); -extern int (*XRenderQueryVersion_dylibloader_wrapper_xrender)( Display*, int*, int*); -extern int (*XRenderQueryFormats_dylibloader_wrapper_xrender)( Display*); -extern int (*XRenderQuerySubpixelOrder_dylibloader_wrapper_xrender)( Display*, int); -extern int (*XRenderSetSubpixelOrder_dylibloader_wrapper_xrender)( Display*, int, int); -extern XRenderPictFormat* (*XRenderFindVisualFormat_dylibloader_wrapper_xrender)( Display*,const Visual*); -extern XRenderPictFormat* (*XRenderFindFormat_dylibloader_wrapper_xrender)( Display*, unsigned long,const XRenderPictFormat*, int); -extern XRenderPictFormat* (*XRenderFindStandardFormat_dylibloader_wrapper_xrender)( Display*, int); -extern XIndexValue* (*XRenderQueryPictIndexValues_dylibloader_wrapper_xrender)( Display*,const XRenderPictFormat*, int*); -extern Picture (*XRenderCreatePicture_dylibloader_wrapper_xrender)( Display*, Drawable,const XRenderPictFormat*, unsigned long,const XRenderPictureAttributes*); -extern void (*XRenderChangePicture_dylibloader_wrapper_xrender)( Display*, Picture, unsigned long,const XRenderPictureAttributes*); -extern void (*XRenderSetPictureClipRectangles_dylibloader_wrapper_xrender)( Display*, Picture, int, int,const XRectangle*, int); -extern void (*XRenderSetPictureClipRegion_dylibloader_wrapper_xrender)( Display*, Picture, Region); -extern void (*XRenderSetPictureTransform_dylibloader_wrapper_xrender)( Display*, Picture, XTransform*); -extern void (*XRenderFreePicture_dylibloader_wrapper_xrender)( Display*, Picture); -extern void (*XRenderComposite_dylibloader_wrapper_xrender)( Display*, int, Picture, Picture, Picture, int, int, int, int, int, int, unsigned int, unsigned int); -extern GlyphSet (*XRenderCreateGlyphSet_dylibloader_wrapper_xrender)( Display*,const XRenderPictFormat*); -extern GlyphSet (*XRenderReferenceGlyphSet_dylibloader_wrapper_xrender)( Display*, GlyphSet); -extern void (*XRenderFreeGlyphSet_dylibloader_wrapper_xrender)( Display*, GlyphSet); -extern void (*XRenderAddGlyphs_dylibloader_wrapper_xrender)( Display*, GlyphSet,const Glyph*,const XGlyphInfo*, int,const char*, int); -extern void (*XRenderFreeGlyphs_dylibloader_wrapper_xrender)( Display*, GlyphSet,const Glyph*, int); -extern void (*XRenderCompositeString8_dylibloader_wrapper_xrender)( Display*, int, Picture, Picture,const XRenderPictFormat*, GlyphSet, int, int, int, int,const char*, int); -extern void (*XRenderCompositeString16_dylibloader_wrapper_xrender)( Display*, int, Picture, Picture,const XRenderPictFormat*, GlyphSet, int, int, int, int,const unsigned short*, int); -extern void (*XRenderCompositeString32_dylibloader_wrapper_xrender)( Display*, int, Picture, Picture,const XRenderPictFormat*, GlyphSet, int, int, int, int,const unsigned int*, int); -extern void (*XRenderCompositeText8_dylibloader_wrapper_xrender)( Display*, int, Picture, Picture,const XRenderPictFormat*, int, int, int, int,const XGlyphElt8*, int); -extern void (*XRenderCompositeText16_dylibloader_wrapper_xrender)( Display*, int, Picture, Picture,const XRenderPictFormat*, int, int, int, int,const XGlyphElt16*, int); -extern void (*XRenderCompositeText32_dylibloader_wrapper_xrender)( Display*, int, Picture, Picture,const XRenderPictFormat*, int, int, int, int,const XGlyphElt32*, int); -extern void (*XRenderFillRectangle_dylibloader_wrapper_xrender)( Display*, int, Picture,const XRenderColor*, int, int, unsigned int, unsigned int); -extern void (*XRenderFillRectangles_dylibloader_wrapper_xrender)( Display*, int, Picture,const XRenderColor*,const XRectangle*, int); -extern void (*XRenderCompositeTrapezoids_dylibloader_wrapper_xrender)( Display*, int, Picture, Picture,const XRenderPictFormat*, int, int,const XTrapezoid*, int); -extern void (*XRenderCompositeTriangles_dylibloader_wrapper_xrender)( Display*, int, Picture, Picture,const XRenderPictFormat*, int, int,const XTriangle*, int); -extern void (*XRenderCompositeTriStrip_dylibloader_wrapper_xrender)( Display*, int, Picture, Picture,const XRenderPictFormat*, int, int,const XPointFixed*, int); -extern void (*XRenderCompositeTriFan_dylibloader_wrapper_xrender)( Display*, int, Picture, Picture,const XRenderPictFormat*, int, int,const XPointFixed*, int); -extern void (*XRenderCompositeDoublePoly_dylibloader_wrapper_xrender)( Display*, int, Picture, Picture,const XRenderPictFormat*, int, int, int, int,const XPointDouble*, int, int); -extern int (*XRenderParseColor_dylibloader_wrapper_xrender)( Display*, char*, XRenderColor*); -extern Cursor (*XRenderCreateCursor_dylibloader_wrapper_xrender)( Display*, Picture, unsigned int, unsigned int); -extern XFilters* (*XRenderQueryFilters_dylibloader_wrapper_xrender)( Display*, Drawable); -extern void (*XRenderSetPictureFilter_dylibloader_wrapper_xrender)( Display*, Picture,const char*, XFixed*, int); -extern Cursor (*XRenderCreateAnimCursor_dylibloader_wrapper_xrender)( Display*, int, XAnimCursor*); -extern void (*XRenderAddTraps_dylibloader_wrapper_xrender)( Display*, Picture, int, int,const XTrap*, int); -extern Picture (*XRenderCreateSolidFill_dylibloader_wrapper_xrender)( Display*,const XRenderColor*); -extern Picture (*XRenderCreateLinearGradient_dylibloader_wrapper_xrender)( Display*,const XLinearGradient*,const XFixed*,const XRenderColor*, int); -extern Picture (*XRenderCreateRadialGradient_dylibloader_wrapper_xrender)( Display*,const XRadialGradient*,const XFixed*,const XRenderColor*, int); -extern Picture (*XRenderCreateConicalGradient_dylibloader_wrapper_xrender)( Display*,const XConicalGradient*,const XFixed*,const XRenderColor*, int); +extern int (*XRenderQueryExtension_dylibloader_wrapper_xrender)(Display *, int *, int *); +extern int (*XRenderQueryVersion_dylibloader_wrapper_xrender)(Display *, int *, int *); +extern int (*XRenderQueryFormats_dylibloader_wrapper_xrender)(Display *); +extern int (*XRenderQuerySubpixelOrder_dylibloader_wrapper_xrender)(Display *, int); +extern int (*XRenderSetSubpixelOrder_dylibloader_wrapper_xrender)(Display *, int, int); +extern XRenderPictFormat *(*XRenderFindVisualFormat_dylibloader_wrapper_xrender)(Display *, const Visual *); +extern XRenderPictFormat *(*XRenderFindFormat_dylibloader_wrapper_xrender)(Display *, unsigned long, const XRenderPictFormat *, int); +extern XRenderPictFormat *(*XRenderFindStandardFormat_dylibloader_wrapper_xrender)(Display *, int); +extern XIndexValue *(*XRenderQueryPictIndexValues_dylibloader_wrapper_xrender)(Display *, const XRenderPictFormat *, int *); +extern Picture (*XRenderCreatePicture_dylibloader_wrapper_xrender)(Display *, Drawable, const XRenderPictFormat *, unsigned long, const XRenderPictureAttributes *); +extern void (*XRenderChangePicture_dylibloader_wrapper_xrender)(Display *, Picture, unsigned long, const XRenderPictureAttributes *); +extern void (*XRenderSetPictureClipRectangles_dylibloader_wrapper_xrender)(Display *, Picture, int, int, const XRectangle *, int); +extern void (*XRenderSetPictureClipRegion_dylibloader_wrapper_xrender)(Display *, Picture, Region); +extern void (*XRenderSetPictureTransform_dylibloader_wrapper_xrender)(Display *, Picture, XTransform *); +extern void (*XRenderFreePicture_dylibloader_wrapper_xrender)(Display *, Picture); +extern void (*XRenderComposite_dylibloader_wrapper_xrender)(Display *, int, Picture, Picture, Picture, int, int, int, int, int, int, unsigned int, unsigned int); +extern GlyphSet (*XRenderCreateGlyphSet_dylibloader_wrapper_xrender)(Display *, const XRenderPictFormat *); +extern GlyphSet (*XRenderReferenceGlyphSet_dylibloader_wrapper_xrender)(Display *, GlyphSet); +extern void (*XRenderFreeGlyphSet_dylibloader_wrapper_xrender)(Display *, GlyphSet); +extern void (*XRenderAddGlyphs_dylibloader_wrapper_xrender)(Display *, GlyphSet, const Glyph *, const XGlyphInfo *, int, const char *, int); +extern void (*XRenderFreeGlyphs_dylibloader_wrapper_xrender)(Display *, GlyphSet, const Glyph *, int); +extern void (*XRenderCompositeString8_dylibloader_wrapper_xrender)(Display *, int, Picture, Picture, const XRenderPictFormat *, GlyphSet, int, int, int, int, const char *, int); +extern void (*XRenderCompositeString16_dylibloader_wrapper_xrender)(Display *, int, Picture, Picture, const XRenderPictFormat *, GlyphSet, int, int, int, int, const unsigned short *, int); +extern void (*XRenderCompositeString32_dylibloader_wrapper_xrender)(Display *, int, Picture, Picture, const XRenderPictFormat *, GlyphSet, int, int, int, int, const unsigned int *, int); +extern void (*XRenderCompositeText8_dylibloader_wrapper_xrender)(Display *, int, Picture, Picture, const XRenderPictFormat *, int, int, int, int, const XGlyphElt8 *, int); +extern void (*XRenderCompositeText16_dylibloader_wrapper_xrender)(Display *, int, Picture, Picture, const XRenderPictFormat *, int, int, int, int, const XGlyphElt16 *, int); +extern void (*XRenderCompositeText32_dylibloader_wrapper_xrender)(Display *, int, Picture, Picture, const XRenderPictFormat *, int, int, int, int, const XGlyphElt32 *, int); +extern void (*XRenderFillRectangle_dylibloader_wrapper_xrender)(Display *, int, Picture, const XRenderColor *, int, int, unsigned int, unsigned int); +extern void (*XRenderFillRectangles_dylibloader_wrapper_xrender)(Display *, int, Picture, const XRenderColor *, const XRectangle *, int); +extern void (*XRenderCompositeTrapezoids_dylibloader_wrapper_xrender)(Display *, int, Picture, Picture, const XRenderPictFormat *, int, int, const XTrapezoid *, int); +extern void (*XRenderCompositeTriangles_dylibloader_wrapper_xrender)(Display *, int, Picture, Picture, const XRenderPictFormat *, int, int, const XTriangle *, int); +extern void (*XRenderCompositeTriStrip_dylibloader_wrapper_xrender)(Display *, int, Picture, Picture, const XRenderPictFormat *, int, int, const XPointFixed *, int); +extern void (*XRenderCompositeTriFan_dylibloader_wrapper_xrender)(Display *, int, Picture, Picture, const XRenderPictFormat *, int, int, const XPointFixed *, int); +extern void (*XRenderCompositeDoublePoly_dylibloader_wrapper_xrender)(Display *, int, Picture, Picture, const XRenderPictFormat *, int, int, int, int, const XPointDouble *, int, int); +extern int (*XRenderParseColor_dylibloader_wrapper_xrender)(Display *, char *, XRenderColor *); +extern Cursor (*XRenderCreateCursor_dylibloader_wrapper_xrender)(Display *, Picture, unsigned int, unsigned int); +extern XFilters *(*XRenderQueryFilters_dylibloader_wrapper_xrender)(Display *, Drawable); +extern void (*XRenderSetPictureFilter_dylibloader_wrapper_xrender)(Display *, Picture, const char *, XFixed *, int); +extern Cursor (*XRenderCreateAnimCursor_dylibloader_wrapper_xrender)(Display *, int, XAnimCursor *); +extern void (*XRenderAddTraps_dylibloader_wrapper_xrender)(Display *, Picture, int, int, const XTrap *, int); +extern Picture (*XRenderCreateSolidFill_dylibloader_wrapper_xrender)(Display *, const XRenderColor *); +extern Picture (*XRenderCreateLinearGradient_dylibloader_wrapper_xrender)(Display *, const XLinearGradient *, const XFixed *, const XRenderColor *, int); +extern Picture (*XRenderCreateRadialGradient_dylibloader_wrapper_xrender)(Display *, const XRadialGradient *, const XFixed *, const XRenderColor *, int); +extern Picture (*XRenderCreateConicalGradient_dylibloader_wrapper_xrender)(Display *, const XConicalGradient *, const XFixed *, const XRenderColor *, int); int initialize_xrender(int verbose); #ifdef __cplusplus } diff --git a/platform/macos/SCsub b/platform/macos/SCsub index 3924e79fb6..598444ae24 100644 --- a/platform/macos/SCsub +++ b/platform/macos/SCsub @@ -27,7 +27,9 @@ def generate_bundle(target, source, env): target_bin = lipo(bin_dir + "/" + prefix, env.extra_suffix + env.module_version_string) # Assemble .app bundle and update version info. - app_dir = Dir("#bin/" + (prefix + env.extra_suffix + env.module_version_string).replace(".", "_") + ".app").abspath + app_dir = Dir( + "#bin/" + (prefix + env.extra_suffix + env.module_version_string).replace(".", "_") + ".app" + ).abspath templ = Dir("#misc/dist/macos_tools.app").abspath if os.path.exists(app_dir): shutil.rmtree(app_dir) diff --git a/platform/macos/crash_handler_macos.h b/platform/macos/crash_handler_macos.h index f821283167..d52cb7234a 100644 --- a/platform/macos/crash_handler_macos.h +++ b/platform/macos/crash_handler_macos.h @@ -38,7 +38,7 @@ public: void initialize(); void disable(); - bool is_disabled() const { return disabled; }; + bool is_disabled() const { return disabled; } CrashHandler(); ~CrashHandler(); diff --git a/platform/macos/detect.py b/platform/macos/detect.py index a8968b592e..3575e93c68 100644 --- a/platform/macos/detect.py +++ b/platform/macos/detect.py @@ -2,8 +2,8 @@ import os import sys from typing import TYPE_CHECKING -from methods import detect_darwin_sdk_path, get_compiler_version, is_vanilla_clang, print_error, print_warning -from platform_methods import detect_arch, detect_mvk +from methods import detect_darwin_sdk_path, get_compiler_version, is_apple_clang, print_error, print_warning +from platform_methods import detect_arch, detect_mvk, validate_arch if TYPE_CHECKING: from SCons.Script.SConscript import SConsEnvironment @@ -68,12 +68,7 @@ def get_flags(): def configure(env: "SConsEnvironment"): # Validate arch. supported_arches = ["x86_64", "arm64"] - if env["arch"] not in supported_arches: - print_error( - 'Unsupported CPU architecture "%s" for macOS. Supported architectures are: %s.' - % (env["arch"], ", ".join(supported_arches)) - ) - sys.exit(255) + validate_arch(env["arch"], get_name(), supported_arches) ## Build type @@ -106,10 +101,9 @@ def configure(env: "SConsEnvironment"): cc_version = get_compiler_version(env) cc_version_major = cc_version["apple_major"] cc_version_minor = cc_version["apple_minor"] - vanilla = is_vanilla_clang(env) # Workaround for Xcode 15 linker bug. - if not vanilla and cc_version_major == 1500 and cc_version_minor == 0: + if is_apple_clang(env) and cc_version_major == 1500 and cc_version_minor == 0: env.Prepend(LINKFLAGS=["-ld_classic"]) env.Append(CCFLAGS=["-fobjc-arc"]) diff --git a/platform/macos/display_server_macos.mm b/platform/macos/display_server_macos.mm index 48cc7bbba3..f1078d9868 100644 --- a/platform/macos/display_server_macos.mm +++ b/platform/macos/display_server_macos.mm @@ -752,6 +752,7 @@ bool DisplayServerMacOS::has_feature(Feature p_feature) const { case FEATURE_NATIVE_DIALOG: case FEATURE_NATIVE_DIALOG_INPUT: case FEATURE_NATIVE_DIALOG_FILE: + case FEATURE_NATIVE_DIALOG_FILE_EXTRA: case FEATURE_IME: case FEATURE_WINDOW_TRANSPARENCY: case FEATURE_HIDPI: @@ -2676,6 +2677,18 @@ int64_t DisplayServerMacOS::window_get_native_handle(HandleType p_handle_type, W } return 0; } + case EGL_DISPLAY: { + if (gl_manager_angle) { + return (int64_t)gl_manager_angle->get_display(p_window); + } + return 0; + } + case EGL_CONFIG: { + if (gl_manager_angle) { + return (int64_t)gl_manager_angle->get_config(p_window); + } + return 0; + } #endif default: { return 0; @@ -3611,6 +3624,39 @@ DisplayServerMacOS::DisplayServerMacOS(const String &p_rendering_driver, WindowM //TODO - do Vulkan and OpenGL support checks, driver selection and fallback rendering_driver = p_rendering_driver; +#if defined(RD_ENABLED) +#if defined(VULKAN_ENABLED) + if (rendering_driver == "vulkan") { + rendering_context = memnew(RenderingContextDriverVulkanMacOS); + } +#endif +#if defined(METAL_ENABLED) + if (rendering_driver == "metal") { + rendering_context = memnew(RenderingContextDriverMetal); + } +#endif + + if (rendering_context) { + if (rendering_context->initialize() != OK) { + memdelete(rendering_context); + rendering_context = nullptr; +#if defined(GLES3_ENABLED) + bool fallback_to_opengl3 = GLOBAL_GET("rendering/rendering_device/fallback_to_opengl3"); + if (fallback_to_opengl3 && rendering_driver != "opengl3") { + WARN_PRINT("Your device seem not to support MoltenVK or Metal, switching to OpenGL 3."); + rendering_driver = "opengl3"; + OS::get_singleton()->set_current_rendering_method("gl_compatibility"); + OS::get_singleton()->set_current_rendering_driver_name(rendering_driver); + } else +#endif + { + r_error = ERR_CANT_CREATE; + ERR_FAIL_MSG("Could not initialize " + rendering_driver); + } + } + } +#endif + #if defined(GLES3_ENABLED) if (rendering_driver == "opengl3_angle") { gl_manager_angle = memnew(GLManagerANGLE_MacOS); @@ -3643,35 +3689,6 @@ DisplayServerMacOS::DisplayServerMacOS(const String &p_rendering_driver, WindowM } } #endif -#if defined(RD_ENABLED) -#if defined(VULKAN_ENABLED) - if (rendering_driver == "vulkan") { - rendering_context = memnew(RenderingContextDriverVulkanMacOS); - } -#endif -#if defined(METAL_ENABLED) - if (rendering_driver == "metal") { - rendering_context = memnew(RenderingContextDriverMetal); - } -#endif - - if (rendering_context) { - if (rendering_context->initialize() != OK) { - memdelete(rendering_context); - rendering_context = nullptr; - bool fallback_to_opengl3 = GLOBAL_GET("rendering/rendering_device/fallback_to_opengl3"); - if (fallback_to_opengl3 && rendering_driver != "opengl3") { - WARN_PRINT("Your device seem not to support MoltenVK or Metal, switching to OpenGL 3."); - rendering_driver = "opengl3"; - OS::get_singleton()->set_current_rendering_method("gl_compatibility"); - OS::get_singleton()->set_current_rendering_driver_name(rendering_driver); - } else { - r_error = ERR_CANT_CREATE; - ERR_FAIL_MSG("Could not initialize " + rendering_driver); - } - } - } -#endif Point2i window_position; if (p_position != nullptr) { diff --git a/platform/macos/doc_classes/EditorExportPlatformMacOS.xml b/platform/macos/doc_classes/EditorExportPlatformMacOS.xml index c261c252ba..dcaba9bbd2 100644 --- a/platform/macos/doc_classes/EditorExportPlatformMacOS.xml +++ b/platform/macos/doc_classes/EditorExportPlatformMacOS.xml @@ -75,6 +75,13 @@ <member name="codesign/custom_options" type="PackedStringArray" setter="" getter=""> Array of the additional command line arguments passed to the code signing tool. </member> + <member name="codesign/entitlements/additional" type="String" setter="" getter=""> + Additional data added to the root [code]<dict>[/code] section of the [url=https://developer.apple.com/documentation/bundleresources/entitlements].entitlements[/url] file. The value should be an XML section with pairs of key-value elements, e.g.: + [codeblock lang=text] + <key>key_name</key> + <string>value</string> + [/codeblock] + </member> <member name="codesign/entitlements/address_book" type="bool" setter="" getter=""> Enable to allow access to contacts in the user's address book, if it's enabled you should also provide usage message in the [member privacy/address_book_usage_description] option. See [url=https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_personal-information_addressbook]com.apple.security.personal-information.addressbook[/url]. </member> diff --git a/platform/macos/export/export_plugin.cpp b/platform/macos/export/export_plugin.cpp index c99e9cdd0c..b9f9d8d613 100644 --- a/platform/macos/export/export_plugin.cpp +++ b/platform/macos/export/export_plugin.cpp @@ -65,6 +65,11 @@ void EditorExportPlatformMacOS::get_preset_features(const Ref<EditorExportPreset } else { ERR_PRINT("Invalid architecture"); } + + if (architecture == "universal") { + r_features->push_back("x86_64"); + r_features->push_back("arm64"); + } } String EditorExportPlatformMacOS::get_export_option_warning(const EditorExportPreset *p_preset, const StringName &p_name) const { @@ -327,7 +332,7 @@ bool EditorExportPlatformMacOS::get_export_option_visibility(const EditorExportP } bool advanced_options_enabled = p_preset->are_advanced_options_enabled(); - if (p_option.begins_with("privacy")) { + if (p_option.begins_with("privacy") || p_option == "codesign/entitlements/additional") { return advanced_options_enabled; } } @@ -501,6 +506,7 @@ void EditorExportPlatformMacOS::get_export_options(List<ExportOption> *r_options r_options->push_back(ExportOption(PropertyInfo(Variant::INT, "codesign/entitlements/app_sandbox/files_movies", PROPERTY_HINT_ENUM, "No,Read-only,Read-write"), 0)); r_options->push_back(ExportOption(PropertyInfo(Variant::INT, "codesign/entitlements/app_sandbox/files_user_selected", PROPERTY_HINT_ENUM, "No,Read-only,Read-write"), 0)); r_options->push_back(ExportOption(PropertyInfo(Variant::ARRAY, "codesign/entitlements/app_sandbox/helper_executables", PROPERTY_HINT_ARRAY_TYPE, itos(Variant::STRING) + "/" + itos(PROPERTY_HINT_GLOBAL_FILE) + ":"), Array())); + r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "codesign/entitlements/additional", PROPERTY_HINT_MULTILINE_TEXT), "")); r_options->push_back(ExportOption(PropertyInfo(Variant::PACKED_STRING_ARRAY, "codesign/custom_options"), PackedStringArray())); #ifdef MACOS_ENABLED @@ -964,7 +970,7 @@ Error EditorExportPlatformMacOS::_notarize(const Ref<EditorExportPreset> &p_pres return Error::FAILED; } else { print_verbose("rcodesign (" + p_path + "):\n" + str); - int next_nl = str.find("\n", rq_offset); + int next_nl = str.find_char('\n', rq_offset); String request_uuid = (next_nl == -1) ? str.substr(rq_offset + 23, -1) : str.substr(rq_offset + 23, next_nl - rq_offset - 23); add_message(EXPORT_MESSAGE_INFO, TTR("Notarization"), vformat(TTR("Notarization request UUID: \"%s\""), request_uuid)); add_message(EXPORT_MESSAGE_INFO, TTR("Notarization"), TTR("The notarization process generally takes less than an hour.")); @@ -1048,7 +1054,7 @@ Error EditorExportPlatformMacOS::_notarize(const Ref<EditorExportPreset> &p_pres return Error::FAILED; } else { print_verbose("notarytool (" + p_path + "):\n" + str); - int next_nl = str.find("\n", rq_offset); + int next_nl = str.find_char('\n', rq_offset); String request_uuid = (next_nl == -1) ? str.substr(rq_offset + 4, -1) : str.substr(rq_offset + 4, next_nl - rq_offset - 4); add_message(EXPORT_MESSAGE_INFO, TTR("Notarization"), vformat(TTR("Notarization request UUID: \"%s\""), request_uuid)); add_message(EXPORT_MESSAGE_INFO, TTR("Notarization"), TTR("The notarization process generally takes less than an hour.")); @@ -2126,6 +2132,11 @@ Error EditorExportPlatformMacOS::export_project(const Ref<EditorExportPreset> &p } } + const String &additional_entitlements = p_preset->get("codesign/entitlements/additional"); + if (!additional_entitlements.is_empty()) { + ent_f->store_line(additional_entitlements); + } + ent_f->store_line("</dict>"); ent_f->store_line("</plist>"); } else { @@ -2288,6 +2299,14 @@ Error EditorExportPlatformMacOS::export_project(const Ref<EditorExportPreset> &p } } + if (FileAccess::exists(ent_path)) { + print_verbose("entitlements:\n" + FileAccess::get_file_as_string(ent_path)); + } + + if (FileAccess::exists(hlp_ent_path)) { + print_verbose("helper entitlements:\n" + FileAccess::get_file_as_string(hlp_ent_path)); + } + // Clean up temporary entitlements files. if (FileAccess::exists(hlp_ent_path)) { DirAccess::remove_file_or_error(hlp_ent_path); diff --git a/platform/macos/export/export_plugin.h b/platform/macos/export/export_plugin.h index d88d347359..ef8d1bb8ab 100644 --- a/platform/macos/export/export_plugin.h +++ b/platform/macos/export/export_plugin.h @@ -34,6 +34,7 @@ #include "core/config/project_settings.h" #include "core/io/dir_access.h" #include "core/io/file_access.h" +#include "core/io/image.h" #include "core/io/marshalls.h" #include "core/io/resource_saver.h" #include "core/os/os.h" @@ -75,7 +76,7 @@ class EditorExportPlatformMacOS : public EditorExportPlatform { ssh_args = p_ssh_arg; cmd_args = p_cmd_args; wait = p_wait; - }; + } }; Ref<ImageTexture> run_icon; diff --git a/platform/macos/godot_open_save_delegate.mm b/platform/macos/godot_open_save_delegate.mm index 6ffd939545..0d6bfa0c53 100644 --- a/platform/macos/godot_open_save_delegate.mm +++ b/platform/macos/godot_open_save_delegate.mm @@ -130,7 +130,7 @@ } if ([type_filters count] > 0) { - NSString *name_str = [NSString stringWithUTF8String:((tokens.size() == 1) ? tokens[0] : vformat("%s (%s)", tokens[1].strip_edges(), tokens[0].strip_edges())).utf8().get_data()]; + NSString *name_str = [NSString stringWithUTF8String:((tokens.size() == 1) ? tokens[0] : tokens[1].strip_edges()).utf8().get_data()]; [new_allowed_types addObject:type_filters]; [popup addItemWithTitle:name_str]; } diff --git a/platform/macos/os_macos.h b/platform/macos/os_macos.h index 303fc112bf..4fb4507837 100644 --- a/platform/macos/os_macos.h +++ b/platform/macos/os_macos.h @@ -114,6 +114,8 @@ public: virtual String get_unique_id() const override; virtual String get_processor_name() const override; + virtual String get_model_name() const override; + virtual bool is_sandboxed() const override; virtual Vector<String> get_granted_permissions() const override; virtual void revoke_granted_permissions() override; diff --git a/platform/macos/os_macos.mm b/platform/macos/os_macos.mm index d9086b8c38..08ff391aab 100644 --- a/platform/macos/os_macos.mm +++ b/platform/macos/os_macos.mm @@ -67,6 +67,15 @@ void OS_MacOS::initialize() { initialize_core(); } +String OS_MacOS::get_model_name() const { + char buffer[256]; + size_t buffer_len = 256; + if (sysctlbyname("hw.model", &buffer, &buffer_len, nullptr, 0) == 0 && buffer_len != 0) { + return String::utf8(buffer, buffer_len); + } + return OS_Unix::get_model_name(); +} + String OS_MacOS::get_processor_name() const { char buffer[256]; size_t buffer_len = 256; diff --git a/platform/web/api/web_tools_editor_plugin.cpp b/platform/web/api/web_tools_editor_plugin.cpp index d39773bde2..61801372ba 100644 --- a/platform/web/api/web_tools_editor_plugin.cpp +++ b/platform/web/api/web_tools_editor_plugin.cpp @@ -80,7 +80,7 @@ void WebToolsEditorPlugin::_download_zip() { const String output_path = String("/tmp").path_join(output_name); zipFile zip = zipOpen2(output_path.utf8().get_data(), APPEND_STATUS_CREATE, nullptr, &io); - const String base_path = resource_path.substr(0, resource_path.rfind("/")) + "/"; + const String base_path = resource_path.substr(0, resource_path.rfind_char('/')) + "/"; _zip_recursive(resource_path, base_path, zip); zipClose(zip, nullptr); { diff --git a/platform/web/detect.py b/platform/web/detect.py index 735e2eaf4f..25a5bbe5a5 100644 --- a/platform/web/detect.py +++ b/platform/web/detect.py @@ -14,6 +14,7 @@ from emscripten_helpers import ( from SCons.Util import WhereIs from methods import get_compiler_version, print_error, print_warning +from platform_methods import validate_arch if TYPE_CHECKING: from SCons.Script.SConscript import SConsEnvironment @@ -86,12 +87,7 @@ def get_flags(): def configure(env: "SConsEnvironment"): # Validate arch. supported_arches = ["wasm32"] - if env["arch"] not in supported_arches: - print_error( - 'Unsupported CPU architecture "%s" for Web. Supported architectures are: %s.' - % (env["arch"], ", ".join(supported_arches)) - ) - sys.exit(255) + validate_arch(env["arch"], get_name(), supported_arches) try: env["initial_memory"] = int(env["initial_memory"]) @@ -205,7 +201,7 @@ def configure(env: "SConsEnvironment"): sys.exit(255) env.Prepend(CPPPATH=["#platform/web"]) - env.Append(CPPDEFINES=["WEB_ENABLED", "UNIX_ENABLED"]) + env.Append(CPPDEFINES=["WEB_ENABLED", "UNIX_ENABLED", "UNIX_SOCKET_UNAVAILABLE"]) if env["opengl3"]: env.AppendUnique(CPPDEFINES=["GLES3_ENABLED"]) diff --git a/platform/web/display_server_web.cpp b/platform/web/display_server_web.cpp index 4e55cc137a..b2db62ea2f 100644 --- a/platform/web/display_server_web.cpp +++ b/platform/web/display_server_web.cpp @@ -1133,6 +1133,7 @@ bool DisplayServerWeb::has_feature(Feature p_feature) const { //case FEATURE_NATIVE_DIALOG: //case FEATURE_NATIVE_DIALOG_INPUT: //case FEATURE_NATIVE_DIALOG_FILE: + //case FEATURE_NATIVE_DIALOG_FILE_EXTRA: //case FEATURE_NATIVE_ICON: //case FEATURE_WINDOW_TRANSPARENCY: //case FEATURE_KEEP_SCREEN_ON: diff --git a/platform/web/display_server_web.h b/platform/web/display_server_web.h index 352b3fe523..c28a6fd082 100644 --- a/platform/web/display_server_web.h +++ b/platform/web/display_server_web.h @@ -209,6 +209,7 @@ public: virtual int screen_get_dpi(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; virtual float screen_get_scale(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; virtual float screen_get_refresh_rate(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; + virtual void screen_set_keep_on(bool p_enable) override {} virtual void virtual_keyboard_show(const String &p_existing_text, const Rect2 &p_screen_rect = Rect2(), VirtualKeyboardType p_type = KEYBOARD_TYPE_DEFAULT, int p_max_input_length = -1, int p_cursor_start = -1, int p_cursor_end = -1) override; virtual void virtual_keyboard_hide() override; @@ -265,6 +266,7 @@ public: virtual bool can_any_window_draw() const override; + virtual void window_set_vsync_mode(VSyncMode p_vsync_mode, WindowID p_window = MAIN_WINDOW_ID) override {} virtual DisplayServer::VSyncMode window_get_vsync_mode(WindowID p_vsync_mode) const override; // events diff --git a/platform/web/doc_classes/EditorExportPlatformWeb.xml b/platform/web/doc_classes/EditorExportPlatformWeb.xml index 755308de9a..955e3a0232 100644 --- a/platform/web/doc_classes/EditorExportPlatformWeb.xml +++ b/platform/web/doc_classes/EditorExportPlatformWeb.xml @@ -60,15 +60,15 @@ </member> <member name="progressive_web_app/icon_144x144" type="String" setter="" getter=""> File path to the smallest icon for this web application. If not defined, defaults to the project icon. - [b]Note:[/b] If the icon is not 144x144, it will be automatically resized for the final build. + [b]Note:[/b] If the icon is not 144×144, it will be automatically resized for the final build. </member> <member name="progressive_web_app/icon_180x180" type="String" setter="" getter=""> File path to the small icon for this web application. If not defined, defaults to the project icon. - [b]Note:[/b] If the icon is not 180x180, it will be automatically resized for the final build. + [b]Note:[/b] If the icon is not 180×180, it will be automatically resized for the final build. </member> <member name="progressive_web_app/icon_512x512" type="String" setter="" getter=""> - File path to the smallest icon for this web application. If not defined, defaults to the project icon. - [b]Note:[/b] If the icon is not 512x512, it will be automatically resized for the final build. + File path to the largest icon for this web application. If not defined, defaults to the project icon. + [b]Note:[/b] If the icon is not 512×512, it will be automatically resized for the final build. </member> <member name="progressive_web_app/offline_page" type="String" setter="" getter=""> The page to display, should the server hosting the page not be available. This page is saved in the client's machine. diff --git a/platform/web/emscripten_helpers.py b/platform/web/emscripten_helpers.py index 8fcabb21c7..3122271a71 100644 --- a/platform/web/emscripten_helpers.py +++ b/platform/web/emscripten_helpers.py @@ -3,6 +3,8 @@ import os from SCons.Util import WhereIs +from platform_methods import get_build_version + def run_closure_compiler(target, source, env, for_signature): closure_bin = os.path.join( @@ -21,22 +23,6 @@ def run_closure_compiler(target, source, env, for_signature): return " ".join(cmd) -def get_build_version(): - import version - - name = "custom_build" - if os.getenv("BUILD_NAME") is not None: - name = os.getenv("BUILD_NAME") - v = "%d.%d" % (version.major, version.minor) - if version.patch > 0: - v += ".%d" % version.patch - status = version.status - if os.getenv("GODOT_VERSION_STATUS") is not None: - status = str(os.getenv("GODOT_VERSION_STATUS")) - v += ".%s.%s" % (status, name) - return v - - def create_engine_file(env, target, source, externs, threads_enabled): if env["use_closure_compiler"]: return env.BuildJS(target, source, JSEXTERNS=externs) @@ -84,7 +70,7 @@ def create_template_zip(env, js, wasm, worker, side): cache.append("godot.editor.worker.js") opt_cache = ["godot.editor.wasm"] subst_dict = { - "___GODOT_VERSION___": get_build_version(), + "___GODOT_VERSION___": get_build_version(False), "___GODOT_NAME___": "GodotEngine", "___GODOT_CACHE___": json.dumps(cache), "___GODOT_OPT_CACHE___": json.dumps(opt_cache), diff --git a/platform/web/export/export_plugin.cpp b/platform/web/export/export_plugin.cpp index efe3c95496..a6835a28b2 100644 --- a/platform/web/export/export_plugin.cpp +++ b/platform/web/export/export_plugin.cpp @@ -169,6 +169,7 @@ void EditorExportPlatformWeb::_fix_html(Vector<uint8_t> &p_html, const Ref<Edito replaces["$GODOT_PROJECT_NAME"] = GLOBAL_GET("application/config/name"); replaces["$GODOT_HEAD_INCLUDE"] = head_include + custom_head_include; replaces["$GODOT_CONFIG"] = str_config; + replaces["$GODOT_SPLASH_COLOR"] = "#" + Color(GLOBAL_GET("application/boot_splash/bg_color")).to_html(false); replaces["$GODOT_SPLASH"] = p_name + ".png"; if (p_preset->get("variant/thread_support")) { diff --git a/platform/web/js/libs/library_godot_fetch.js b/platform/web/js/libs/library_godot_fetch.js index 00616bc1a5..eeb3978256 100644 --- a/platform/web/js/libs/library_godot_fetch.js +++ b/platform/web/js/libs/library_godot_fetch.js @@ -59,7 +59,12 @@ const GodotFetch = { }); obj.status = response.status; obj.response = response; - obj.reader = response.body.getReader(); + // `body` can be null per spec (for example, in cases where the request method is HEAD). + // As of the time of writing, Chromium (127.0.6533.72) does not follow the spec but Firefox (131.0.3) does. + // See godotengine/godot#76825 for more information. + // See Chromium revert (of the change to follow the spec): + // https://chromium.googlesource.com/chromium/src/+/135354b7bdb554cd03c913af7c90aceead03c4d4 + obj.reader = response.body?.getReader(); obj.chunked = chunked; }, @@ -121,6 +126,10 @@ const GodotFetch = { } obj.reading = true; obj.reader.read().then(GodotFetch.onread.bind(null, id)).catch(GodotFetch.onerror.bind(null, id)); + } else if (obj.reader == null && obj.response.body == null) { + // Emulate a stream closure to maintain the request lifecycle. + obj.reading = true; + GodotFetch.onread(id, { value: undefined, done: true }); } }, }, @@ -159,7 +168,10 @@ const GodotFetch = { if (!obj.response) { return 0; } - if (obj.reader) { + // If the reader is nullish, but there is no body, and the request is not marked as done, + // the same status should be returned as though the request is currently being read + // so that the proper lifecycle closure can be handled in `read()`. + if (obj.reader || (obj.response.body == null && !obj.done)) { return 1; } if (obj.done) { diff --git a/platform/web/js/libs/library_godot_input.js b/platform/web/js/libs/library_godot_input.js index 6e3b97023d..8134631f1b 100644 --- a/platform/web/js/libs/library_godot_input.js +++ b/platform/web/js/libs/library_godot_input.js @@ -38,41 +38,57 @@ const GodotIME = { $GodotIME: { ime: null, active: false, + focusTimerIntervalId: -1, getModifiers: function (evt) { return (evt.shiftKey + 0) + ((evt.altKey + 0) << 1) + ((evt.ctrlKey + 0) << 2) + ((evt.metaKey + 0) << 3); }, ime_active: function (active) { - function focus_timer() { - GodotIME.active = true; - GodotIME.ime.focus(); + function clearFocusTimerInterval() { + clearInterval(GodotIME.focusTimerIntervalId); + GodotIME.focusTimerIntervalId = -1; } - if (GodotIME.ime) { - if (active) { - GodotIME.ime.style.display = 'block'; - setInterval(focus_timer, 100); - } else { - GodotIME.ime.style.display = 'none'; - GodotConfig.canvas.focus(); - GodotIME.active = false; + function focusTimer() { + if (GodotIME.ime == null) { + clearFocusTimerInterval(); + return; } + GodotIME.ime.focus(); + } + + if (GodotIME.focusTimerIntervalId > -1) { + clearFocusTimerInterval(); + } + + if (GodotIME.ime == null) { + return; + } + + GodotIME.active = active; + if (active) { + GodotIME.ime.style.display = 'block'; + GodotIME.focusTimerIntervalId = setInterval(focusTimer, 100); + } else { + GodotIME.ime.style.display = 'none'; + GodotConfig.canvas.focus(); } }, ime_position: function (x, y) { - if (GodotIME.ime) { - const canvas = GodotConfig.canvas; - const rect = canvas.getBoundingClientRect(); - const rw = canvas.width / rect.width; - const rh = canvas.height / rect.height; - const clx = (x / rw) + rect.x; - const cly = (y / rh) + rect.y; - - GodotIME.ime.style.left = `${clx}px`; - GodotIME.ime.style.top = `${cly}px`; + if (GodotIME.ime == null) { + return; } + const canvas = GodotConfig.canvas; + const rect = canvas.getBoundingClientRect(); + const rw = canvas.width / rect.width; + const rh = canvas.height / rect.height; + const clx = (x / rw) + rect.x; + const cly = (y / rh) + rect.y; + + GodotIME.ime.style.left = `${clx}px`; + GodotIME.ime.style.top = `${cly}px`; }, init: function (ime_cb, key_cb, code, key) { @@ -84,20 +100,27 @@ const GodotIME = { evt.preventDefault(); } function ime_event_cb(event) { - if (GodotIME.ime) { - if (event.type === 'compositionstart') { - ime_cb(0, null); - GodotIME.ime.innerHTML = ''; - } else if (event.type === 'compositionupdate') { - const ptr = GodotRuntime.allocString(event.data); - ime_cb(1, ptr); - GodotRuntime.free(ptr); - } else if (event.type === 'compositionend') { - const ptr = GodotRuntime.allocString(event.data); - ime_cb(2, ptr); - GodotRuntime.free(ptr); - GodotIME.ime.innerHTML = ''; - } + if (GodotIME.ime == null) { + return; + } + switch (event.type) { + case 'compositionstart': + ime_cb(0, null); + GodotIME.ime.innerHTML = ''; + break; + case 'compositionupdate': { + const ptr = GodotRuntime.allocString(event.data); + ime_cb(1, ptr); + GodotRuntime.free(ptr); + } break; + case 'compositionend': { + const ptr = GodotRuntime.allocString(event.data); + ime_cb(2, ptr); + GodotRuntime.free(ptr); + GodotIME.ime.innerHTML = ''; + } break; + default: + // Do nothing. } } @@ -133,10 +156,15 @@ const GodotIME = { }, clear: function () { - if (GodotIME.ime) { - GodotIME.ime.remove(); - GodotIME.ime = null; + if (GodotIME.ime == null) { + return; + } + if (GodotIME.focusTimerIntervalId > -1) { + clearInterval(GodotIME.focusTimerIntervalId); + GodotIME.focusTimerIntervalId = -1; } + GodotIME.ime.remove(); + GodotIME.ime = null; }, }, }; diff --git a/platform/web/package-lock.json b/platform/web/package-lock.json index a2e0fd3b27..7947fb96e4 100644 --- a/platform/web/package-lock.json +++ b/platform/web/package-lock.json @@ -9,14 +9,14 @@ "version": "1.0.0", "license": "MIT", "devDependencies": { - "@eslint/js": "^9.3.0", - "@html-eslint/eslint-plugin": "^0.24.1", - "@html-eslint/parser": "^0.24.1", - "@stylistic/eslint-plugin": "^2.1.0", - "eslint": "^9.3.0", + "@eslint/js": "^9.12.0", + "@html-eslint/eslint-plugin": "^0.27.0", + "@html-eslint/parser": "^0.27.0", + "@stylistic/eslint-plugin": "^2.9.0", + "eslint": "^9.12.0", "eslint-plugin-html": "^8.1.1", "espree": "^10.0.1", - "globals": "^15.3.0", + "globals": "^15.9.0", "jsdoc": "^4.0.3" } }, @@ -60,14 +60,40 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, + "node_modules/@eslint/config-array": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz", + "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.6.0.tgz", + "integrity": "sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/eslintrc": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", @@ -104,28 +130,54 @@ } }, "node_modules/@eslint/js": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.3.0.tgz", - "integrity": "sha512-niBqk8iwv96+yuTwjM6bWg8ovzAPF9qkICsGtcoa5/dmqcEMfdwNAX7+/OHcJHc7wj7XqPxH98oAHytFYlw6Sw==", + "version": "9.12.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.12.0.tgz", + "integrity": "sha512-eohesHH8WFRUprDNyEREgqP6beG6htMeUYeCpkEgBCieCMme5r9zFWjzAJp//9S+Kub4rqE+jXe9Cp1a7IYIIA==", "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.1.tgz", + "integrity": "sha512-HFZ4Mp26nbWk9d/BpvP0YNL6W4UoZF0VFcTw/aPPA8RpOxeFQgK+ClABGgAUXs9Y/RGX/l1vOmrqz1MQt9MNuw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "levn": "^0.4.1" + }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@html-eslint/eslint-plugin": { - "version": "0.24.1", - "resolved": "https://registry.npmjs.org/@html-eslint/eslint-plugin/-/eslint-plugin-0.24.1.tgz", - "integrity": "sha512-JwNDQBrNIWEPcxgSpla/2jaUXyQCqL7Xp8CmON4Bk5qg8MwiDLXOgjylfVC+tN52i8JeHWMca34I9DqBGRj9Qg==", + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/@html-eslint/eslint-plugin/-/eslint-plugin-0.27.0.tgz", + "integrity": "sha512-aAF14sgDKidMCCQpJ4kIhe+fwyAaAbvDlgVTIgd99F+HOWxokTTXDt39a3gewMBo76IeEHDaoizUDJQ/Vc7Mdg==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@html-eslint/parser": { - "version": "0.24.1", - "resolved": "https://registry.npmjs.org/@html-eslint/parser/-/parser-0.24.1.tgz", - "integrity": "sha512-O13xX/+Ldh0P7VZMpDDYc3XtWiE1cYm5QhVJ0VB5i7D8Q69HrrGN+5BjS17vkCoLTz+3zWWIiJv4oFmyS5LReA==", + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/@html-eslint/parser/-/parser-0.27.0.tgz", + "integrity": "sha512-F/A1M0jnDAYoRvJiiSC7pIBD9DAsf4EhbndbvEi81aozD/wI8WWXON50xZPUaGHCI1C+2syTVifxDz8MvDKaQA==", "dev": true, + "license": "MIT", "dependencies": { "es-html-parser": "^0.0.9" }, @@ -133,18 +185,28 @@ "node": ">=8.10.0" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", - "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "node_modules/@humanfs/core": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.0.tgz", + "integrity": "sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==", "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.5", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.5.tgz", + "integrity": "sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "@humanwhocodes/object-schema": "^2.0.3", - "debug": "^4.3.1", - "minimatch": "^3.0.5" + "@humanfs/core": "^0.19.0", + "@humanwhocodes/retry": "^0.3.0" }, "engines": { - "node": ">=10.10.0" + "node": ">=18.18.0" } }, "node_modules/@humanwhocodes/module-importer": { @@ -160,17 +222,12 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "dev": true - }, "node_modules/@humanwhocodes/retry": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.0.tgz", - "integrity": "sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=18.18" }, @@ -227,50 +284,15 @@ } }, "node_modules/@stylistic/eslint-plugin": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-2.1.0.tgz", - "integrity": "sha512-cBBowKP2u/+uE5CzgH5w8pE9VKqcM7BXdIDPIbGt2rmLJGnA6MJPr9vYGaqgMoJFs7R/FzsMQerMvvEP40g2uw==", - "dev": true, - "dependencies": { - "@stylistic/eslint-plugin-js": "2.1.0", - "@stylistic/eslint-plugin-jsx": "2.1.0", - "@stylistic/eslint-plugin-plus": "2.1.0", - "@stylistic/eslint-plugin-ts": "2.1.0", - "@types/eslint": "^8.56.10" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "peerDependencies": { - "eslint": ">=8.40.0" - } - }, - "node_modules/@stylistic/eslint-plugin-js": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-js/-/eslint-plugin-js-2.1.0.tgz", - "integrity": "sha512-gdXUjGNSsnY6nPyqxu6lmDTtVrwCOjun4x8PUn0x04d5ucLI74N3MT1Q0UhdcOR9No3bo5PGDyBgXK+KmD787A==", - "dev": true, - "dependencies": { - "@types/eslint": "^8.56.10", - "acorn": "^8.11.3", - "eslint-visitor-keys": "^4.0.0", - "espree": "^10.0.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "peerDependencies": { - "eslint": ">=8.40.0" - } - }, - "node_modules/@stylistic/eslint-plugin-jsx": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-jsx/-/eslint-plugin-jsx-2.1.0.tgz", - "integrity": "sha512-mMD7S+IndZo2vxmwpHVTCwx2O1VdtE5tmpeNwgaEcXODzWV1WTWpnsc/PECQKIr/mkLPFWiSIqcuYNhQ/3l6AQ==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-2.9.0.tgz", + "integrity": "sha512-OrDyFAYjBT61122MIY1a3SfEgy3YCMgt2vL4eoPmvTwDBwyQhAXurxNQznlRD/jESNfYWfID8Ej+31LljvF7Xg==", "dev": true, + "license": "MIT", "dependencies": { - "@stylistic/eslint-plugin-js": "^2.1.0", - "@types/eslint": "^8.56.10", + "@typescript-eslint/utils": "^8.8.0", + "eslint-visitor-keys": "^4.1.0", + "espree": "^10.2.0", "estraverse": "^5.3.0", "picomatch": "^4.0.2" }, @@ -281,101 +303,19 @@ "eslint": ">=8.40.0" } }, - "node_modules/@stylistic/eslint-plugin-plus": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-plus/-/eslint-plugin-plus-2.1.0.tgz", - "integrity": "sha512-S5QAlgYXESJaSBFhBSBLZy9o36gXrXQwWSt6QkO+F0SrT9vpV5JF/VKoh+ojO7tHzd8Ckmyouq02TT9Sv2B0zQ==", - "dev": true, - "dependencies": { - "@types/eslint": "^8.56.10", - "@typescript-eslint/utils": "^7.8.0" - }, - "peerDependencies": { - "eslint": "*" - } - }, - "node_modules/@stylistic/eslint-plugin-plus/node_modules/@typescript-eslint/utils": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.10.0.tgz", - "integrity": "sha512-olzif1Fuo8R8m/qKkzJqT7qwy16CzPRWBvERS0uvyc+DHd8AKbO4Jb7kpAvVzMmZm8TrHnI7hvjN4I05zow+tg==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.10.0", - "@typescript-eslint/types": "7.10.0", - "@typescript-eslint/typescript-estree": "7.10.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - } - }, - "node_modules/@stylistic/eslint-plugin-ts": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-ts/-/eslint-plugin-ts-2.1.0.tgz", - "integrity": "sha512-2ioFibufHYBALx2TBrU4KXovCkN8qCqcb9yIHc0fyOfTaO5jw4d56WW7YRcF3Zgde6qFyXwAN6z/+w4pnmos1g==", - "dev": true, - "dependencies": { - "@stylistic/eslint-plugin-js": "2.1.0", - "@types/eslint": "^8.56.10", - "@typescript-eslint/utils": "^7.8.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "peerDependencies": { - "eslint": ">=8.40.0" - } - }, - "node_modules/@stylistic/eslint-plugin-ts/node_modules/@typescript-eslint/utils": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.10.0.tgz", - "integrity": "sha512-olzif1Fuo8R8m/qKkzJqT7qwy16CzPRWBvERS0uvyc+DHd8AKbO4Jb7kpAvVzMmZm8TrHnI7hvjN4I05zow+tg==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.10.0", - "@typescript-eslint/types": "7.10.0", - "@typescript-eslint/typescript-estree": "7.10.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - } - }, - "node_modules/@types/eslint": { - "version": "8.56.10", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", - "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==", - "dev": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/linkify-it": { "version": "5.0.0", @@ -400,16 +340,17 @@ "dev": true }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.10.0.tgz", - "integrity": "sha512-7L01/K8W/VGl7noe2mgH0K7BE29Sq6KAbVmxurj8GGaPDZXPr8EEQ2seOeAS+mEV9DnzxBQB6ax6qQQ5C6P4xg==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.11.0.tgz", + "integrity": "sha512-Uholz7tWhXmA4r6epo+vaeV7yjdKy5QFCERMjs1kMVsLRKIrSdM6o21W2He9ftp5PP6aWOVpD5zvrvuHZC0bMQ==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.10.0", - "@typescript-eslint/visitor-keys": "7.10.0" + "@typescript-eslint/types": "8.11.0", + "@typescript-eslint/visitor-keys": "8.11.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -417,12 +358,13 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.10.0.tgz", - "integrity": "sha512-7fNj+Ya35aNyhuqrA1E/VayQX9Elwr8NKZ4WueClR3KwJ7Xx9jcCdOrLW04h51de/+gNbyFMs+IDxh5xIwfbNg==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.11.0.tgz", + "integrity": "sha512-tn6sNMHf6EBAYMvmPUaKaVeYvhUsrE6x+bXQTxjQRp360h1giATU0WvgeEys1spbvb5R+VpNOZ+XJmjD8wOUHw==", "dev": true, + "license": "MIT", "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -430,22 +372,23 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.10.0.tgz", - "integrity": "sha512-LXFnQJjL9XIcxeVfqmNj60YhatpRLt6UhdlFwAkjNc6jSUlK8zQOl1oktAP8PlWFzPQC1jny/8Bai3/HPuvN5g==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.11.0.tgz", + "integrity": "sha512-yHC3s1z1RCHoCz5t06gf7jH24rr3vns08XXhfEqzYpd6Hll3z/3g23JRi0jM8A47UFKNc3u/y5KIMx8Ynbjohg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "7.10.0", - "@typescript-eslint/visitor-keys": "7.10.0", + "@typescript-eslint/types": "8.11.0", + "@typescript-eslint/visitor-keys": "8.11.0", "debug": "^4.3.4", - "globby": "^11.1.0", + "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -462,15 +405,17 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -481,17 +426,41 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/@typescript-eslint/utils": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.11.0.tgz", + "integrity": "sha512-CYiX6WZcbXNJV7UNB4PLDIBtSdRmRI/nb0FMyqHPTQD1rMjA0foPLaPUV39C/MxkTd/QKSeX+Gb34PPsDVC35g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.11.0", + "@typescript-eslint/types": "8.11.0", + "@typescript-eslint/typescript-estree": "8.11.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + } + }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.10.0.tgz", - "integrity": "sha512-9ntIVgsi6gg6FIq9xjEO4VQJvwOqA3jaBFQJ/6TK5AvEup2+cECI6Fh7QiBxmfMHXU0V0J4RyPeOU1VDNzl9cg==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.11.0.tgz", + "integrity": "sha512-EaewX6lxSjRJnc+99+dqzTeoDZUfyrA52d2/HRrkI830kgovWsmIiTfmr0NZorzqic7ga+1bS60lRBUgR3n/Bw==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.10.0", + "@typescript-eslint/types": "8.11.0", "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -503,6 +472,7 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -511,10 +481,11 @@ } }, "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -547,15 +518,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -577,15 +539,6 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -613,6 +566,7 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^7.1.1" }, @@ -718,18 +672,6 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/dom-serializer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", @@ -816,28 +758,33 @@ } }, "node_modules/eslint": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.3.0.tgz", - "integrity": "sha512-5Iv4CsZW030lpUqHBapdPo3MJetAPtejVW8B84GIcIIv8+ohFaddXsrn1Gn8uD9ijDb+kcYKFUVmC8qG8B2ORQ==", + "version": "9.12.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.12.0.tgz", + "integrity": "sha512-UVIOlTEWxwIopRL1wgSQYdnVDcEvs2wyaO6DGo5mXqe3r16IoCNWkR29iHhyaP4cICWjbgbmFUGAhh0GJRuGZw==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", + "@eslint-community/regexpp": "^4.11.0", + "@eslint/config-array": "^0.18.0", + "@eslint/core": "^0.6.0", "@eslint/eslintrc": "^3.1.0", - "@eslint/js": "9.3.0", - "@humanwhocodes/config-array": "^0.13.0", + "@eslint/js": "9.12.0", + "@eslint/plugin-kit": "^0.2.0", + "@humanfs/node": "^0.16.5", "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.3.0", - "@nodelib/fs.walk": "^1.2.8", + "@humanwhocodes/retry": "^0.3.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.0.1", - "eslint-visitor-keys": "^4.0.0", - "espree": "^10.0.1", - "esquery": "^1.4.2", + "eslint-scope": "^8.1.0", + "eslint-visitor-keys": "^4.1.0", + "espree": "^10.2.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", @@ -846,14 +793,11 @@ "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", "text-table": "^0.2.0" }, "bin": { @@ -863,7 +807,15 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, "node_modules/eslint-plugin-html": { @@ -879,10 +831,11 @@ } }, "node_modules/eslint-scope": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.1.tgz", - "integrity": "sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.1.0.tgz", + "integrity": "sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -895,10 +848,11 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", - "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.1.0.tgz", + "integrity": "sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -907,14 +861,15 @@ } }, "node_modules/espree": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.0.1.tgz", - "integrity": "sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.2.0.tgz", + "integrity": "sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.11.3", + "acorn": "^8.12.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.0.0" + "eslint-visitor-keys": "^4.1.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -940,6 +895,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -976,6 +932,7 @@ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -992,6 +949,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -1037,6 +995,7 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -1092,10 +1051,11 @@ } }, "node_modules/globals": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.3.0.tgz", - "integrity": "sha512-cCdyVjIUVTtX8ZsPkq1oCsOsLmGIswqnjZYMJJTGaNApj1yHtLSymKhwH51ttirREn75z3p4k051clwg7rvNKA==", + "version": "15.9.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.9.0.tgz", + "integrity": "sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -1103,26 +1063,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -1217,19 +1157,11 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -1430,15 +1362,17 @@ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/micromatch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", - "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -1452,6 +1386,7 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -1572,20 +1507,12 @@ "node": ">=8" } }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/picomatch": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -1692,10 +1619,11 @@ } }, "node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -1724,27 +1652,6 @@ "node": ">=8" } }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -1780,6 +1687,7 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -1792,6 +1700,7 @@ "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=16" }, @@ -1812,10 +1721,11 @@ } }, "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", "dev": true, + "license": "Apache-2.0", "peer": true, "bin": { "tsc": "bin/tsc", diff --git a/platform/web/package.json b/platform/web/package.json index 588af2ff3b..bf61eb184c 100644 --- a/platform/web/package.json +++ b/platform/web/package.json @@ -11,14 +11,14 @@ "format": "npm run lint -- --fix" }, "devDependencies": { - "@eslint/js": "^9.3.0", - "@html-eslint/eslint-plugin": "^0.24.1", - "@html-eslint/parser": "^0.24.1", - "@stylistic/eslint-plugin": "^2.1.0", - "eslint": "^9.3.0", + "@eslint/js": "^9.12.0", + "@html-eslint/eslint-plugin": "^0.27.0", + "@html-eslint/parser": "^0.27.0", + "@stylistic/eslint-plugin": "^2.9.0", + "eslint": "^9.12.0", "eslint-plugin-html": "^8.1.1", "espree": "^10.0.1", - "globals": "^15.3.0", + "globals": "^15.9.0", "jsdoc": "^4.0.3" } } diff --git a/platform/windows/SCsub b/platform/windows/SCsub index 1d17e7b325..1ddefb9c33 100644 --- a/platform/windows/SCsub +++ b/platform/windows/SCsub @@ -24,6 +24,7 @@ common_win = [ "gl_manager_windows_angle.cpp", "wgl_detect_version.cpp", "rendering_context_driver_vulkan_windows.cpp", + "drop_target_windows.cpp", ] if env.msvc: @@ -59,6 +60,9 @@ sources += res_obj prog = env.add_program("#bin/godot", sources, PROGSUFFIX=env["PROGSUFFIX"]) arrange_program_clean(prog) +if env.msvc: + env.Depends(prog, "godot.natvis") + # Build console wrapper app. if env["windows_subsystem"] == "gui": env_wrap = env.Clone() @@ -79,16 +83,6 @@ if env["windows_subsystem"] == "gui": env_wrap.Depends(prog_wrap, prog) sources += common_win_wrap + res_wrap_obj -# Microsoft Visual Studio Project Generation -if env["vsproj"]: - env.vs_srcs += ["platform/windows/" + res_file] - env.vs_srcs += ["platform/windows/godot.natvis"] - for x in common_win: - env.vs_srcs += ["platform/windows/" + str(x)] - if env["windows_subsystem"] == "gui": - for x in common_win_wrap: - env.vs_srcs += ["platform/windows/" + str(x)] - if env["d3d12"]: dxc_target_aliases = { "x86_32": "x86", diff --git a/platform/windows/crash_handler_windows.h b/platform/windows/crash_handler_windows.h index a0a0b610d0..f47d9ec66e 100644 --- a/platform/windows/crash_handler_windows.h +++ b/platform/windows/crash_handler_windows.h @@ -51,7 +51,7 @@ public: void initialize(); void disable(); - bool is_disabled() const { return disabled; }; + bool is_disabled() const { return disabled; } CrashHandler(); ~CrashHandler(); diff --git a/platform/windows/crash_handler_windows_signal.cpp b/platform/windows/crash_handler_windows_signal.cpp index e11a60bdc7..c3a0d08ad6 100644 --- a/platform/windows/crash_handler_windows_signal.cpp +++ b/platform/windows/crash_handler_windows_signal.cpp @@ -159,7 +159,7 @@ extern void CrashHandlerException(int signal) { // Load process and image info to determine ASLR addresses offset. MODULEINFO mi; - GetModuleInformation(GetCurrentProcess(), GetModuleHandle(NULL), &mi, sizeof(mi)); + GetModuleInformation(GetCurrentProcess(), GetModuleHandle(nullptr), &mi, sizeof(mi)); int64_t image_mem_base = reinterpret_cast<int64_t>(mi.lpBaseOfDll); int64_t image_file_base = get_image_base(_execpath); data.offset = image_mem_base - image_file_base; diff --git a/platform/windows/detect.py b/platform/windows/detect.py index 4043f3a8c2..e1109db24f 100644 --- a/platform/windows/detect.py +++ b/platform/windows/detect.py @@ -6,7 +6,7 @@ from typing import TYPE_CHECKING import methods from methods import print_error, print_warning -from platform_methods import detect_arch +from platform_methods import detect_arch, validate_arch if TYPE_CHECKING: from SCons.Script.SConscript import SConsEnvironment @@ -68,23 +68,23 @@ def can_build(): def get_mingw_bin_prefix(prefix, arch): - if not prefix: - mingw_bin_prefix = "" - elif prefix[-1] != "/": - mingw_bin_prefix = prefix + "/bin/" - else: - mingw_bin_prefix = prefix + "bin/" + bin_prefix = (os.path.normpath(os.path.join(prefix, "bin")) + os.sep) if prefix else "" + ARCH_PREFIXES = { + "x86_64": "x86_64-w64-mingw32-", + "x86_32": "i686-w64-mingw32-", + "arm32": "armv7-w64-mingw32-", + "arm64": "aarch64-w64-mingw32-", + } + arch_prefix = ARCH_PREFIXES[arch] if arch else "" + return bin_prefix + arch_prefix - if arch == "x86_64": - mingw_bin_prefix += "x86_64-w64-mingw32-" - elif arch == "x86_32": - mingw_bin_prefix += "i686-w64-mingw32-" - elif arch == "arm32": - mingw_bin_prefix += "armv7-w64-mingw32-" - elif arch == "arm64": - mingw_bin_prefix += "aarch64-w64-mingw32-" - return mingw_bin_prefix +def get_detected(env: "SConsEnvironment", tool: str) -> str: + checks = [ + get_mingw_bin_prefix(env["mingw_prefix"], env["arch"]) + tool, + get_mingw_bin_prefix(env["mingw_prefix"], "") + tool, + ] + return str(env.Detect(checks)) def detect_build_env_arch(): @@ -245,41 +245,6 @@ def get_flags(): } -def build_res_file(target, source, env: "SConsEnvironment"): - arch_aliases = { - "x86_32": "pe-i386", - "x86_64": "pe-x86-64", - "arm32": "armv7-w64-mingw32", - "arm64": "aarch64-w64-mingw32", - } - cmdbase = "windres --include-dir . --target=" + arch_aliases[env["arch"]] - - mingw_bin_prefix = get_mingw_bin_prefix(env["mingw_prefix"], env["arch"]) - - for x in range(len(source)): - ok = True - # Try prefixed executable (MinGW on Linux). - cmd = mingw_bin_prefix + cmdbase + " -i " + str(source[x]) + " -o " + str(target[x]) - try: - out = subprocess.Popen(cmd, shell=True, stderr=subprocess.PIPE).communicate() - if len(out[1]): - ok = False - except Exception: - ok = False - - # Try generic executable (MSYS2). - if not ok: - cmd = cmdbase + " -i " + str(source[x]) + " -o " + str(target[x]) - try: - out = subprocess.Popen(cmd, shell=True, stderr=subprocess.PIPE).communicate() - if len(out[1]): - return -1 - except Exception: - return -1 - - return 0 - - def setup_msvc_manual(env: "SConsEnvironment"): """Running from VCVARS environment""" @@ -361,6 +326,10 @@ def setup_mingw(env: "SConsEnvironment"): print_error("No valid compilers found, use MINGW_PREFIX environment variable to set MinGW path.") sys.exit(255) + env.Tool("mingw") + env.AppendUnique(CCFLAGS=env.get("ccflags", "").split()) + env.AppendUnique(RCFLAGS=env.get("rcflags", "").split()) + print("Using MinGW, arch %s" % (env["arch"])) @@ -483,9 +452,7 @@ def configure_msvc(env: "SConsEnvironment", vcvars_msvc_config): else: print_warning("Missing environment variable: WindowsSdkDir") - if int(env["target_win_version"], 16) < 0x0601: - print_error("`target_win_version` should be 0x0601 or higher (Windows 7).") - sys.exit(255) + validate_win_version(env) env.AppendUnique( CPPDEFINES=[ @@ -549,15 +516,7 @@ def configure_msvc(env: "SConsEnvironment", vcvars_msvc_config): LIBS += ["vulkan"] if env["d3d12"]: - # Check whether we have d3d12 dependencies installed. - if not os.path.exists(env["mesa_libs"]): - print_error( - "The Direct3D 12 rendering driver requires dependencies to be installed.\n" - "You can install them by running `python misc\\scripts\\install_d3d12_sdk_windows.py`.\n" - "See the documentation for more information:\n\t" - "https://docs.godotengine.org/en/latest/contributing/development/compiling/compiling_for_windows.html" - ) - sys.exit(255) + check_d3d12_installed(env) env.AppendUnique(CPPDEFINES=["D3D12_ENABLED", "RD_ENABLED"]) LIBS += ["dxgi", "dxguid"] @@ -662,7 +621,7 @@ def get_ar_version(env): print_warning("Couldn't check version of `ar`.") return ret - match = re.search(r"GNU ar \(GNU Binutils\) (\d+)\.(\d+)(?:\.(\d+))?", output) + match = re.search(r"GNU ar(?: \(GNU Binutils\)| version) (\d+)\.(\d+)(?:\.(\d+))?", output) if match: ret["major"] = int(match[1]) ret["minor"] = int(match[2]) @@ -716,6 +675,13 @@ def configure_mingw(env: "SConsEnvironment"): # https://www.scons.org/wiki/LongCmdLinesOnWin32 env.use_windows_spawn_fix() + # HACK: For some reason, Windows-native shells have their MinGW tools + # frequently fail as a result of parsing path separators incorrectly. + # For some other reason, this issue is circumvented entirely if the + # `mingw_prefix` bin is prepended to PATH. + if os.sep == "\\": + env.PrependENVPath("PATH", os.path.join(env["mingw_prefix"], "bin")) + # In case the command line to AR is too long, use a response file. env["ARCOM_ORIG"] = env["ARCOM"] env["ARCOM"] = "${TEMPFILE('$ARCOM_ORIG', '$ARCOMSTR')}" @@ -753,9 +719,6 @@ def configure_mingw(env: "SConsEnvironment"): ## Compiler configuration - if os.name != "nt": - env["PROGSUFFIX"] = env["PROGSUFFIX"] + ".exe" # for linux cross-compilation - if env["arch"] == "x86_32": if env["use_static_cpp"]: env.Append(LINKFLAGS=["-static"]) @@ -770,28 +733,31 @@ def configure_mingw(env: "SConsEnvironment"): env.Append(CCFLAGS=["-ffp-contract=off"]) - mingw_bin_prefix = get_mingw_bin_prefix(env["mingw_prefix"], env["arch"]) - if env["use_llvm"]: - env["CC"] = mingw_bin_prefix + "clang" - env["CXX"] = mingw_bin_prefix + "clang++" - if try_cmd("as --version", env["mingw_prefix"], env["arch"]): - env["AS"] = mingw_bin_prefix + "as" - env.Append(ASFLAGS=["-c"]) - if try_cmd("ar --version", env["mingw_prefix"], env["arch"]): - env["AR"] = mingw_bin_prefix + "ar" - if try_cmd("ranlib --version", env["mingw_prefix"], env["arch"]): - env["RANLIB"] = mingw_bin_prefix + "ranlib" + env["CC"] = get_detected(env, "clang") + env["CXX"] = get_detected(env, "clang++") + env["AR"] = get_detected(env, "ar") + env["RANLIB"] = get_detected(env, "ranlib") + env.Append(ASFLAGS=["-c"]) env.extra_suffix = ".llvm" + env.extra_suffix else: - env["CC"] = mingw_bin_prefix + "gcc" - env["CXX"] = mingw_bin_prefix + "g++" - if try_cmd("as --version", env["mingw_prefix"], env["arch"]): - env["AS"] = mingw_bin_prefix + "as" - if try_cmd("gcc-ar --version", env["mingw_prefix"], env["arch"]): - env["AR"] = mingw_bin_prefix + "gcc-ar" - if try_cmd("gcc-ranlib --version", env["mingw_prefix"], env["arch"]): - env["RANLIB"] = mingw_bin_prefix + "gcc-ranlib" + env["CC"] = get_detected(env, "gcc") + env["CXX"] = get_detected(env, "g++") + env["AR"] = get_detected(env, "gcc-ar" if os.name != "nt" else "ar") + env["RANLIB"] = get_detected(env, "gcc-ranlib") + + env["RC"] = get_detected(env, "windres") + ARCH_TARGETS = { + "x86_32": "pe-i386", + "x86_64": "pe-x86-64", + "arm32": "armv7-w64-mingw32", + "arm64": "aarch64-w64-mingw32", + } + env.AppendUnique(RCFLAGS=f"--target={ARCH_TARGETS[env['arch']]}") + + env["AS"] = get_detected(env, "as") + env["OBJCOPY"] = get_detected(env, "objcopy") + env["STRIP"] = get_detected(env, "strip") ## LTO @@ -819,9 +785,7 @@ def configure_mingw(env: "SConsEnvironment"): ## Compile flags - if int(env["target_win_version"], 16) < 0x0601: - print_error("`target_win_version` should be 0x0601 or higher (Windows 7).") - sys.exit(255) + validate_win_version(env) if not env["use_llvm"]: env.Append(CCFLAGS=["-mwindows"]) @@ -899,15 +863,7 @@ def configure_mingw(env: "SConsEnvironment"): env.Append(LIBS=["vulkan"]) if env["d3d12"]: - # Check whether we have d3d12 dependencies installed. - if not os.path.exists(env["mesa_libs"]): - print_error( - "The Direct3D 12 rendering driver requires dependencies to be installed.\n" - "You can install them by running `python misc\\scripts\\install_d3d12_sdk_windows.py`.\n" - "See the documentation for more information:\n\t" - "https://docs.godotengine.org/en/latest/contributing/development/compiling/compiling_for_windows.html" - ) - sys.exit(255) + check_d3d12_installed(env) env.AppendUnique(CPPDEFINES=["D3D12_ENABLED", "RD_ENABLED"]) env.Append(LIBS=["dxgi", "dxguid"]) @@ -943,19 +899,11 @@ def configure_mingw(env: "SConsEnvironment"): env.Append(CPPDEFINES=["MINGW_ENABLED", ("MINGW_HAS_SECURE_API", 1)]) - # resrc - env.Append(BUILDERS={"RES": env.Builder(action=build_res_file, suffix=".o", src_suffix=".rc")}) - def configure(env: "SConsEnvironment"): # Validate arch. supported_arches = ["x86_32", "x86_64", "arm32", "arm64"] - if env["arch"] not in supported_arches: - print_error( - 'Unsupported CPU architecture "%s" for Windows. Supported architectures are: %s.' - % (env["arch"], ", ".join(supported_arches)) - ) - sys.exit(255) + validate_arch(env["arch"], get_name(), supported_arches) # At this point the env has been set up with basic tools/compilers. env.Prepend(CPPPATH=["#platform/windows"]) @@ -983,3 +931,20 @@ def configure(env: "SConsEnvironment"): else: # MinGW configure_mingw(env) + + +def check_d3d12_installed(env): + if not os.path.exists(env["mesa_libs"]): + print_error( + "The Direct3D 12 rendering driver requires dependencies to be installed.\n" + "You can install them by running `python misc\\scripts\\install_d3d12_sdk_windows.py`.\n" + "See the documentation for more information:\n\t" + "https://docs.godotengine.org/en/latest/contributing/development/compiling/compiling_for_windows.html" + ) + sys.exit(255) + + +def validate_win_version(env): + if int(env["target_win_version"], 16) < 0x0601: + print_error("`target_win_version` should be 0x0601 or higher (Windows 7).") + sys.exit(255) diff --git a/platform/windows/display_server_windows.cpp b/platform/windows/display_server_windows.cpp index ffa3840181..467873ee7c 100644 --- a/platform/windows/display_server_windows.cpp +++ b/platform/windows/display_server_windows.cpp @@ -30,6 +30,7 @@ #include "display_server_windows.h" +#include "drop_target_windows.h" #include "os_windows.h" #include "wgl_detect_version.h" @@ -67,6 +68,18 @@ #define DWMWA_USE_IMMERSIVE_DARK_MODE_BEFORE_20H1 19 #endif +#ifndef DWMWA_WINDOW_CORNER_PREFERENCE +#define DWMWA_WINDOW_CORNER_PREFERENCE 33 +#endif + +#ifndef DWMWCP_DEFAULT +#define DWMWCP_DEFAULT 0 +#endif + +#ifndef DWMWCP_DONOTROUND +#define DWMWCP_DONOTROUND 1 +#endif + #define WM_INDICATOR_CALLBACK_MESSAGE (WM_USER + 1) #if defined(__GNUC__) @@ -117,6 +130,7 @@ bool DisplayServerWindows::has_feature(Feature p_feature) const { case FEATURE_NATIVE_DIALOG: case FEATURE_NATIVE_DIALOG_INPUT: case FEATURE_NATIVE_DIALOG_FILE: + case FEATURE_NATIVE_DIALOG_FILE_EXTRA: case FEATURE_SWAP_BUFFERS: case FEATURE_KEEP_SCREEN_ON: case FEATURE_TEXT_TO_SPEECH: @@ -304,8 +318,8 @@ public: } // IFileDialogEvents methods - HRESULT STDMETHODCALLTYPE OnFileOk(IFileDialog *) { return S_OK; }; - HRESULT STDMETHODCALLTYPE OnFolderChange(IFileDialog *) { return S_OK; }; + HRESULT STDMETHODCALLTYPE OnFileOk(IFileDialog *) { return S_OK; } + HRESULT STDMETHODCALLTYPE OnFolderChange(IFileDialog *) { return S_OK; } HRESULT STDMETHODCALLTYPE OnFolderChanging(IFileDialog *p_pfd, IShellItem *p_item) { if (root.is_empty()) { @@ -324,11 +338,11 @@ public: return S_OK; } - HRESULT STDMETHODCALLTYPE OnHelp(IFileDialog *) { return S_OK; }; - HRESULT STDMETHODCALLTYPE OnSelectionChange(IFileDialog *) { return S_OK; }; - HRESULT STDMETHODCALLTYPE OnShareViolation(IFileDialog *, IShellItem *, FDE_SHAREVIOLATION_RESPONSE *) { return S_OK; }; - HRESULT STDMETHODCALLTYPE OnTypeChange(IFileDialog *pfd) { return S_OK; }; - HRESULT STDMETHODCALLTYPE OnOverwrite(IFileDialog *, IShellItem *, FDE_OVERWRITE_RESPONSE *) { return S_OK; }; + HRESULT STDMETHODCALLTYPE OnHelp(IFileDialog *) { return S_OK; } + HRESULT STDMETHODCALLTYPE OnSelectionChange(IFileDialog *) { return S_OK; } + HRESULT STDMETHODCALLTYPE OnShareViolation(IFileDialog *, IShellItem *, FDE_SHAREVIOLATION_RESPONSE *) { return S_OK; } + HRESULT STDMETHODCALLTYPE OnTypeChange(IFileDialog *pfd) { return S_OK; } + HRESULT STDMETHODCALLTYPE OnOverwrite(IFileDialog *, IShellItem *, FDE_OVERWRITE_RESPONSE *) { return S_OK; } // IFileDialogControlEvents methods HRESULT STDMETHODCALLTYPE OnItemSelected(IFileDialogCustomize *p_pfdc, DWORD p_ctl_id, DWORD p_item_idx) { @@ -338,14 +352,14 @@ public: return S_OK; } - HRESULT STDMETHODCALLTYPE OnButtonClicked(IFileDialogCustomize *, DWORD) { return S_OK; }; + HRESULT STDMETHODCALLTYPE OnButtonClicked(IFileDialogCustomize *, DWORD) { return S_OK; } HRESULT STDMETHODCALLTYPE OnCheckButtonToggled(IFileDialogCustomize *p_pfdc, DWORD p_ctl_id, BOOL p_checked) { if (ctls.has(p_ctl_id)) { selected[ctls[p_ctl_id]] = (bool)p_checked; } return S_OK; } - HRESULT STDMETHODCALLTYPE OnControlActivating(IFileDialogCustomize *, DWORD) { return S_OK; }; + HRESULT STDMETHODCALLTYPE OnControlActivating(IFileDialogCustomize *, DWORD) { return S_OK; } Dictionary get_selected() { return selected; @@ -491,7 +505,7 @@ void DisplayServerWindows::_thread_fd_monitor(void *p_ud) { } if (filter_names.is_empty()) { filter_exts.push_back(String("*.*").utf16()); - filter_names.push_back(RTR("All Files").utf16()); + filter_names.push_back((RTR("All Files") + " (*)").utf16()); } Vector<COMDLG_FILTERSPEC> filters; @@ -722,7 +736,7 @@ Error DisplayServerWindows::_file_dialog_with_options_show(const String &p_title GetWindowRect(fd->hwnd_owner, &crect); fd->wrect = Rect2i(crect.left, crect.top, crect.right - crect.left, crect.bottom - crect.top); } else { - fd->hwnd_owner = 0; + fd->hwnd_owner = nullptr; fd->wrect = Rect2i(CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT); } fd->appid = appname; @@ -1483,6 +1497,9 @@ DisplayServer::WindowID DisplayServerWindows::create_sub_window(WindowMode p_mod if (p_flags & WINDOW_FLAG_ALWAYS_ON_TOP_BIT && p_mode != WINDOW_MODE_FULLSCREEN && p_mode != WINDOW_MODE_EXCLUSIVE_FULLSCREEN) { wd.always_on_top = true; } + if (p_flags & WINDOW_FLAG_SHARP_CORNERS_BIT) { + wd.sharp_corners = true; + } if (p_flags & WINDOW_FLAG_NO_FOCUS_BIT) { wd.no_focus = true; } @@ -1601,11 +1618,17 @@ void DisplayServerWindows::delete_sub_window(WindowID p_window) { } #endif - if ((tablet_get_current_driver() == "wintab") && wintab_available && windows[p_window].wtctx) { - wintab_WTClose(windows[p_window].wtctx); - windows[p_window].wtctx = nullptr; + if ((tablet_get_current_driver() == "wintab") && wintab_available && wd.wtctx) { + wintab_WTClose(wd.wtctx); + wd.wtctx = nullptr; + } + + if (wd.drop_target != nullptr) { + RevokeDragDrop(wd.hWnd); + wd.drop_target->Release(); } - DestroyWindow(windows[p_window].hWnd); + + DestroyWindow(wd.hWnd); windows.erase(p_window); if (last_focused_window == p_window) { @@ -1650,6 +1673,18 @@ int64_t DisplayServerWindows::window_get_native_handle(HandleType p_handle_type, } return 0; } + case EGL_DISPLAY: { + if (gl_manager_angle) { + return (int64_t)gl_manager_angle->get_display(p_window); + } + return 0; + } + case EGL_CONFIG: { + if (gl_manager_angle) { + return (int64_t)gl_manager_angle->get_config(p_window); + } + return 0; + } #endif default: { return 0; @@ -1703,7 +1738,14 @@ void DisplayServerWindows::window_set_drop_files_callback(const Callable &p_call _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); - windows[p_window].drop_files_callback = p_callable; + WindowData &window_data = windows[p_window]; + + window_data.drop_files_callback = p_callable; + + if (window_data.drop_target == nullptr) { + window_data.drop_target = memnew(DropTargetWindows(&window_data)); + ERR_FAIL_COND(RegisterDragDrop(window_data.hWnd, window_data.drop_target) != S_OK); + } } void DisplayServerWindows::window_set_title(const String &p_title, WindowID p_window) { @@ -2297,6 +2339,12 @@ void DisplayServerWindows::window_set_flag(WindowFlags p_flag, bool p_enabled, W wd.always_on_top = p_enabled; _update_window_style(p_window); } break; + case WINDOW_FLAG_SHARP_CORNERS: { + wd.sharp_corners = p_enabled; + DWORD value = wd.sharp_corners ? DWMWCP_DONOTROUND : DWMWCP_DEFAULT; + ::DwmSetWindowAttribute(wd.hWnd, DWMWA_WINDOW_CORNER_PREFERENCE, &value, sizeof(value)); + _update_window_style(p_window); + } break; case WINDOW_FLAG_TRANSPARENT: { if (p_enabled) { // Enable per-pixel alpha. @@ -3994,6 +4042,10 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA native_menu->_menu_activate(HMENU(lParam), (int)wParam); } break; case WM_CREATE: { + { + DWORD value = windows[window_id].sharp_corners ? DWMWCP_DONOTROUND : DWMWCP_DEFAULT; + ::DwmSetWindowAttribute(windows[window_id].hWnd, DWMWA_WINDOW_CORNER_PREFERENCE, &value, sizeof(value)); + } if (is_dark_mode_supported() && dark_title_available) { BOOL value = is_dark_mode(); @@ -4740,9 +4792,12 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA break; } - DisplayServer::WindowID receiving_window_id = _get_focused_window_or_popup(); - if (receiving_window_id == INVALID_WINDOW_ID) { - receiving_window_id = window_id; + DisplayServer::WindowID receiving_window_id = window_id; + if (mouse_mode == MOUSE_MODE_CAPTURED || mouse_mode == MOUSE_MODE_CONFINED || mouse_mode == MOUSE_MODE_CONFINED_HIDDEN) { + receiving_window_id = _get_focused_window_or_popup(); + if (receiving_window_id == INVALID_WINDOW_ID) { + receiving_window_id = window_id; + } } const BitField<WinKeyModifierMask> &mods = _get_mods(); @@ -5282,32 +5337,6 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA } } } break; - case WM_DROPFILES: { - HDROP hDropInfo = (HDROP)wParam; - const int buffsize = 4096; - WCHAR buf[buffsize]; - - int fcount = DragQueryFileW(hDropInfo, 0xFFFFFFFF, nullptr, 0); - - Vector<String> files; - - for (int i = 0; i < fcount; i++) { - DragQueryFileW(hDropInfo, i, buf, buffsize); - String file = String::utf16((const char16_t *)buf); - files.push_back(file); - } - - if (files.size() && windows[window_id].drop_files_callback.is_valid()) { - Variant v_files = files; - const Variant *v_args[1] = { &v_files }; - Variant ret; - Callable::CallError ce; - windows[window_id].drop_files_callback.callp((const Variant **)&v_args, 1, ret, ce); - if (ce.error != Callable::CallError::CALL_OK) { - ERR_PRINT(vformat("Failed to execute drop files callback: %s.", Variant::get_callable_error_text(windows[window_id].drop_files_callback, v_args, 1, ce))); - } - } - } break; default: { if (user_proc) { return CallWindowProcW(user_proc, hWnd, uMsg, wParam, lParam); @@ -5412,7 +5441,7 @@ void DisplayServerWindows::_process_key_events() { k->set_physical_keycode(physical_keycode); k->set_key_label(key_label); k->set_unicode(fix_unicode(unicode)); - if (k->get_unicode() && ke.altgr) { + if (k->get_unicode() && ke.altgr && windows[ke.window_id].ime_active) { k->set_alt_pressed(false); k->set_ctrl_pressed(false); } @@ -5488,7 +5517,7 @@ void DisplayServerWindows::_process_key_events() { } k->set_unicode(fix_unicode(unicode)); } - if (k->get_unicode() && ke.altgr) { + if (k->get_unicode() && ke.altgr && windows[ke.window_id].ime_active) { k->set_alt_pressed(false); k->set_ctrl_pressed(false); } @@ -5645,6 +5674,12 @@ DisplayServer::WindowID DisplayServerWindows::_create_window(WindowMode p_mode, wd_transient_parent->transient_children.insert(id); } + wd.sharp_corners = p_flags & WINDOW_FLAG_SHARP_CORNERS_BIT; + { + DWORD value = wd.sharp_corners ? DWMWCP_DONOTROUND : DWMWCP_DEFAULT; + ::DwmSetWindowAttribute(wd.hWnd, DWMWA_WINDOW_CORNER_PREFERENCE, &value, sizeof(value)); + } + if (is_dark_mode_supported() && dark_title_available) { BOOL value = is_dark_mode(); ::DwmSetWindowAttribute(wd.hWnd, use_legacy_dark_mode_before_20H1 ? DWMWA_USE_IMMERSIVE_DARK_MODE_BEFORE_20H1 : DWMWA_USE_IMMERSIVE_DARK_MODE, &value, sizeof(value)); @@ -6130,6 +6165,8 @@ DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, Win FreeLibrary(comctl32); } + OleInitialize(nullptr); + memset(&wc, 0, sizeof(WNDCLASSEXW)); wc.cbSize = sizeof(WNDCLASSEXW); wc.style = CS_OWNDC | CS_DBLCLKS; @@ -6195,6 +6232,7 @@ DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, Win } } #endif +#if defined(GLES3_ENABLED) bool fallback_to_opengl3 = GLOBAL_GET("rendering/rendering_device/fallback_to_opengl3"); if (failed && fallback_to_opengl3 && rendering_driver != "opengl3") { memdelete(rendering_context); @@ -6206,6 +6244,7 @@ DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, Win OS::get_singleton()->set_current_rendering_driver_name(rendering_driver); failed = false; } +#endif if (failed) { memdelete(rendering_context); rendering_context = nullptr; @@ -6369,7 +6408,10 @@ DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, Win } WindowID main_window = _create_window(p_mode, p_vsync_mode, p_flags, Rect2i(window_position, p_resolution), false, INVALID_WINDOW_ID); - ERR_FAIL_COND_MSG(main_window == INVALID_WINDOW_ID, "Failed to create main window."); + if (main_window == INVALID_WINDOW_ID) { + r_error = ERR_UNAVAILABLE; + ERR_FAIL_MSG("Failed to create main window."); + } joypad = new JoypadWindows(&windows[MAIN_WINDOW_ID].hWnd); @@ -6557,6 +6599,12 @@ DisplayServerWindows::~DisplayServerWindows() { wintab_WTClose(windows[MAIN_WINDOW_ID].wtctx); windows[MAIN_WINDOW_ID].wtctx = nullptr; } + + if (windows[MAIN_WINDOW_ID].drop_target != nullptr) { + RevokeDragDrop(windows[MAIN_WINDOW_ID].hWnd); + windows[MAIN_WINDOW_ID].drop_target->Release(); + } + DestroyWindow(windows[MAIN_WINDOW_ID].hWnd); } @@ -6588,4 +6636,6 @@ DisplayServerWindows::~DisplayServerWindows() { if (tts) { memdelete(tts); } + + OleUninitialize(); } diff --git a/platform/windows/display_server_windows.h b/platform/windows/display_server_windows.h index 7d6a3e96a6..0462d3f8fa 100644 --- a/platform/windows/display_server_windows.h +++ b/platform/windows/display_server_windows.h @@ -38,6 +38,7 @@ #include "core/config/project_settings.h" #include "core/input/input.h" +#include "core/io/image.h" #include "core/os/os.h" #include "drivers/unix/ip_unix.h" #include "drivers/wasapi/audio_driver_wasapi.h" @@ -356,9 +357,13 @@ typedef enum _SHC_PROCESS_DPI_AWARENESS { SHC_PROCESS_PER_MONITOR_DPI_AWARE = 2, } SHC_PROCESS_DPI_AWARENESS; +class DropTargetWindows; + class DisplayServerWindows : public DisplayServer { // No need to register with GDCLASS, it's platform-specific and nothing is added. + friend class DropTargetWindows; + _THREAD_SAFE_CLASS_ // UXTheme API @@ -473,6 +478,7 @@ class DisplayServerWindows : public DisplayServer { bool exclusive = false; bool context_created = false; bool mpass = false; + bool sharp_corners = false; // Used to transfer data between events using timer. WPARAM saved_wparam; @@ -519,6 +525,9 @@ class DisplayServerWindows : public DisplayServer { Callable input_text_callback; Callable drop_files_callback; + // OLE API + DropTargetWindows *drop_target = nullptr; + WindowID transient_parent = INVALID_WINDOW_ID; HashSet<WindowID> transient_children; diff --git a/platform/windows/drop_target_windows.cpp b/platform/windows/drop_target_windows.cpp new file mode 100644 index 0000000000..d04924a9cf --- /dev/null +++ b/platform/windows/drop_target_windows.cpp @@ -0,0 +1,375 @@ +/**************************************************************************/ +/* drop_target_windows.cpp */ +/**************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/**************************************************************************/ +/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */ +/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/**************************************************************************/ + +#include "drop_target_windows.h" + +#include "core/io/dir_access.h" +#include "core/math/random_pcg.h" +#include "core/os/time.h" + +#include <fileapi.h> + +// Helpers + +static String create_temp_dir() { + Char16String buf; + int bufsize = GetTempPathW(0, nullptr) + 1; + buf.resize(bufsize); + if (GetTempPathW(bufsize, (LPWSTR)buf.ptrw()) == 0) { + return ""; + } + + String tmp_dir = String::utf16((const char16_t *)buf.ptr()); + RandomPCG gen(Time::get_singleton()->get_ticks_usec()); + + const int attempts = 4; + + for (int i = 0; i < attempts; ++i) { + uint32_t rnd = gen.rand(); + String dirname = "godot_tmp_" + String::num_uint64(rnd); + String res_dir = tmp_dir.path_join(dirname); + Char16String res_dir16 = res_dir.utf16(); + + if (CreateDirectoryW((LPCWSTR)res_dir16.ptr(), nullptr)) { + return res_dir; + } + } + + return ""; +} + +static bool remove_dir_recursive(const String &p_dir) { + Ref<DirAccess> dir_access = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); + if (dir_access->change_dir(p_dir) != OK) { + return false; + } + return dir_access->erase_contents_recursive() == OK; +} + +static bool stream2file(IStream *p_stream, FILEDESCRIPTORW *p_desc, const String &p_path) { + if (DirAccess::make_dir_recursive_absolute(p_path.get_base_dir()) != OK) { + return false; + } + + Char16String path16 = p_path.utf16(); + DWORD dwFlagsAndAttributes = FILE_ATTRIBUTE_NORMAL; + + if (p_desc->dwFlags & FD_ATTRIBUTES) { + dwFlagsAndAttributes = p_desc->dwFileAttributes; + } + + HANDLE file = CreateFileW( + (LPCWSTR)path16.ptr(), + GENERIC_WRITE, + 0, + nullptr, + CREATE_NEW, + dwFlagsAndAttributes, + nullptr); + + if (!file) { + return false; + } + + const int bufsize = 4096; + char buf[bufsize]; + ULONG nread = 0; + DWORD nwritten = 0; + HRESULT read_result = S_OK; + bool result = true; + + while (true) { + read_result = p_stream->Read(buf, bufsize, &nread); + if (read_result != S_OK && read_result != S_FALSE) { + result = false; + goto cleanup; + } + + if (!nread) { + break; + } + + while (nread > 0) { + if (!WriteFile(file, buf, nread, &nwritten, nullptr) || !nwritten) { + result = false; + goto cleanup; + } + nread -= nwritten; + } + } + +cleanup: + CloseHandle(file); + return result; +} + +// DropTargetWindows + +bool DropTargetWindows::is_valid_filedescriptor() { + return cf_filedescriptor != 0 && cf_filecontents != 0; +} + +HRESULT DropTargetWindows::handle_hdrop_format(Vector<String> *p_files, IDataObject *pDataObj) { + FORMATETC fmt = { CF_HDROP, nullptr, DVASPECT_CONTENT, -1, TYMED_HGLOBAL }; + STGMEDIUM stg; + HRESULT res = S_OK; + + if (pDataObj->GetData(&fmt, &stg) != S_OK) { + return E_UNEXPECTED; + } + + HDROP hDropInfo = (HDROP)GlobalLock(stg.hGlobal); + + Char16String buf; + + if (hDropInfo == nullptr) { + ReleaseStgMedium(&stg); + return E_UNEXPECTED; + } + + int fcount = DragQueryFileW(hDropInfo, 0xFFFFFFFF, nullptr, 0); + + for (int i = 0; i < fcount; i++) { + int buffsize = DragQueryFileW(hDropInfo, i, nullptr, 0); + buf.resize(buffsize + 1); + if (DragQueryFileW(hDropInfo, i, (LPWSTR)buf.ptrw(), buffsize + 1) == 0) { + res = E_UNEXPECTED; + goto cleanup; + } + String file = String::utf16((const char16_t *)buf.ptr()); + p_files->push_back(file); + } + +cleanup: + GlobalUnlock(stg.hGlobal); + ReleaseStgMedium(&stg); + + return res; +} + +HRESULT DropTargetWindows::handle_filedescriptor_format(Vector<String> *p_files, IDataObject *pDataObj) { + FORMATETC fmt = { cf_filedescriptor, nullptr, DVASPECT_CONTENT, -1, TYMED_HGLOBAL }; + STGMEDIUM stg; + HRESULT res = S_OK; + + if (pDataObj->GetData(&fmt, &stg) != S_OK) { + return E_UNEXPECTED; + } + + FILEGROUPDESCRIPTORW *filegroup_desc = (FILEGROUPDESCRIPTORW *)GlobalLock(stg.hGlobal); + + if (!filegroup_desc) { + ReleaseStgMedium(&stg); + return E_UNEXPECTED; + } + + tmp_path = create_temp_dir(); + Ref<DirAccess> dir_access = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); + PackedStringArray copied; + + if (dir_access->change_dir(tmp_path) != OK) { + res = E_UNEXPECTED; + goto cleanup; + } + + for (int i = 0; i < (int)filegroup_desc->cItems; ++i) { + res = save_as_file(tmp_path, filegroup_desc->fgd + i, pDataObj, i); + if (res != S_OK) { + res = E_UNEXPECTED; + goto cleanup; + } + } + + copied = dir_access->get_files(); + for (const String &file : copied) { + p_files->push_back(tmp_path.path_join(file)); + } + + copied = dir_access->get_directories(); + for (const String &dir : copied) { + p_files->push_back(tmp_path.path_join(dir)); + } + +cleanup: + GlobalUnlock(filegroup_desc); + ReleaseStgMedium(&stg); + if (res != S_OK) { + remove_dir_recursive(tmp_path); + tmp_path.clear(); + } + return res; +} + +HRESULT DropTargetWindows::save_as_file(const String &p_out_dir, FILEDESCRIPTORW *p_file_desc, IDataObject *pDataObj, int p_file_idx) { + String relpath = String::utf16((const char16_t *)p_file_desc->cFileName); + String fullpath = p_out_dir.path_join(relpath); + + if (p_file_desc->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { + if (DirAccess::make_dir_recursive_absolute(fullpath) != OK) { + return E_UNEXPECTED; + } + return S_OK; + } + + FORMATETC fmt = { cf_filecontents, nullptr, DVASPECT_CONTENT, p_file_idx, TYMED_ISTREAM }; + STGMEDIUM stg; + HRESULT res = S_OK; + + if (pDataObj->GetData(&fmt, &stg) != S_OK) { + return E_UNEXPECTED; + } + + IStream *stream = stg.pstm; + if (stream == nullptr) { + res = E_UNEXPECTED; + goto cleanup; + } + + if (!stream2file(stream, p_file_desc, fullpath)) { + res = E_UNEXPECTED; + goto cleanup; + } + +cleanup: + ReleaseStgMedium(&stg); + return res; +} + +DropTargetWindows::DropTargetWindows(DisplayServerWindows::WindowData *p_window_data) : + ref_count(1), window_data(p_window_data) { + cf_filedescriptor = RegisterClipboardFormat(CFSTR_FILEDESCRIPTORW); + cf_filecontents = RegisterClipboardFormat(CFSTR_FILECONTENTS); +} + +HRESULT STDMETHODCALLTYPE DropTargetWindows::QueryInterface(REFIID riid, void **ppvObject) { + if (riid == IID_IUnknown || riid == IID_IDropTarget) { + *ppvObject = static_cast<IDropTarget *>(this); + AddRef(); + return S_OK; + } + *ppvObject = nullptr; + return E_NOINTERFACE; +} + +ULONG STDMETHODCALLTYPE DropTargetWindows::AddRef() { + return InterlockedIncrement(&ref_count); +} + +ULONG STDMETHODCALLTYPE DropTargetWindows::Release() { + ULONG count = InterlockedDecrement(&ref_count); + if (count == 0) { + memfree(this); + } + return count; +} + +HRESULT STDMETHODCALLTYPE DropTargetWindows::DragEnter(IDataObject *pDataObj, DWORD grfKeyState, POINTL pt, DWORD *pdwEffect) { + (void)grfKeyState; + (void)pt; + + FORMATETC hdrop_fmt = { CF_HDROP, nullptr, DVASPECT_CONTENT, -1, TYMED_HGLOBAL }; + FORMATETC filedesc_fmt = { cf_filedescriptor, nullptr, DVASPECT_CONTENT, -1, TYMED_HGLOBAL }; + + if (!window_data->drop_files_callback.is_valid()) { + *pdwEffect = DROPEFFECT_NONE; + } else if (pDataObj->QueryGetData(&hdrop_fmt) == S_OK) { + *pdwEffect = DROPEFFECT_COPY; + } else if (is_valid_filedescriptor() && pDataObj->QueryGetData(&filedesc_fmt) == S_OK) { + *pdwEffect = DROPEFFECT_COPY; + } else { + *pdwEffect = DROPEFFECT_NONE; + } + + return S_OK; +} + +HRESULT STDMETHODCALLTYPE DropTargetWindows::DragOver(DWORD grfKeyState, POINTL pt, DWORD *pdwEffect) { + (void)grfKeyState; + (void)pt; + + *pdwEffect = DROPEFFECT_COPY; + return S_OK; +} + +HRESULT STDMETHODCALLTYPE DropTargetWindows::DragLeave() { + return S_OK; +} + +HRESULT STDMETHODCALLTYPE DropTargetWindows::Drop(IDataObject *pDataObj, DWORD grfKeyState, POINTL pt, DWORD *pdwEffect) { + (void)grfKeyState; + (void)pt; + + *pdwEffect = DROPEFFECT_NONE; + + if (!window_data->drop_files_callback.is_valid()) { + return S_OK; + } + + FORMATETC hdrop_fmt = { CF_HDROP, nullptr, DVASPECT_CONTENT, -1, TYMED_HGLOBAL }; + FORMATETC filedesc_fmt = { cf_filedescriptor, nullptr, DVASPECT_CONTENT, -1, TYMED_HGLOBAL }; + Vector<String> files; + + if (pDataObj->QueryGetData(&hdrop_fmt) == S_OK) { + HRESULT res = handle_hdrop_format(&files, pDataObj); + if (res != S_OK) { + return res; + } + } else if (pDataObj->QueryGetData(&filedesc_fmt) == S_OK && is_valid_filedescriptor()) { + HRESULT res = handle_filedescriptor_format(&files, pDataObj); + if (res != S_OK) { + return res; + } + } else { + return E_UNEXPECTED; + } + + if (!files.size()) { + return S_OK; + } + + Variant v_files = files; + const Variant *v_args[1] = { &v_files }; + Variant ret; + Callable::CallError ce; + window_data->drop_files_callback.callp((const Variant **)&v_args, 1, ret, ce); + + if (!tmp_path.is_empty()) { + remove_dir_recursive(tmp_path); + tmp_path.clear(); + } + + if (ce.error != Callable::CallError::CALL_OK) { + ERR_PRINT(vformat("Failed to execute drop files callback: %s.", Variant::get_callable_error_text(window_data->drop_files_callback, v_args, 1, ce))); + return E_UNEXPECTED; + } + + *pdwEffect = DROPEFFECT_COPY; + return S_OK; +} diff --git a/platform/windows/drop_target_windows.h b/platform/windows/drop_target_windows.h new file mode 100644 index 0000000000..bd0e0270c6 --- /dev/null +++ b/platform/windows/drop_target_windows.h @@ -0,0 +1,77 @@ +/**************************************************************************/ +/* drop_target_windows.h */ +/**************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/**************************************************************************/ +/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */ +/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/**************************************************************************/ + +#ifndef DROP_TARGET_WINDOWS_H +#define DROP_TARGET_WINDOWS_H + +#include "display_server_windows.h" + +#include <shlobj.h> + +// Silence warning due to a COM API weirdness. +#if defined(__GNUC__) && !defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wnon-virtual-dtor" +#endif + +// https://learn.microsoft.com/en-us/windows/win32/api/ole2/nf-ole2-dodragdrop#remarks +class DropTargetWindows : public IDropTarget { + LONG ref_count; + DisplayServerWindows::WindowData *window_data = nullptr; + CLIPFORMAT cf_filedescriptor = 0; + CLIPFORMAT cf_filecontents = 0; + String tmp_path; + + bool is_valid_filedescriptor(); + HRESULT handle_hdrop_format(Vector<String> *p_files, IDataObject *pDataObj); + HRESULT handle_filedescriptor_format(Vector<String> *p_files, IDataObject *pDataObj); + HRESULT save_as_file(const String &p_out_dir, FILEDESCRIPTORW *p_file_desc, IDataObject *pDataObj, int p_file_idx); + +public: + DropTargetWindows(DisplayServerWindows::WindowData *p_window_data); + virtual ~DropTargetWindows() {} + + // IUnknown + HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void **ppvObject) override; + ULONG STDMETHODCALLTYPE AddRef() override; + ULONG STDMETHODCALLTYPE Release() override; + + // IDropTarget + HRESULT STDMETHODCALLTYPE DragEnter(IDataObject *pDataObj, DWORD grfKeyState, POINTL pt, DWORD *pdwEffect) override; + HRESULT STDMETHODCALLTYPE DragOver(DWORD grfKeyState, POINTL pt, DWORD *pdwEffect) override; + HRESULT STDMETHODCALLTYPE DragLeave() override; + HRESULT STDMETHODCALLTYPE Drop(IDataObject *pDataObj, DWORD grfKeyState, POINTL pt, DWORD *pdwEffect) override; +}; + +#if defined(__GNUC__) && !defined(__clang__) +#pragma GCC diagnostic pop +#endif + +#endif // DROP_TARGET_WINDOWS_H diff --git a/platform/windows/export/export_plugin.h b/platform/windows/export/export_plugin.h index 1972b36845..89db449424 100644 --- a/platform/windows/export/export_plugin.h +++ b/platform/windows/export/export_plugin.h @@ -59,7 +59,7 @@ class EditorExportPlatformWindows : public EditorExportPlatformPC { ssh_args = p_ssh_arg; cmd_args = p_cmd_args; wait = p_wait; - }; + } }; Ref<ImageTexture> run_icon; diff --git a/platform/windows/godot.natvis b/platform/windows/godot.natvis index 14536fa130..e3a535580f 100644 --- a/platform/windows/godot.natvis +++ b/platform/windows/godot.natvis @@ -1,5 +1,15 @@ <?xml version="1.0" encoding="utf-8"?> <AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010"> + <Type Name="Ref<*>"> + <SmartPointer Usage="Minimal">reference</SmartPointer> + <DisplayString Condition="!reference">[empty]</DisplayString> + <DisplayString Condition="!!reference">{*reference}</DisplayString> + <Expand> + <Item Condition="!!reference" Name="[ptr]">reference</Item> + <Item Condition="!!reference" Name="[refcount]">reference->refcount.count.value</Item> + </Expand> + </Type> + <Type Name="Vector<*>"> <Expand> <Item Name="[size]">_cowdata._ptr ? (((const unsigned long long *)(_cowdata._ptr))[-1]) : 0</Item> @@ -20,16 +30,6 @@ </Expand> </Type> - <Type Name="TypedArray<*>"> - <Expand> - <Item Name="[size]"> _p->array._cowdata._ptr ? (((const unsigned long long *)(_p->array._cowdata._ptr))[-1]) : 0</Item> - <ArrayItems> - <Size>_p->array._cowdata._ptr ? (((const unsigned long long *)(_p->array._cowdata._ptr))[-1]) : 0</Size> - <ValuePointer >(Variant *) _p->array._cowdata._ptr</ValuePointer> - </ArrayItems> - </Expand> - </Type> - <Type Name="Dictionary"> <Expand> <Item Name="[size]">_p && _p->variant_map.head_element ? _p->variant_map.num_elements : 0</Item> @@ -91,6 +91,16 @@ <StringView Condition="_data && !_data->cname">_data->name,s32b</StringView> </Type> + <Type Name="HashSet<*,*,*>"> + <Expand> + <Item Name="[size]">num_elements</Item> + <ArrayItems> + <Size>num_elements</Size> + <ValuePointer>($T1 *) keys._cowdata._ptr</ValuePointer> + </ArrayItems> + </Expand> + </Type> + <Type Name="HashMapElement<*,*>"> <DisplayString>{{Key = {($T1 *) &data.key} Value = {($T2 *) &data.value}}}</DisplayString> <Expand> @@ -133,7 +143,7 @@ <Type Name="HashMapElement<*,*>" IncludeView="MapHelper"> <DisplayString>{data.value}</DisplayString> <Expand> - <Item Name="[key]" >($T1 *) &data.key</Item> + <Item Name="[key]">($T1 *) &data.key</Item> <Item Name="[value]">($T2 *) &data.value</Item> </Expand> </Type> @@ -265,39 +275,164 @@ </Type> <Type Name="Vector2"> - <DisplayString>{{{x},{y}}}</DisplayString> + <DisplayString>({x,g}, {y,g})</DisplayString> + <Expand> + <Item Name="[x]">x</Item> + <Item Name="[y]">y</Item> + </Expand> + </Type> + <Type Name="Vector2i"> + <DisplayString>({x}, {y})</DisplayString> <Expand> - <Item Name="x">x</Item> - <Item Name="y">y</Item> + <Item Name="[x]">x</Item> + <Item Name="[y]">y</Item> </Expand> </Type> <Type Name="Vector3"> - <DisplayString>{{{x},{y},{z}}}</DisplayString> + <DisplayString>({x,g}, {y,g}, {z,g})</DisplayString> + <Expand> + <Item Name="[x]">x</Item> + <Item Name="[y]">y</Item> + <Item Name="[z]">z</Item> + </Expand> + </Type> + <Type Name="Vector3i"> + <DisplayString>({x}, {y}, {z})</DisplayString> + <Expand> + <Item Name="[x]">x</Item> + <Item Name="[y]">y</Item> + <Item Name="[z]">z</Item> + </Expand> + </Type> + + <Type Name="Vector4"> + <DisplayString>({x,g}, {y,g}, {z,g}, {w,g})</DisplayString> + <Expand> + <Item Name="[x]">x</Item> + <Item Name="[y]">y</Item> + <Item Name="[z]">z</Item> + <Item Name="[w]">w</Item> + </Expand> + </Type> + <Type Name="Vector4i"> + <DisplayString>({x}, {y}, {z}, {w})</DisplayString> <Expand> - <Item Name="x">x</Item> - <Item Name="y">y</Item> - <Item Name="z">z</Item> + <Item Name="[x]">x</Item> + <Item Name="[y]">y</Item> + <Item Name="[z]">z</Item> + <Item Name="[w]">w</Item> </Expand> </Type> <Type Name="Quaternion"> - <DisplayString>Quaternion {{{x},{y},{z},{w}}}</DisplayString> + <DisplayString>({x,g}, {y,g}, {z,g}, {w,g})</DisplayString> <Expand> - <Item Name="x">x</Item> - <Item Name="y">y</Item> - <Item Name="z">z</Item> - <Item Name="w">w</Item> + <Item Name="[x]">x</Item> + <Item Name="[y]">y</Item> + <Item Name="[z]">z</Item> + <Item Name="[w]">w</Item> </Expand> </Type> <Type Name="Color"> - <DisplayString>Color {{{r},{g},{b},{a}}}</DisplayString> + <DisplayString>({r,g}, {g,g}, {b,g}, {a,g})</DisplayString> + <Expand> + <Item Name="[red]">r</Item> + <Item Name="[green]">g</Item> + <Item Name="[blue]">b</Item> + <Item Name="[alpha]">a</Item> + </Expand> + </Type> + + <Type Name="Rect2"> + <DisplayString>[P: {position}, S: {size}]</DisplayString> + <Expand> + <Item Name="[position]">position,nr</Item> + <Item Name="[size]">size,nr</Item> + </Expand> + </Type> + <Type Name="Rect2i"> + <DisplayString>[P: {position}, S: {size}]</DisplayString> + <Expand> + <Item Name="[position]">position,nr</Item> + <Item Name="[size]">size,nr</Item> + </Expand> + </Type> + + <Type Name="AABB"> + <DisplayString>[P: {position}, S: {size}]</DisplayString> + <Expand> + <Item Name="[position]">position,nr</Item> + <Item Name="[size]">size,nr</Item> + </Expand> + </Type> + + <Type Name="Plane"> + <DisplayString>[N: {normal}, D: {d,g}]</DisplayString> + <Expand> + <Item Name="[normal]">normal,nr</Item> + <Item Name="[d]">d</Item> + </Expand> + </Type> + + <Type Name="Basis"> + <DisplayString>[X: {rows[0]}, Y: {rows[1]}, Z: {rows[2]}]</DisplayString> + <Expand> + <Item Name="[x]">rows[0],nr</Item> + <Item Name="[y]">rows[1],nr</Item> + <Item Name="[z]">rows[2],nr</Item> + </Expand> + </Type> + + <Type Name="Transform2D"> + <DisplayString>[X: {columns[0]}, Y: {columns[1]}, O: {columns[2]}]</DisplayString> + <Expand> + <Item Name="[x]">columns[0],nr</Item> + <Item Name="[y]">columns[1],nr</Item> + <Item Name="[origin]">columns[2],nr</Item> + </Expand> + </Type> + + <Type Name="Transform3D"> + <!-- Can't call column functions, so just pretend we can via obscene code duplication. --> + <DisplayString>[X: ({basis.rows[0].x,g}, {basis.rows[1].x,g}, {basis.rows[2].x,g}), Y: ({basis.rows[0].y,g}, {basis.rows[1].y,g}, {basis.rows[2].y,g}), Z: ({basis.rows[0].z,g}, {basis.rows[1].z,g}, {basis.rows[2].z,g}), O: {origin}]</DisplayString> + <Expand> + <Synthetic Name="[x]"> + <DisplayString>({basis.rows[0].x,g}, {basis.rows[1].x,g}, {basis.rows[2].x,g})</DisplayString> + <Expand> + <Item Name="[x]">basis.rows[0].x</Item> + <Item Name="[y]">basis.rows[1].x</Item> + <Item Name="[z]">basis.rows[2].x</Item> + </Expand> + </Synthetic> + <Synthetic Name="[y]"> + <DisplayString>({basis.rows[0].y,g}, {basis.rows[1].y,g}, {basis.rows[2].y,g})</DisplayString> + <Expand> + <Item Name="[x]">basis.rows[0].y</Item> + <Item Name="[y]">basis.rows[1].y</Item> + <Item Name="[z]">basis.rows[2].y</Item> + </Expand> + </Synthetic> + <Synthetic Name="[z]"> + <DisplayString>({basis.rows[0].z,g}, {basis.rows[1].z,g}, {basis.rows[2].z,g})</DisplayString> + <Expand> + <Item Name="[x]">basis.rows[0].z</Item> + <Item Name="[y]">basis.rows[1].z</Item> + <Item Name="[z]">basis.rows[2].z</Item> + </Expand> + </Synthetic> + <Item Name="[origin]">origin,nr</Item> + </Expand> + </Type> + + <Type Name="Projection"> + <DisplayString>[X: {columns[0]}, Y: {columns[1]}, Z: {columns[2]}, W: {columns[3]}]</DisplayString> <Expand> - <Item Name="red">r</Item> - <Item Name="green">g</Item> - <Item Name="blue">b</Item> - <Item Name="alpha">a</Item> + <Item Name="[x]">columns[0],nr</Item> + <Item Name="[y]">columns[1],nr</Item> + <Item Name="[z]">columns[2],nr</Item> + <Item Name="[w]">columns[3],nr</Item> </Expand> </Type> </AutoVisualizer> diff --git a/platform/windows/joypad_windows.cpp b/platform/windows/joypad_windows.cpp index a5f1629cf0..0f55cda5d7 100644 --- a/platform/windows/joypad_windows.cpp +++ b/platform/windows/joypad_windows.cpp @@ -122,8 +122,9 @@ bool JoypadWindows::is_xinput_device(const GUID *p_guid) { memcmp(p_guid, &IID_XOneSWirelessGamepad, sizeof(*p_guid)) == 0 || memcmp(p_guid, &IID_XOneSBluetoothGamepad, sizeof(*p_guid)) == 0 || memcmp(p_guid, &IID_XOneEliteWirelessGamepad, sizeof(*p_guid)) == 0 || - memcmp(p_guid, &IID_XOneElite2WirelessGamepad, sizeof(*p_guid)) == 0) + memcmp(p_guid, &IID_XOneElite2WirelessGamepad, sizeof(*p_guid)) == 0) { return true; + } PRAWINPUTDEVICELIST dev_list = nullptr; unsigned int dev_list_count = 0; diff --git a/platform/windows/native_menu_windows.cpp b/platform/windows/native_menu_windows.cpp index fde55918e4..9fa2849e7b 100644 --- a/platform/windows/native_menu_windows.cpp +++ b/platform/windows/native_menu_windows.cpp @@ -158,7 +158,7 @@ Size2 NativeMenuWindows::get_size(const RID &p_rid) const { int count = GetMenuItemCount(md->menu); for (int i = 0; i < count; i++) { RECT rect; - if (GetMenuItemRect(NULL, md->menu, i, &rect)) { + if (GetMenuItemRect(nullptr, md->menu, i, &rect)) { size.x = MAX(size.x, rect.right - rect.left); size.y += rect.bottom - rect.top; } @@ -992,7 +992,7 @@ void NativeMenuWindows::set_item_submenu(const RID &p_rid, int p_idx, const RID if (p_submenu_rid.is_valid()) { item.hSubMenu = md_sub->menu; } else { - item.hSubMenu = 0; + item.hSubMenu = nullptr; } SetMenuItemInfoW(md->menu, p_idx, true, &item); } @@ -1095,7 +1095,7 @@ void NativeMenuWindows::set_item_icon(const RID &p_rid, int p_idx, const Ref<Tex item_data->bmp = _make_bitmap(item_data->img); } else { item_data->img = Ref<Image>(); - item_data->bmp = 0; + item_data->bmp = nullptr; } item.hbmpItem = item_data->bmp; SetMenuItemInfoW(md->menu, p_idx, true, &item); diff --git a/platform/windows/native_menu_windows.h b/platform/windows/native_menu_windows.h index 235a4b332a..09e4640b40 100644 --- a/platform/windows/native_menu_windows.h +++ b/platform/windows/native_menu_windows.h @@ -31,6 +31,7 @@ #ifndef NATIVE_MENU_WINDOWS_H #define NATIVE_MENU_WINDOWS_H +#include "core/io/image.h" #include "core/templates/hash_map.h" #include "core/templates/rid_owner.h" #include "servers/display/native_menu.h" diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp index adc72a79e9..6423af9509 100644 --- a/platform/windows/os_windows.cpp +++ b/platform/windows/os_windows.cpp @@ -40,10 +40,10 @@ #include "core/debugger/script_debugger.h" #include "core/io/marshalls.h" #include "core/version_generated.gen.h" -#include "drivers/unix/net_socket_posix.h" #include "drivers/windows/dir_access_windows.h" #include "drivers/windows/file_access_windows.h" #include "drivers/windows/file_access_windows_pipe.h" +#include "drivers/windows/net_socket_winsock.h" #include "main/main.h" #include "servers/audio_server.h" #include "servers/rendering/rendering_server_default.h" @@ -69,6 +69,7 @@ extern "C" { __declspec(dllexport) DWORD NvOptimusEnablement = 1; __declspec(dllexport) int AmdPowerXpressRequestHighPerformance = 1; +__declspec(dllexport) void NoHotPatch() {} // Disable Nahimic code injection. } // Workaround mingw-w64 < 4.0 bug @@ -139,13 +140,13 @@ void RedirectIOToConsole() { if (AttachConsole(ATTACH_PARENT_PROCESS)) { // Restore redirection (Note: if not redirected it's NULL handles not INVALID_HANDLE_VALUE). - if (h_stdin != 0) { + if (h_stdin != nullptr) { SetStdHandle(STD_INPUT_HANDLE, h_stdin); } - if (h_stdout != 0) { + if (h_stdout != nullptr) { SetStdHandle(STD_OUTPUT_HANDLE, h_stdout); } - if (h_stderr != 0) { + if (h_stderr != nullptr) { SetStdHandle(STD_ERROR_HANDLE, h_stderr); } @@ -156,6 +157,52 @@ void RedirectIOToConsole() { } } +bool OS_Windows::is_using_con_wrapper() const { + static String exe_renames[] = { + ".console.exe", + "_console.exe", + " console.exe", + "console.exe", + String(), + }; + + bool found_exe = false; + bool found_conwrap_exe = false; + String exe_name = get_executable_path().to_lower(); + String exe_dir = exe_name.get_base_dir(); + String exe_fname = exe_name.get_file().get_basename(); + + DWORD pids[256]; + DWORD count = GetConsoleProcessList(&pids[0], 256); + for (DWORD i = 0; i < count; i++) { + HANDLE process = OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, false, pids[i]); + if (process != NULL) { + WCHAR proc_name[MAX_PATH]; + DWORD len = MAX_PATH; + if (QueryFullProcessImageNameW(process, 0, &proc_name[0], &len)) { + String name = String::utf16((const char16_t *)&proc_name[0], len).replace("\\", "/").to_lower(); + if (name == exe_name) { + found_exe = true; + } + for (int j = 0; !exe_renames[j].is_empty(); j++) { + if (name == exe_dir.path_join(exe_fname + exe_renames[j])) { + found_conwrap_exe = true; + } + } + } + CloseHandle(process); + if (found_conwrap_exe && found_exe) { + break; + } + } + } + if (!found_exe) { + return true; // Unable to read console info, assume true. + } + + return found_conwrap_exe; +} + BOOL WINAPI HandlerRoutine(_In_ DWORD dwCtrlType) { if (!EngineDebugger::is_active()) { return FALSE; @@ -209,7 +256,7 @@ void OS_Windows::initialize() { DirAccess::make_default<DirAccessWindows>(DirAccess::ACCESS_USERDATA); DirAccess::make_default<DirAccessWindows>(DirAccess::ACCESS_FILESYSTEM); - NetSocketPosix::make_default(); + NetSocketWinSock::make_default(); // We need to know how often the clock is updated QueryPerformanceFrequency((LARGE_INTEGER *)&ticks_per_second); @@ -303,7 +350,7 @@ void OS_Windows::finalize_core() { timeEndPeriod(1); memdelete(process_map); - NetSocketPosix::cleanup(); + NetSocketWinSock::cleanup(); #ifdef WINDOWS_DEBUG_OUTPUT_ENABLED remove_error_handler(&error_handlers); @@ -908,9 +955,9 @@ Dictionary OS_Windows::execute_with_pipe(const String &p_path, const List<String } // Create pipes. - HANDLE pipe_in[2] = { 0, 0 }; - HANDLE pipe_out[2] = { 0, 0 }; - HANDLE pipe_err[2] = { 0, 0 }; + HANDLE pipe_in[2] = { nullptr, nullptr }; + HANDLE pipe_out[2] = { nullptr, nullptr }; + HANDLE pipe_err[2] = { nullptr, nullptr }; SECURITY_ATTRIBUTES sa; sa.nLength = sizeof(SECURITY_ATTRIBUTES); @@ -918,18 +965,10 @@ Dictionary OS_Windows::execute_with_pipe(const String &p_path, const List<String sa.lpSecurityDescriptor = nullptr; ERR_FAIL_COND_V(!CreatePipe(&pipe_in[0], &pipe_in[1], &sa, 0), ret); - if (!SetHandleInformation(pipe_in[1], HANDLE_FLAG_INHERIT, 0)) { - CLEAN_PIPES - ERR_FAIL_V(ret); - } if (!CreatePipe(&pipe_out[0], &pipe_out[1], &sa, 0)) { CLEAN_PIPES ERR_FAIL_V(ret); } - if (!SetHandleInformation(pipe_out[0], HANDLE_FLAG_INHERIT, 0)) { - CLEAN_PIPES - ERR_FAIL_V(ret); - } if (!CreatePipe(&pipe_err[0], &pipe_err[1], &sa, 0)) { CLEAN_PIPES ERR_FAIL_V(ret); @@ -939,16 +978,37 @@ Dictionary OS_Windows::execute_with_pipe(const String &p_path, const List<String // Create process. ProcessInfo pi; ZeroMemory(&pi.si, sizeof(pi.si)); - pi.si.cb = sizeof(pi.si); + pi.si.StartupInfo.cb = sizeof(pi.si); ZeroMemory(&pi.pi, sizeof(pi.pi)); - LPSTARTUPINFOW si_w = (LPSTARTUPINFOW)&pi.si; + LPSTARTUPINFOW si_w = (LPSTARTUPINFOW)&pi.si.StartupInfo; - pi.si.dwFlags |= STARTF_USESTDHANDLES; - pi.si.hStdInput = pipe_in[0]; - pi.si.hStdOutput = pipe_out[1]; - pi.si.hStdError = pipe_err[1]; + pi.si.StartupInfo.dwFlags |= STARTF_USESTDHANDLES; + pi.si.StartupInfo.hStdInput = pipe_in[0]; + pi.si.StartupInfo.hStdOutput = pipe_out[1]; + pi.si.StartupInfo.hStdError = pipe_err[1]; - DWORD creation_flags = NORMAL_PRIORITY_CLASS | CREATE_NO_WINDOW; + SIZE_T attr_list_size = 0; + InitializeProcThreadAttributeList(nullptr, 1, 0, &attr_list_size); + pi.si.lpAttributeList = (LPPROC_THREAD_ATTRIBUTE_LIST)alloca(attr_list_size); + if (!InitializeProcThreadAttributeList(pi.si.lpAttributeList, 1, 0, &attr_list_size)) { + CLEAN_PIPES + ERR_FAIL_V(ret); + } + HANDLE handles_to_inherit[] = { pipe_in[0], pipe_out[1], pipe_err[1] }; + if (!UpdateProcThreadAttribute( + pi.si.lpAttributeList, + 0, + PROC_THREAD_ATTRIBUTE_HANDLE_LIST, + handles_to_inherit, + sizeof(handles_to_inherit), + nullptr, + nullptr)) { + CLEAN_PIPES + DeleteProcThreadAttributeList(pi.si.lpAttributeList); + ERR_FAIL_V(ret); + } + + DWORD creation_flags = NORMAL_PRIORITY_CLASS | CREATE_NO_WINDOW | EXTENDED_STARTUPINFO_PRESENT; Char16String current_dir_name; size_t str_len = GetCurrentDirectoryW(0, nullptr); @@ -964,11 +1024,13 @@ Dictionary OS_Windows::execute_with_pipe(const String &p_path, const List<String if (!CreateProcessW(nullptr, (LPWSTR)(command.utf16().ptrw()), nullptr, nullptr, true, creation_flags, nullptr, (LPWSTR)current_dir_name.ptr(), si_w, &pi.pi)) { CLEAN_PIPES + DeleteProcThreadAttributeList(pi.si.lpAttributeList); ERR_FAIL_V_MSG(ret, "Could not create child process: " + command); } CloseHandle(pipe_in[0]); CloseHandle(pipe_out[1]); CloseHandle(pipe_err[1]); + DeleteProcThreadAttributeList(pi.si.lpAttributeList); ProcessID pid = pi.pi.dwProcessId; process_map_mutex.lock(); @@ -981,7 +1043,7 @@ Dictionary OS_Windows::execute_with_pipe(const String &p_path, const List<String Ref<FileAccessWindowsPipe> err_pipe; err_pipe.instantiate(); - err_pipe->open_existing(pipe_err[0], 0, p_blocking); + err_pipe->open_existing(pipe_err[0], nullptr, p_blocking); ret["stdio"] = main_pipe; ret["stderr"] = err_pipe; @@ -1000,9 +1062,9 @@ Error OS_Windows::execute(const String &p_path, const List<String> &p_arguments, ProcessInfo pi; ZeroMemory(&pi.si, sizeof(pi.si)); - pi.si.cb = sizeof(pi.si); + pi.si.StartupInfo.cb = sizeof(pi.si); ZeroMemory(&pi.pi, sizeof(pi.pi)); - LPSTARTUPINFOW si_w = (LPSTARTUPINFOW)&pi.si; + LPSTARTUPINFOW si_w = (LPSTARTUPINFOW)&pi.si.StartupInfo; bool inherit_handles = false; HANDLE pipe[2] = { nullptr, nullptr }; @@ -1014,16 +1076,40 @@ Error OS_Windows::execute(const String &p_path, const List<String> &p_arguments, sa.lpSecurityDescriptor = nullptr; ERR_FAIL_COND_V(!CreatePipe(&pipe[0], &pipe[1], &sa, 0), ERR_CANT_FORK); - ERR_FAIL_COND_V(!SetHandleInformation(pipe[0], HANDLE_FLAG_INHERIT, 0), ERR_CANT_FORK); // Read handle is for host process only and should not be inherited. - pi.si.dwFlags |= STARTF_USESTDHANDLES; - pi.si.hStdOutput = pipe[1]; + pi.si.StartupInfo.dwFlags |= STARTF_USESTDHANDLES; + pi.si.StartupInfo.hStdOutput = pipe[1]; if (read_stderr) { - pi.si.hStdError = pipe[1]; + pi.si.StartupInfo.hStdError = pipe[1]; + } + + SIZE_T attr_list_size = 0; + InitializeProcThreadAttributeList(nullptr, 1, 0, &attr_list_size); + pi.si.lpAttributeList = (LPPROC_THREAD_ATTRIBUTE_LIST)alloca(attr_list_size); + if (!InitializeProcThreadAttributeList(pi.si.lpAttributeList, 1, 0, &attr_list_size)) { + CloseHandle(pipe[0]); // Cleanup pipe handles. + CloseHandle(pipe[1]); + ERR_FAIL_V(ERR_CANT_FORK); + } + if (!UpdateProcThreadAttribute( + pi.si.lpAttributeList, + 0, + PROC_THREAD_ATTRIBUTE_HANDLE_LIST, + &pipe[1], + sizeof(HANDLE), + nullptr, + nullptr)) { + CloseHandle(pipe[0]); // Cleanup pipe handles. + CloseHandle(pipe[1]); + DeleteProcThreadAttributeList(pi.si.lpAttributeList); + ERR_FAIL_V(ERR_CANT_FORK); } inherit_handles = true; } DWORD creation_flags = NORMAL_PRIORITY_CLASS; + if (inherit_handles) { + creation_flags |= EXTENDED_STARTUPINFO_PRESENT; + } if (p_open_console) { creation_flags |= CREATE_NEW_CONSOLE; } else { @@ -1046,6 +1132,7 @@ Error OS_Windows::execute(const String &p_path, const List<String> &p_arguments, if (!ret && r_pipe) { CloseHandle(pipe[0]); // Cleanup pipe handles. CloseHandle(pipe[1]); + DeleteProcThreadAttributeList(pi.si.lpAttributeList); } ERR_FAIL_COND_V_MSG(ret == 0, ERR_CANT_FORK, "Could not create child process: " + command); @@ -1101,6 +1188,9 @@ Error OS_Windows::execute(const String &p_path, const List<String> &p_arguments, CloseHandle(pi.pi.hProcess); CloseHandle(pi.pi.hThread); + if (r_pipe) { + DeleteProcThreadAttributeList(pi.si.lpAttributeList); + } return OK; } @@ -1114,9 +1204,9 @@ Error OS_Windows::create_process(const String &p_path, const List<String> &p_arg ProcessInfo pi; ZeroMemory(&pi.si, sizeof(pi.si)); - pi.si.cb = sizeof(pi.si); + pi.si.StartupInfo.cb = sizeof(pi.si.StartupInfo); ZeroMemory(&pi.pi, sizeof(pi.pi)); - LPSTARTUPINFOW si_w = (LPSTARTUPINFOW)&pi.si; + LPSTARTUPINFOW si_w = (LPSTARTUPINFOW)&pi.si.StartupInfo; DWORD creation_flags = NORMAL_PRIORITY_CLASS; if (p_open_console) { @@ -1363,7 +1453,7 @@ public: locale = p_locale; n_sub = p_nsub; rtl = p_rtl; - }; + } virtual ~FallbackTextAnalysisSource() {} }; @@ -1639,16 +1729,115 @@ void OS_Windows::unset_environment(const String &p_var) const { SetEnvironmentVariableW((LPCWSTR)(p_var.utf16().get_data()), nullptr); // Null to delete. } -String OS_Windows::get_stdin_string() { - char buff[1024]; +String OS_Windows::get_stdin_string(int64_t p_buffer_size) { + if (get_stdin_type() == STD_HANDLE_INVALID) { + return String(); + } + + Vector<uint8_t> data; + data.resize(p_buffer_size); DWORD count = 0; - if (ReadFile(GetStdHandle(STD_INPUT_HANDLE), buff, 1024, &count, nullptr)) { - return String::utf8((const char *)buff, count); + if (ReadFile(GetStdHandle(STD_INPUT_HANDLE), data.ptrw(), data.size(), &count, nullptr)) { + return String::utf8((const char *)data.ptr(), count); } return String(); } +PackedByteArray OS_Windows::get_stdin_buffer(int64_t p_buffer_size) { + Vector<uint8_t> data; + data.resize(p_buffer_size); + DWORD count = 0; + if (ReadFile(GetStdHandle(STD_INPUT_HANDLE), data.ptrw(), data.size(), &count, nullptr)) { + return data; + } + + return PackedByteArray(); +} + +OS_Windows::StdHandleType OS_Windows::get_stdin_type() const { + HANDLE h = GetStdHandle(STD_INPUT_HANDLE); + if (h == 0 || h == INVALID_HANDLE_VALUE) { + return STD_HANDLE_INVALID; + } + DWORD ftype = GetFileType(h); + if (ftype == FILE_TYPE_UNKNOWN && GetLastError() != ERROR_SUCCESS) { + return STD_HANDLE_UNKNOWN; + } + ftype &= ~(FILE_TYPE_REMOTE); + + if (ftype == FILE_TYPE_DISK) { + return STD_HANDLE_FILE; + } else if (ftype == FILE_TYPE_PIPE) { + return STD_HANDLE_PIPE; + } else { + DWORD conmode = 0; + BOOL res = GetConsoleMode(h, &conmode); + if (!res && (GetLastError() == ERROR_INVALID_HANDLE)) { + return STD_HANDLE_UNKNOWN; // Unknown character device. + } else { +#ifndef WINDOWS_SUBSYSTEM_CONSOLE + if (!is_using_con_wrapper()) { + return STD_HANDLE_INVALID; // Window app can't read stdin input without werapper. + } +#endif + return STD_HANDLE_CONSOLE; + } + } +} + +OS_Windows::StdHandleType OS_Windows::get_stdout_type() const { + HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE); + if (h == 0 || h == INVALID_HANDLE_VALUE) { + return STD_HANDLE_INVALID; + } + DWORD ftype = GetFileType(h); + if (ftype == FILE_TYPE_UNKNOWN && GetLastError() != ERROR_SUCCESS) { + return STD_HANDLE_UNKNOWN; + } + ftype &= ~(FILE_TYPE_REMOTE); + + if (ftype == FILE_TYPE_DISK) { + return STD_HANDLE_FILE; + } else if (ftype == FILE_TYPE_PIPE) { + return STD_HANDLE_PIPE; + } else { + DWORD conmode = 0; + BOOL res = GetConsoleMode(h, &conmode); + if (!res && (GetLastError() == ERROR_INVALID_HANDLE)) { + return STD_HANDLE_UNKNOWN; // Unknown character device. + } else { + return STD_HANDLE_CONSOLE; + } + } +} + +OS_Windows::StdHandleType OS_Windows::get_stderr_type() const { + HANDLE h = GetStdHandle(STD_ERROR_HANDLE); + if (h == 0 || h == INVALID_HANDLE_VALUE) { + return STD_HANDLE_INVALID; + } + DWORD ftype = GetFileType(h); + if (ftype == FILE_TYPE_UNKNOWN && GetLastError() != ERROR_SUCCESS) { + return STD_HANDLE_UNKNOWN; + } + ftype &= ~(FILE_TYPE_REMOTE); + + if (ftype == FILE_TYPE_DISK) { + return STD_HANDLE_FILE; + } else if (ftype == FILE_TYPE_PIPE) { + return STD_HANDLE_PIPE; + } else { + DWORD conmode = 0; + BOOL res = GetConsoleMode(h, &conmode); + if (!res && (GetLastError() == ERROR_INVALID_HANDLE)) { + return STD_HANDLE_UNKNOWN; // Unknown character device. + } else { + return STD_HANDLE_CONSOLE; + } + } +} + Error OS_Windows::shell_open(const String &p_uri) { INT_PTR ret = (INT_PTR)ShellExecuteW(nullptr, nullptr, (LPCWSTR)(p_uri.utf16().get_data()), nullptr, nullptr, SW_SHOWNORMAL); if (ret > 32) { @@ -1740,6 +1929,34 @@ String OS_Windows::get_locale() const { return "en"; } +String OS_Windows::get_model_name() const { + HKEY hkey; + if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"Hardware\\Description\\System\\BIOS", 0, KEY_QUERY_VALUE, &hkey) != ERROR_SUCCESS) { + return OS::get_model_name(); + } + + String sys_name; + String board_name; + WCHAR buffer[256]; + DWORD buffer_len = 256; + DWORD vtype = REG_SZ; + if (RegQueryValueExW(hkey, L"SystemProductName", nullptr, &vtype, (LPBYTE)buffer, &buffer_len) == ERROR_SUCCESS && buffer_len != 0) { + sys_name = String::utf16((const char16_t *)buffer, buffer_len).strip_edges(); + } + buffer_len = 256; + if (RegQueryValueExW(hkey, L"BaseBoardProduct", nullptr, &vtype, (LPBYTE)buffer, &buffer_len) == ERROR_SUCCESS && buffer_len != 0) { + board_name = String::utf16((const char16_t *)buffer, buffer_len).strip_edges(); + } + RegCloseKey(hkey); + if (!sys_name.is_empty() && sys_name.to_lower() != "system product name") { + return sys_name; + } + if (!board_name.is_empty() && board_name.to_lower() != "base board product") { + return board_name; + } + return OS::get_model_name(); +} + String OS_Windows::get_processor_name() const { const String id = "Hardware\\Description\\System\\CentralProcessor\\0"; diff --git a/platform/windows/os_windows.h b/platform/windows/os_windows.h index 4f9bc049ee..a32e535f0b 100644 --- a/platform/windows/os_windows.h +++ b/platform/windows/os_windows.h @@ -134,6 +134,8 @@ class OS_Windows : public OS { DWRITE_FONT_WEIGHT _weight_to_dw(int p_weight) const; DWRITE_FONT_STRETCH _stretch_to_dw(int p_stretch) const; + bool is_using_con_wrapper() const; + // functions used by main to initialize/deinitialize the OS protected: virtual void initialize() override; @@ -143,12 +145,17 @@ protected: virtual void finalize() override; virtual void finalize_core() override; - virtual String get_stdin_string() override; + + virtual String get_stdin_string(int64_t p_buffer_size = 1024) override; + virtual PackedByteArray get_stdin_buffer(int64_t p_buffer_size = 1024) override; + virtual StdHandleType get_stdin_type() const override; + virtual StdHandleType get_stdout_type() const override; + virtual StdHandleType get_stderr_type() const override; String _quote_command_line_argument(const String &p_text) const; struct ProcessInfo { - STARTUPINFO si; + STARTUPINFOEX si; PROCESS_INFORMATION pi; mutable bool is_running = true; mutable int exit_code = -1; @@ -210,6 +217,8 @@ public: virtual String get_processor_name() const override; + virtual String get_model_name() const override; + virtual uint64_t get_embedded_pck_offset() const override; virtual String get_config_path() const override; diff --git a/platform/windows/platform_windows_builders.py b/platform/windows/platform_windows_builders.py index 3fd9e1a581..2020e68748 100644 --- a/platform/windows/platform_windows_builders.py +++ b/platform/windows/platform_windows_builders.py @@ -2,23 +2,11 @@ import os -from detect import get_mingw_bin_prefix, try_cmd - def make_debug_mingw(target, source, env): dst = str(target[0]) # Force separate debug symbols if executable size is larger than 1.9 GB. if env["separate_debug_symbols"] or os.stat(dst).st_size >= 2040109465: - mingw_bin_prefix = get_mingw_bin_prefix(env["mingw_prefix"], env["arch"]) - if try_cmd("objcopy --version", env["mingw_prefix"], env["arch"]): - os.system(mingw_bin_prefix + "objcopy --only-keep-debug {0} {0}.debugsymbols".format(dst)) - else: - os.system("objcopy --only-keep-debug {0} {0}.debugsymbols".format(dst)) - if try_cmd("strip --version", env["mingw_prefix"], env["arch"]): - os.system(mingw_bin_prefix + "strip --strip-debug --strip-unneeded {0}".format(dst)) - else: - os.system("strip --strip-debug --strip-unneeded {0}".format(dst)) - if try_cmd("objcopy --version", env["mingw_prefix"], env["arch"]): - os.system(mingw_bin_prefix + "objcopy --add-gnu-debuglink={0}.debugsymbols {0}".format(dst)) - else: - os.system("objcopy --add-gnu-debuglink={0}.debugsymbols {0}".format(dst)) + os.system("{0} --only-keep-debug {1} {1}.debugsymbols".format(env["OBJCOPY"], dst)) + os.system("{0} --strip-debug --strip-unneeded {1}".format(env["STRIP"], dst)) + os.system("{0} --add-gnu-debuglink={1}.debugsymbols {1}".format(env["OBJCOPY"], dst)) diff --git a/platform/windows/windows_terminal_logger.cpp b/platform/windows/windows_terminal_logger.cpp index 6c54faa13a..e25c612008 100644 --- a/platform/windows/windows_terminal_logger.cpp +++ b/platform/windows/windows_terminal_logger.cpp @@ -30,6 +30,8 @@ #include "windows_terminal_logger.h" +#include "core/os/os.h" + #ifdef WINDOWS_ENABLED #include <stdio.h> @@ -78,7 +80,7 @@ void WindowsTerminalLogger::log_error(const char *p_function, const char *p_file } HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE); - if (!hCon || hCon == INVALID_HANDLE_VALUE) { + if (OS::get_singleton()->get_stdout_type() != OS::STD_HANDLE_CONSOLE || !hCon || hCon == INVALID_HANDLE_VALUE) { StdLogger::log_error(p_function, p_file, p_line, p_code, p_rationale, p_type); } else { CONSOLE_SCREEN_BUFFER_INFO sbi; //original diff --git a/platform/windows/windows_utils.cpp b/platform/windows/windows_utils.cpp index 30743c6900..3b9bfb50f7 100644 --- a/platform/windows/windows_utils.cpp +++ b/platform/windows/windows_utils.cpp @@ -67,11 +67,11 @@ Error WindowsUtils::copy_and_rename_pdb(const String &p_dll_path) { { // The custom LoadLibraryExW is used instead of open_dynamic_library // to avoid loading the original PDB into the debugger. - HMODULE library_ptr = LoadLibraryExW((LPCWSTR)(p_dll_path.utf16().get_data()), NULL, LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE); + HMODULE library_ptr = LoadLibraryExW((LPCWSTR)(p_dll_path.utf16().get_data()), nullptr, LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE); ERR_FAIL_NULL_V_MSG(library_ptr, ERR_FILE_CANT_OPEN, vformat("Failed to load library '%s'.", p_dll_path)); - IMAGE_DEBUG_DIRECTORY *dbg_dir = (IMAGE_DEBUG_DIRECTORY *)ImageDirectoryEntryToDataEx(library_ptr, FALSE, IMAGE_DIRECTORY_ENTRY_DEBUG, &dbg_info_size, NULL); + IMAGE_DEBUG_DIRECTORY *dbg_dir = (IMAGE_DEBUG_DIRECTORY *)ImageDirectoryEntryToDataEx(library_ptr, FALSE, IMAGE_DIRECTORY_ENTRY_DEBUG, &dbg_info_size, nullptr); bool has_debug = dbg_dir && dbg_dir->Type == IMAGE_DEBUG_TYPE_CODEVIEW; if (has_debug) { |