You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-12 13:20:55 +00:00
C#: Begin move to .NET Core
We're targeting .NET 5 for now to make development easier while .NET 6 is not yet released. TEMPORARY REGRESSIONS --------------------- Assembly unloading is not implemented yet. As such, many Godot resources are leaked at exit. This will be re-implemented later together with assembly hot-reloading.
This commit is contained in:
@@ -49,23 +49,40 @@
|
||||
#include "../godotsharp_dirs.h"
|
||||
#include "../utils/macos_utils.h"
|
||||
#include "code_completion.h"
|
||||
#include "godotsharp_export.h"
|
||||
|
||||
#include "../interop_types.h"
|
||||
|
||||
void godot_icall_GodotSharpDirs_ResMetadataDir(godot_string *r_dest) {
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
#define MAYBE_UNUSED [[maybe_unused]]
|
||||
#else
|
||||
#define MAYBE_UNUSED
|
||||
#endif
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define GD_PINVOKE_EXPORT MAYBE_UNUSED __attribute__((visibility("default")))
|
||||
#elif defined(_WIN32)
|
||||
#define GD_PINVOKE_EXPORT MAYBE_UNUSED __declspec(dllexport)
|
||||
#else
|
||||
#define GD_PINVOKE_EXPORT MAYBE_UNUSED
|
||||
#endif
|
||||
|
||||
GD_PINVOKE_EXPORT void godot_icall_GodotSharpDirs_ResMetadataDir(godot_string *r_dest) {
|
||||
memnew_placement(r_dest, String(GodotSharpDirs::get_res_metadata_dir()));
|
||||
}
|
||||
|
||||
void godot_icall_GodotSharpDirs_ResTempAssembliesBaseDir(godot_string *r_dest) {
|
||||
GD_PINVOKE_EXPORT void godot_icall_GodotSharpDirs_ResTempAssembliesBaseDir(godot_string *r_dest) {
|
||||
memnew_placement(r_dest, String(GodotSharpDirs::get_res_temp_assemblies_base_dir()));
|
||||
}
|
||||
|
||||
void godot_icall_GodotSharpDirs_MonoUserDir(godot_string *r_dest) {
|
||||
GD_PINVOKE_EXPORT void godot_icall_GodotSharpDirs_MonoUserDir(godot_string *r_dest) {
|
||||
memnew_placement(r_dest, String(GodotSharpDirs::get_mono_user_dir()));
|
||||
}
|
||||
|
||||
void godot_icall_GodotSharpDirs_BuildLogsDirs(godot_string *r_dest) {
|
||||
GD_PINVOKE_EXPORT void godot_icall_GodotSharpDirs_BuildLogsDirs(godot_string *r_dest) {
|
||||
#ifdef TOOLS_ENABLED
|
||||
memnew_placement(r_dest, String(GodotSharpDirs::get_build_logs_dir()));
|
||||
#else
|
||||
@@ -73,7 +90,7 @@ void godot_icall_GodotSharpDirs_BuildLogsDirs(godot_string *r_dest) {
|
||||
#endif
|
||||
}
|
||||
|
||||
void godot_icall_GodotSharpDirs_ProjectSlnPath(godot_string *r_dest) {
|
||||
GD_PINVOKE_EXPORT void godot_icall_GodotSharpDirs_ProjectSlnPath(godot_string *r_dest) {
|
||||
#ifdef TOOLS_ENABLED
|
||||
memnew_placement(r_dest, String(GodotSharpDirs::get_project_sln_path()));
|
||||
#else
|
||||
@@ -81,7 +98,7 @@ void godot_icall_GodotSharpDirs_ProjectSlnPath(godot_string *r_dest) {
|
||||
#endif
|
||||
}
|
||||
|
||||
void godot_icall_GodotSharpDirs_ProjectCsProjPath(godot_string *r_dest) {
|
||||
GD_PINVOKE_EXPORT void godot_icall_GodotSharpDirs_ProjectCsProjPath(godot_string *r_dest) {
|
||||
#ifdef TOOLS_ENABLED
|
||||
memnew_placement(r_dest, String(GodotSharpDirs::get_project_csproj_path()));
|
||||
#else
|
||||
@@ -89,7 +106,7 @@ void godot_icall_GodotSharpDirs_ProjectCsProjPath(godot_string *r_dest) {
|
||||
#endif
|
||||
}
|
||||
|
||||
void godot_icall_GodotSharpDirs_DataEditorToolsDir(godot_string *r_dest) {
|
||||
GD_PINVOKE_EXPORT void godot_icall_GodotSharpDirs_DataEditorToolsDir(godot_string *r_dest) {
|
||||
#ifdef TOOLS_ENABLED
|
||||
memnew_placement(r_dest, String(GodotSharpDirs::get_data_editor_tools_dir()));
|
||||
#else
|
||||
@@ -97,39 +114,29 @@ void godot_icall_GodotSharpDirs_DataEditorToolsDir(godot_string *r_dest) {
|
||||
#endif
|
||||
}
|
||||
|
||||
void godot_icall_EditorProgress_Create(const godot_string *p_task, const godot_string *p_label, int32_t p_amount, bool p_can_cancel) {
|
||||
GD_PINVOKE_EXPORT void godot_icall_EditorProgress_Create(const godot_string *p_task, const godot_string *p_label, int32_t p_amount, bool p_can_cancel) {
|
||||
String task = *reinterpret_cast<const String *>(p_task);
|
||||
String label = *reinterpret_cast<const String *>(p_label);
|
||||
EditorNode::progress_add_task(task, label, p_amount, (bool)p_can_cancel);
|
||||
}
|
||||
|
||||
void godot_icall_EditorProgress_Dispose(const godot_string *p_task) {
|
||||
GD_PINVOKE_EXPORT void godot_icall_EditorProgress_Dispose(const godot_string *p_task) {
|
||||
String task = *reinterpret_cast<const String *>(p_task);
|
||||
EditorNode::progress_end_task(task);
|
||||
}
|
||||
|
||||
bool godot_icall_EditorProgress_Step(const godot_string *p_task, const godot_string *p_state, int32_t p_step, bool p_force_refresh) {
|
||||
GD_PINVOKE_EXPORT bool godot_icall_EditorProgress_Step(const godot_string *p_task, const godot_string *p_state, int32_t p_step, bool p_force_refresh) {
|
||||
String task = *reinterpret_cast<const String *>(p_task);
|
||||
String state = *reinterpret_cast<const String *>(p_state);
|
||||
return EditorNode::progress_task_step(task, state, p_step, (bool)p_force_refresh);
|
||||
}
|
||||
|
||||
uint32_t godot_icall_ExportPlugin_GetExportedAssemblyDependencies(const godot_dictionary *p_initial_assemblies,
|
||||
const godot_string *p_build_config, const godot_string *p_custom_bcl_dir, godot_dictionary *r_assembly_dependencies) {
|
||||
Dictionary initial_dependencies = *reinterpret_cast<const Dictionary *>(p_initial_assemblies);
|
||||
String build_config = *reinterpret_cast<const String *>(p_build_config);
|
||||
String custom_bcl_dir = *reinterpret_cast<const String *>(p_custom_bcl_dir);
|
||||
Dictionary assembly_dependencies = *reinterpret_cast<Dictionary *>(r_assembly_dependencies);
|
||||
|
||||
return GodotSharpExport::get_exported_assembly_dependencies(initial_dependencies, build_config, custom_bcl_dir, assembly_dependencies);
|
||||
}
|
||||
|
||||
void godot_icall_Internal_FullExportTemplatesDir(godot_string *r_dest) {
|
||||
GD_PINVOKE_EXPORT void godot_icall_Internal_FullExportTemplatesDir(godot_string *r_dest) {
|
||||
String full_templates_dir = EditorPaths::get_singleton()->get_export_templates_dir().plus_file(VERSION_FULL_CONFIG);
|
||||
memnew_placement(r_dest, String(full_templates_dir));
|
||||
}
|
||||
|
||||
bool godot_icall_Internal_IsMacOSAppBundleInstalled(const godot_string *p_bundle_id) {
|
||||
GD_PINVOKE_EXPORT bool godot_icall_Internal_IsMacOSAppBundleInstalled(const godot_string *p_bundle_id) {
|
||||
#ifdef MACOS_ENABLED
|
||||
String bundle_id = *reinterpret_cast<const String *>(p_bundle_id);
|
||||
return (bool)macos_is_app_bundle_installed(bundle_id);
|
||||
@@ -139,11 +146,11 @@ bool godot_icall_Internal_IsMacOSAppBundleInstalled(const godot_string *p_bundle
|
||||
#endif
|
||||
}
|
||||
|
||||
bool godot_icall_Internal_GodotIs32Bits() {
|
||||
GD_PINVOKE_EXPORT bool godot_icall_Internal_GodotIs32Bits() {
|
||||
return sizeof(void *) == 4;
|
||||
}
|
||||
|
||||
bool godot_icall_Internal_GodotIsRealTDouble() {
|
||||
GD_PINVOKE_EXPORT bool godot_icall_Internal_GodotIsRealTDouble() {
|
||||
#ifdef REAL_T_IS_DOUBLE
|
||||
return (bool)true;
|
||||
#else
|
||||
@@ -151,11 +158,11 @@ bool godot_icall_Internal_GodotIsRealTDouble() {
|
||||
#endif
|
||||
}
|
||||
|
||||
void godot_icall_Internal_GodotMainIteration() {
|
||||
GD_PINVOKE_EXPORT void godot_icall_Internal_GodotMainIteration() {
|
||||
Main::iteration();
|
||||
}
|
||||
|
||||
bool godot_icall_Internal_IsAssembliesReloadingNeeded() {
|
||||
GD_PINVOKE_EXPORT bool godot_icall_Internal_IsAssembliesReloadingNeeded() {
|
||||
#ifdef GD_MONO_HOT_RELOAD
|
||||
return (bool)CSharpLanguage::get_singleton()->is_assembly_reloading_needed();
|
||||
#else
|
||||
@@ -163,26 +170,26 @@ bool godot_icall_Internal_IsAssembliesReloadingNeeded() {
|
||||
#endif
|
||||
}
|
||||
|
||||
void godot_icall_Internal_ReloadAssemblies(bool p_soft_reload) {
|
||||
GD_PINVOKE_EXPORT void godot_icall_Internal_ReloadAssemblies(bool p_soft_reload) {
|
||||
#ifdef GD_MONO_HOT_RELOAD
|
||||
mono_bind::GodotSharp::get_singleton()->call_deferred(SNAME("_reload_assemblies"), (bool)p_soft_reload);
|
||||
#endif
|
||||
}
|
||||
|
||||
void godot_icall_Internal_EditorDebuggerNodeReloadScripts() {
|
||||
GD_PINVOKE_EXPORT void godot_icall_Internal_EditorDebuggerNodeReloadScripts() {
|
||||
EditorDebuggerNode::get_singleton()->reload_scripts();
|
||||
}
|
||||
|
||||
bool godot_icall_Internal_ScriptEditorEdit(Resource *p_resource, int32_t p_line, int32_t p_col, bool p_grab_focus) {
|
||||
GD_PINVOKE_EXPORT bool godot_icall_Internal_ScriptEditorEdit(Resource *p_resource, int32_t p_line, int32_t p_col, bool p_grab_focus) {
|
||||
Ref<Resource> resource = p_resource;
|
||||
return (bool)ScriptEditor::get_singleton()->edit(resource, p_line, p_col, (bool)p_grab_focus);
|
||||
}
|
||||
|
||||
void godot_icall_Internal_EditorNodeShowScriptScreen() {
|
||||
GD_PINVOKE_EXPORT void godot_icall_Internal_EditorNodeShowScriptScreen() {
|
||||
EditorNode::get_singleton()->call("_editor_select", EditorNode::EDITOR_SCRIPT);
|
||||
}
|
||||
|
||||
void godot_icall_Internal_MonoWindowsInstallRoot(godot_string *r_dest) {
|
||||
GD_PINVOKE_EXPORT void godot_icall_Internal_MonoWindowsInstallRoot(godot_string *r_dest) {
|
||||
#ifdef WINDOWS_ENABLED
|
||||
String install_root_dir = GDMono::get_singleton()->get_mono_reg_info().install_root_dir;
|
||||
memnew_placement(r_dest, String(install_root_dir));
|
||||
@@ -192,62 +199,62 @@ void godot_icall_Internal_MonoWindowsInstallRoot(godot_string *r_dest) {
|
||||
#endif
|
||||
}
|
||||
|
||||
void godot_icall_Internal_EditorRunPlay() {
|
||||
GD_PINVOKE_EXPORT void godot_icall_Internal_EditorRunPlay() {
|
||||
EditorNode::get_singleton()->run_play();
|
||||
}
|
||||
|
||||
void godot_icall_Internal_EditorRunStop() {
|
||||
GD_PINVOKE_EXPORT void godot_icall_Internal_EditorRunStop() {
|
||||
EditorNode::get_singleton()->run_stop();
|
||||
}
|
||||
|
||||
void godot_icall_Internal_ScriptEditorDebugger_ReloadScripts() {
|
||||
GD_PINVOKE_EXPORT void godot_icall_Internal_ScriptEditorDebugger_ReloadScripts() {
|
||||
EditorDebuggerNode *ed = EditorDebuggerNode::get_singleton();
|
||||
if (ed) {
|
||||
ed->reload_scripts();
|
||||
}
|
||||
}
|
||||
|
||||
void godot_icall_Internal_CodeCompletionRequest(int32_t p_kind, const godot_string *p_script_file, godot_packed_array *r_ret) {
|
||||
GD_PINVOKE_EXPORT void godot_icall_Internal_CodeCompletionRequest(int32_t p_kind, const godot_string *p_script_file, godot_packed_array *r_ret) {
|
||||
String script_file = *reinterpret_cast<const String *>(p_script_file);
|
||||
PackedStringArray suggestions = gdmono::get_code_completion((gdmono::CompletionKind)p_kind, script_file);
|
||||
memnew_placement(r_ret, PackedStringArray(suggestions));
|
||||
}
|
||||
|
||||
float godot_icall_Globals_EditorScale() {
|
||||
GD_PINVOKE_EXPORT float godot_icall_Globals_EditorScale() {
|
||||
return EDSCALE;
|
||||
}
|
||||
|
||||
void godot_icall_Globals_GlobalDef(const godot_string *p_setting, const godot_variant *p_default_value, bool p_restart_if_changed, godot_variant *r_result) {
|
||||
GD_PINVOKE_EXPORT void godot_icall_Globals_GlobalDef(const godot_string *p_setting, const godot_variant *p_default_value, bool p_restart_if_changed, godot_variant *r_result) {
|
||||
String setting = *reinterpret_cast<const String *>(p_setting);
|
||||
Variant default_value = *reinterpret_cast<const Variant *>(p_default_value);
|
||||
Variant result = _GLOBAL_DEF(setting, default_value, (bool)p_restart_if_changed);
|
||||
memnew_placement(r_result, Variant(result));
|
||||
}
|
||||
|
||||
void godot_icall_Globals_EditorDef(const godot_string *p_setting, const godot_variant *p_default_value, bool p_restart_if_changed, godot_variant *r_result) {
|
||||
GD_PINVOKE_EXPORT void godot_icall_Globals_EditorDef(const godot_string *p_setting, const godot_variant *p_default_value, bool p_restart_if_changed, godot_variant *r_result) {
|
||||
String setting = *reinterpret_cast<const String *>(p_setting);
|
||||
Variant default_value = *reinterpret_cast<const Variant *>(p_default_value);
|
||||
Variant result = _EDITOR_DEF(setting, default_value, (bool)p_restart_if_changed);
|
||||
memnew_placement(r_result, Variant(result));
|
||||
}
|
||||
|
||||
void godot_icall_Globals_EditorShortcut(const godot_string *p_setting, godot_variant *r_result) {
|
||||
GD_PINVOKE_EXPORT void godot_icall_Globals_EditorShortcut(const godot_string *p_setting, godot_variant *r_result) {
|
||||
String setting = *reinterpret_cast<const String *>(p_setting);
|
||||
Ref<Shortcut> result = ED_GET_SHORTCUT(setting);
|
||||
memnew_placement(r_result, Variant(result));
|
||||
}
|
||||
|
||||
void godot_icall_Globals_TTR(const godot_string *p_text, godot_string *r_dest) {
|
||||
GD_PINVOKE_EXPORT void godot_icall_Globals_TTR(const godot_string *p_text, godot_string *r_dest) {
|
||||
String text = *reinterpret_cast<const String *>(p_text);
|
||||
memnew_placement(r_dest, String(TTR(text)));
|
||||
}
|
||||
|
||||
void godot_icall_Utils_OS_GetPlatformName(godot_string *r_dest) {
|
||||
GD_PINVOKE_EXPORT void godot_icall_Utils_OS_GetPlatformName(godot_string *r_dest) {
|
||||
String os_name = OS::get_singleton()->get_name();
|
||||
memnew_placement(r_dest, String(os_name));
|
||||
}
|
||||
|
||||
bool godot_icall_Utils_OS_UnixFileHasExecutableAccess(const godot_string *p_file_path) {
|
||||
GD_PINVOKE_EXPORT bool godot_icall_Utils_OS_UnixFileHasExecutableAccess(const godot_string *p_file_path) {
|
||||
#ifdef UNIX_ENABLED
|
||||
String file_path = *reinterpret_cast<const String *>(p_file_path);
|
||||
return access(file_path.utf8().get_data(), X_OK) == 0;
|
||||
@@ -256,49 +263,41 @@ bool godot_icall_Utils_OS_UnixFileHasExecutableAccess(const godot_string *p_file
|
||||
#endif
|
||||
}
|
||||
|
||||
void register_editor_internal_calls() {
|
||||
// GodotSharpDirs
|
||||
GDMonoUtils::add_internal_call("GodotTools.Internals.GodotSharpDirs::internal_ResMetadataDir", godot_icall_GodotSharpDirs_ResMetadataDir);
|
||||
GDMonoUtils::add_internal_call("GodotTools.Internals.GodotSharpDirs::internal_ResTempAssembliesBaseDir", godot_icall_GodotSharpDirs_ResTempAssembliesBaseDir);
|
||||
GDMonoUtils::add_internal_call("GodotTools.Internals.GodotSharpDirs::internal_MonoUserDir", godot_icall_GodotSharpDirs_MonoUserDir);
|
||||
GDMonoUtils::add_internal_call("GodotTools.Internals.GodotSharpDirs::internal_BuildLogsDirs", godot_icall_GodotSharpDirs_BuildLogsDirs);
|
||||
GDMonoUtils::add_internal_call("GodotTools.Internals.GodotSharpDirs::internal_ProjectSlnPath", godot_icall_GodotSharpDirs_ProjectSlnPath);
|
||||
GDMonoUtils::add_internal_call("GodotTools.Internals.GodotSharpDirs::internal_ProjectCsProjPath", godot_icall_GodotSharpDirs_ProjectCsProjPath);
|
||||
GDMonoUtils::add_internal_call("GodotTools.Internals.GodotSharpDirs::internal_DataEditorToolsDir", godot_icall_GodotSharpDirs_DataEditorToolsDir);
|
||||
|
||||
// EditorProgress
|
||||
GDMonoUtils::add_internal_call("GodotTools.Internals.EditorProgress::internal_Create", godot_icall_EditorProgress_Create);
|
||||
GDMonoUtils::add_internal_call("GodotTools.Internals.EditorProgress::internal_Dispose", godot_icall_EditorProgress_Dispose);
|
||||
GDMonoUtils::add_internal_call("GodotTools.Internals.EditorProgress::internal_Step", godot_icall_EditorProgress_Step);
|
||||
|
||||
// ExportPlugin
|
||||
GDMonoUtils::add_internal_call("GodotTools.Export.ExportPlugin::internal_GetExportedAssemblyDependencies", godot_icall_ExportPlugin_GetExportedAssemblyDependencies);
|
||||
|
||||
// Internals
|
||||
GDMonoUtils::add_internal_call("GodotTools.Internals.Internal::internal_FullExportTemplatesDir", godot_icall_Internal_FullExportTemplatesDir);
|
||||
GDMonoUtils::add_internal_call("GodotTools.Internals.Internal::internal_IsMacOSAppBundleInstalled", godot_icall_Internal_IsMacOSAppBundleInstalled);
|
||||
GDMonoUtils::add_internal_call("GodotTools.Internals.Internal::internal_GodotIs32Bits", godot_icall_Internal_GodotIs32Bits);
|
||||
GDMonoUtils::add_internal_call("GodotTools.Internals.Internal::internal_GodotIsRealTDouble", godot_icall_Internal_GodotIsRealTDouble);
|
||||
GDMonoUtils::add_internal_call("GodotTools.Internals.Internal::internal_GodotMainIteration", godot_icall_Internal_GodotMainIteration);
|
||||
GDMonoUtils::add_internal_call("GodotTools.Internals.Internal::internal_IsAssembliesReloadingNeeded", godot_icall_Internal_IsAssembliesReloadingNeeded);
|
||||
GDMonoUtils::add_internal_call("GodotTools.Internals.Internal::internal_ReloadAssemblies", godot_icall_Internal_ReloadAssemblies);
|
||||
GDMonoUtils::add_internal_call("GodotTools.Internals.Internal::internal_EditorDebuggerNodeReloadScripts", godot_icall_Internal_EditorDebuggerNodeReloadScripts);
|
||||
GDMonoUtils::add_internal_call("GodotTools.Internals.Internal::internal_ScriptEditorEdit", godot_icall_Internal_ScriptEditorEdit);
|
||||
GDMonoUtils::add_internal_call("GodotTools.Internals.Internal::internal_EditorNodeShowScriptScreen", godot_icall_Internal_EditorNodeShowScriptScreen);
|
||||
GDMonoUtils::add_internal_call("GodotTools.Internals.Internal::internal_MonoWindowsInstallRoot", godot_icall_Internal_MonoWindowsInstallRoot);
|
||||
GDMonoUtils::add_internal_call("GodotTools.Internals.Internal::internal_EditorRunPlay", godot_icall_Internal_EditorRunPlay);
|
||||
GDMonoUtils::add_internal_call("GodotTools.Internals.Internal::internal_EditorRunStop", godot_icall_Internal_EditorRunStop);
|
||||
GDMonoUtils::add_internal_call("GodotTools.Internals.Internal::internal_ScriptEditorDebugger_ReloadScripts", godot_icall_Internal_ScriptEditorDebugger_ReloadScripts);
|
||||
GDMonoUtils::add_internal_call("GodotTools.Internals.Internal::internal_CodeCompletionRequest", godot_icall_Internal_CodeCompletionRequest);
|
||||
|
||||
// Globals
|
||||
GDMonoUtils::add_internal_call("GodotTools.Internals.Globals::internal_EditorScale", godot_icall_Globals_EditorScale);
|
||||
GDMonoUtils::add_internal_call("GodotTools.Internals.Globals::internal_GlobalDef", godot_icall_Globals_GlobalDef);
|
||||
GDMonoUtils::add_internal_call("GodotTools.Internals.Globals::internal_EditorDef", godot_icall_Globals_EditorDef);
|
||||
GDMonoUtils::add_internal_call("GodotTools.Internals.Globals::internal_EditorShortcut", godot_icall_Globals_EditorShortcut);
|
||||
GDMonoUtils::add_internal_call("GodotTools.Internals.Globals::internal_TTR", godot_icall_Globals_TTR);
|
||||
|
||||
// Utils.OS
|
||||
GDMonoUtils::add_internal_call("GodotTools.Utils.OS::GetPlatformName", godot_icall_Utils_OS_GetPlatformName);
|
||||
GDMonoUtils::add_internal_call("GodotTools.Utils.OS::UnixFileHasExecutableAccess", godot_icall_Utils_OS_UnixFileHasExecutableAccess);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
void *godotsharp_editor_pinvoke_funcs[32] = {
|
||||
(void *)godot_icall_GodotSharpDirs_ResMetadataDir,
|
||||
(void *)godot_icall_GodotSharpDirs_ResTempAssembliesBaseDir,
|
||||
(void *)godot_icall_GodotSharpDirs_MonoUserDir,
|
||||
(void *)godot_icall_GodotSharpDirs_BuildLogsDirs,
|
||||
(void *)godot_icall_GodotSharpDirs_ProjectSlnPath,
|
||||
(void *)godot_icall_GodotSharpDirs_ProjectCsProjPath,
|
||||
(void *)godot_icall_GodotSharpDirs_DataEditorToolsDir,
|
||||
(void *)godot_icall_EditorProgress_Create,
|
||||
(void *)godot_icall_EditorProgress_Dispose,
|
||||
(void *)godot_icall_EditorProgress_Step,
|
||||
(void *)godot_icall_Internal_FullExportTemplatesDir,
|
||||
(void *)godot_icall_Internal_IsMacOSAppBundleInstalled,
|
||||
(void *)godot_icall_Internal_GodotIs32Bits,
|
||||
(void *)godot_icall_Internal_GodotIsRealTDouble,
|
||||
(void *)godot_icall_Internal_GodotMainIteration,
|
||||
(void *)godot_icall_Internal_IsAssembliesReloadingNeeded,
|
||||
(void *)godot_icall_Internal_ReloadAssemblies,
|
||||
(void *)godot_icall_Internal_EditorDebuggerNodeReloadScripts,
|
||||
(void *)godot_icall_Internal_ScriptEditorEdit,
|
||||
(void *)godot_icall_Internal_EditorNodeShowScriptScreen,
|
||||
(void *)godot_icall_Internal_MonoWindowsInstallRoot,
|
||||
(void *)godot_icall_Internal_EditorRunPlay,
|
||||
(void *)godot_icall_Internal_EditorRunStop,
|
||||
(void *)godot_icall_Internal_ScriptEditorDebugger_ReloadScripts,
|
||||
(void *)godot_icall_Internal_CodeCompletionRequest,
|
||||
(void *)godot_icall_Globals_EditorScale,
|
||||
(void *)godot_icall_Globals_GlobalDef,
|
||||
(void *)godot_icall_Globals_EditorDef,
|
||||
(void *)godot_icall_Globals_EditorShortcut,
|
||||
(void *)godot_icall_Globals_TTR,
|
||||
(void *)godot_icall_Utils_OS_GetPlatformName,
|
||||
(void *)godot_icall_Utils_OS_UnixFileHasExecutableAccess,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user