:github_url: hide .. Generated automatically by doc/tools/make_rst.py in Godot's source tree. .. DO NOT EDIT THIS FILE, but the GDNativeLibrary.xml source instead. .. The source is found in doc/classes or modules//doc_classes. .. _class_GDNativeLibrary: GDNativeLibrary =============== **Inherits:** :ref:`Resource` **<** :ref:`Reference` **<** :ref:`Object` An external library containing functions or script classes to use in Godot. Description ----------- A GDNative library can implement :ref:`NativeScript`\ s, global functions to call with the :ref:`GDNative` class, or low-level engine extensions through interfaces such as :ref:`ARVRInterfaceGDNative`. The library must be compiled for each platform and architecture that the project will run on. Tutorials --------- - :doc:`../tutorials/scripting/gdnative/gdnative_c_example` - :doc:`../tutorials/scripting/gdnative/gdnative_cpp_example` Properties ---------- +-------------------------------------+--------------------------------------------------------------------+--------------+ | :ref:`ConfigFile` | :ref:`config_file` | | +-------------------------------------+--------------------------------------------------------------------+--------------+ | :ref:`bool` | :ref:`load_once` | ``true`` | +-------------------------------------+--------------------------------------------------------------------+--------------+ | :ref:`bool` | :ref:`reloadable` | ``true`` | +-------------------------------------+--------------------------------------------------------------------+--------------+ | :ref:`bool` | :ref:`singleton` | ``false`` | +-------------------------------------+--------------------------------------------------------------------+--------------+ | :ref:`String` | :ref:`symbol_prefix` | ``"godot_"`` | +-------------------------------------+--------------------------------------------------------------------+--------------+ Methods ------- +-----------------------------------------------+------------------------------------------------------------------------------------------------------------+ | :ref:`PoolStringArray` | :ref:`get_current_dependencies` **(** **)** |const| | +-----------------------------------------------+------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`get_current_library_path` **(** **)** |const| | +-----------------------------------------------+------------------------------------------------------------------------------------------------------------+ Property Descriptions --------------------- .. _class_GDNativeLibrary_property_config_file: - :ref:`ConfigFile` **config_file** +----------+------------------------+ | *Setter* | set_config_file(value) | +----------+------------------------+ | *Getter* | get_config_file() | +----------+------------------------+ This resource in INI-style :ref:`ConfigFile` format, as in ``.gdnlib`` files. ---- .. _class_GDNativeLibrary_property_load_once: - :ref:`bool` **load_once** +-----------+----------------------+ | *Default* | ``true`` | +-----------+----------------------+ | *Setter* | set_load_once(value) | +-----------+----------------------+ | *Getter* | should_load_once() | +-----------+----------------------+ If ``true``, Godot loads only one copy of the library and each script that references the library will share static data like static or global variables. If ``false``, Godot loads a separate copy of the library into memory for each script that references it. ---- .. _class_GDNativeLibrary_property_reloadable: - :ref:`bool` **reloadable** +-----------+-----------------------+ | *Default* | ``true`` | +-----------+-----------------------+ | *Setter* | set_reloadable(value) | +-----------+-----------------------+ | *Getter* | is_reloadable() | +-----------+-----------------------+ If ``true``, the editor will temporarily unload the library whenever the user switches away from the editor window, allowing the user to recompile the library without restarting Godot. **Note:** If the library defines tool scripts that run inside the editor, ``reloadable`` must be ``false``. Otherwise, the editor will attempt to unload the tool scripts while they're in use and crash. ---- .. _class_GDNativeLibrary_property_singleton: - :ref:`bool` **singleton** +-----------+----------------------+ | *Default* | ``false`` | +-----------+----------------------+ | *Setter* | set_singleton(value) | +-----------+----------------------+ | *Getter* | is_singleton() | +-----------+----------------------+ If ``true``, Godot loads the library at startup rather than the first time a script uses the library, calling ``{prefix}gdnative_singleton`` after initializing the library (where ``{prefix}`` is the value of :ref:`symbol_prefix`). The library remains loaded as long as Godot is running. **Note:** A singleton library cannot be :ref:`reloadable`. ---- .. _class_GDNativeLibrary_property_symbol_prefix: - :ref:`String` **symbol_prefix** +-----------+--------------------------+ | *Default* | ``"godot_"`` | +-----------+--------------------------+ | *Setter* | set_symbol_prefix(value) | +-----------+--------------------------+ | *Getter* | get_symbol_prefix() | +-----------+--------------------------+ The prefix this library's entry point functions begin with. For example, a GDNativeLibrary would declare its ``gdnative_init`` function as ``godot_gdnative_init`` by default. On platforms that require statically linking libraries (currently only iOS), each library must have a different ``symbol_prefix``. Method Descriptions ------------------- .. _class_GDNativeLibrary_method_get_current_dependencies: - :ref:`PoolStringArray` **get_current_dependencies** **(** **)** |const| Returns paths to all dependency libraries for the current platform and architecture. ---- .. _class_GDNativeLibrary_method_get_current_library_path: - :ref:`String` **get_current_library_path** **(** **)** |const| Returns the path to the dynamic library file for the current platform and architecture. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)` .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`