From 96901a49580a0e96b7963f43919e45c4ad8083c4 Mon Sep 17 00:00:00 2001 From: Emmanuel Leblond Date: Sat, 3 Oct 2020 17:09:33 +0200 Subject: [PATCH 1/8] Rework generate_builtins.py and move generation scripts into generation folder --- .../bindings_templates/bindings.tmpl.pxd | 2 +- .../bindings_templates/bindings.tmpl.pyi | 2 +- .../bindings_templates/bindings.tmpl.pyx | 2 +- .../bindings_templates/class.tmpl.pxd | 0 .../bindings_templates/class.tmpl.pyi | 0 .../bindings_templates/class.tmpl.pyx | 0 .../bindings_templates/method.tmpl.pyx | 0 .../builtins_templates/_ignored.tmpl.pxi | 5 + .../builtins_templates/aabb.tmpl.pxi | 48 +-- .../builtins_templates/basis.tmpl.pxi | 62 ++- .../builtins_templates/builtins.tmpl.pxd | 2 +- .../builtins_templates/builtins.tmpl.pyi | 6 +- .../builtins_templates/builtins.tmpl.pyx | 4 +- .../builtins_templates/color.tmpl.pxi | 52 +-- .../builtins_templates/dictionary.tmpl.pxi | 46 ++- .../builtins_templates/gdstring.tmpl.pxi | 138 +++---- .../builtins_templates/node_path.tmpl.pxi | 26 +- .../builtins_templates/plane.tmpl.pxi | 36 +- .../builtins_templates/quat.tmpl.pxi | 55 ++- .../builtins_templates/rect2.tmpl.pxi | 36 +- .../builtins_templates/render.tmpl.pxd | 6 +- .../builtins_templates/render.tmpl.pyi | 24 +- generation/builtins_templates/render.tmpl.pyx | 120 ++++++ .../builtins_templates/rid.tmpl.pxi | 10 +- .../builtins_templates/transform.tmpl.pxi | 42 +-- .../builtins_templates/transform2d.tmpl.pxi | 38 +- .../builtins_templates/vector2.tmpl.pxi | 75 ++-- .../builtins_templates/vector3.tmpl.pxi | 67 ++-- {tools => generation}/generate_bindings.py | 151 ++------ generation/generate_builtins.py | 352 ++++++++++++++++++ {tools => generation}/generate_pool_arrays.py | 0 .../pool_arrays.tmpl.pxd | 2 +- .../pool_arrays.tmpl.pyx | 2 +- .../pool_x_array.tmpl.pxd | 0 .../pool_x_array.tmpl.pyx | 0 generation/type_specs.py | 264 +++++++++++++ pythonscript/godot/SConscript | 19 +- tools/builtins_templates/render.tmpl.pyx | 119 ------ tools/fake_libc_include/X11/Xlib.h | 2 - tools/fake_libc_include/_ansi.h | 2 - tools/fake_libc_include/_fake_defines.h | 46 --- tools/fake_libc_include/_fake_typedefs.h | 179 --------- tools/fake_libc_include/_syslist.h | 2 - tools/fake_libc_include/alloca.h | 2 - tools/fake_libc_include/ar.h | 2 - tools/fake_libc_include/argz.h | 2 - tools/fake_libc_include/arpa/inet.h | 2 - .../fake_libc_include/asm-generic/int-ll64.h | 2 - tools/fake_libc_include/assert.h | 2 - tools/fake_libc_include/complex.h | 2 - tools/fake_libc_include/ctype.h | 2 - tools/fake_libc_include/dirent.h | 2 - tools/fake_libc_include/dlfcn.h | 2 - tools/fake_libc_include/endian.h | 2 - tools/fake_libc_include/envz.h | 2 - tools/fake_libc_include/errno.h | 2 - tools/fake_libc_include/fastmath.h | 2 - tools/fake_libc_include/fcntl.h | 2 - tools/fake_libc_include/features.h | 2 - tools/fake_libc_include/fenv.h | 2 - tools/fake_libc_include/float.h | 2 - tools/fake_libc_include/getopt.h | 2 - tools/fake_libc_include/grp.h | 2 - tools/fake_libc_include/iconv.h | 2 - tools/fake_libc_include/ieeefp.h | 2 - tools/fake_libc_include/inttypes.h | 2 - tools/fake_libc_include/iso646.h | 2 - tools/fake_libc_include/langinfo.h | 2 - tools/fake_libc_include/libgen.h | 2 - tools/fake_libc_include/libintl.h | 2 - tools/fake_libc_include/limits.h | 2 - tools/fake_libc_include/linux/socket.h | 2 - tools/fake_libc_include/linux/version.h | 2 - tools/fake_libc_include/locale.h | 2 - tools/fake_libc_include/malloc.h | 2 - tools/fake_libc_include/math.h | 2 - .../mir_toolkit/client_types.h | 2 - tools/fake_libc_include/netdb.h | 2 - tools/fake_libc_include/netinet/in.h | 2 - tools/fake_libc_include/netinet/tcp.h | 2 - tools/fake_libc_include/newlib.h | 2 - tools/fake_libc_include/openssl/err.h | 2 - tools/fake_libc_include/openssl/evp.h | 2 - tools/fake_libc_include/openssl/hmac.h | 2 - tools/fake_libc_include/openssl/ssl.h | 2 - tools/fake_libc_include/openssl/x509v3.h | 2 - tools/fake_libc_include/paths.h | 2 - tools/fake_libc_include/process.h | 2 - tools/fake_libc_include/pthread.h | 2 - tools/fake_libc_include/pwd.h | 2 - tools/fake_libc_include/reent.h | 2 - tools/fake_libc_include/regdef.h | 2 - tools/fake_libc_include/regex.h | 2 - tools/fake_libc_include/sched.h | 2 - tools/fake_libc_include/search.h | 2 - tools/fake_libc_include/semaphore.h | 2 - tools/fake_libc_include/setjmp.h | 2 - tools/fake_libc_include/signal.h | 2 - tools/fake_libc_include/stdarg.h | 2 - tools/fake_libc_include/stdbool.h | 2 - tools/fake_libc_include/stddef.h | 2 - tools/fake_libc_include/stdint.h | 2 - tools/fake_libc_include/stdio.h | 2 - tools/fake_libc_include/stdlib.h | 2 - tools/fake_libc_include/string.h | 2 - tools/fake_libc_include/sys/ioctl.h | 2 - tools/fake_libc_include/sys/mman.h | 2 - tools/fake_libc_include/sys/poll.h | 2 - tools/fake_libc_include/sys/resource.h | 2 - tools/fake_libc_include/sys/select.h | 2 - tools/fake_libc_include/sys/socket.h | 2 - tools/fake_libc_include/sys/stat.h | 2 - tools/fake_libc_include/sys/sysctl.h | 2 - tools/fake_libc_include/sys/time.h | 2 - tools/fake_libc_include/sys/types.h | 2 - tools/fake_libc_include/sys/uio.h | 2 - tools/fake_libc_include/sys/un.h | 2 - tools/fake_libc_include/sys/utsname.h | 2 - tools/fake_libc_include/sys/wait.h | 2 - tools/fake_libc_include/syslog.h | 2 - tools/fake_libc_include/tar.h | 2 - tools/fake_libc_include/termios.h | 2 - tools/fake_libc_include/tgmath.h | 2 - tools/fake_libc_include/time.h | 2 - tools/fake_libc_include/unctrl.h | 2 - tools/fake_libc_include/unistd.h | 2 - tools/fake_libc_include/utime.h | 2 - tools/fake_libc_include/utmp.h | 2 - tools/fake_libc_include/wchar.h | 2 - tools/fake_libc_include/wctype.h | 2 - tools/fake_libc_include/xcb/xcb.h | 2 - tools/fake_libc_include/zlib.h | 2 - tools/generate_builtins.py | 261 ------------- 133 files changed, 1169 insertions(+), 1314 deletions(-) rename {tools => generation}/bindings_templates/bindings.tmpl.pxd (89%) rename {tools => generation}/bindings_templates/bindings.tmpl.pyi (98%) rename {tools => generation}/bindings_templates/bindings.tmpl.pyx (99%) rename {tools => generation}/bindings_templates/class.tmpl.pxd (100%) rename {tools => generation}/bindings_templates/class.tmpl.pyi (100%) rename {tools => generation}/bindings_templates/class.tmpl.pyx (100%) rename {tools => generation}/bindings_templates/method.tmpl.pyx (100%) create mode 100644 generation/builtins_templates/_ignored.tmpl.pxi rename {tools => generation}/builtins_templates/aabb.tmpl.pxi (70%) rename {tools => generation}/builtins_templates/basis.tmpl.pxi (76%) rename {tools => generation}/builtins_templates/builtins.tmpl.pxd (97%) rename {tools => generation}/builtins_templates/builtins.tmpl.pyi (96%) rename {tools => generation}/builtins_templates/builtins.tmpl.pyx (96%) rename {tools => generation}/builtins_templates/color.tmpl.pxi (86%) rename {tools => generation}/builtins_templates/dictionary.tmpl.pxi (86%) rename {tools => generation}/builtins_templates/gdstring.tmpl.pxi (74%) rename {tools => generation}/builtins_templates/node_path.tmpl.pxi (75%) rename {tools => generation}/builtins_templates/plane.tmpl.pxi (78%) rename {tools => generation}/builtins_templates/quat.tmpl.pxi (71%) rename {tools => generation}/builtins_templates/rect2.tmpl.pxi (73%) rename {tools => generation}/builtins_templates/render.tmpl.pxd (68%) rename {tools => generation}/builtins_templates/render.tmpl.pyi (53%) create mode 100644 generation/builtins_templates/render.tmpl.pyx rename {tools => generation}/builtins_templates/rid.tmpl.pxi (88%) rename {tools => generation}/builtins_templates/transform.tmpl.pxi (75%) rename {tools => generation}/builtins_templates/transform2d.tmpl.pxi (78%) rename {tools => generation}/builtins_templates/vector2.tmpl.pxi (71%) rename {tools => generation}/builtins_templates/vector3.tmpl.pxi (77%) rename {tools => generation}/generate_bindings.py (78%) create mode 100644 generation/generate_builtins.py rename {tools => generation}/generate_pool_arrays.py (100%) rename {tools => generation}/pool_arrays_templates/pool_arrays.tmpl.pxd (93%) rename {tools => generation}/pool_arrays_templates/pool_arrays.tmpl.pyx (94%) rename {tools => generation}/pool_arrays_templates/pool_x_array.tmpl.pxd (100%) rename {tools => generation}/pool_arrays_templates/pool_x_array.tmpl.pyx (100%) create mode 100644 generation/type_specs.py delete mode 100644 tools/builtins_templates/render.tmpl.pyx delete mode 100644 tools/fake_libc_include/X11/Xlib.h delete mode 100644 tools/fake_libc_include/_ansi.h delete mode 100644 tools/fake_libc_include/_fake_defines.h delete mode 100644 tools/fake_libc_include/_fake_typedefs.h delete mode 100644 tools/fake_libc_include/_syslist.h delete mode 100644 tools/fake_libc_include/alloca.h delete mode 100644 tools/fake_libc_include/ar.h delete mode 100644 tools/fake_libc_include/argz.h delete mode 100644 tools/fake_libc_include/arpa/inet.h delete mode 100644 tools/fake_libc_include/asm-generic/int-ll64.h delete mode 100644 tools/fake_libc_include/assert.h delete mode 100644 tools/fake_libc_include/complex.h delete mode 100644 tools/fake_libc_include/ctype.h delete mode 100644 tools/fake_libc_include/dirent.h delete mode 100644 tools/fake_libc_include/dlfcn.h delete mode 100644 tools/fake_libc_include/endian.h delete mode 100644 tools/fake_libc_include/envz.h delete mode 100644 tools/fake_libc_include/errno.h delete mode 100644 tools/fake_libc_include/fastmath.h delete mode 100644 tools/fake_libc_include/fcntl.h delete mode 100644 tools/fake_libc_include/features.h delete mode 100644 tools/fake_libc_include/fenv.h delete mode 100644 tools/fake_libc_include/float.h delete mode 100644 tools/fake_libc_include/getopt.h delete mode 100644 tools/fake_libc_include/grp.h delete mode 100644 tools/fake_libc_include/iconv.h delete mode 100644 tools/fake_libc_include/ieeefp.h delete mode 100644 tools/fake_libc_include/inttypes.h delete mode 100644 tools/fake_libc_include/iso646.h delete mode 100644 tools/fake_libc_include/langinfo.h delete mode 100644 tools/fake_libc_include/libgen.h delete mode 100644 tools/fake_libc_include/libintl.h delete mode 100644 tools/fake_libc_include/limits.h delete mode 100644 tools/fake_libc_include/linux/socket.h delete mode 100644 tools/fake_libc_include/linux/version.h delete mode 100644 tools/fake_libc_include/locale.h delete mode 100644 tools/fake_libc_include/malloc.h delete mode 100644 tools/fake_libc_include/math.h delete mode 100644 tools/fake_libc_include/mir_toolkit/client_types.h delete mode 100644 tools/fake_libc_include/netdb.h delete mode 100644 tools/fake_libc_include/netinet/in.h delete mode 100644 tools/fake_libc_include/netinet/tcp.h delete mode 100644 tools/fake_libc_include/newlib.h delete mode 100644 tools/fake_libc_include/openssl/err.h delete mode 100644 tools/fake_libc_include/openssl/evp.h delete mode 100644 tools/fake_libc_include/openssl/hmac.h delete mode 100644 tools/fake_libc_include/openssl/ssl.h delete mode 100644 tools/fake_libc_include/openssl/x509v3.h delete mode 100644 tools/fake_libc_include/paths.h delete mode 100644 tools/fake_libc_include/process.h delete mode 100644 tools/fake_libc_include/pthread.h delete mode 100644 tools/fake_libc_include/pwd.h delete mode 100644 tools/fake_libc_include/reent.h delete mode 100644 tools/fake_libc_include/regdef.h delete mode 100644 tools/fake_libc_include/regex.h delete mode 100644 tools/fake_libc_include/sched.h delete mode 100644 tools/fake_libc_include/search.h delete mode 100644 tools/fake_libc_include/semaphore.h delete mode 100644 tools/fake_libc_include/setjmp.h delete mode 100644 tools/fake_libc_include/signal.h delete mode 100644 tools/fake_libc_include/stdarg.h delete mode 100644 tools/fake_libc_include/stdbool.h delete mode 100644 tools/fake_libc_include/stddef.h delete mode 100644 tools/fake_libc_include/stdint.h delete mode 100644 tools/fake_libc_include/stdio.h delete mode 100644 tools/fake_libc_include/stdlib.h delete mode 100644 tools/fake_libc_include/string.h delete mode 100644 tools/fake_libc_include/sys/ioctl.h delete mode 100644 tools/fake_libc_include/sys/mman.h delete mode 100644 tools/fake_libc_include/sys/poll.h delete mode 100644 tools/fake_libc_include/sys/resource.h delete mode 100644 tools/fake_libc_include/sys/select.h delete mode 100644 tools/fake_libc_include/sys/socket.h delete mode 100644 tools/fake_libc_include/sys/stat.h delete mode 100644 tools/fake_libc_include/sys/sysctl.h delete mode 100644 tools/fake_libc_include/sys/time.h delete mode 100644 tools/fake_libc_include/sys/types.h delete mode 100644 tools/fake_libc_include/sys/uio.h delete mode 100644 tools/fake_libc_include/sys/un.h delete mode 100644 tools/fake_libc_include/sys/utsname.h delete mode 100644 tools/fake_libc_include/sys/wait.h delete mode 100644 tools/fake_libc_include/syslog.h delete mode 100644 tools/fake_libc_include/tar.h delete mode 100644 tools/fake_libc_include/termios.h delete mode 100644 tools/fake_libc_include/tgmath.h delete mode 100644 tools/fake_libc_include/time.h delete mode 100644 tools/fake_libc_include/unctrl.h delete mode 100644 tools/fake_libc_include/unistd.h delete mode 100644 tools/fake_libc_include/utime.h delete mode 100644 tools/fake_libc_include/utmp.h delete mode 100644 tools/fake_libc_include/wchar.h delete mode 100644 tools/fake_libc_include/wctype.h delete mode 100644 tools/fake_libc_include/xcb/xcb.h delete mode 100644 tools/fake_libc_include/zlib.h delete mode 100644 tools/generate_builtins.py diff --git a/tools/bindings_templates/bindings.tmpl.pxd b/generation/bindings_templates/bindings.tmpl.pxd similarity index 89% rename from tools/bindings_templates/bindings.tmpl.pxd rename to generation/bindings_templates/bindings.tmpl.pxd index d7bb334a..c0323c03 100644 --- a/tools/bindings_templates/bindings.tmpl.pxd +++ b/generation/bindings_templates/bindings.tmpl.pxd @@ -1,5 +1,5 @@ # /!\ Autogenerated code, modifications will be lost /!\ -# see `tools/generate_bindings.py` +# see `generation/generate_bindings.py` from godot._hazmat.gdnative_api_struct cimport * from godot._hazmat.gdapi cimport pythonscript_gdapi10 as gdapi10 diff --git a/tools/bindings_templates/bindings.tmpl.pyi b/generation/bindings_templates/bindings.tmpl.pyi similarity index 98% rename from tools/bindings_templates/bindings.tmpl.pyi rename to generation/bindings_templates/bindings.tmpl.pyi index 36851ac9..8efa4b50 100644 --- a/tools/bindings_templates/bindings.tmpl.pyi +++ b/generation/bindings_templates/bindings.tmpl.pyi @@ -1,5 +1,5 @@ # /!\ Autogenerated code, modifications will be lost /!\ -# see `tools/generate_bindings.py` +# see `generation/generate_bindings.py` # Imports needed for typing # (Note PEP484 state that import without as and * are not exposed by the stub file) diff --git a/tools/bindings_templates/bindings.tmpl.pyx b/generation/bindings_templates/bindings.tmpl.pyx similarity index 99% rename from tools/bindings_templates/bindings.tmpl.pyx rename to generation/bindings_templates/bindings.tmpl.pyx index 33c6f6a6..027d1931 100644 --- a/tools/bindings_templates/bindings.tmpl.pyx +++ b/generation/bindings_templates/bindings.tmpl.pyx @@ -1,5 +1,5 @@ # /!\ Autogenerated code, modifications will be lost /!\ -# see `tools/generate_bindings.py` +# see `generation/generate_bindings.py` from godot._hazmat.gdnative_api_struct cimport * from godot._hazmat.gdapi cimport pythonscript_gdapi10 as gdapi10 diff --git a/tools/bindings_templates/class.tmpl.pxd b/generation/bindings_templates/class.tmpl.pxd similarity index 100% rename from tools/bindings_templates/class.tmpl.pxd rename to generation/bindings_templates/class.tmpl.pxd diff --git a/tools/bindings_templates/class.tmpl.pyi b/generation/bindings_templates/class.tmpl.pyi similarity index 100% rename from tools/bindings_templates/class.tmpl.pyi rename to generation/bindings_templates/class.tmpl.pyi diff --git a/tools/bindings_templates/class.tmpl.pyx b/generation/bindings_templates/class.tmpl.pyx similarity index 100% rename from tools/bindings_templates/class.tmpl.pyx rename to generation/bindings_templates/class.tmpl.pyx diff --git a/tools/bindings_templates/method.tmpl.pyx b/generation/bindings_templates/method.tmpl.pyx similarity index 100% rename from tools/bindings_templates/method.tmpl.pyx rename to generation/bindings_templates/method.tmpl.pyx diff --git a/generation/builtins_templates/_ignored.tmpl.pxi b/generation/builtins_templates/_ignored.tmpl.pxi new file mode 100644 index 00000000..21b945cc --- /dev/null +++ b/generation/builtins_templates/_ignored.tmpl.pxi @@ -0,0 +1,5 @@ +{%- set gd_functions = cook_c_signatures(""" +// GDAPI: 1.0 +// GDAPI: 1.1 +// GDAPI: 1.2 +""") -%} diff --git a/tools/builtins_templates/aabb.tmpl.pxi b/generation/builtins_templates/aabb.tmpl.pxi similarity index 70% rename from tools/builtins_templates/aabb.tmpl.pxi rename to generation/builtins_templates/aabb.tmpl.pxi index bef0e0b0..a4214c6d 100644 --- a/tools/builtins_templates/aabb.tmpl.pxi +++ b/generation/builtins_templates/aabb.tmpl.pxi @@ -1,4 +1,5 @@ -{%- set gd_functions = cook_c_signatures(""" +{# +""" // GDAPI: 1.0 void godot_aabb_new(godot_aabb* r_dest, godot_vector3* p_pos, godot_vector3* p_size) godot_vector3 godot_aabb_get_position(godot_aabb* p_self) @@ -29,7 +30,8 @@ godot_vector3 godot_aabb_get_endpoint(godot_aabb* p_self, godot_int p_idx) godot_bool godot_aabb_operator_equal(godot_aabb* p_self, godot_aabb* p_b) // GDAPI: 1.1 // GDAPI: 1.2 -""") -%} +""" +#} {%- block pxd_header -%} {%- endblock -%} @@ -79,25 +81,25 @@ cdef class AABB: {{ render_operator_eq() | indent }} {{ render_operator_ne() | indent }} - {{ render_method(**gd_functions["as_string"]) | indent }} - {{ render_method(**gd_functions["get_area"]) | indent }} - {{ render_method(**gd_functions["has_no_area"]) | indent }} - {{ render_method(**gd_functions["has_no_surface"]) | indent }} - {{ render_method(**gd_functions["intersects"]) | indent }} - {{ render_method(**gd_functions["encloses"]) | indent }} - {{ render_method(**gd_functions["merge"]) | indent }} - {{ render_method(**gd_functions["intersection"]) | indent }} - {{ render_method(**gd_functions["intersects_plane"]) | indent }} - {{ render_method(**gd_functions["intersects_segment"]) | indent }} - {{ render_method(**gd_functions["has_point"]) | indent }} - {{ render_method(**gd_functions["get_support"]) | indent }} - {{ render_method(**gd_functions["get_longest_axis"]) | indent }} - {{ render_method(**gd_functions["get_longest_axis_index"]) | indent }} - {{ render_method(**gd_functions["get_longest_axis_size"]) | indent }} - {{ render_method(**gd_functions["get_shortest_axis"]) | indent }} - {{ render_method(**gd_functions["get_shortest_axis_index"]) | indent }} - {{ render_method(**gd_functions["get_shortest_axis_size"]) | indent }} - {{ render_method(**gd_functions["expand"]) | indent }} - {{ render_method(**gd_functions["grow"]) | indent }} - {{ render_method(**gd_functions["get_endpoint"]) | indent }} + {{ render_method("as_string") | indent }} + {{ render_method("get_area") | indent }} + {{ render_method("has_no_area") | indent }} + {{ render_method("has_no_surface") | indent }} + {{ render_method("intersects") | indent }} + {{ render_method("encloses") | indent }} + {{ render_method("merge") | indent }} + {{ render_method("intersection") | indent }} + {{ render_method("intersects_plane") | indent }} + {{ render_method("intersects_segment") | indent }} + {{ render_method("has_point") | indent }} + {{ render_method("get_support") | indent }} + {{ render_method("get_longest_axis") | indent }} + {{ render_method("get_longest_axis_index") | indent }} + {{ render_method("get_longest_axis_size") | indent }} + {{ render_method("get_shortest_axis") | indent }} + {{ render_method("get_shortest_axis_index") | indent }} + {{ render_method("get_shortest_axis_size") | indent }} + {{ render_method("expand") | indent }} + {{ render_method("grow") | indent }} + {{ render_method("get_endpoint") | indent }} {% endblock %} diff --git a/tools/builtins_templates/basis.tmpl.pxi b/generation/builtins_templates/basis.tmpl.pxi similarity index 76% rename from tools/builtins_templates/basis.tmpl.pxi rename to generation/builtins_templates/basis.tmpl.pxi index 0ab20506..a3ae83cb 100644 --- a/tools/builtins_templates/basis.tmpl.pxi +++ b/generation/builtins_templates/basis.tmpl.pxi @@ -1,4 +1,5 @@ -{%- set gd_functions = cook_c_signatures(""" +{# +""" // GDAPI: 1.0 void godot_basis_new_with_rows(godot_basis* r_dest, godot_vector3* p_x_axis, godot_vector3* p_y_axis, godot_vector3* p_z_axis) void godot_basis_new_with_axis_and_angle(godot_basis* r_dest, godot_vector3* p_axis, godot_real p_phi) @@ -38,7 +39,8 @@ void godot_basis_set_euler_scale(godot_basis* p_self, godot_vector3* p_euler, go void godot_basis_set_quat_scale(godot_basis* p_self, godot_quat* p_quat, godot_vector3* p_scale) godot_basis godot_basis_slerp(godot_basis* p_self, godot_basis* p_b, godot_real p_t) // GDAPI: 1.2 -""") -%} +""" +#} {%- block pxd_header -%} {%- endblock -%} @@ -122,12 +124,8 @@ cdef class Basis: {{ render_operator_eq() | indent }} {{ render_operator_ne() | indent }} - {{ render_method("__add__", "godot_basis", args=[ - ("godot_basis*", "val") - ], gdname="operator_add") | indent }} - {{ render_method("__sub__", "godot_basis", args=[ - ("godot_basis*", "val") - ], gdname="operator_subtract") | indent }} + {{ render_method("operator_add", py_name="__add__") | indent }} + {{ render_method("operator_subtract", py_name="__sub__") | indent }} def __mul__(Basis self, val): cdef Basis _val @@ -141,28 +139,28 @@ cdef class Basis: else: return Basis_multiply_vector(self, _val) - {{ render_method(**gd_functions['as_string']) | indent }} - {{ render_method(**gd_functions['inverse']) | indent }} - {{ render_method(**gd_functions['transposed']) | indent }} - {{ render_method(**gd_functions['orthonormalized']) | indent }} - {{ render_method(**gd_functions['determinant']) | indent }} - {{ render_method(**gd_functions['rotated']) | indent }} - {{ render_method(**gd_functions['scaled']) | indent }} - {{ render_method(**gd_functions['get_scale']) | indent }} - {{ render_method(**gd_functions['get_euler']) | indent }} - {{ render_method(**gd_functions['get_quat']) | indent }} - {{ render_method(**gd_functions['set_quat']) | indent }} - {{ render_method(**gd_functions['set_axis_angle_scale']) | indent }} - {{ render_method(**gd_functions['set_euler_scale']) | indent }} - {{ render_method(**gd_functions['set_quat_scale']) | indent }} - {{ render_method(**gd_functions['tdotx']) | indent }} - {{ render_method(**gd_functions['tdoty']) | indent }} - {{ render_method(**gd_functions['tdotz']) | indent }} - {{ render_method(**gd_functions['xform']) | indent }} - {{ render_method(**gd_functions['xform_inv']) | indent }} - {{ render_method(**gd_functions['get_orthogonal_index']) | indent }} - {{ render_method(**gd_functions['get_elements']) | indent }} - {{ render_method(**gd_functions['get_row']) | indent }} - {{ render_method(**gd_functions['set_row']) | indent }} - {{ render_method(**gd_functions['slerp']) | indent }} + {{ render_method("as_string") | indent }} + {{ render_method("inverse") | indent }} + {{ render_method("transposed") | indent }} + {{ render_method("orthonormalized") | indent }} + {{ render_method("determinant") | indent }} + {{ render_method("rotated") | indent }} + {{ render_method("scaled") | indent }} + {{ render_method("get_scale") | indent }} + {{ render_method("get_euler") | indent }} + {{ render_method("get_quat") | indent }} + {{ render_method("set_quat") | indent }} + {{ render_method("set_axis_angle_scale") | indent }} + {{ render_method("set_euler_scale") | indent }} + {{ render_method("set_quat_scale") | indent }} + {{ render_method("tdotx") | indent }} + {{ render_method("tdoty") | indent }} + {{ render_method("tdotz") | indent }} + {{ render_method("xform") | indent }} + {{ render_method("xform_inv") | indent }} + {{ render_method("get_orthogonal_index") | indent }} + {{ render_method("get_elements") | indent }} + {{ render_method("get_row") | indent }} + {{ render_method("set_row") | indent }} + {{ render_method("slerp") | indent }} {% endblock %} diff --git a/tools/builtins_templates/builtins.tmpl.pxd b/generation/builtins_templates/builtins.tmpl.pxd similarity index 97% rename from tools/builtins_templates/builtins.tmpl.pxd rename to generation/builtins_templates/builtins.tmpl.pxd index 551260c7..d54b25b6 100644 --- a/tools/builtins_templates/builtins.tmpl.pxd +++ b/generation/builtins_templates/builtins.tmpl.pxd @@ -1,5 +1,5 @@ # /!\ Autogenerated code, modifications will be lost /!\ -# see `tools/generate_builtins.py` +# see `generation/generate_builtins.py` cimport cython diff --git a/tools/builtins_templates/builtins.tmpl.pyi b/generation/builtins_templates/builtins.tmpl.pyi similarity index 96% rename from tools/builtins_templates/builtins.tmpl.pyi rename to generation/builtins_templates/builtins.tmpl.pyi index d667ebe7..fcac5749 100644 --- a/tools/builtins_templates/builtins.tmpl.pyi +++ b/generation/builtins_templates/builtins.tmpl.pyi @@ -1,5 +1,7 @@ # /!\ Autogenerated code, modifications will be lost /!\ -# see `tools/generate_builtins.py` +# see `generation/generate_builtins.py` + +from typing import Union class AABB: @@ -68,7 +70,6 @@ class PoolColorArray: class GDString: pass -{# {% set render_target = "rid" %} {% include 'render.tmpl.pyi' with context %} {% set render_target = "vector3" %} @@ -97,4 +98,3 @@ class GDString: {% include 'render.tmpl.pyi' with context %} {% set render_target = "dictionary" %} {% include 'render.tmpl.pyi' with context %} -#} diff --git a/tools/builtins_templates/builtins.tmpl.pyx b/generation/builtins_templates/builtins.tmpl.pyx similarity index 96% rename from tools/builtins_templates/builtins.tmpl.pyx rename to generation/builtins_templates/builtins.tmpl.pyx index a73b4573..d94c7aa3 100644 --- a/tools/builtins_templates/builtins.tmpl.pyx +++ b/generation/builtins_templates/builtins.tmpl.pyx @@ -1,5 +1,7 @@ # /!\ Autogenerated code, modifications will be lost /!\ -# see `tools/generate_builtins.py` +# see `generation/generate_builtins.py` + +from typing import Union cimport cython diff --git a/tools/builtins_templates/color.tmpl.pxi b/generation/builtins_templates/color.tmpl.pxi similarity index 86% rename from tools/builtins_templates/color.tmpl.pxi rename to generation/builtins_templates/color.tmpl.pxi index a5c0cdd2..13361252 100644 --- a/tools/builtins_templates/color.tmpl.pxi +++ b/generation/builtins_templates/color.tmpl.pxi @@ -1,4 +1,5 @@ -{%- set gd_functions = cook_c_signatures(""" +{# +""" // GDAPI: 1.0 void godot_color_new_rgba(godot_color* r_dest, godot_real p_r, godot_real p_g, godot_real p_b, godot_real p_a) void godot_color_new_rgb(godot_color* r_dest, godot_real p_r, godot_real p_g, godot_real p_b) @@ -33,7 +34,8 @@ godot_color godot_color_darkened(godot_color* p_self, godot_real p_amount) godot_color godot_color_from_hsv(godot_color* p_self, godot_real p_h, godot_real p_s, godot_real p_v, godot_real p_a) godot_color godot_color_lightened(godot_color* p_self, godot_real p_amount) // GDAPI: 1.2 -""") -%} +""" +#} {%- block pxd_header %} {% endblock -%} @@ -97,35 +99,35 @@ cdef class Color: def a8(Color self, uint8_t val): self.a = (float(val) / 256) - {{ render_property("r", "godot_real", "get_r", "set_r") | indent }} - {{ render_property("g", "godot_real", "get_g", "set_g") | indent }} - {{ render_property("b", "godot_real", "get_b", "set_b") | indent }} - {{ render_property("a", "godot_real", "get_a", "set_a") | indent }} + {{ render_property("r", getter="get_r", setter="set_r") | indent }} + {{ render_property("g", getter="get_g", setter="set_g") | indent }} + {{ render_property("b", getter="get_b", setter="set_b") | indent }} + {{ render_property("a", getter="get_a", setter="set_a") | indent }} - {{ render_property("h", "godot_real", "get_h") | indent }} - {{ render_property("s", "godot_real", "get_s") | indent }} - {{ render_property("v", "godot_real", "get_v") | indent }} + {{ render_property("h", getter="get_h") | indent }} + {{ render_property("s", getter="get_s") | indent }} + {{ render_property("v", getter="get_v") | indent }} {{ render_operator_eq() | indent }} {{ render_operator_ne() | indent }} {{ render_operator_lt() | indent }} - {{ render_method(**gd_functions["as_string"]) | indent }} - {{ render_method(**gd_functions["to_rgba32"]) | indent }} - {{ render_method(**gd_functions["to_abgr32"]) | indent }} - {{ render_method(**gd_functions["to_abgr64"]) | indent }} - {{ render_method(**gd_functions["to_argb64"]) | indent }} - {{ render_method(**gd_functions["to_rgba64"]) | indent }} - {{ render_method(**gd_functions["to_argb32"]) | indent }} - {{ render_method(**gd_functions["gray"]) | indent }} - {{ render_method(**gd_functions["inverted"]) | indent }} - {{ render_method(**gd_functions["contrasted"]) | indent }} - {{ render_method(**gd_functions["linear_interpolate"]) | indent }} - {{ render_method(**gd_functions["blend"]) | indent }} - {{ render_method(**gd_functions["darkened"]) | indent }} - {{ render_method(**gd_functions["from_hsv"]) | indent }} - {{ render_method(**gd_functions["lightened"]) | indent }} - {{ render_method(**gd_functions["to_html"]) | indent }} + {{ render_method("as_string") | indent }} + {{ render_method("to_rgba32") | indent }} + {{ render_method("to_abgr32") | indent }} + {{ render_method("to_abgr64") | indent }} + {{ render_method("to_argb64") | indent }} + {{ render_method("to_rgba64") | indent }} + {{ render_method("to_argb32") | indent }} + {{ render_method("gray") | indent }} + {{ render_method("inverted") | indent }} + {{ render_method("contrasted") | indent }} + {{ render_method("linear_interpolate") | indent }} + {{ render_method("blend") | indent }} + {{ render_method("darkened") | indent }} + {{ render_method("from_hsv") | indent }} + {{ render_method("lightened") | indent }} + {{ render_method("to_html") | indent }} {% endblock %} diff --git a/tools/builtins_templates/dictionary.tmpl.pxi b/generation/builtins_templates/dictionary.tmpl.pxi similarity index 86% rename from tools/builtins_templates/dictionary.tmpl.pxi rename to generation/builtins_templates/dictionary.tmpl.pxi index 38d52b6f..c40a270a 100644 --- a/tools/builtins_templates/dictionary.tmpl.pxi +++ b/generation/builtins_templates/dictionary.tmpl.pxi @@ -1,4 +1,5 @@ -{%- set gd_functions = cook_c_signatures(""" +{# +""" // GDAPI: 1.0 void godot_dictionary_new(godot_dictionary* r_dest) void godot_dictionary_new_copy(godot_dictionary* r_dest, godot_dictionary* p_src) @@ -19,12 +20,13 @@ void godot_dictionary_set(godot_dictionary* p_self, godot_variant* p_key, godot_ // godot_variant* godot_dictionary_next(godot_dictionary* p_self, godot_variant* p_key) godot_bool godot_dictionary_operator_equal(godot_dictionary* p_self, godot_dictionary* p_b) godot_string godot_dictionary_to_json(godot_dictionary* p_self) -godot_bool godot_dictionary_erase_with_return(godot_dictionary* p_self, godot_variant* p_key) // GDAPI: 1.1 +godot_bool godot_dictionary_erase_with_return(godot_dictionary* p_self, godot_variant* p_key) godot_variant godot_dictionary_get_with_default(godot_dictionary* p_self, godot_variant* p_key, godot_variant* p_default) // GDAPI: 1.2 godot_dictionary godot_dictionary_duplicate(godot_dictionary* p_self, godot_bool p_deep) -""") -%} +""" +#} {%- block pxd_header %} {% endblock -%} @@ -86,8 +88,7 @@ cdef class Dictionary: else: return godot_variant_to_pyobj(p_var_ret) -{%set contains_specs = gd_functions['set'] | merge(pyname="__setitem__") %} - {{ render_method(**contains_specs) | indent }} + {{ render_method("set", py_name="__setitem__") | indent }} def __delitem__(self, object key): cdef godot_variant var_key @@ -183,26 +184,21 @@ cdef class Dictionary: except TypeError: return True -{%set len_specs = gd_functions['size'] | merge(pyname="__len__") %} - {{ render_method(**len_specs) | indent }} - -{%set hash_specs = gd_functions['hash'] | merge(pyname="__hash__") %} - {{ render_method(**hash_specs) | indent }} - -{%set contains_specs = gd_functions['has'] | merge(pyname="__contains__") %} - {{ render_method(**contains_specs) | indent }} - - {{ render_method(**gd_functions["duplicate"]) | indent }} - {{ render_method(**gd_functions["size"]) | indent }} - {{ render_method(**gd_functions["empty"]) | indent }} - {{ render_method(**gd_functions["clear"]) | indent }} - {{ render_method(**gd_functions["has"]) | indent }} - {{ render_method(**gd_functions["has_all"]) | indent }} - {{ render_method(**gd_functions["erase"]) | indent }} - {{ render_method(**gd_functions["hash"]) | indent }} - {{ render_method(**gd_functions["keys"]) | indent }} - {{ render_method(**gd_functions["values"]) | indent }} - {{ render_method(**gd_functions["to_json"]) | indent }} + {{ render_method("size", py_name="__len__") | indent }} + {{ render_method("hash", py_name="__hash__") | indent }} + {{ render_method("has", py_name="__contains__") | indent }} + + {{ render_method("duplicate") | indent }} + {{ render_method("size") | indent }} + {{ render_method("empty") | indent }} + {{ render_method("clear") | indent }} + {{ render_method("has") | indent }} + {{ render_method("has_all") | indent }} + {{ render_method("erase") | indent }} + {{ render_method("hash") | indent }} + {{ render_method("keys") | indent }} + {{ render_method("values") | indent }} + {{ render_method("to_json") | indent }} {% endblock %} {%- block python_consts %} diff --git a/tools/builtins_templates/gdstring.tmpl.pxi b/generation/builtins_templates/gdstring.tmpl.pxi similarity index 74% rename from tools/builtins_templates/gdstring.tmpl.pxi rename to generation/builtins_templates/gdstring.tmpl.pxi index d501a8a9..bbf3a9bb 100644 --- a/tools/builtins_templates/gdstring.tmpl.pxi +++ b/generation/builtins_templates/gdstring.tmpl.pxi @@ -1,4 +1,5 @@ -{%- set gd_functions = cook_c_signatures(""" +{# +""" // GDAPI: 1.0 void godot_string_new(godot_string* r_dest) void godot_string_new_copy(godot_string* r_dest, godot_string* p_src) @@ -155,7 +156,8 @@ godot_pool_string_array godot_string_rsplit(godot_string* p_self, godot_string* godot_string godot_string_trim_prefix(godot_string* p_self, godot_string* p_prefix) godot_string godot_string_trim_suffix(godot_string* p_self, godot_string* p_suffix) // GDAPI: 1.2 -""") -%} +""" +#} {%- block pxd_header %} {% endblock -%} @@ -191,74 +193,72 @@ cdef class GDString: {{ render_operator_ne() | indent }} {{ render_operator_lt() | indent }} -{%set hash_specs = gd_functions['hash'] | merge(pyname="__hash__") %} - {{ render_method(**hash_specs) | indent }} -{%set hash_specs = gd_functions['operator_plus'] | merge(pyname="__add__") %} - {{ render_method(**hash_specs) | indent }} + {{ render_method("hash", py_name="__hash__") | indent }} + {{ render_method("operator_plus", py_name="__add__") | indent }} - {{ render_method(**gd_functions["begins_with"]) | indent }} - {{ render_method(**gd_functions["bigrams"]) | indent }} - {{ render_method(**gd_functions["c_escape"]) | indent }} - {{ render_method(**gd_functions["c_unescape"]) | indent }} - {{ render_method(**gd_functions["capitalize"]) | indent }} - {{ render_method(**gd_functions["dedent"]) | indent }} - {{ render_method(**gd_functions["empty"]) | indent }} - {{ render_method(**gd_functions["ends_with"]) | indent }} - {{ render_method(**gd_functions["erase"]) | indent }} - {{ render_method(**gd_functions["find"]) | indent }} - {{ render_method(**gd_functions["find_last"]) | indent }} - {{ render_method(**gd_functions["findn"]) | indent }} - {{ render_method(**gd_functions["get_base_dir"]) | indent }} - {{ render_method(**gd_functions["get_basename"]) | indent }} - {{ render_method(**gd_functions["get_extension"]) | indent }} - {{ render_method(**gd_functions["get_file"]) | indent }} - {{ render_method(**gd_functions["hash"]) | indent }} - {{ render_method(**gd_functions["hex_to_int"]) | indent }} - {{ render_method(**gd_functions["insert"]) | indent }} - {{ render_method(**gd_functions["is_abs_path"]) | indent }} - {{ render_method(**gd_functions["is_rel_path"]) | indent }} - {{ render_method(**gd_functions["is_subsequence_of"]) | indent }} - {{ render_method(**gd_functions["is_subsequence_ofi"]) | indent }} - {{ render_method(**gd_functions["is_valid_float"]) | indent }} - {{ render_method(**gd_functions["is_valid_hex_number"]) | indent }} - {{ render_method(**gd_functions["is_valid_html_color"]) | indent }} - {{ render_method(**gd_functions["is_valid_identifier"]) | indent }} - {{ render_method(**gd_functions["is_valid_integer"]) | indent }} - {{ render_method(**gd_functions["is_valid_ip_address"]) | indent }} - {{ render_method(**gd_functions["json_escape"]) | indent }} - {{ render_method(**gd_functions["left"]) | indent }} - {{ render_method(**gd_functions["length"]) | indent }} - {{ render_method(**gd_functions["match"]) | indent }} - {{ render_method(**gd_functions["matchn"]) | indent }} - {{ render_method(**gd_functions["md5_buffer"]) | indent }} - {{ render_method(**gd_functions["md5_text"]) | indent }} - {{ render_method(**gd_functions["pad_decimals"]) | indent }} - {{ render_method(**gd_functions["pad_zeros"]) | indent }} - {{ render_method(**gd_functions["percent_decode"]) | indent }} - {{ render_method(**gd_functions["percent_encode"]) | indent }} - {{ render_method(**gd_functions["plus_file"]) | indent }} - {{ render_method(**gd_functions["replace"]) | indent }} - {{ render_method(**gd_functions["replacen"]) | indent }} - {{ render_method(**gd_functions["rfind"]) | indent }} - {{ render_method(**gd_functions["rfindn"]) | indent }} - {{ render_method(**gd_functions["right"]) | indent }} - {{ render_method(**gd_functions["rsplit"]) | indent }} - {{ render_method(**gd_functions["rstrip"]) | indent }} - {{ render_method(**gd_functions["sha256_buffer"]) | indent }} - {{ render_method(**gd_functions["sha256_text"]) | indent }} - {{ render_method(**gd_functions["similarity"]) | indent }} - {{ render_method(**gd_functions["split"]) | indent }} - {{ render_method(**gd_functions["split_floats"]) | indent }} - {{ render_method(**gd_functions["strip_edges"]) | indent }} - {{ render_method(**gd_functions["substr"]) | indent }} - {{ render_method(**gd_functions["to_float"]) | indent }} - {{ render_method(**gd_functions["to_int"]) | indent }} - {{ render_method(**gd_functions["to_lower"]) | indent }} - {{ render_method(**gd_functions["to_upper"]) | indent }} - {{ render_method(**gd_functions["trim_prefix"]) | indent }} - {{ render_method(**gd_functions["trim_suffix"]) | indent }} - {{ render_method(**gd_functions["xml_escape"]) | indent }} - {{ render_method(**gd_functions["xml_unescape"]) | indent }} + {{ render_method("begins_with") | indent }} + {{ render_method("bigrams") | indent }} + {{ render_method("c_escape") | indent }} + {{ render_method("c_unescape") | indent }} + {{ render_method("capitalize") | indent }} + {{ render_method("dedent") | indent }} + {{ render_method("empty") | indent }} + {{ render_method("ends_with") | indent }} + {{ render_method("erase") | indent }} + {{ render_method("find") | indent }} + {{ render_method("find_last") | indent }} + {{ render_method("findn") | indent }} + {{ render_method("get_base_dir") | indent }} + {{ render_method("get_basename") | indent }} + {{ render_method("get_extension") | indent }} + {{ render_method("get_file") | indent }} + {{ render_method("hash") | indent }} + {{ render_method("hex_to_int") | indent }} + {{ render_method("insert") | indent }} + {{ render_method("is_abs_path") | indent }} + {{ render_method("is_rel_path") | indent }} + {{ render_method("is_subsequence_of") | indent }} + {{ render_method("is_subsequence_ofi") | indent }} + {{ render_method("is_valid_float") | indent }} + {{ render_method("is_valid_hex_number") | indent }} + {{ render_method("is_valid_html_color") | indent }} + {{ render_method("is_valid_identifier") | indent }} + {{ render_method("is_valid_integer") | indent }} + {{ render_method("is_valid_ip_address") | indent }} + {{ render_method("json_escape") | indent }} + {{ render_method("left") | indent }} + {{ render_method("length") | indent }} + {{ render_method("match") | indent }} + {{ render_method("matchn") | indent }} + {{ render_method("md5_buffer") | indent }} + {{ render_method("md5_text") | indent }} + {{ render_method("pad_decimals") | indent }} + {{ render_method("pad_zeros") | indent }} + {{ render_method("percent_decode") | indent }} + {{ render_method("percent_encode") | indent }} + {{ render_method("plus_file") | indent }} + {{ render_method("replace") | indent }} + {{ render_method("replacen") | indent }} + {{ render_method("rfind") | indent }} + {{ render_method("rfindn") | indent }} + {{ render_method("right") | indent }} + {{ render_method("rsplit") | indent }} + {{ render_method("rstrip") | indent }} + {{ render_method("sha256_buffer") | indent }} + {{ render_method("sha256_text") | indent }} + {{ render_method("similarity") | indent }} + {{ render_method("split") | indent }} + {{ render_method("split_floats") | indent }} + {{ render_method("strip_edges") | indent }} + {{ render_method("substr") | indent }} + {{ render_method("to_float") | indent }} + {{ render_method("to_int") | indent }} + {{ render_method("to_lower") | indent }} + {{ render_method("to_upper") | indent }} + {{ render_method("trim_prefix") | indent }} + {{ render_method("trim_suffix") | indent }} + {{ render_method("xml_escape") | indent }} + {{ render_method("xml_unescape") | indent }} {% endblock %} {%- block python_consts %} diff --git a/tools/builtins_templates/node_path.tmpl.pxi b/generation/builtins_templates/node_path.tmpl.pxi similarity index 75% rename from tools/builtins_templates/node_path.tmpl.pxi rename to generation/builtins_templates/node_path.tmpl.pxi index f5a2823a..3c989665 100644 --- a/tools/builtins_templates/node_path.tmpl.pxi +++ b/generation/builtins_templates/node_path.tmpl.pxi @@ -1,4 +1,5 @@ -{%- set gd_functions = cook_c_signatures(""" +{# +""" // GDAPI: 1.0 void godot_node_path_new(godot_node_path* r_dest, godot_string* p_from) void godot_node_path_new_copy(godot_node_path* r_dest, godot_node_path* p_src) @@ -15,7 +16,8 @@ godot_bool godot_node_path_operator_equal(godot_node_path* p_self, godot_node_pa // GDAPI: 1.1 godot_node_path godot_node_path_get_as_property_path(godot_node_path* p_self) // GDAPI: 1.2 -""") -%} +""" +#} {%- block pxd_header %} {% endblock -%} @@ -55,16 +57,16 @@ cdef class NodePath: {{ render_operator_eq() | indent }} {{ render_operator_ne() | indent }} - {{ render_method(**gd_functions["destroy"]) | indent }} - {{ render_method(**gd_functions["as_string"]) | indent }} - {{ render_method(**gd_functions["is_absolute"]) | indent }} - {{ render_method(**gd_functions["get_name_count"]) | indent }} - {{ render_method(**gd_functions["get_name"]) | indent }} - {{ render_method(**gd_functions["get_subname_count"]) | indent }} - {{ render_method(**gd_functions["get_subname"]) | indent }} - {{ render_method(**gd_functions["get_concatenated_subnames"]) | indent }} - {{ render_method(**gd_functions["is_empty"]) | indent }} - {{ render_method(**gd_functions["get_as_property_path"]) | indent }} + {{ render_method("destroy") | indent }} + {{ render_method("as_string") | indent }} + {{ render_method("is_absolute") | indent }} + {{ render_method("get_name_count") | indent }} + {{ render_method("get_name") | indent }} + {{ render_method("get_subname_count") | indent }} + {{ render_method("get_subname") | indent }} + {{ render_method("get_concatenated_subnames") | indent }} + {{ render_method("is_empty") | indent }} + {{ render_method("get_as_property_path") | indent }} {% endblock %} {%- block python_consts %} diff --git a/tools/builtins_templates/plane.tmpl.pxi b/generation/builtins_templates/plane.tmpl.pxi similarity index 78% rename from tools/builtins_templates/plane.tmpl.pxi rename to generation/builtins_templates/plane.tmpl.pxi index d343a143..e29c4583 100644 --- a/tools/builtins_templates/plane.tmpl.pxi +++ b/generation/builtins_templates/plane.tmpl.pxi @@ -1,4 +1,5 @@ -{%- set gd_functions = cook_c_signatures(""" +{# +""" // GDAPI: 1.0 void godot_plane_new_with_reals(godot_plane* r_dest, godot_real p_a, godot_real p_b, godot_real p_c, godot_real p_d) void godot_plane_new_with_vectors(godot_plane* r_dest, godot_vector3* p_v1, godot_vector3* p_v2, godot_vector3* p_v3) @@ -22,7 +23,8 @@ godot_real godot_plane_get_d(godot_plane* p_self) void godot_plane_set_d(godot_plane* p_self, godot_real p_d) // GDAPI: 1.1 // GDAPI: 1.2 -""") -%} +""" +#} {%- block pxd_header %} {% endblock -%} @@ -58,22 +60,22 @@ cdef class Plane: {{ render_operator_eq() | indent }} {{ render_operator_ne() | indent }} - {{ render_method("__neg__", "godot_plane", gdname="operator_neg") | indent }} + {{ render_method("operator_neg", py_name="__neg__") | indent }} def __pos__(Plane self): return self - {{ render_property("normal", "godot_vector3", "get_normal", "set_normal") | indent }} - {{ render_property("d", "godot_real", "get_d", "set_d") | indent }} + {{ render_property("normal", getter="get_normal", setter="set_normal") | indent }} + {{ render_property("d", getter="get_d", setter="set_d") | indent }} - {{ render_method(**gd_functions["as_string"]) | indent }} - {{ render_method(**gd_functions["normalized"]) | indent }} - {{ render_method(**gd_functions["center"]) | indent }} - {{ render_method(**gd_functions["get_any_point"]) | indent }} - {{ render_method(**gd_functions["is_point_over"]) | indent }} - {{ render_method(**gd_functions["distance_to"]) | indent }} - {{ render_method(**gd_functions["has_point"]) | indent }} - {{ render_method(**gd_functions["project"]) | indent }} + {{ render_method("as_string") | indent }} + {{ render_method("normalized") | indent }} + {{ render_method("center") | indent }} + {{ render_method("get_any_point") | indent }} + {{ render_method("is_point_over") | indent }} + {{ render_method("distance_to") | indent }} + {{ render_method("has_point") | indent }} + {{ render_method("project") | indent }} def intersects_segment(Plane self, Vector3 begin not None, Vector3 end not None): cdef Vector3 ret = Vector3.__new__(Vector3) @@ -96,10 +98,10 @@ cdef class Plane: else: return None - {{ render_method(**gd_functions["set_normal"]) | indent }} - {{ render_method(**gd_functions["get_normal"]) | indent }} - {{ render_method(**gd_functions["get_d"]) | indent }} - {{ render_method(**gd_functions["set_d"]) | indent }} + {{ render_method("set_normal") | indent }} + {{ render_method("get_normal") | indent }} + {{ render_method("get_d") | indent }} + {{ render_method("set_d") | indent }} {% endblock %} {%- block python_consts %} diff --git a/tools/builtins_templates/quat.tmpl.pxi b/generation/builtins_templates/quat.tmpl.pxi similarity index 71% rename from tools/builtins_templates/quat.tmpl.pxi rename to generation/builtins_templates/quat.tmpl.pxi index 59c7c54e..31128684 100644 --- a/tools/builtins_templates/quat.tmpl.pxi +++ b/generation/builtins_templates/quat.tmpl.pxi @@ -1,9 +1,8 @@ -{%- set gd_functions = cook_c_signatures(""" +{# +""" // GDAPI: 1.0 void godot_quat_new(godot_quat* r_dest, godot_real p_x, godot_real p_y, godot_real p_z, godot_real p_w) void godot_quat_new_with_axis_angle(godot_quat* r_dest, godot_vector3* p_axis, godot_real p_angle) -void godot_quat_new_with_basis(godot_quat* r_dest, godot_basis* p_basis) -void godot_quat_new_with_euler(godot_quat* r_dest, godot_vector3* p_euler) godot_real godot_quat_get_x(godot_quat* p_self) void godot_quat_set_x(godot_quat* p_self, godot_real val) godot_real godot_quat_get_y(godot_quat* p_self) @@ -30,9 +29,12 @@ godot_quat godot_quat_operator_divide(godot_quat* p_self, godot_real p_b) godot_bool godot_quat_operator_equal(godot_quat* p_self, godot_quat* p_b) godot_quat godot_quat_operator_neg(godot_quat* p_self) // GDAPI: 1.1 +void godot_quat_new_with_basis(godot_quat* r_dest, godot_basis* p_basis) +void godot_quat_new_with_euler(godot_quat* r_dest, godot_vector3* p_euler) void godot_quat_set_axis_angle(godot_quat* p_self, godot_vector3* p_axis, godot_real p_angle) // GDAPI: 1.2 -""") -%} +""" +#} {%- block pxd_header %} {% endblock -%} @@ -77,17 +79,14 @@ cdef class Quat: {{ render_operator_eq() | indent }} {{ render_operator_ne() | indent }} - {{ render_method("__neg__", "godot_quat", gdname="operator_neg") | indent }} + {{ render_method("operator_neg", py_name="__neg__") | indent }} def __pos__(Quat self): return self -{%set add_specs = gd_functions['operator_add'] | merge(pyname="__add__") %} - {{ render_method(**add_specs) | indent }} -{%set sub_specs = gd_functions['operator_subtract'] | merge(pyname="__sub__") %} - {{ render_method(**sub_specs) | indent }} -{%set mult_specs = gd_functions['operator_multiply'] | merge(pyname="__mul__") %} - {{ render_method(**mult_specs) | indent }} + {{ render_method("operator_add", py_name="__add__") | indent }} + {{ render_method("operator_subtract", py_name="__sub__") | indent }} + {{ render_method("operator_multiply", py_name="__mul__") | indent }} def __truediv__(Quat self, godot_real val): if val == 0: @@ -96,23 +95,23 @@ cdef class Quat: ret._gd_data = gdapi10.godot_quat_operator_divide(&self._gd_data, val) return ret - {{ render_property("x", "godot_real", "get_x", "set_x") | indent }} - {{ render_property("y", "godot_real", "get_y", "set_y") | indent }} - {{ render_property("z", "godot_real", "get_z", "set_z") | indent }} - {{ render_property("w", "godot_real", "get_w", "set_w") | indent }} - - {{ render_method(**gd_functions["as_string"]) | indent }} - {{ render_method(**gd_functions["length"]) | indent }} - {{ render_method(**gd_functions["length_squared"]) | indent }} - {{ render_method(**gd_functions["normalized"]) | indent }} - {{ render_method(**gd_functions["is_normalized"]) | indent }} - {{ render_method(**gd_functions["inverse"]) | indent }} - {{ render_method(**gd_functions["dot"]) | indent }} - {{ render_method(**gd_functions["xform"]) | indent }} - {{ render_method(**gd_functions["slerp"]) | indent }} - {{ render_method(**gd_functions["slerpni"]) | indent }} - {{ render_method(**gd_functions["cubic_slerp"]) | indent }} - {{ render_method(**gd_functions["set_axis_angle"]) | indent }} + {{ render_property("x", getter="get_x", setter="set_x") | indent }} + {{ render_property("y", getter="get_y", setter="set_y") | indent }} + {{ render_property("z", getter="get_z", setter="set_z") | indent }} + {{ render_property("w", getter="get_w", setter="set_w") | indent }} + + {{ render_method("as_string") | indent }} + {{ render_method("length") | indent }} + {{ render_method("length_squared") | indent }} + {{ render_method("normalized") | indent }} + {{ render_method("is_normalized") | indent }} + {{ render_method("inverse") | indent }} + {{ render_method("dot") | indent }} + {{ render_method("xform") | indent }} + {{ render_method("slerp") | indent }} + {{ render_method("slerpni") | indent }} + {{ render_method("cubic_slerp") | indent }} + {{ render_method("set_axis_angle") | indent }} {% endblock %} {%- block python_consts %} diff --git a/tools/builtins_templates/rect2.tmpl.pxi b/generation/builtins_templates/rect2.tmpl.pxi similarity index 73% rename from tools/builtins_templates/rect2.tmpl.pxi rename to generation/builtins_templates/rect2.tmpl.pxi index eadac8fb..6f4c3093 100644 --- a/tools/builtins_templates/rect2.tmpl.pxi +++ b/generation/builtins_templates/rect2.tmpl.pxi @@ -1,4 +1,5 @@ -{%- set gd_functions = cook_c_signatures(""" +{# +""" // GDAPI: 1.0 void godot_rect2_new_with_position_and_size(godot_rect2* r_dest, godot_vector2* p_pos, godot_vector2* p_size) void godot_rect2_new(godot_rect2* r_dest, godot_real p_x, godot_real p_y, godot_real p_width, godot_real p_height) @@ -22,7 +23,8 @@ godot_rect2 godot_rect2_grow_individual(godot_rect2* p_self, godot_real p_left, godot_rect2 godot_rect2_grow_margin(godot_rect2* p_self, godot_int p_margin, godot_real p_by) godot_rect2 godot_rect2_abs(godot_rect2* p_self) // GDAPI: 1.2 -""") -%} +""" +#} {%- block pxd_header %} {% endblock -%} @@ -52,8 +54,8 @@ cdef class Rect2: {{ render_operator_eq() | indent }} {{ render_operator_ne() | indent }} - {{ render_property("size", "godot_vector2", "get_size", "set_size") | indent }} - {{ render_property("position", "godot_vector2", "get_position", "set_position") | indent }} + {{ render_property("size", getter="get_size", setter="set_size") | indent }} + {{ render_property("position", getter="get_position", setter="set_position") | indent }} @property def end(Rect2 self) -> Vector2: @@ -63,19 +65,19 @@ cdef class Rect2: ret._gd_data = gdapi10.godot_vector2_operator_add(&position, &size) return ret - {{ render_method(**gd_functions["as_string"]) | indent }} - {{ render_method(**gd_functions["get_area"]) | indent }} - {{ render_method(**gd_functions["intersects"]) | indent }} - {{ render_method(**gd_functions["encloses"]) | indent }} - {{ render_method(**gd_functions["has_no_area"]) | indent }} - {{ render_method(**gd_functions["clip"]) | indent }} - {{ render_method(**gd_functions["merge"]) | indent }} - {{ render_method(**gd_functions["has_point"]) | indent }} - {{ render_method(**gd_functions["grow"]) | indent }} - {{ render_method(**gd_functions["grow_individual"]) | indent }} - {{ render_method(**gd_functions["grow_margin"]) | indent }} - {{ render_method(**gd_functions["abs"]) | indent }} - {{ render_method(**gd_functions["expand"]) | indent }} + {{ render_method("as_string") | indent }} + {{ render_method("get_area") | indent }} + {{ render_method("intersects") | indent }} + {{ render_method("encloses") | indent }} + {{ render_method("has_no_area") | indent }} + {{ render_method("clip") | indent }} + {{ render_method("merge") | indent }} + {{ render_method("has_point") | indent }} + {{ render_method("grow") | indent }} + {{ render_method("grow_individual") | indent }} + {{ render_method("grow_margin") | indent }} + {{ render_method("abs") | indent }} + {{ render_method("expand") | indent }} {% endblock %} {%- block python_consts %} diff --git a/tools/builtins_templates/render.tmpl.pxd b/generation/builtins_templates/render.tmpl.pxd similarity index 68% rename from tools/builtins_templates/render.tmpl.pxd rename to generation/builtins_templates/render.tmpl.pxd index cd260cf4..4a00a960 100644 --- a/tools/builtins_templates/render.tmpl.pxd +++ b/generation/builtins_templates/render.tmpl.pxd @@ -1,10 +1,10 @@ {#- `render_target` must be defined by calling context -#} -{% set py_type = render_target_to_py_type(render_target) %} -{% set gd_type = py_to_gd_type(py_type) %} +{% set get_target_method_spec = get_target_method_spec_factory(render_target) %} {#- Define rendering macros -#} -{% macro render_method(pyname, return_type=None, args=(), gdname=None, gdapi="") %}{% endmacro %} +{% macro render_method(method_name, py_name=None, default_args={}) %}{% endmacro %} +{% macro render_property(py_name, getter, setter=None) %}{% endmacro %} {% macro render_operator_eq() %}{% endmacro %} {% macro render_operator_ne() %}{% endmacro %} {% macro render_operator_lt() %}{% endmacro %} diff --git a/tools/builtins_templates/render.tmpl.pyi b/generation/builtins_templates/render.tmpl.pyi similarity index 53% rename from tools/builtins_templates/render.tmpl.pyi rename to generation/builtins_templates/render.tmpl.pyi index cfa8c7e3..9080bda1 100644 --- a/tools/builtins_templates/render.tmpl.pyi +++ b/generation/builtins_templates/render.tmpl.pyi @@ -1,22 +1,16 @@ {#- `render_target` must be defined by calling context -#} -{% set py_type = render_target_to_py_type(render_target) %} -{% set gd_type = py_to_gd_type(py_type) %} +{% set get_target_method_spec = get_target_method_spec_factory(render_target) %} {#- Define rendering macros -#} -{% macro render_method(pyname, return_type=None, args=(), gdname=None, gdapi="10") %} -{% set gdname = gdname or pyname %} -{% set return_type = cook_return_type(return_type) %} -{% set args = cook_args(args) %} -def {{ pyname }}(self{%- if args -%},{%- endif -%} -{%- for arg in args %} - {{ arg["name"] }}: {{ arg["py_type"] }} -{%- if not arg["is_base_type"] and arg["gd_type"] != "godot_variant" %} - not None -{%- endif -%} +{% macro render_method(method_name, py_name=None, default_args={}) %} +{% set spec = get_target_method_spec(method_name) %} +def {{ py_name or spec.py_name }}(self{%- if spec.args -%},{%- endif -%} +{%- for arg in spec.args %} + {{ arg.name }}: {{ arg.type.py_type }} , {%- endfor -%} -) -> {{ return_type["signature_type"] }}: ... +) -> {{ spec.return_type.py_type }}: ... {% endmacro %} {% macro render_operator_eq() %} @@ -31,8 +25,8 @@ def __ne__(self, other) -> bool: ... def __lt__(self, other) -> bool: ... {% endmacro %} -{% macro render_property(pyname, type, gdname_getter, gdname_setter=None) %} -{{ pyname }}: {{ type }} +{% macro render_property(py_name, getter, setter=None) %} +{{ pyname }}: {{ getter.return_type.py_type }} {% endmacro %} {#- Overwrite blocks to be ignored -#} diff --git a/generation/builtins_templates/render.tmpl.pyx b/generation/builtins_templates/render.tmpl.pyx new file mode 100644 index 00000000..55ab3a01 --- /dev/null +++ b/generation/builtins_templates/render.tmpl.pyx @@ -0,0 +1,120 @@ +{#- `render_target` must be defined by calling context -#} +{% set get_target_method_spec = get_target_method_spec_factory(render_target) %} + +{#- Define rendering macros -#} + +{% macro render_method(method_name, py_name=None, default_args={}) %} +{% set spec = get_target_method_spec(method_name) %} +{% set args_without_self = spec.args[1:] %} +def {{ py_name or spec.py_name }}({{ spec.klass.cy_type }} self{%- if args_without_self -%},{%- endif -%} +{%- for arg in args_without_self %} + {{ arg.cy_type }} {{ arg.name }} +{%- if not arg.is_base_type and not arg.is_variant %} + not None +{%- endif -%} +, +{%- endfor -%} +) -> {{ spec.return_type.py_type }}: +{% for arg in args_without_self %} +{% if arg.is_variant %} + cdef godot_variant __var_{{ arg.name }} + if not pyobj_to_godot_variant({{ arg.name }}, &__var_{{ arg.name }}): +{% for initialized_arg in args_without_self %} +{% if initialized_arg.name == arg.name %} +{% break %} +{% endif %} +{% if initialized_arg.is_variant %} + gdapi10.godot_variant_destroy(&__var_{{ initialized_arg.name }}) +{% endif %} +{% endfor %} + raise TypeError(f"Cannot convert `{ {{ arg.name}} !r}` to Godot Variant") +{% endif %} +{% endfor %} +{% if spec.return_type.is_variant %} + cdef godot_variant __var_ret = ( +{%- elif spec.return_type.is_builtin %} + cdef {{ spec.return_type.cy_type }} __ret = {{ spec.return_type.cy_type }}.__new__({{ spec.return_type.cy_type }}) + __ret._gd_data = ( +{%- elif spec.return_type.is_object %} + cdef {{ spec.return_type.cy_type }} __ret = {{ spec.return_type.cy_type }}.__new__({{ spec.return_type.cy_type }}) + __ret._gd_ptr = ( +{%- elif not spec.return_type.is_void %} + cdef {{ spec.return_type.cy_type }} __ret = ( +{%- else %} + ( +{%- endif %} +{{ spec.gdapi }}.{{ spec.c_name }}(&self._gd_data, +{%- for arg in args_without_self %} +{%- if arg.is_variant %} + &__var_{{ arg.name }}, +{%- elif arg.is_builtin %} +{%- if arg.is_ptr %} + &{{ arg.name }}._gd_data, +{%- else %} + {{ arg.name }}._gd_data, +{%- endif %} +{%- elif arg.is_object %} + {{ arg.name }}._gd_ptr, +{%- else %} + {{ arg.name }}, +{%- endif %} +{% endfor %} +)) +{% for arg in args_without_self %} +{% if arg.is_variant %} + gdapi10.godot_variant_destroy(&__var_{{ arg.name }}) +{% endif %} +{% endfor %} +{% if spec.return_type.is_variant %} + cdef object __ret = godot_variant_to_pyobj(&__var_ret) + gdapi10.godot_variant_destroy(&__var_ret) + return __ret +{% elif not spec.return_type.is_void %} + return __ret +{% endif %} +{% endmacro %} + +{% macro render_operator_eq() %} +{% set spec = get_target_method_spec("operator_equal") %} +def __eq__({{ spec.klass.cy_type }} self, other): + try: + return {{ spec.gdapi }}.{{ spec.c_name }}(&self._gd_data, &(<{{ spec.klass.cy_type }}?>other)._gd_data) + except TypeError: + return False +{% endmacro %} + +{% macro render_operator_ne() %} +{% set spec = get_target_method_spec("operator_equal") %} +def __ne__({{ spec.klass.cy_type }} self, other): + try: + return not {{ spec.gdapi }}.{{ spec.c_name }}(&self._gd_data, &(<{{ spec.klass.cy_type }}?>other)._gd_data) + except TypeError: + return True +{% endmacro %} + +{% macro render_operator_lt() %} +{% set spec = get_target_method_spec("operator_less") %} +def __lt__({{ spec.klass.cy_type }} self, other): + try: + return {{ spec.gdapi }}.{{ spec.c_name }}(&self._gd_data, &(<{{ spec.klass.cy_type }}?>other)._gd_data) + except TypeError: + return False +{% endmacro %} + +{% macro render_property(py_name, getter, setter=None) %} +@property +{{ render_method(getter, py_name=py_name) }} +{% if setter %} +@{{ py_name }}.setter +{{ render_method(setter, py_name=py_name) }} +{% endif %} +{% endmacro %} + +{#- Overwrite blocks to be ignored -#} + +{% block pxd_header %}{% endblock %} +{% block cdef_attributes %}{% endblock %} + +{#- Now the template will be generated with the context -#} + +{% extends render_target_to_template(render_target) %} diff --git a/tools/builtins_templates/rid.tmpl.pxi b/generation/builtins_templates/rid.tmpl.pxi similarity index 88% rename from tools/builtins_templates/rid.tmpl.pxi rename to generation/builtins_templates/rid.tmpl.pxi index 24204163..fd00810d 100644 --- a/tools/builtins_templates/rid.tmpl.pxi +++ b/generation/builtins_templates/rid.tmpl.pxi @@ -1,4 +1,5 @@ -{%- set gd_functions = cook_c_signatures(""" +{# +""" // GDAPI: 1.0 void godot_rid_new(godot_rid* r_dest) godot_int godot_rid_get_id(godot_rid* p_self) @@ -7,7 +8,8 @@ godot_bool godot_rid_operator_equal(godot_rid* p_self, godot_rid* p_b) godot_bool godot_rid_operator_less(godot_rid* p_self, godot_rid* p_b) // GDAPI: 1.1 // GDAPI: 1.2 -""") -%} +""" +#} {%- block pxd_header %} {% endblock -%} @@ -25,11 +27,13 @@ cdef class RID: {% block python_defs %} def __init__(self, Resource from_=None): if from_ is not None: + {{ mark_rendered("godot_rid_new_with_resource") }} gdapi10.godot_rid_new_with_resource( &self._gd_data, from_._gd_ptr ) else: + {{ mark_rendered("godot_rid_new") }} gdapi10.godot_rid_new(&self._gd_data) def __repr__(RID self): @@ -45,7 +49,7 @@ cdef class RID: {{ render_operator_eq() | indent }} {{ render_operator_ne() | indent }} {{ render_operator_lt() | indent }} - {{ render_method(**gd_functions["get_id"]) | indent }} + {{ render_method("get_id") | indent }} {% endblock %} diff --git a/tools/builtins_templates/transform.tmpl.pxi b/generation/builtins_templates/transform.tmpl.pxi similarity index 75% rename from tools/builtins_templates/transform.tmpl.pxi rename to generation/builtins_templates/transform.tmpl.pxi index b730412a..ffb9f752 100644 --- a/tools/builtins_templates/transform.tmpl.pxi +++ b/generation/builtins_templates/transform.tmpl.pxi @@ -1,4 +1,5 @@ -{%- set gd_functions = cook_c_signatures(""" +{# +""" // GDAPI: 1.0 void godot_transform_new_with_axis_origin(godot_transform* r_dest, godot_vector3* p_x_axis, godot_vector3* p_y_axis, godot_vector3* p_z_axis, godot_vector3* p_origin) void godot_transform_new(godot_transform* r_dest, godot_basis* p_basis, godot_vector3* p_origin) @@ -26,7 +27,8 @@ godot_aabb godot_transform_xform_inv_aabb(godot_transform* p_self, godot_aabb* p // GDAPI: 1.1 void godot_transform_new_with_quat(godot_transform* r_dest, godot_quat* p_quat) // GDAPI: 1.2 -""") -%} +""" +#} {%- block pxd_header %} {% endblock -%} @@ -71,27 +73,25 @@ cdef class Transform: {{ render_operator_eq() | indent }} {{ render_operator_ne() | indent }} - {{ render_method("__mul__", "godot_transform", args=[ - ("godot_transform*", "other") - ], gdname="operator_multiply") | indent }} + {{ render_method("operator_multiply", py_name="__mul__") | indent }} - {{ render_property("basis", "godot_basis", "get_basis", "set_basis") | indent }} - {{ render_property("origin", "godot_vector3", "get_origin", "set_origin") | indent }} + {{ render_property("basis", getter="get_basis", setter="set_basis") | indent }} + {{ render_property("origin", getter="get_origin", setter="set_origin") | indent }} - {{ render_method(**gd_functions["as_string"]) | indent }} - {{ render_method(**gd_functions["inverse"]) | indent }} - {{ render_method(**gd_functions["affine_inverse"]) | indent }} - {{ render_method(**gd_functions["orthonormalized"]) | indent }} - {{ render_method(**gd_functions["rotated"]) | indent }} - {{ render_method(**gd_functions["scaled"]) | indent }} - {{ render_method(**gd_functions["translated"]) | indent }} - {{ render_method(**gd_functions["looking_at"]) | indent }} - {{ render_method(**gd_functions["xform_plane"]) | indent }} - {{ render_method(**gd_functions["xform_inv_plane"]) | indent }} - {{ render_method(**gd_functions["xform_vector3"]) | indent }} - {{ render_method(**gd_functions["xform_inv_vector3"]) | indent }} - {{ render_method(**gd_functions["xform_aabb"]) | indent }} - {{ render_method(**gd_functions["xform_inv_aabb"]) | indent }} + {{ render_method("as_string") | indent }} + {{ render_method("inverse") | indent }} + {{ render_method("affine_inverse") | indent }} + {{ render_method("orthonormalized") | indent }} + {{ render_method("rotated") | indent }} + {{ render_method("scaled") | indent }} + {{ render_method("translated") | indent }} + {{ render_method("looking_at") | indent }} + {{ render_method("xform_plane") | indent }} + {{ render_method("xform_inv_plane") | indent }} + {{ render_method("xform_vector3") | indent }} + {{ render_method("xform_inv_vector3") | indent }} + {{ render_method("xform_aabb") | indent }} + {{ render_method("xform_inv_aabb") | indent }} {% endblock %} {%- block python_consts %} diff --git a/tools/builtins_templates/transform2d.tmpl.pxi b/generation/builtins_templates/transform2d.tmpl.pxi similarity index 78% rename from tools/builtins_templates/transform2d.tmpl.pxi rename to generation/builtins_templates/transform2d.tmpl.pxi index 8d6df870..4990dbb7 100644 --- a/tools/builtins_templates/transform2d.tmpl.pxi +++ b/generation/builtins_templates/transform2d.tmpl.pxi @@ -1,4 +1,5 @@ -{%- set gd_functions = cook_c_signatures(""" +{# +""" // GDAPI: 1.0 void godot_transform2d_new(godot_transform2d* r_dest, godot_real p_rot, godot_vector2* p_pos) void godot_transform2d_new_axis_origin(godot_transform2d* r_dest, godot_vector2* p_x_axis, godot_vector2* p_y_axis, godot_vector2* p_origin) @@ -24,7 +25,8 @@ godot_rect2 godot_transform2d_xform_rect2(godot_transform2d* p_self, godot_rect2 godot_rect2 godot_transform2d_xform_inv_rect2(godot_transform2d* p_self, godot_rect2* p_v) // GDAPI: 1.1 // GDAPI: 1.2 -""") -%} +""" +#} {%- block pxd_header %} {% endblock -%} @@ -62,22 +64,20 @@ cdef class Transform2D: {{ render_operator_eq() | indent }} {{ render_operator_ne() | indent }} - {{ render_method("__mul__", "godot_transform2d", args=[ - ("godot_transform2d*", "other") - ], gdname="operator_multiply") | indent }} + {{ render_method("operator_multiply", py_name="__mul__") | indent }} # TODO: add axis properties once gdnative is updated - {{ render_property("origin", "godot_vector2", "get_origin") | indent }} + {{ render_property("origin", getter="get_origin") | indent }} - {{ render_method(**gd_functions["as_string"]) | indent }} - {{ render_method(**gd_functions["inverse"]) | indent }} - {{ render_method(**gd_functions["affine_inverse"]) | indent }} - {{ render_method(**gd_functions["get_rotation"]) | indent }} - {{ render_method(**gd_functions["get_scale"]) | indent }} - {{ render_method(**gd_functions["orthonormalized"]) | indent }} - {{ render_method(**gd_functions["rotated"]) | indent }} - {{ render_method(**gd_functions["scaled"]) | indent }} - {{ render_method(**gd_functions["translated"]) | indent }} + {{ render_method("as_string") | indent }} + {{ render_method("inverse") | indent }} + {{ render_method("affine_inverse") | indent }} + {{ render_method("get_rotation") | indent }} + {{ render_method("get_scale") | indent }} + {{ render_method("orthonormalized") | indent }} + {{ render_method("rotated") | indent }} + {{ render_method("scaled") | indent }} + {{ render_method("translated") | indent }} def xform(Transform2D self, v): cdef Vector2 ret_v2 @@ -111,11 +111,9 @@ cdef class Transform2D: except TypeError: raise TypeError("`v` must be Vector2 or Rect2") -{% set basis_xform_specs = gd_functions["basis_xform_vector2"] | merge(pyname="basis_xform") %} - {{ render_method(**basis_xform_specs) | indent }} -{% set basis_xform_inv_specs = gd_functions["basis_xform_inv_vector2"] | merge(pyname="basis_xform_inv") %} - {{ render_method(**basis_xform_inv_specs) | indent }} - {{ render_method(**gd_functions["interpolate_with"]) | indent }} + {{ render_method("basis_xform_vector2", py_name="basis_xform") | indent }} + {{ render_method("basis_xform_inv_vector2", py_name="basis_xform_inv") | indent }} + {{ render_method("interpolate_with") | indent }} {% endblock %} {%- block python_consts %} diff --git a/tools/builtins_templates/vector2.tmpl.pxi b/generation/builtins_templates/vector2.tmpl.pxi similarity index 71% rename from tools/builtins_templates/vector2.tmpl.pxi rename to generation/builtins_templates/vector2.tmpl.pxi index ff409e4b..f2a0a34a 100644 --- a/tools/builtins_templates/vector2.tmpl.pxi +++ b/generation/builtins_templates/vector2.tmpl.pxi @@ -1,4 +1,5 @@ -{%- set gd_functions = cook_c_signatures(""" +{# +""" // GDAPI: 1.0 void godot_vector2_new(godot_vector2* r_dest, godot_real p_x, godot_real p_y) godot_string godot_vector2_as_string(godot_vector2* p_self) @@ -40,7 +41,9 @@ godot_real godot_vector2_get_y(godot_vector2* p_self) // GDAPI: 1.1 // GDAPI: 1.2 godot_vector2 godot_vector2_move_toward(godot_vector2* p_self, godot_vector2* p_to, godot_real p_delta) -""") -%} +godot_vector2 godot_vector2_direction_to(const godot_vector2 *p_self, const godot_vector2 *p_b) +""" +#} {%- block pxd_header %} {% endblock -%} @@ -86,17 +89,13 @@ cdef class Vector2: {{ render_operator_ne() | indent }} {{ render_operator_lt() | indent }} - {{ render_method("__neg__", "godot_vector2", gdname="operator_neg") | indent }} + {{ render_method("operator_neg", py_name="__neg__") | indent }} def __pos__(Vector2 self): return self - {{ render_method("__add__", "godot_vector2", args=[ - ("godot_vector2*", "val") - ], gdname="operator_add") | indent }} - {{ render_method("__sub__", "godot_vector2", args=[ - ("godot_vector2*", "val") - ], gdname="operator_subtract") | indent }} + {{ render_method("operator_add", py_name="__add__") | indent }} + {{ render_method("operator_subtract", py_name="__sub__") | indent }} def __mul__(Vector2 self, val): cdef Vector2 _val @@ -120,35 +119,35 @@ cdef class Vector2: raise ZeroDivisionError() return Vector2_divide_vector(self, _val) - {{ render_property("x", "godot_real", "get_x", "set_x") | indent }} - {{ render_property("y", "godot_real", "get_y", "set_y") | indent }} - {{ render_property("width", "godot_real", "get_x", "set_x") | indent }} - {{ render_property("height", "godot_real", "get_y", "set_y") | indent }} - - {{ render_method(**gd_functions["as_string"]) | indent }} - {{ render_method(**gd_functions["normalized"]) | indent }} - {{ render_method(**gd_functions["length"]) | indent }} - {{ render_method(**gd_functions["angle"]) | indent }} - {{ render_method(**gd_functions["length_squared"]) | indent }} - {{ render_method(**gd_functions["is_normalized"]) | indent }} - {{ render_method(**gd_functions["distance_to"]) | indent }} - {{ render_method(**gd_functions["distance_squared_to"]) | indent }} - {{ render_method(**gd_functions["angle_to"]) | indent }} - {{ render_method(**gd_functions["angle_to_point"]) | indent }} - {{ render_method(**gd_functions["linear_interpolate"]) | indent }} - {{ render_method(**gd_functions["cubic_interpolate"]) | indent }} - {{ render_method(**gd_functions["move_toward"]) | indent }} - {{ render_method(**gd_functions["rotated"]) | indent }} - {{ render_method(**gd_functions["tangent"]) | indent }} - {{ render_method(**gd_functions["floor"]) | indent }} - {{ render_method(**gd_functions["snapped"]) | indent }} - {{ render_method(**gd_functions["aspect"]) | indent }} - {{ render_method(**gd_functions["dot"]) | indent }} - {{ render_method(**gd_functions["slide"]) | indent }} - {{ render_method(**gd_functions["bounce"]) | indent }} - {{ render_method(**gd_functions["reflect"]) | indent }} - {{ render_method(**gd_functions["abs"]) | indent }} - {{ render_method(**gd_functions["clamped"]) | indent }} + {{ render_property("x", "get_x", "set_x") | indent }} + {{ render_property("y", "get_y", "set_y") | indent }} + {{ render_property("width", "get_x", "set_x") | indent }} + {{ render_property("height", "get_y", "set_y") | indent }} + + {{ render_method("as_string") | indent }} + {{ render_method("normalized") | indent }} + {{ render_method("length") | indent }} + {{ render_method("angle") | indent }} + {{ render_method("length_squared") | indent }} + {{ render_method("is_normalized") | indent }} + {{ render_method("distance_to") | indent }} + {{ render_method("distance_squared_to") | indent }} + {{ render_method("angle_to") | indent }} + {{ render_method("angle_to_point") | indent }} + {{ render_method("linear_interpolate") | indent }} + {{ render_method("cubic_interpolate") | indent }} + {{ render_method("move_toward") | indent }} + {{ render_method("rotated") | indent }} + {{ render_method("tangent") | indent }} + {{ render_method("floor") | indent }} + {{ render_method("snapped") | indent }} + {{ render_method("aspect") | indent }} + {{ render_method("dot") | indent }} + {{ render_method("slide") | indent }} + {{ render_method("bounce") | indent }} + {{ render_method("reflect") | indent }} + {{ render_method("abs") | indent }} + {{ render_method("clamped") | indent }} {% endblock %} {%- block python_consts %} diff --git a/tools/builtins_templates/vector3.tmpl.pxi b/generation/builtins_templates/vector3.tmpl.pxi similarity index 77% rename from tools/builtins_templates/vector3.tmpl.pxi rename to generation/builtins_templates/vector3.tmpl.pxi index 4c904e98..e41713a2 100644 --- a/tools/builtins_templates/vector3.tmpl.pxi +++ b/generation/builtins_templates/vector3.tmpl.pxi @@ -1,4 +1,5 @@ -{%- set gd_functions = cook_c_signatures(""" +{# +""" // GDAPI: 1.0 void godot_vector3_new(godot_vector3* r_dest, godot_real p_x, godot_real p_y, godot_real p_z) godot_string godot_vector3_as_string(godot_vector3* p_self) @@ -40,7 +41,9 @@ godot_real godot_vector3_get_axis(godot_vector3* p_self, godot_vector3_axis p_ax // GDAPI: 1.1 // GDAPI: 1.2 godot_vector3 godot_vector3_move_toward(godot_vector3* p_self, godot_vector3* p_to, godot_real p_delta) -""") -%} +godot_vector3 godot_vector3_direction_to(const godot_vector3 *p_self, const godot_vector3 *p_b) +""" +#} {%- block pxd_header %} {% endblock -%} @@ -115,17 +118,13 @@ cdef class Vector3: {{ render_operator_ne() | indent }} {{ render_operator_lt() | indent }} - {{ render_method("__neg__", "godot_vector3", gdname="operator_neg") | indent }} + {{ render_method("operator_neg", py_name="__neg__") | indent }} def __pos__(Vector3 self): return self - {{ render_method("__add__", "godot_vector3", args=[ - ("godot_vector3*", "other") - ], gdname="operator_add") | indent }} - {{ render_method("__sub__", "godot_vector3", args=[ - ("godot_vector3*", "other") - ], gdname="operator_subtract") | indent }} + {{ render_method("operator_add", py_name="__add__") | indent }} + {{ render_method("operator_subtract", py_name="__sub__") | indent }} def __mul__(Vector3 self, val): cdef Vector3 _val @@ -149,31 +148,31 @@ cdef class Vector3: raise ZeroDivisionError() return Vector3_divide_vector(self, _val) - {{ render_method(**gd_functions["min_axis"]) | indent }} - {{ render_method(**gd_functions["max_axis"]) | indent }} - {{ render_method(**gd_functions["length"]) | indent }} - {{ render_method(**gd_functions["length_squared"]) | indent }} - {{ render_method(**gd_functions["is_normalized"]) | indent }} - {{ render_method(**gd_functions["normalized"]) | indent }} - {{ render_method(**gd_functions["inverse"]) | indent }} - {{ render_method(**gd_functions["snapped"]) | indent }} - {{ render_method(**gd_functions["rotated"]) | indent }} - {{ render_method(**gd_functions["linear_interpolate"]) | indent }} - {{ render_method(**gd_functions["cubic_interpolate"]) | indent }} - {{ render_method(**gd_functions["move_toward"]) | indent }} - {{ render_method(**gd_functions["dot"]) | indent }} - {{ render_method(**gd_functions["cross"]) | indent }} - {{ render_method(**gd_functions["outer"]) | indent }} - {{ render_method(**gd_functions["to_diagonal_matrix"]) | indent }} - {{ render_method(**gd_functions["abs"]) | indent }} - {{ render_method(**gd_functions["floor"]) | indent }} - {{ render_method(**gd_functions["ceil"]) | indent }} - {{ render_method(**gd_functions["distance_to"]) | indent }} - {{ render_method(**gd_functions["distance_squared_to"]) | indent }} - {{ render_method(**gd_functions["angle_to"]) | indent }} - {{ render_method(**gd_functions["slide"]) | indent }} - {{ render_method(**gd_functions["bounce"]) | indent }} - {{ render_method(**gd_functions["reflect"]) | indent }} + {{ render_method("min_axis") | indent }} + {{ render_method("max_axis") | indent }} + {{ render_method("length") | indent }} + {{ render_method("length_squared") | indent }} + {{ render_method("is_normalized") | indent }} + {{ render_method("normalized") | indent }} + {{ render_method("inverse") | indent }} + {{ render_method("snapped") | indent }} + {{ render_method("rotated") | indent }} + {{ render_method("linear_interpolate") | indent }} + {{ render_method("cubic_interpolate") | indent }} + {{ render_method("move_toward") | indent }} + {{ render_method("dot") | indent }} + {{ render_method("cross") | indent }} + {{ render_method("outer") | indent }} + {{ render_method("to_diagonal_matrix") | indent }} + {{ render_method("abs") | indent }} + {{ render_method("floor") | indent }} + {{ render_method("ceil") | indent }} + {{ render_method("distance_to") | indent }} + {{ render_method("distance_squared_to") | indent }} + {{ render_method("angle_to") | indent }} + {{ render_method("slide") | indent }} + {{ render_method("bounce") | indent }} + {{ render_method("reflect") | indent }} {% endblock %} {%- block python_consts %} diff --git a/tools/generate_bindings.py b/generation/generate_bindings.py similarity index 78% rename from tools/generate_bindings.py rename to generation/generate_bindings.py index fa7b4030..6a1d1677 100644 --- a/tools/generate_bindings.py +++ b/generation/generate_bindings.py @@ -9,6 +9,8 @@ from dataclasses import dataclass, replace from typing import Optional, Dict, List +from type_specs import TypeSpec, ALL_TYPES_EXCEPT_OBJECTS + BASEDIR = os.path.dirname(__file__) env = Environment( @@ -16,40 +18,10 @@ ) -@dataclass -class Type: - # Type used when calling C api functions - c_type: str - # Type used in Cython, basically similar to c_type for scalars&enums - # and to py_type for Godot objects&builtins - cy_type: str - # Type used for PEP 484 Python typing - py_type: str = None - # Type is a Godot object (i.e. defined in api.json) - is_object: bool = False - # Type is a Godot builtin (e.g. Vector2) - is_builtin: bool = False - # Type is a scalar (e.g. int, float) or void - is_base_type: bool = False - # Type doesn't use the heap (hence no need for freeing it) - is_stack_only: bool = False - # Type is an enum (e.g. godot_error, Camera::KeepAspect) - is_enum: bool = False - - def __post_init__(self): - self.py_type = self.py_type or self.cy_type - if self.is_object: - assert not self.is_builtin - assert not self.is_base_type - assert not self.is_stack_only - if self.is_builtin: - assert not self.is_base_type - - @dataclass class PropertyInfo: name: str - type: Type + type: TypeSpec getter: str setter: str index: Optional[int] @@ -58,7 +30,7 @@ class PropertyInfo: @dataclass class ArgumentInfo: name: str - type: Type + type: TypeSpec default_value: Optional[str] @property @@ -75,7 +47,7 @@ class SignalInfo: @dataclass class MethodInfo: name: str - return_type: Type + return_type: TypeSpec is_editor: bool is_noscript: bool is_const: bool @@ -110,90 +82,7 @@ class ClassInfo: enums: List[EnumInfo] -TYPES = { - # Base types - "void": Type("void", "None", is_base_type=True, is_stack_only=True), - "bool": Type("godot_bool", "bool", is_base_type=True, is_stack_only=True), - "int": Type("godot_int", "int", is_base_type=True, is_stack_only=True), - "float": Type("godot_real", "float", is_base_type=True, is_stack_only=True), - "enum.Error": Type( - "godot_error", - "godot_error", - py_type="Error", - is_base_type=True, - is_stack_only=True, - is_enum=True, - ), - "enum.Vector3::Axis": Type( - "godot_vector3_axis", - "godot_vector3_axis", - py_type="Vector3.Axis", - is_base_type=True, - is_stack_only=True, - is_enum=True, - ), - "enum.Variant::Type": Type( - "godot_variant_type", - "godot_variant_type", - py_type="VariantType", - is_base_type=True, - is_stack_only=True, - is_enum=True, - ), - "enum.Variant::Operator": Type( - "godot_variant_operator", - "godot_variant_operator", - py_type="VariantOperator", - is_base_type=True, - is_stack_only=True, - is_enum=True, - ), - # Stack&heap types - "Variant": Type("godot_variant", "object", is_builtin=True), - "String": Type("godot_string", "GDString", py_type="Union[str, GDString]", is_builtin=True), - # Stack only types - "AABB": Type("godot_aabb", "AABB", is_builtin=True, is_stack_only=True), - "Array": Type("godot_array", "Array", is_builtin=True, is_stack_only=True), - "Basis": Type("godot_basis", "Basis", is_builtin=True, is_stack_only=True), - "Color": Type("godot_color", "Color", is_builtin=True, is_stack_only=True), - "Dictionary": Type("godot_dictionary", "Dictionary", is_builtin=True, is_stack_only=True), - "NodePath": Type( - "godot_node_path", - "NodePath", - py_type="Union[str, NodePath]", - is_builtin=True, - is_stack_only=True, - ), - "Plane": Type("godot_plane", "Plane", is_builtin=True, is_stack_only=True), - "Quat": Type("godot_quat", "Quat", is_builtin=True, is_stack_only=True), - "Rect2": Type("godot_rect2", "Rect2", is_builtin=True, is_stack_only=True), - "RID": Type("godot_rid", "RID", is_builtin=True, is_stack_only=True), - "Transform": Type("godot_transform", "Transform", is_builtin=True, is_stack_only=True), - "Transform2D": Type("godot_transform2d", "Transform2D", is_builtin=True, is_stack_only=True), - "Vector2": Type("godot_vector2", "Vector2", is_builtin=True, is_stack_only=True), - "Vector3": Type("godot_vector3", "Vector3", is_builtin=True, is_stack_only=True), - "PoolByteArray": Type( - "godot_pool_byte_array", "PoolByteArray", is_builtin=True, is_stack_only=True - ), - "PoolIntArray": Type( - "godot_pool_int_array", "PoolIntArray", is_builtin=True, is_stack_only=True - ), - "PoolRealArray": Type( - "godot_pool_real_array", "PoolRealArray", is_builtin=True, is_stack_only=True - ), - "PoolStringArray": Type( - "godot_pool_string_array", "PoolStringArray", is_builtin=True, is_stack_only=True - ), - "PoolVector2Array": Type( - "godot_pool_vector2_array", "PoolVector2Array", is_builtin=True, is_stack_only=True - ), - "PoolVector3Array": Type( - "godot_pool_vector3_array", "PoolVector3Array", is_builtin=True, is_stack_only=True - ), - "PoolColorArray": Type( - "godot_pool_color_array", "PoolColorArray", is_builtin=True, is_stack_only=True - ), -} +TYPES = {t.gdapi_type: t for t in ALL_TYPES_EXCEPT_OBJECTS} # Basically provide enough to run the tests and the pong demo @@ -468,9 +357,10 @@ def _cook_type(type_): if type_.startswith("enum."): # typically somethin like ``enum.AnimationTree::AnimationProcessMode`` pcls, ecls = re.match(r"enum.(\w+)::(\w+)", type_).groups() - return Type( - "godot_int", - "godot_int", + return TypeSpec( + gdapi_type=type_, + c_type="godot_int", + cy_type="godot_int", py_type=f"{class_renames[pcls]}.{ecls}", is_base_type=True, is_stack_only=True, @@ -479,14 +369,20 @@ def _cook_type(type_): # TODO: improve handling of resources if "," in type_: - return Type( - "godot_object", - "Resource", + return TypeSpec( + gdapi_type=type_, + c_type="godot_object", + cy_type="Resource", py_type=f"Union[{','.join([class_renames[x] for x in type_.split(',')])}]", is_object=True, ) else: - return Type("godot_object", class_renames[type_], is_object=True) + return TypeSpec( + gdapi_type=type_, + c_type="godot_object", + cy_type=class_renames[type_], + is_object=True, + ) def _cook_name(name): if iskeyword(name) or name in ("char", "bool", "int", "float", "short", "type"): @@ -646,8 +542,8 @@ def _cook_default_value(type, value, has_default_value): return sorted_classes, constants -def generate_bindings(output_path, input_path, sample): - with open(input_path, "r") as fd: +def generate_bindings(output_path, api_json_path, sample): + with open(api_json_path, "r") as fd: raw_data = json.load(fd) pre_cook_patch_stuff(raw_data) classes, constants = cook_data(raw_data) @@ -656,18 +552,21 @@ def generate_bindings(output_path, input_path, sample): strip_unsupported_stuff(classes) post_cook_patch_stuff(classes) + print(f"Generating {output_path}") template = env.get_template("bindings.tmpl.pyx") out = template.render(classes=classes, constants=constants) with open(output_path, "w") as fd: fd.write(out) pyi_output_path = output_path.rsplit(".", 1)[0] + ".pyi" + print(f"Generating {pyi_output_path}") template = env.get_template("bindings.tmpl.pyi") out = template.render(classes=classes, constants=constants) with open(pyi_output_path, "w") as fd: fd.write(out) pxd_output_path = output_path.rsplit(".", 1)[0] + ".pxd" + print(f"Generating {pxd_output_path}") template = env.get_template("bindings.tmpl.pxd") out = template.render(classes=classes, constants=constants) with open(pxd_output_path, "w") as fd: diff --git a/generation/generate_builtins.py b/generation/generate_builtins.py new file mode 100644 index 00000000..46461386 --- /dev/null +++ b/generation/generate_builtins.py @@ -0,0 +1,352 @@ +import os +import argparse +import json +import re +from warnings import warn +from functools import partial +from keyword import iskeyword +from dataclasses import dataclass, replace +from collections import defaultdict +from itertools import product +from jinja2 import Environment, FileSystemLoader, StrictUndefined +from typing import List + +from type_specs import ( + TypeSpec, + ALL_TYPES_EXCEPT_OBJECTS, + TYPE_RID, + TYPE_VECTOR3, + TYPE_VECTOR2, + TYPE_AABB, + TYPE_BASIS, + TYPE_COLOR, + TYPE_STRING, + TYPE_RECT2, + TYPE_TRANSFORM2D, + TYPE_PLANE, + TYPE_QUAT, + TYPE_TRANSFORM, + TYPE_NODEPATH, + TYPE_DICTIONARY, +) + + +# TODO: after all, it may not be a great idea to share TypeSpec between builtin and binding scripts... + + +# Bonus types +TYPES_SIZED_INT = [ + TypeSpec( + gdapi_type=f"{signed}int{size}_t", + c_type=f"{signed}int{size}_t", + cy_type=f"{signed}int{size}_t", + py_type="int", + is_base_type=True, + is_stack_only=True, + ) + for signed, size in product(["u", ""], [8, 32, 64]) +] +ALL_TYPES = [ + *ALL_TYPES_EXCEPT_OBJECTS, + *TYPES_SIZED_INT, + TypeSpec( + gdapi_type="godot_object", + c_type="godot_object", + cy_type="object", + py_type="Object", + is_object=True, + ), + TypeSpec( + gdapi_type="int", + c_type="int", + cy_type="int", + py_type="int", + is_base_type=True, + is_stack_only=True, + ), + TypeSpec( + gdapi_type="size_t", + c_type="size_t", + cy_type="size_t", + py_type="int", + is_base_type=True, + is_stack_only=True, + ), + # /!\ godot_real is a C float (note py_type is still `float` given that's how Python call all floating point numbers) + TypeSpec( + gdapi_type="double", + c_type="double", + cy_type="double", + py_type="float", + is_base_type=True, + is_stack_only=True, + ), + TypeSpec( + gdapi_type="wchar_t", + c_type="wchar_t", + cy_type="wchar_t", + is_base_type=True, + is_stack_only=True, + ), + TypeSpec( + gdapi_type="char", c_type="char", cy_type="char", is_base_type=True, is_stack_only=True + ), + TypeSpec( + gdapi_type="schar", + c_type="schar", + cy_type="signed char", + is_base_type=True, + is_stack_only=True, + ), + TypeSpec( + gdapi_type="godot_char_string", + c_type="godot_char_string", + cy_type="godot_char_string", + py_type="str", + is_builtin=True, + ), + TypeSpec( + gdapi_type="godot_string_name", + c_type="godot_string_name", + cy_type="godot_string_name", + py_type="str", + is_builtin=True, + ), + TypeSpec( + gdapi_type="bool", + c_type="bool", + cy_type="bool", + py_type="bool", + is_base_type=True, + is_stack_only=True, + ), +] +C_NAME_TO_TYPE_SPEC = {s.c_type: s for s in ALL_TYPES} +BUILTINS_TYPES = [s for s in ALL_TYPES if s.is_builtin] + + +TARGET_TO_TYPE_SPEC = { + "rid": TYPE_RID, + "vector3": TYPE_VECTOR3, + "vector2": TYPE_VECTOR2, + "aabb": TYPE_AABB, + "basis": TYPE_BASIS, + "color": TYPE_COLOR, + "gdstring": TYPE_STRING, + "rect2": TYPE_RECT2, + "transform2d": TYPE_TRANSFORM2D, + "plane": TYPE_PLANE, + "quat": TYPE_QUAT, + "transform": TYPE_TRANSFORM, + "node_path": TYPE_NODEPATH, + "dictionary": TYPE_DICTIONARY, +} + + +@dataclass +class ArgumentSpec: + name: str + type: TypeSpec + is_ptr: bool + is_const: bool + + def __getattr__(self, key): + return getattr(self.type, key) + + +@dataclass +class BuiltinMethodSpec: + # Builtin type this method apply on (e.g. Vector2) + klass: TypeSpec + # Name of the function in the GDNative C API + c_name: str + # Basically gd_name without the `godot__` prefix + py_name: str + return_type: TypeSpec + args: List[ArgumentSpec] + gdapi: str + + +def cook_name(name): + return f"{name}_" if iskeyword(name) else name + + +BASEDIR = os.path.dirname(__file__) +env = Environment( + loader=FileSystemLoader(f"{BASEDIR}/builtins_templates"), + trim_blocks=True, + lstrip_blocks=False, + extensions=["jinja2.ext.loopcontrols"], + undefined=StrictUndefined, +) +env.filters["merge"] = lambda x, **kwargs: {**x, **kwargs} + + +def load_builtin_method_spec(func: dict, gdapi: str) -> BuiltinMethodSpec: + c_name = func["name"] + assert c_name.startswith("godot_"), func + for builtin_type in BUILTINS_TYPES: + prefix = f"{builtin_type.c_type}_" + if c_name.startswith(prefix): + py_name = c_name[len(prefix) :] + break + else: + # This function is not part of a builtin class (e.g. godot_print), we can ignore it + return + + def _cook_type(raw_type): + # Hack type detection, might need to be improved with api evolutions + match = re.match(r"^(const\W+|)([a-zA-Z_0-9]+)(\W*\*|)$", raw_type.strip()) + if not match: + raise RuntimeError(f"Unsuported type `{raw_type}` in function `{c_name}`") + is_const = bool(match.group(1)) + c_type = match.group(2) + is_ptr = bool(match.group(3)) + + for type_spec in ALL_TYPES: + if c_type == type_spec.c_type: + break + else: + raise RuntimeError(f"Unsuported type `{raw_type}` in function `{c_name}`") + + return is_const, is_ptr, type_spec + + args = [] + for arg_type, arg_name in func["arguments"]: + if arg_name.startswith("p_"): + arg_name = arg_name[2:] + arg_name = cook_name(arg_name) + arg_is_const, arg_is_ptr, arg_type_spec = _cook_type(arg_type) + args.append( + ArgumentSpec( + name=arg_name, type=arg_type_spec, is_ptr=arg_is_ptr, is_const=arg_is_const + ) + ) + + ret_is_const, ret_is_ptr, ret_type_spec = _cook_type(func["return_type"]) + return_type = ArgumentSpec( + name="", type=ret_type_spec, is_ptr=ret_is_ptr, is_const=ret_is_const + ) + + return BuiltinMethodSpec( + klass=builtin_type, + c_name=c_name, + py_name=py_name, + return_type=return_type, + args=args, + gdapi=gdapi, + ) + + +def pre_cook_patch_stuff(gdnative_api): + revision = gdnative_api["core"] + while revision: + for func in revision["api"]: + if func["return_type"] == "signed char": + func["return_type"] = "schar" + revision = revision["next"] + + +def load_builtins_specs_from_gdnative_api(gdnative_api_path: str) -> List[BuiltinMethodSpec]: + with open(gdnative_api_path, "r") as fd: + gdnative_api = json.load(fd) + pre_cook_patch_stuff(gdnative_api) + revision = gdnative_api["core"] + specs = [] + while revision: + revision_gdapi = f"gdapi{revision['version']['major']}{revision['version']['minor']}" + for func in revision["api"]: + assert func["name"] not in specs + # Ignore godot pool (generate by another script) + if ( + func["name"].startswith("godot_pool_") + or func["name"].startswith("godot_array_") + or func["name"].startswith("godot_variant_") + ): + continue + spec = load_builtin_method_spec(func, gdapi=revision_gdapi) + if spec: + specs.append(spec) + revision = revision["next"] + + return specs + + +def generate_builtins(output_path, gdnative_api_json_path): + builtins_specs = load_builtins_specs_from_gdnative_api(gdnative_api_json_path) + methods_c_name_to_spec = {s.c_name: s for s in builtins_specs} + + def _get_builtin_method_spec(method_c_name): + assert isinstance(method_c_name, str) + try: + return methods_c_name_to_spec[method_c_name] + except KeyError: + raise RuntimeError(f"Unknown method `{method_c_name}`") + + def _get_type_spec(py_type): + assert isinstance(py_type, str) + try: + return next(t for t in ALL_TYPES if t.py_type == py_type) + except StopIteration: + raise RuntimeError(f"Unknown type `{py_type}`") + + def _render_target_to_template(render_target): + assert isinstance(render_target, str) + return f"{render_target}.tmpl.pxi" + + def _get_target_method_spec_factory(render_target): + assert isinstance(render_target, str) + try: + type_spec = TARGET_TO_TYPE_SPEC[render_target] + except KeyError: + raise RuntimeError(f"Unknown target `{render_target}`") + + def _get_target_method_spec(method_py_name): + return _get_builtin_method_spec(f"{type_spec.c_type}_{method_py_name}") + + return _get_target_method_spec + + def _mark_rendered(method_c_name): + pass + + context = { + "get_target_method_spec_factory": _get_target_method_spec_factory, + "get_type_spec": _get_type_spec, + "get_builtin_method_spec": _get_builtin_method_spec, + "render_target_to_template": _render_target_to_template, + "mark_rendered": _mark_rendered, + } + + template = env.get_template("builtins.tmpl.pyx") + print(f"Generating {output_path}") + out = template.render(**context) + with open(output_path, "w") as fd: + fd.write(out) + + pyi_output_path = output_path.rsplit(".", 1)[0] + ".pyi" + print(f"Generating {pyi_output_path}") + template = env.get_template("builtins.tmpl.pyi") + out = template.render(**context) + with open(pyi_output_path, "w") as fd: + fd.write(out) + + pxd_output_path = output_path.rsplit(".", 1)[0] + ".pxd" + print(f"Generating {pxd_output_path}") + template = env.get_template("builtins.tmpl.pxd") + out = template.render(**context) + with open(pxd_output_path, "w") as fd: + fd.write(out) + + return True + + +if __name__ == "__main__": + parser = argparse.ArgumentParser( + description="Generate godot builtins bindings files (except pool arrays)" + ) + parser.add_argument( + "--input", "-i", help="Path to Godot gdnative_api.json file", default="gdnative_api.json" + ) + parser.add_argument("--output", "-o", default="godot_builtins_gen.pyx") + args = parser.parse_args() + generate_builtins(args.output, args.input) diff --git a/tools/generate_pool_arrays.py b/generation/generate_pool_arrays.py similarity index 100% rename from tools/generate_pool_arrays.py rename to generation/generate_pool_arrays.py diff --git a/tools/pool_arrays_templates/pool_arrays.tmpl.pxd b/generation/pool_arrays_templates/pool_arrays.tmpl.pxd similarity index 93% rename from tools/pool_arrays_templates/pool_arrays.tmpl.pxd rename to generation/pool_arrays_templates/pool_arrays.tmpl.pxd index 183d2f16..d883899e 100644 --- a/tools/pool_arrays_templates/pool_arrays.tmpl.pxd +++ b/generation/pool_arrays_templates/pool_arrays.tmpl.pxd @@ -1,5 +1,5 @@ # /!\ Autogenerated code, modifications will be lost /!\ -# see `tools/generate_pool_arrays.py` +# see `generation/generate_pool_arrays.py` cimport cython diff --git a/tools/pool_arrays_templates/pool_arrays.tmpl.pyx b/generation/pool_arrays_templates/pool_arrays.tmpl.pyx similarity index 94% rename from tools/pool_arrays_templates/pool_arrays.tmpl.pyx rename to generation/pool_arrays_templates/pool_arrays.tmpl.pyx index ddc070d0..f0f78aca 100644 --- a/tools/pool_arrays_templates/pool_arrays.tmpl.pyx +++ b/generation/pool_arrays_templates/pool_arrays.tmpl.pyx @@ -1,5 +1,5 @@ # /!\ Autogenerated code, modifications will be lost /!\ -# see `tools/generate_pool_arrays.py` +# see `generation/generate_pool_arrays.py` cimport cython from libc.stdint cimport uintptr_t diff --git a/tools/pool_arrays_templates/pool_x_array.tmpl.pxd b/generation/pool_arrays_templates/pool_x_array.tmpl.pxd similarity index 100% rename from tools/pool_arrays_templates/pool_x_array.tmpl.pxd rename to generation/pool_arrays_templates/pool_x_array.tmpl.pxd diff --git a/tools/pool_arrays_templates/pool_x_array.tmpl.pyx b/generation/pool_arrays_templates/pool_x_array.tmpl.pyx similarity index 100% rename from tools/pool_arrays_templates/pool_x_array.tmpl.pyx rename to generation/pool_arrays_templates/pool_x_array.tmpl.pyx diff --git a/generation/type_specs.py b/generation/type_specs.py new file mode 100644 index 00000000..be3989cc --- /dev/null +++ b/generation/type_specs.py @@ -0,0 +1,264 @@ +# Describe all base types (i.e. scalar such as int and Godot builtins) + +from dataclasses import dataclass + + +@dataclass +class TypeSpec: + # Type used within Godot api.json + gdapi_type: str + # Type used when calling C api functions + c_type: str + # Type used in Cython, basically similar to c_type for scalars&enums + # and to py_type for Godot objects&builtins + cy_type: str + # Type used for PEP 484 Python typing + py_type: str = "" + # Type is a Godot object (i.e. defined in api.json) + is_object: bool = False + # Type is a Godot builtin (e.g. Vector2) + is_builtin: bool = False + # Type is a scalar (e.g. int, float) or void + is_base_type: bool = False + # Type doesn't use the heap (hence no need for freeing it) + is_stack_only: bool = False + # Type is an enum (e.g. godot_error, Camera::KeepAspect) + is_enum: bool = False + + @property + def is_void(self) -> bool: + return self.c_type == "void" + + @property + def is_variant(self) -> bool: + return self.c_type == "godot_variant" + + def __post_init__(self): + self.py_type = self.py_type or self.cy_type + if self.is_object: + assert not self.is_builtin + assert not self.is_base_type + assert not self.is_stack_only + if self.is_builtin: + assert not self.is_base_type + + +# Base types +TYPE_VOID = TypeSpec( + gdapi_type="void", c_type="void", cy_type="None", is_base_type=True, is_stack_only=True +) +TYPE_BOOL = TypeSpec( + gdapi_type="bool", + c_type="godot_bool", + cy_type="bint", + py_type="bool", + is_base_type=True, + is_stack_only=True, +) +TYPE_INT = TypeSpec( + gdapi_type="int", c_type="godot_int", cy_type="int", is_base_type=True, is_stack_only=True +) +TYPE_FLOAT = TypeSpec( + gdapi_type="float", c_type="godot_real", cy_type="float", is_base_type=True, is_stack_only=True +) +TYPE_ERROR = TypeSpec( + gdapi_type="enum.Error", + c_type="godot_error", + cy_type="godot_error", + py_type="Error", + is_base_type=True, + is_stack_only=True, + is_enum=True, +) +TYPE_VECTOR3_AXIS = TypeSpec( + gdapi_type="enum.Vector3::Axis", + c_type="godot_vector3_axis", + cy_type="godot_vector3_axis", + py_type="Vector3.Axis", + is_base_type=True, + is_stack_only=True, + is_enum=True, +) +TYPE_VARIANT_TYPE = TypeSpec( + gdapi_type="enum.Variant::Type", + c_type="godot_variant_type", + cy_type="godot_variant_type", + py_type="VariantType", + is_base_type=True, + is_stack_only=True, + is_enum=True, +) +TYPE_VARIANT_OPERATOR = TypeSpec( + gdapi_type="enum.Variant::Operator", + c_type="godot_variant_operator", + cy_type="godot_variant_operator", + py_type="VariantOperator", + is_base_type=True, + is_stack_only=True, + is_enum=True, +) + +# Stack&heap types +TYPE_VARIANT = TypeSpec( + gdapi_type="Variant", c_type="godot_variant", cy_type="object", is_builtin=True +) +TYPE_STRING = TypeSpec( + gdapi_type="String", + c_type="godot_string", + cy_type="GDString", + py_type="Union[str, GDString]", + is_builtin=True, +) + +# Stack only types +TYPE_AABB = TypeSpec( + gdapi_type="AABB", c_type="godot_aabb", cy_type="AABB", is_builtin=True, is_stack_only=True +) +TYPE_ARRAY = TypeSpec( + gdapi_type="Array", c_type="godot_array", cy_type="Array", is_builtin=True, is_stack_only=True +) +TYPE_BASIS = TypeSpec( + gdapi_type="Basis", c_type="godot_basis", cy_type="Basis", is_builtin=True, is_stack_only=True +) +TYPE_COLOR = TypeSpec( + gdapi_type="Color", c_type="godot_color", cy_type="Color", is_builtin=True, is_stack_only=True +) +TYPE_DICTIONARY = TypeSpec( + gdapi_type="Dictionary", + c_type="godot_dictionary", + cy_type="Dictionary", + is_builtin=True, + is_stack_only=True, +) +TYPE_NODEPATH = TypeSpec( + gdapi_type="NodePath", + c_type="godot_node_path", + cy_type="NodePath", + py_type="Union[str, NodePath]", + is_builtin=True, + is_stack_only=True, +) +TYPE_PLANE = TypeSpec( + gdapi_type="Plane", c_type="godot_plane", cy_type="Plane", is_builtin=True, is_stack_only=True +) +TYPE_QUAT = TypeSpec( + gdapi_type="Quat", c_type="godot_quat", cy_type="Quat", is_builtin=True, is_stack_only=True +) +TYPE_RECT2 = TypeSpec( + gdapi_type="Rect2", c_type="godot_rect2", cy_type="Rect2", is_builtin=True, is_stack_only=True +) +TYPE_RID = TypeSpec( + gdapi_type="RID", c_type="godot_rid", cy_type="RID", is_builtin=True, is_stack_only=True +) +TYPE_TRANSFORM = TypeSpec( + gdapi_type="Transform", + c_type="godot_transform", + cy_type="Transform", + is_builtin=True, + is_stack_only=True, +) +TYPE_TRANSFORM2D = TypeSpec( + gdapi_type="Transform2D", + c_type="godot_transform2d", + cy_type="Transform2D", + is_builtin=True, + is_stack_only=True, +) +TYPE_VECTOR2 = TypeSpec( + gdapi_type="Vector2", + c_type="godot_vector2", + cy_type="Vector2", + is_builtin=True, + is_stack_only=True, +) +TYPE_VECTOR3 = TypeSpec( + gdapi_type="Vector3", + c_type="godot_vector3", + cy_type="Vector3", + is_builtin=True, + is_stack_only=True, +) +TYPE_POOLBYTEARRAY = TypeSpec( + gdapi_type="PoolByteArray", + c_type="godot_pool_byte_array", + cy_type="PoolByteArray", + is_builtin=True, + is_stack_only=True, +) +TYPE_POOLINTARRAY = TypeSpec( + gdapi_type="PoolIntArray", + c_type="godot_pool_int_array", + cy_type="PoolIntArray", + is_builtin=True, + is_stack_only=True, +) +TYPE_POOLREALARRAY = TypeSpec( + gdapi_type="PoolRealArray", + c_type="godot_pool_real_array", + cy_type="PoolRealArray", + is_builtin=True, + is_stack_only=True, +) +TYPE_POOLSTRINGARRAY = TypeSpec( + gdapi_type="PoolStringArray", + c_type="godot_pool_string_array", + cy_type="PoolStringArray", + is_builtin=True, + is_stack_only=True, +) +TYPE_POOLVECTOR2ARRAY = TypeSpec( + gdapi_type="PoolVector2Array", + c_type="godot_pool_vector2_array", + cy_type="PoolVector2Array", + is_builtin=True, + is_stack_only=True, +) +TYPE_POOLVECTOR3ARRAY = TypeSpec( + gdapi_type="PoolVector3Array", + c_type="godot_pool_vector3_array", + cy_type="PoolVector3Array", + is_builtin=True, + is_stack_only=True, +) +TYPE_POOLCOLORARRAY = TypeSpec( + gdapi_type="PoolColorArray", + c_type="godot_pool_color_array", + cy_type="PoolColorArray", + is_builtin=True, + is_stack_only=True, +) + + +ALL_TYPES_EXCEPT_OBJECTS = [ + TYPE_VOID, + TYPE_BOOL, + TYPE_INT, + TYPE_FLOAT, + TYPE_ERROR, + TYPE_VECTOR3_AXIS, + TYPE_VARIANT_TYPE, + TYPE_VARIANT_OPERATOR, + TYPE_VARIANT, + TYPE_STRING, + TYPE_AABB, + TYPE_ARRAY, + TYPE_BASIS, + TYPE_COLOR, + TYPE_DICTIONARY, + TYPE_NODEPATH, + TYPE_PLANE, + TYPE_QUAT, + TYPE_RECT2, + TYPE_RID, + TYPE_TRANSFORM, + TYPE_TRANSFORM2D, + TYPE_VECTOR2, + TYPE_VECTOR3, + TYPE_POOLBYTEARRAY, + TYPE_POOLINTARRAY, + TYPE_POOLREALARRAY, + TYPE_POOLSTRINGARRAY, + TYPE_POOLVECTOR2ARRAY, + TYPE_POOLVECTOR3ARRAY, + TYPE_POOLCOLORARRAY, +] diff --git a/pythonscript/godot/SConscript b/pythonscript/godot/SConscript index 53d8160e..c7d0ad69 100644 --- a/pythonscript/godot/SConscript +++ b/pythonscript/godot/SConscript @@ -29,21 +29,23 @@ env.Install("$DIST_SITE_PACKAGES/godot", env.CythonModule("tags", "tags.pyx")) godot_pool_arrays_srcs = env.Command( target=("pool_arrays.pyx", "pool_arrays.pxd"), source=(), - action="python %s -o ${TARGET}" % File("#/tools/generate_pool_arrays.py"), + action="python %s --output ${TARGET}" % File("#/generation/generate_pool_arrays.py"), ) env.Depends( godot_pool_arrays_srcs, - ["#/tools/generate_pool_arrays.py", env.Glob("#/tools/pool_arrays_templates/*")], + ["#/generation/generate_pool_arrays.py", env.Glob("#/generation/pool_arrays_templates/*")], ) godot_builtins_srcs = env.Command( target=("builtins.pyx", "builtins.pxd"), - source=(), - action="python %s -o ${TARGET}" % File("#/tools/generate_builtins.py"), + source=("${godot_headers}/gdnative_api.json",), + action="python %s --input ${SOURCE} --output ${TARGET}" + % File("#/generation/generate_builtins.py"), ) env.Depends( - godot_builtins_srcs, ["#/tools/generate_builtins.py", env.Glob("#/tools/builtins_templates/*")] + godot_builtins_srcs, + ["#/generation/generate_builtins.py", env.Glob("#/generation/builtins_templates/*")], ) # TODO: remove this once pool_array is merged into builtins env.Depends(godot_builtins_srcs, godot_pool_arrays_srcs) @@ -91,12 +93,15 @@ else: godot_bindings_srcs = bindings_env.Command( target=("bindings.pyx", "bindings.pxd", "bindings.pyi"), source=("${godot_headers}/api.json",), - action=("python %s ${opts} -i ${SOURCE} -o ${TARGET} " % File("#/tools/generate_bindings.py")), + action=( + "python %s ${opts} --input ${SOURCE} --output ${TARGET} " + % File("#/generation/generate_bindings.py") + ), opts="--sample" if sample else "", ) bindings_env.Depends( godot_bindings_srcs, - ["#/tools/generate_bindings.py", bindings_env.Glob("#/tools/bindings_templates/*")], + ["#/generation/generate_bindings.py", bindings_env.Glob("#/generation/bindings_templates/*")], ) diff --git a/tools/builtins_templates/render.tmpl.pyx b/tools/builtins_templates/render.tmpl.pyx deleted file mode 100644 index 8617f6fe..00000000 --- a/tools/builtins_templates/render.tmpl.pyx +++ /dev/null @@ -1,119 +0,0 @@ -{#- `render_target` must be defined by calling context -#} -{% set py_type = render_target_to_py_type(render_target) %} -{% set gd_type = py_to_gd_type(py_type) %} - -{#- Define rendering macros -#} - -{% macro render_method(pyname, return_type=None, args=(), gdname=None, gdapi="10") %} -{% set gdname = gdname or pyname %} -{% set return_type = cook_return_type(return_type) %} -{% set args = cook_args(args) %} -def {{ pyname }}({{ py_type }} self{%- if args -%},{%- endif -%} -{%- for arg in args %} - {{ arg["py_type"] }} {{ arg["name"] }} -{%- if not arg["is_base_type"] and arg["gd_type"] != "godot_variant" %} - not None -{%- endif -%} -, -{%- endfor -%} -) -> {{ return_type["signature_type"] }}: -{% for arg in args %} -{% if arg["gd_type"] == "godot_variant" %} - cdef godot_variant __var_{{ arg["name"] }} - if not pyobj_to_godot_variant({{ arg["name"] }}, &__var_{{ arg["name"] }}): -{% for initialized_arg in args %} -{% if initialized_arg["name"] == arg["name"] %} -{% break %} -{% endif %} -{% if initialized_arg["gd_type"] == "godot_variant" %} - gdapi10.godot_variant_destroy(&__var_{{ initialized_arg["name"] }}) -{% endif %} -{% endfor %} - raise TypeError(f"Cannot convert `{ {{ arg["name"]}} !r}` to Godot Variant") -{% endif %} -{% endfor %} -{% if return_type["gd_type"] == "godot_variant" %} - cdef godot_variant __var_ret = ( -{%- elif return_type["is_builtin"] %} - cdef {{ return_type["py_type"] }} __ret = {{ return_type["py_type"] }}.__new__({{ return_type["py_type"] }}) - __ret._gd_data = ( -{%- elif return_type["is_object"] %} - cdef {{ return_type["py_type"] }} __ret = {{ return_type["py_type"] }}.__new__({{ return_type["py_type"] }}) - __ret._gd_ptr = ( -{%- elif not return_type["is_void"] %} - cdef {{ return_type["py_type"] }} __ret = ( -{%- else %} - ( -{%- endif %} -gdapi{{ gdapi }}.{{ gd_type }}_{{ gdname }}(&self._gd_data, -{%- for arg in args %} -{%- if arg["gd_type"] == "godot_variant" %} - &__var_{{ arg["name"] }}, -{%- elif arg["is_builtin"] %} -{%- if arg["is_ptr"] %} - &{{ arg["name"] }}._gd_data, -{%- else %} - {{ arg["name"] }}._gd_data, -{%- endif %} -{%- elif arg["is_object"] %} - {{ arg["name"] }}._gd_ptr, -{%- else %} - {{ arg["name"] }}, -{%- endif %} -{% endfor %} -)) -{% for arg in args %} -{% if arg["gd_type"] == "godot_variant" %} - gdapi10.godot_variant_destroy(&__var_{{ arg["name"] }}) -{% endif %} -{% endfor %} -{% if return_type["gd_type"] == "godot_variant" %} - cdef object __ret = godot_variant_to_pyobj(&__var_ret) - gdapi10.godot_variant_destroy(&__var_ret) - return __ret -{% elif not return_type["is_void"] %} - return __ret -{% endif %} -{% endmacro %} - -{% macro render_operator_eq() %} -def __eq__({{ py_type }} self, other): - try: - return gdapi10.{{ gd_type }}_operator_equal(&self._gd_data, &(<{{ py_type }}?>other)._gd_data) - except TypeError: - return False -{% endmacro %} - -{% macro render_operator_ne() %} -def __ne__({{ py_type }} self, other): - try: - return not gdapi10.{{ gd_type }}_operator_equal(&self._gd_data, &(<{{ py_type }}?>other)._gd_data) - except TypeError: - return True -{% endmacro %} - -{% macro render_operator_lt() %} -def __lt__({{ py_type }} self, other): - try: - return gdapi10.{{ gd_type }}_operator_less(&self._gd_data, &(<{{ py_type }}?>other)._gd_data) - except TypeError: - return False -{% endmacro %} - -{% macro render_property(pyname, type, gdname_getter, gdname_setter=None) %} -@property -{{ render_method(pyname=pyname, gdname=gdname_getter, return_type=type) }} -{% if gdname_setter %} -@{{ pyname }}.setter -{{ render_method(pyname=pyname, gdname=gdname_setter, args=[(type + "*", 'val')]) }} -{% endif %} -{% endmacro %} - -{#- Overwrite blocks to be ignored -#} - -{% block pxd_header %}{% endblock %} -{% block cdef_attributes %}{% endblock %} - -{#- Now the template will be generated with the context -#} - -{% extends render_target_to_template(render_target) %} diff --git a/tools/fake_libc_include/X11/Xlib.h b/tools/fake_libc_include/X11/Xlib.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/X11/Xlib.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/_ansi.h b/tools/fake_libc_include/_ansi.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/_ansi.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/_fake_defines.h b/tools/fake_libc_include/_fake_defines.h deleted file mode 100644 index 2479c665..00000000 --- a/tools/fake_libc_include/_fake_defines.h +++ /dev/null @@ -1,46 +0,0 @@ -#ifndef _FAKE_DEFINES_H -#define _FAKE_DEFINES_H - -#define NULL 0 -#define BUFSIZ 1024 -#define FOPEN_MAX 20 -#define FILENAME_MAX 1024 - -#ifndef SEEK_SET -#define SEEK_SET 0 /* set file offset to offset */ -#endif -#ifndef SEEK_CUR -#define SEEK_CUR 1 /* set file offset to current plus offset */ -#endif -#ifndef SEEK_END -#define SEEK_END 2 /* set file offset to EOF plus offset */ -#endif - -#define __LITTLE_ENDIAN 1234 -#define LITTLE_ENDIAN __LITTLE_ENDIAN -#define __BIG_ENDIAN 4321 -#define BIG_ENDIAN __BIG_ENDIAN -#define __BYTE_ORDER __LITTLE_ENDIAN -#define BYTE_ORDER __BYTE_ORDER - -#define EXIT_FAILURE 1 -#define EXIT_SUCCESS 0 - -#define UCHAR_MAX 255 -#define USHRT_MAX 65535 -#define UINT_MAX 4294967295U -#define RAND_MAX 32767 -#define INT_MAX 32767 - -/* C99 stdbool.h defines */ -#define __bool_true_false_are_defined 1 -#define false 0 -#define true 1 - -/* va_arg macros and type*/ -typedef int va_list; -#define va_start(_ap, _type) __builtin_va_start((_ap)) -#define va_arg(_ap, _type) __builtin_va_arg((_ap)) -#define va_end(_list) - -#endif diff --git a/tools/fake_libc_include/_fake_typedefs.h b/tools/fake_libc_include/_fake_typedefs.h deleted file mode 100644 index d99c3f59..00000000 --- a/tools/fake_libc_include/_fake_typedefs.h +++ /dev/null @@ -1,179 +0,0 @@ -#ifndef _FAKE_TYPEDEFS_H -#define _FAKE_TYPEDEFS_H - -typedef int size_t; -typedef int __builtin_va_list; -typedef int __gnuc_va_list; -typedef int __int8_t; -typedef int __uint8_t; -typedef int __int16_t; -typedef int __uint16_t; -typedef int __int_least16_t; -typedef int __uint_least16_t; -typedef int __int32_t; -typedef int __uint32_t; -typedef int __int64_t; -typedef int __uint64_t; -typedef int __int_least32_t; -typedef int __uint_least32_t; -typedef int __s8; -typedef int __u8; -typedef int __s16; -typedef int __u16; -typedef int __s32; -typedef int __u32; -typedef int __s64; -typedef int __u64; -typedef int _LOCK_T; -typedef int _LOCK_RECURSIVE_T; -typedef int _off_t; -typedef int __dev_t; -typedef int __uid_t; -typedef int __gid_t; -typedef int _off64_t; -typedef int _fpos_t; -typedef int _ssize_t; -typedef int wint_t; -typedef int _mbstate_t; -typedef int _flock_t; -typedef int _iconv_t; -typedef int __ULong; -typedef int __FILE; -typedef int ptrdiff_t; -typedef int wchar_t; -typedef int __off_t; -typedef int __pid_t; -typedef int __loff_t; -typedef int u_char; -typedef int u_short; -typedef int u_int; -typedef int u_long; -typedef int ushort; -typedef int uint; -typedef int clock_t; -typedef int time_t; -typedef int daddr_t; -typedef int caddr_t; -typedef int ino_t; -typedef int off_t; -typedef int dev_t; -typedef int uid_t; -typedef int gid_t; -typedef int pid_t; -typedef int key_t; -typedef int ssize_t; -typedef int mode_t; -typedef int nlink_t; -typedef int fd_mask; -typedef int _types_fd_set; -typedef int clockid_t; -typedef int timer_t; -typedef int useconds_t; -typedef int suseconds_t; -typedef int FILE; -typedef int fpos_t; -typedef int cookie_read_function_t; -typedef int cookie_write_function_t; -typedef int cookie_seek_function_t; -typedef int cookie_close_function_t; -typedef int cookie_io_functions_t; -typedef int div_t; -typedef int ldiv_t; -typedef int lldiv_t; -typedef int sigset_t; -typedef int __sigset_t; -typedef int _sig_func_ptr; -typedef int sig_atomic_t; -typedef int __tzrule_type; -typedef int __tzinfo_type; -typedef int mbstate_t; -typedef int sem_t; -typedef int pthread_t; -typedef int pthread_attr_t; -typedef int pthread_mutex_t; -typedef int pthread_mutexattr_t; -typedef int pthread_cond_t; -typedef int pthread_condattr_t; -typedef int pthread_key_t; -typedef int pthread_once_t; -typedef int pthread_rwlock_t; -typedef int pthread_rwlockattr_t; -typedef int pthread_spinlock_t; -typedef int pthread_barrier_t; -typedef int pthread_barrierattr_t; -typedef int jmp_buf; -typedef int rlim_t; -typedef int sa_family_t; -typedef int sigjmp_buf; -typedef int stack_t; -typedef int siginfo_t; -typedef int z_stream; - -/* C99 exact-width integer types */ -typedef int int8_t; -typedef int uint8_t; -typedef int int16_t; -typedef int uint16_t; -typedef int int32_t; -typedef int uint32_t; -typedef int int64_t; -typedef int uint64_t; - -/* C99 minimum-width integer types */ -typedef int int_least8_t; -typedef int uint_least8_t; -typedef int int_least16_t; -typedef int uint_least16_t; -typedef int int_least32_t; -typedef int uint_least32_t; -typedef int int_least64_t; -typedef int uint_least64_t; - -/* C99 fastest minimum-width integer types */ -typedef int int_fast8_t; -typedef int uint_fast8_t; -typedef int int_fast16_t; -typedef int uint_fast16_t; -typedef int int_fast32_t; -typedef int uint_fast32_t; -typedef int int_fast64_t; -typedef int uint_fast64_t; - -/* C99 integer types capable of holding object pointers */ -typedef int intptr_t; -typedef int uintptr_t; - -/* C99 greatest-width integer types */ -typedef int intmax_t; -typedef int uintmax_t; - -/* C99 stdbool.h bool type. _Bool is built-in in C99 */ -typedef _Bool bool; - -typedef int va_list; - -/* Xlib objects */ -typedef struct Display Display; -typedef unsigned long XID; -typedef unsigned long VisualID; -typedef XID Window; - -/* Mir typedefs */ -typedef void* MirEGLNativeWindowType; -typedef void* MirEGLNativeDisplayType; -typedef struct MirConnection MirConnection; -typedef struct MirSurface MirSurface; -typedef struct MirSurfaceSpec MirSurfaceSpec; -typedef struct MirScreencast MirScreencast; -typedef struct MirPromptSession MirPromptSession; -typedef struct MirBufferStream MirBufferStream; -typedef struct MirPersistentId MirPersistentId; -typedef struct MirBlob MirBlob; -typedef struct MirDisplayConfig MirDisplayConfig; - -/* xcb typedefs */ -typedef struct xcb_connection_t xcb_connection_t; -typedef uint32_t xcb_window_t; -typedef uint32_t xcb_visualid_t; - -#endif diff --git a/tools/fake_libc_include/_syslist.h b/tools/fake_libc_include/_syslist.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/_syslist.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/alloca.h b/tools/fake_libc_include/alloca.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/alloca.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/ar.h b/tools/fake_libc_include/ar.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/ar.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/argz.h b/tools/fake_libc_include/argz.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/argz.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/arpa/inet.h b/tools/fake_libc_include/arpa/inet.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/arpa/inet.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/asm-generic/int-ll64.h b/tools/fake_libc_include/asm-generic/int-ll64.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/asm-generic/int-ll64.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/assert.h b/tools/fake_libc_include/assert.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/assert.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/complex.h b/tools/fake_libc_include/complex.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/complex.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/ctype.h b/tools/fake_libc_include/ctype.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/ctype.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/dirent.h b/tools/fake_libc_include/dirent.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/dirent.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/dlfcn.h b/tools/fake_libc_include/dlfcn.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/dlfcn.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/endian.h b/tools/fake_libc_include/endian.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/endian.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/envz.h b/tools/fake_libc_include/envz.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/envz.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/errno.h b/tools/fake_libc_include/errno.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/errno.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/fastmath.h b/tools/fake_libc_include/fastmath.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/fastmath.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/fcntl.h b/tools/fake_libc_include/fcntl.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/fcntl.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/features.h b/tools/fake_libc_include/features.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/features.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/fenv.h b/tools/fake_libc_include/fenv.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/fenv.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/float.h b/tools/fake_libc_include/float.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/float.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/getopt.h b/tools/fake_libc_include/getopt.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/getopt.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/grp.h b/tools/fake_libc_include/grp.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/grp.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/iconv.h b/tools/fake_libc_include/iconv.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/iconv.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/ieeefp.h b/tools/fake_libc_include/ieeefp.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/ieeefp.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/inttypes.h b/tools/fake_libc_include/inttypes.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/inttypes.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/iso646.h b/tools/fake_libc_include/iso646.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/iso646.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/langinfo.h b/tools/fake_libc_include/langinfo.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/langinfo.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/libgen.h b/tools/fake_libc_include/libgen.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/libgen.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/libintl.h b/tools/fake_libc_include/libintl.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/libintl.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/limits.h b/tools/fake_libc_include/limits.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/limits.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/linux/socket.h b/tools/fake_libc_include/linux/socket.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/linux/socket.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/linux/version.h b/tools/fake_libc_include/linux/version.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/linux/version.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/locale.h b/tools/fake_libc_include/locale.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/locale.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/malloc.h b/tools/fake_libc_include/malloc.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/malloc.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/math.h b/tools/fake_libc_include/math.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/math.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/mir_toolkit/client_types.h b/tools/fake_libc_include/mir_toolkit/client_types.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/mir_toolkit/client_types.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/netdb.h b/tools/fake_libc_include/netdb.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/netdb.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/netinet/in.h b/tools/fake_libc_include/netinet/in.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/netinet/in.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/netinet/tcp.h b/tools/fake_libc_include/netinet/tcp.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/netinet/tcp.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/newlib.h b/tools/fake_libc_include/newlib.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/newlib.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/openssl/err.h b/tools/fake_libc_include/openssl/err.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/openssl/err.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/openssl/evp.h b/tools/fake_libc_include/openssl/evp.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/openssl/evp.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/openssl/hmac.h b/tools/fake_libc_include/openssl/hmac.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/openssl/hmac.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/openssl/ssl.h b/tools/fake_libc_include/openssl/ssl.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/openssl/ssl.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/openssl/x509v3.h b/tools/fake_libc_include/openssl/x509v3.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/openssl/x509v3.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/paths.h b/tools/fake_libc_include/paths.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/paths.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/process.h b/tools/fake_libc_include/process.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/process.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/pthread.h b/tools/fake_libc_include/pthread.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/pthread.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/pwd.h b/tools/fake_libc_include/pwd.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/pwd.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/reent.h b/tools/fake_libc_include/reent.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/reent.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/regdef.h b/tools/fake_libc_include/regdef.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/regdef.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/regex.h b/tools/fake_libc_include/regex.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/regex.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/sched.h b/tools/fake_libc_include/sched.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/sched.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/search.h b/tools/fake_libc_include/search.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/search.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/semaphore.h b/tools/fake_libc_include/semaphore.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/semaphore.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/setjmp.h b/tools/fake_libc_include/setjmp.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/setjmp.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/signal.h b/tools/fake_libc_include/signal.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/signal.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/stdarg.h b/tools/fake_libc_include/stdarg.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/stdarg.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/stdbool.h b/tools/fake_libc_include/stdbool.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/stdbool.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/stddef.h b/tools/fake_libc_include/stddef.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/stddef.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/stdint.h b/tools/fake_libc_include/stdint.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/stdint.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/stdio.h b/tools/fake_libc_include/stdio.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/stdio.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/stdlib.h b/tools/fake_libc_include/stdlib.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/stdlib.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/string.h b/tools/fake_libc_include/string.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/string.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/sys/ioctl.h b/tools/fake_libc_include/sys/ioctl.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/sys/ioctl.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/sys/mman.h b/tools/fake_libc_include/sys/mman.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/sys/mman.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/sys/poll.h b/tools/fake_libc_include/sys/poll.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/sys/poll.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/sys/resource.h b/tools/fake_libc_include/sys/resource.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/sys/resource.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/sys/select.h b/tools/fake_libc_include/sys/select.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/sys/select.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/sys/socket.h b/tools/fake_libc_include/sys/socket.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/sys/socket.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/sys/stat.h b/tools/fake_libc_include/sys/stat.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/sys/stat.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/sys/sysctl.h b/tools/fake_libc_include/sys/sysctl.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/sys/sysctl.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/sys/time.h b/tools/fake_libc_include/sys/time.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/sys/time.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/sys/types.h b/tools/fake_libc_include/sys/types.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/sys/types.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/sys/uio.h b/tools/fake_libc_include/sys/uio.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/sys/uio.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/sys/un.h b/tools/fake_libc_include/sys/un.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/sys/un.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/sys/utsname.h b/tools/fake_libc_include/sys/utsname.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/sys/utsname.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/sys/wait.h b/tools/fake_libc_include/sys/wait.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/sys/wait.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/syslog.h b/tools/fake_libc_include/syslog.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/syslog.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/tar.h b/tools/fake_libc_include/tar.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/tar.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/termios.h b/tools/fake_libc_include/termios.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/termios.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/tgmath.h b/tools/fake_libc_include/tgmath.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/tgmath.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/time.h b/tools/fake_libc_include/time.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/time.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/unctrl.h b/tools/fake_libc_include/unctrl.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/unctrl.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/unistd.h b/tools/fake_libc_include/unistd.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/unistd.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/utime.h b/tools/fake_libc_include/utime.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/utime.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/utmp.h b/tools/fake_libc_include/utmp.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/utmp.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/wchar.h b/tools/fake_libc_include/wchar.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/wchar.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/wctype.h b/tools/fake_libc_include/wctype.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/wctype.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/xcb/xcb.h b/tools/fake_libc_include/xcb/xcb.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/xcb/xcb.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/fake_libc_include/zlib.h b/tools/fake_libc_include/zlib.h deleted file mode 100644 index f952c1d6..00000000 --- a/tools/fake_libc_include/zlib.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "_fake_defines.h" -#include "_fake_typedefs.h" diff --git a/tools/generate_builtins.py b/tools/generate_builtins.py deleted file mode 100644 index f2963849..00000000 --- a/tools/generate_builtins.py +++ /dev/null @@ -1,261 +0,0 @@ -import os -import argparse -import json -import re -from keyword import iskeyword -from collections import defaultdict -from jinja2 import Environment, FileSystemLoader - - -BASEDIR = os.path.dirname(__file__) -env = Environment( - loader=FileSystemLoader(f"{BASEDIR}/builtins_templates"), - trim_blocks=True, - lstrip_blocks=False, - extensions=["jinja2.ext.loopcontrols"], -) -env.filters["merge"] = lambda x, **kwargs: {**x, **kwargs} - - -BUILTINS_TYPES = [ - # Render target / Python type / Godot type - ("aabb", "AABB", "godot_aabb"), - ("array", "Array", "godot_array"), - ("basis", "Basis", "godot_basis"), - ("color", "Color", "godot_color"), - ("dictionary", "Dictionary", "godot_dictionary"), - ("node_path", "NodePath", "godot_node_path"), - ("plane", "Plane", "godot_plane"), - ("quat", "Quat", "godot_quat"), - ("rect2", "Rect2", "godot_rect2"), - ("rid", "RID", "godot_rid"), - # transform2d before transform to avoid bad detection in cook_c_signature - ("transform2d", "Transform2D", "godot_transform2d"), - ("transform", "Transform", "godot_transform"), - ("vector2", "Vector2", "godot_vector2"), - ("vector3", "Vector3", "godot_vector3"), - ("pool_byte_array", "PoolByteArray", "godot_pool_byte_array"), - ("pool_int_array", "PoolIntArray", "godot_pool_int_array"), - ("pool_real_array", "PoolRealArray", "godot_pool_real_array"), - ("pool_string_array", "PoolStringArray", "godot_pool_string_array"), - ("pool_vector2_array", "PoolVector2Array", "godot_pool_vector2_array"), - ("pool_vector3_array", "PoolVector3Array", "godot_pool_vector3_array"), - ("pool_color_array", "PoolColorArray", "godot_pool_color_array"), - ("gdstring", "GDString", "godot_string"), - ("variant", "object", "godot_variant"), -] -BASE_TYPES = [ - ("godot_int", "godot_int"), - ("godot_real", "godot_real"), - ("bint", "godot_bool"), - ("uint32_t", "uint32_t"), - ("uint64_t", "uint64_t"), -] - -GD_TO_PY = {**{x[2]: x[1] for x in BUILTINS_TYPES}, **{x[1]: x[0] for x in BASE_TYPES}} - -PY_TO_GD = {**{x[1]: x[2] for x in BUILTINS_TYPES}, **{x[0]: x[1] for x in BASE_TYPES}} - - -def render_target_to_py_type(render_target): - return next(x[1] for x in BUILTINS_TYPES if x[0] == render_target) - - -def render_target_to_template(render_target): - return f"{render_target}.tmpl.pxi" - - -def py_to_gd_type(type): - try: - return PY_TO_GD[type] - except KeyError: - # Assume it's a Godot Object type - return type - - -def gd_to_py_type(type): - try: - return GD_TO_PY[type] - except KeyError: - # Assume it's a Godot Object type - return type - - -def gd_to_py_signature_type(type): - if type is None: - return "None" - py_type = gd_to_py_type(type) - if py_type == "bint": - return "bool" - elif py_type == "godot_int": - return "int" - elif py_type == "godot_real": - return "float" - return py_type - - -def is_base_type(type): - return any(True for x in BASE_TYPES if x[1] == type) - - -def is_builtin(type): - return any(True for x in BUILTINS_TYPES if x[2] == type) - - -def is_object(type): - return not is_base_type(type) and not is_builtin(type) - - -def cook_c_signatures(signatures): - cooked_signatures = {} - gdapi = "" - for line in signatures.splitlines(): - line = line.strip() - match = re.match(r"^//\WGDAPI:\W([0-9])\.([0-9])", line) - if match: - gdapi_major, gdapi_minor = match.groups() - gdapi = f"{gdapi_major}{gdapi_minor}" - continue - if not line or line.startswith("//"): - continue - cooked = cook_c_signature(line, gdapi=gdapi) - cooked_signatures[cooked["pyname"]] = cooked - return cooked_signatures - - -def cook_c_signature(signature, gdapi="10"): - # Hacky signature parsing - a, b = signature.split("(", 1) - assert b.endswith(")"), signature - assert "(" not in b, signature - b = b[:-1] - args = [] - for arg in b.split(","): - assert arg.count("*") < 2, signature - if "*" in arg: - arg_type, arg_name = [x.strip() for x in arg.split("*") if x.strip()] - arg_type = f"{arg_type}*" - else: - arg_type, arg_name = [x for x in arg.split(" ") if x] - if arg_name.startswith("p_"): - arg_name = arg_name[2:] - args.append((arg_type, arg_name)) - args.pop(0) # Remove self argument - - assert "*" not in a, signature - return_type, gdname = [x for x in a.rsplit(" ", 1) if x] - if return_type == "void": - return_type = None - - for type_gdname in GD_TO_PY.keys(): - if gdname.startswith(type_gdname): - pyname = gdname[len(type_gdname) + 1 :] - break - - return { - "pyname": pyname, - "gdname": pyname, - "return_type": return_type, - "args": args, - "gdapi": gdapi, - } - - -def cook_return_type(return_type): - if return_type is None: - return { - "gd_type": "", - "py_type": "", - "signature_type": "None", - "is_builtin": False, - "is_object": False, - "is_base_type": False, - "is_void": True, - } - else: - return { - "gd_type": return_type, - "py_type": gd_to_py_type(return_type), - "signature_type": gd_to_py_signature_type(return_type), - "is_builtin": is_builtin(return_type), - "is_object": is_object(return_type), - "is_base_type": is_base_type(return_type), - "is_void": False, - } - - -def cook_args(args): - return [cook_arg(arg) for arg in args] - - -def cook_name(name): - return f"{name}_" if iskeyword(name) else name - - -def cook_arg(args): - try: - type, name, default = args - except ValueError: - type, name = args - default = None - if type.endswith("*"): - gd_type = type[:-1] - is_ptr = True - else: - gd_type = type - is_ptr = False - return { - "name": cook_name(name), - "gd_type": gd_type, - "py_type": gd_to_py_type(gd_type), - "signature_type": gd_to_py_signature_type(gd_type), - "is_ptr": is_ptr, - "is_builtin": is_builtin(gd_type), - "is_object": is_object(gd_type), - "is_base_type": is_base_type(gd_type), - "has_default": default is not None, - # TODO: handle default here ! - } - - -def generate_pool_array(output_path): - context = { - "render_target_to_py_type": render_target_to_py_type, - "render_target_to_template": render_target_to_template, - "py_to_gd_type": py_to_gd_type, - "gd_to_py_type": gd_to_py_type, - "gd_to_py_signature_type": gd_to_py_signature_type, - "is_base_type": is_base_type, - "is_builtin": is_builtin, - "cook_return_type": cook_return_type, - "cook_args": cook_args, - "cook_arg": cook_arg, - "cook_c_signature": cook_c_signature, - "cook_c_signatures": cook_c_signatures, - } - - template = env.get_template("builtins.tmpl.pyx") - out = template.render(**context) - with open(output_path, "w") as fd: - fd.write(out) - - pxd_output_path = output_path.rsplit(".", 1)[0] + ".pyi" - template = env.get_template("builtins.tmpl.pyi") - out = template.render(**context) - with open(pxd_output_path, "w") as fd: - fd.write(out) - - pxd_output_path = output_path.rsplit(".", 1)[0] + ".pxd" - template = env.get_template("builtins.tmpl.pxd") - out = template.render(**context) - with open(pxd_output_path, "w") as fd: - fd.write(out) - - -if __name__ == "__main__": - parser = argparse.ArgumentParser( - description="Generate godot builtins bindings files (except pool arrays)" - ) - parser.add_argument("--output", "-o", default=None) - args = parser.parse_args() - generate_pool_array(args.output or f"builtins.pyx") From c83e39d52809f154adcb7886ebe2730e2274276f Mon Sep 17 00:00:00 2001 From: Emmanuel Leblond Date: Sun, 4 Oct 2020 00:19:01 +0200 Subject: [PATCH 2/8] Move Array to autogenerated builtins --- .../builtins_templates/array.tmpl.pxi | 257 +++++------------- .../builtins_templates/builtins.tmpl.pxd | 3 +- .../builtins_templates/builtins.tmpl.pyi | 69 +---- .../builtins_templates/builtins.tmpl.pyx | 3 +- generation/generate_builtins.py | 8 +- pythonscript/godot/SConscript | 7 - pythonscript/godot/__init__.py | 1 - pythonscript/godot/array.pxd | 62 ----- tests/bindings/test_array.py | 21 +- 9 files changed, 84 insertions(+), 347 deletions(-) rename pythonscript/godot/array.pyx => generation/builtins_templates/array.tmpl.pxi (51%) delete mode 100644 pythonscript/godot/array.pxd diff --git a/pythonscript/godot/array.pyx b/generation/builtins_templates/array.tmpl.pxi similarity index 51% rename from pythonscript/godot/array.pyx rename to generation/builtins_templates/array.tmpl.pxi index 6846c824..91292975 100644 --- a/pythonscript/godot/array.pyx +++ b/generation/builtins_templates/array.tmpl.pxi @@ -1,19 +1,26 @@ -# cython: language_level=3 - -cimport cython - -from godot._hazmat.gdapi cimport ( - pythonscript_gdapi10 as gdapi10, - pythonscript_gdapi11 as gdapi11, - pythonscript_gdapi12 as gdapi12, -) -from godot._hazmat.gdnative_api_struct cimport godot_array, godot_int, godot_real, godot_variant -from godot._hazmat.conversion cimport godot_variant_to_pyobj, pyobj_to_godot_variant +{%- block pxd_header %} +{% endblock -%} +{%- block pyx_header %} +{% endblock -%} @cython.final cdef class Array: +{% block cdef_attributes %} + @staticmethod + cdef inline Array new() + @staticmethod + cdef inline Array from_ptr(const godot_array *_ptr) + cdef inline Array operator_getslice(self, godot_int start, godot_int stop, godot_int step) + cdef inline bint operator_equal(self, Array other) + cdef inline Array operator_add(self, Array items) + cdef inline operator_iadd(self, Array items) + + cdef godot_array _gd_data +{% endblock %} + +{% block python_defs %} def __init__(self, iterable=None): if not iterable: gdapi10.godot_array_new(&self._gd_data) @@ -25,11 +32,6 @@ cdef class Array: for x in iterable: self.append(x) - def __dealloc__(self): - # /!\ if `__init__` is skipped, `_gd_data` must be initialized by - # hand otherwise we will get a segfault here - gdapi10.godot_array_destroy(&self._gd_data) - @staticmethod cdef inline Array new(): # Call to __new__ bypasses __init__ constructor @@ -47,6 +49,11 @@ cdef class Array: gdapi10.godot_array_new_copy(&ret._gd_data, _ptr) return ret + def __dealloc__(self): + # /!\ if `__init__` is skipped, `_gd_data` must be initialized by + # hand otherwise we will get a segfault here + gdapi10.godot_array_destroy(&self._gd_data) + def __repr__(self): return f"<{type(self).__name__}([{', '.join([repr(x) for x in self])}])>" @@ -126,7 +133,9 @@ cdef class Array: index = index + size if index < 0 or index >= size: raise IndexError("list index out of range") - return Array.get(self, index) + + cdef godot_variant *p_ret = gdapi10.godot_array_operator_index(&self._gd_data, index) + return godot_variant_to_pyobj(p_ret) # TODO: support slice def __setitem__(self, godot_int index, object value): @@ -134,7 +143,10 @@ cdef class Array: index = size + index if index < 0 else index if abs(index) >= size: raise IndexError("list index out of range") - self.set(index, value) + + cdef godot_variant *p_ret = gdapi10.godot_array_operator_index(&self._gd_data, index) + gdapi10.godot_variant_destroy(p_ret) + pyobj_to_godot_variant(value, p_ret) # TODO: support slice def __delitem__(self, godot_int index): @@ -142,10 +154,8 @@ cdef class Array: index = size + index if index < 0 else index if abs(index) >= size: raise IndexError("list index out of range") - self.remove(index) - def __len__(self): - return self.size() + gdapi10.godot_array_remove(&self._gd_data, index) def __iter__(self): # TODO: mid iteration mutation should throw exception ? @@ -159,9 +169,6 @@ cdef class Array: def __deepcopy__(self): return self.duplicate(True) - def __hash__(self): - return self.hash() - cdef inline bint operator_equal(self, Array other): # TODO `godot_array_operator_equal` is missing in gdapi, submit a PR ? cdef godot_int size = self.size() @@ -188,16 +195,6 @@ cdef class Array: except TypeError: return True - cdef inline bint operator_contains(self, object key): - cdef godot_variant var_key - pyobj_to_godot_variant(key, &var_key) - cdef bint ret = gdapi10.godot_array_has(&self._gd_data, &var_key) - gdapi10.godot_variant_destroy(&var_key) - return ret - - def __contains__(self, object key): - return Array.operator_contains(self, key) - cdef inline operator_iadd(self, Array items): cdef godot_int self_size = self.size() cdef godot_int items_size = items.size() @@ -237,157 +234,41 @@ cdef class Array: ret.append(x) return ret - # Methods - - cpdef inline godot_int hash(self): - return gdapi10.godot_array_hash(&self._gd_data) - - cpdef inline godot_int size(self): - return gdapi10.godot_array_size(&self._gd_data) - - cpdef inline Array duplicate(self, bint deep): - cdef Array ret = Array.__new__(Array) - ret._gd_data = gdapi11.godot_array_duplicate(&self._gd_data, deep) - return ret - - cpdef inline object get(self, godot_int idx): - cdef godot_variant *p_ret = gdapi10.godot_array_operator_index(&self._gd_data, idx) - return godot_variant_to_pyobj(p_ret) - - # TODO: good idea to use expose `set` ? - cpdef inline void set(self, godot_int idx, object item): - cdef godot_variant *p_ret = gdapi10.godot_array_operator_index(&self._gd_data, idx) - gdapi10.godot_variant_destroy(p_ret) - pyobj_to_godot_variant(item, p_ret) - - cpdef inline void append(self, object item): - cdef godot_variant var_item - pyobj_to_godot_variant(item, &var_item) - gdapi10.godot_array_append(&self._gd_data, &var_item) - gdapi10.godot_variant_destroy(&var_item) - - cpdef inline void clear(self): - gdapi10.godot_array_clear(&self._gd_data) - - cpdef inline bint empty(self): - return gdapi10.godot_array_empty(&self._gd_data) - - cpdef inline godot_int count(self, object value): - cdef godot_variant var_value - pyobj_to_godot_variant(value, &var_value) - cdef godot_int ret = gdapi10.godot_array_count(&self._gd_data, &var_value) - gdapi10.godot_variant_destroy(&var_value) - return ret - - cpdef inline void erase(self, object item): - cdef godot_variant var_item - pyobj_to_godot_variant(item, &var_item) - gdapi10.godot_array_erase(&self._gd_data, &var_item) - gdapi10.godot_variant_destroy(&var_item) - - cpdef inline object front(self): - cdef godot_variant var_ret = gdapi10.godot_array_front(&self._gd_data) - cdef object ret = godot_variant_to_pyobj(&var_ret) - gdapi10.godot_variant_destroy(&var_ret) - return ret - - cpdef inline object back(self): - cdef godot_variant var_ret = gdapi10.godot_array_back(&self._gd_data) - cdef object ret = godot_variant_to_pyobj(&var_ret) - gdapi10.godot_variant_destroy(&var_ret) - return ret - - cpdef inline godot_int find(self, object what, godot_int from_): - cdef godot_variant var_what - pyobj_to_godot_variant(what, &var_what) - cdef godot_int ret = gdapi10.godot_array_find(&self._gd_data, &var_what, from_) - gdapi10.godot_variant_destroy(&var_what) - return ret - - cpdef inline godot_int find_last(self, object what): - cdef godot_variant var_what - pyobj_to_godot_variant(what, &var_what) - cdef godot_int ret = gdapi10.godot_array_find_last(&self._gd_data, &var_what) - gdapi10.godot_variant_destroy(&var_what) - return ret - - cpdef inline void insert(self, godot_int pos, object value): - cdef godot_variant var_value - pyobj_to_godot_variant(value, &var_value) - gdapi10.godot_array_insert(&self._gd_data, pos, &var_value) - gdapi10.godot_variant_destroy(&var_value) - - cpdef inline void invert(self): - gdapi10.godot_array_invert(&self._gd_data) - - cpdef inline object pop_back(self): - cdef godot_variant var_ret = gdapi10.godot_array_pop_back(&self._gd_data) - cdef object ret = godot_variant_to_pyobj(&var_ret) - gdapi10.godot_variant_destroy(&var_ret) - return ret - - cpdef inline object pop_front(self): - cdef godot_variant var_ret = gdapi10.godot_array_pop_front(&self._gd_data) - cdef object ret = godot_variant_to_pyobj(&var_ret) - gdapi10.godot_variant_destroy(&var_ret) - return ret - - cpdef inline void push_back(self, object value): - cdef godot_variant var_value - pyobj_to_godot_variant(value, &var_value) - gdapi10.godot_array_push_back(&self._gd_data, &var_value) - gdapi10.godot_variant_destroy(&var_value) - - cpdef inline void push_front(self, object value): - cdef godot_variant var_value - pyobj_to_godot_variant(value, &var_value) - gdapi10.godot_array_push_front(&self._gd_data, &var_value) - gdapi10.godot_variant_destroy(&var_value) - - cpdef inline void remove(self, godot_int idx): - gdapi10.godot_array_remove(&self._gd_data, idx) - - cpdef inline void resize(self, godot_int size): - gdapi10.godot_array_resize(&self._gd_data, size) - - cpdef inline godot_int rfind(self, object what, godot_int from_): - cdef godot_variant var_what - pyobj_to_godot_variant(what, &var_what) - cdef godot_int ret = gdapi10.godot_array_rfind(&self._gd_data, &var_what, from_) - gdapi10.godot_variant_destroy(&var_what) - return ret - - cpdef inline void sort(self): - gdapi10.godot_array_sort(&self._gd_data) - - cdef inline void sort_custom(self, godot_object *p_obj, godot_string *p_func): - gdapi10.godot_array_sort_custom(&self._gd_data, p_obj, p_func) - - cpdef inline godot_int bsearch(self, object value, bint before): - cdef godot_variant var_value - pyobj_to_godot_variant(value, &var_value) - cdef godot_int ret = gdapi10.godot_array_bsearch(&self._gd_data, &var_value, before) - gdapi10.godot_variant_destroy(&var_value) - return ret - - cdef inline godot_int bsearch_custom(self, object value, godot_object *p_obj, godot_string *p_func, bint before): - cdef godot_variant var_value - pyobj_to_godot_variant(value, &var_value) - cdef godot_int ret = gdapi10.godot_array_bsearch_custom(&self._gd_data, &var_value, p_obj, p_func, before) - gdapi10.godot_variant_destroy(&var_value) - return ret - - cpdef inline object max(self): - cdef godot_variant var_ret = gdapi11.godot_array_max(&self._gd_data) - cdef object ret = godot_variant_to_pyobj(&var_ret) - gdapi10.godot_variant_destroy(&var_ret) - return ret - - cpdef inline object min(self): - cdef godot_variant var_ret = gdapi11.godot_array_min(&self._gd_data) - cdef object ret = godot_variant_to_pyobj(&var_ret) - gdapi10.godot_variant_destroy(&var_ret) - return ret - - cpdef inline void shuffle(self): - gdapi11.godot_array_shuffle(&self._gd_data) + {{ render_method("size", py_name="__len__") | indent }} + {{ render_method("hash", py_name="__hash__") | indent }} + {{ render_method("has", py_name="__contains__") | indent }} + + {{ render_method("hash") | indent }} + {{ render_method("size") | indent }} + {{ render_method("duplicate") | indent }} + {{ render_method("get") | indent }} + {{ render_method("set") | indent }} + {{ render_method("append") | indent }} + {{ render_method("clear") | indent }} + {{ render_method("empty") | indent }} + {{ render_method("count") | indent }} + {{ render_method("erase") | indent }} + {{ render_method("front") | indent }} + {{ render_method("back") | indent }} + {{ render_method("find") | indent }} + {{ render_method("find_last") | indent }} + {{ render_method("insert") | indent }} + {{ render_method("invert") | indent }} + {{ render_method("pop_back") | indent }} + {{ render_method("pop_front") | indent }} + {{ render_method("push_back") | indent }} + {{ render_method("push_front") | indent }} + {{ render_method("remove") | indent }} + {{ render_method("resize") | indent }} + {{ render_method("rfind") | indent }} + {{ render_method("sort") | indent }} +{# {{ render_method("sort_custom") | indent }} #} + {{ render_method("bsearch") | indent }} +{# {{ render_method("bsearch_custom") | indent }} #} + {{ render_method("max") | indent }} + {{ render_method("min") | indent }} + {{ render_method("shuffle") | indent }} +{% endblock %} + +{%- block python_consts %} +{% endblock %} diff --git a/generation/builtins_templates/builtins.tmpl.pxd b/generation/builtins_templates/builtins.tmpl.pxd index d54b25b6..43ddc116 100644 --- a/generation/builtins_templates/builtins.tmpl.pxd +++ b/generation/builtins_templates/builtins.tmpl.pxd @@ -4,7 +4,6 @@ cimport cython from godot._hazmat.gdnative_api_struct cimport * -from godot.array cimport Array from godot.pool_arrays cimport ( PoolIntArray, PoolRealArray, @@ -43,3 +42,5 @@ from godot.pool_arrays cimport ( {% include 'render.tmpl.pxd' with context %} {% set render_target = "dictionary" %} {% include 'render.tmpl.pxd' with context %} +{% set render_target = "array" %} +{% include 'render.tmpl.pxd' with context %} diff --git a/generation/builtins_templates/builtins.tmpl.pyi b/generation/builtins_templates/builtins.tmpl.pyi index fcac5749..49c36d69 100644 --- a/generation/builtins_templates/builtins.tmpl.pyi +++ b/generation/builtins_templates/builtins.tmpl.pyi @@ -3,73 +3,6 @@ from typing import Union - -class AABB: - pass - -class Array: - pass - -class Basis: - pass - -class Color: - pass - -class Dictionary: - pass - -class NodePath: - pass - -class Plane: - pass - -class Quat: - pass - -class Rect2: - pass - -class RID: - pass - -class Transform2D: - pass - -class Transform: - pass - -class Vector2: - pass - -class Vector3: - pass - -class PoolByteArray: - pass - -class PoolIntArray: - pass - -class PoolRealArray: - pass - -class PoolStringArray: - pass - -class PoolVector2Array: - pass - -class PoolVector3Array: - pass - -class PoolColorArray: - pass - -class GDString: - pass - {% set render_target = "rid" %} {% include 'render.tmpl.pyi' with context %} {% set render_target = "vector3" %} @@ -98,3 +31,5 @@ class GDString: {% include 'render.tmpl.pyi' with context %} {% set render_target = "dictionary" %} {% include 'render.tmpl.pyi' with context %} +{% set render_target = "array" %} +{% include 'render.tmpl.pyi' with context %} diff --git a/generation/builtins_templates/builtins.tmpl.pyx b/generation/builtins_templates/builtins.tmpl.pyx index d94c7aa3..03997769 100644 --- a/generation/builtins_templates/builtins.tmpl.pyx +++ b/generation/builtins_templates/builtins.tmpl.pyx @@ -12,7 +12,6 @@ from godot._hazmat.gdapi cimport ( pythonscript_gdapi12 as gdapi12, ) from godot._hazmat.conversion cimport * -from godot.array cimport Array from godot.pool_arrays cimport ( PoolIntArray, PoolRealArray, @@ -51,3 +50,5 @@ from godot.pool_arrays cimport ( {% include 'render.tmpl.pyx' with context %} {% set render_target = "dictionary" %} {% include 'render.tmpl.pyx' with context %} +{% set render_target = "array" %} +{% include 'render.tmpl.pyx' with context %} diff --git a/generation/generate_builtins.py b/generation/generate_builtins.py index 46461386..c2ba9129 100644 --- a/generation/generate_builtins.py +++ b/generation/generate_builtins.py @@ -28,6 +28,7 @@ TYPE_TRANSFORM, TYPE_NODEPATH, TYPE_DICTIONARY, + TYPE_ARRAY, ) @@ -140,6 +141,7 @@ "transform": TYPE_TRANSFORM, "node_path": TYPE_NODEPATH, "dictionary": TYPE_DICTIONARY, + "array": TYPE_ARRAY, } @@ -258,11 +260,7 @@ def load_builtins_specs_from_gdnative_api(gdnative_api_path: str) -> List[Builti for func in revision["api"]: assert func["name"] not in specs # Ignore godot pool (generate by another script) - if ( - func["name"].startswith("godot_pool_") - or func["name"].startswith("godot_array_") - or func["name"].startswith("godot_variant_") - ): + if func["name"].startswith("godot_pool_") or func["name"].startswith("godot_variant_"): continue spec = load_builtin_method_spec(func, gdapi=revision_gdapi) if spec: diff --git a/pythonscript/godot/SConscript b/pythonscript/godot/SConscript index c7d0ad69..ee25aa70 100644 --- a/pythonscript/godot/SConscript +++ b/pythonscript/godot/SConscript @@ -8,7 +8,6 @@ pxds = [ File(x) for x in ( "__init__.py", # Not really a .pxd but still needed - "array.pxd", "bindings.pxd", "builtins.pxd", "hazmat.pxd", @@ -52,12 +51,6 @@ env.Depends(godot_builtins_srcs, godot_pool_arrays_srcs) env.Install("$DIST_SITE_PACKAGES/godot", env.CythonModule("pool_arrays", "pool_arrays.pyx")) - - -# TODO: merge array.pyx into builtins -env.Install("$DIST_SITE_PACKAGES/godot", env.CythonModule("array", "array.pyx")) - - env.Install("$DIST_SITE_PACKAGES/godot", env.CythonModule("builtins", "builtins.pyx")) diff --git a/pythonscript/godot/__init__.py b/pythonscript/godot/__init__.py index 08668b62..c75620d6 100644 --- a/pythonscript/godot/__init__.py +++ b/pythonscript/godot/__init__.py @@ -31,7 +31,6 @@ export, exposed, ) -from godot.array import Array from godot.pool_arrays import ( PoolIntArray, PoolRealArray, diff --git a/pythonscript/godot/array.pxd b/pythonscript/godot/array.pxd deleted file mode 100644 index 779c3e37..00000000 --- a/pythonscript/godot/array.pxd +++ /dev/null @@ -1,62 +0,0 @@ -# cython: language_level=3 - -cimport cython - -from godot._hazmat.gdnative_api_struct cimport ( - godot_array, - godot_int, - godot_string, - godot_object, -) - - -@cython.final -cdef class Array: - cdef godot_array _gd_data - - @staticmethod - cdef inline Array new() - - @staticmethod - cdef inline Array from_ptr(const godot_array *_ptr) - - # Operators - - cdef inline bint operator_equal(self, Array other) - cdef inline bint operator_contains(self, object key) - cdef inline Array operator_getslice(self, godot_int start, godot_int stop, godot_int step) - cdef inline operator_iadd(self, Array items) - cdef inline Array operator_add(self, Array items) - - # Methods - - cpdef inline godot_int hash(self) - cpdef inline godot_int size(self) - cpdef inline Array duplicate(self, bint deep) - cpdef inline object get(self, godot_int idx) - cpdef inline void set(self, godot_int idx, object item) - cpdef inline void append(self, object item) - cpdef inline void clear(self) - cpdef inline bint empty(self) - cpdef inline godot_int count(self, object value) - cpdef inline void erase(self, object item) - cpdef inline object front(self) - cpdef inline object back(self) - cpdef inline godot_int find(self, object what, godot_int from_) - cpdef inline godot_int find_last(self, object what) - cpdef inline void insert(self, godot_int pos, object value) - cpdef inline void invert(self) - cpdef inline object pop_back(self) - cpdef inline object pop_front(self) - cpdef inline void push_back(self, object value) - cpdef inline void push_front(self, object value) - cpdef inline void remove(self, godot_int idx) - cpdef inline void resize(self, godot_int size) - cpdef inline godot_int rfind(self, object what, godot_int from_) - cpdef inline void sort(self) - cdef inline void sort_custom(self, godot_object *p_obj, godot_string *p_func) - cpdef inline godot_int bsearch(self, object value, bint before) - cdef inline godot_int bsearch_custom(self, object value, godot_object *p_obj, godot_string *p_func, bint before) - cpdef inline object max(self) - cpdef inline object min(self) - cpdef inline void shuffle(self) diff --git a/tests/bindings/test_array.py b/tests/bindings/test_array.py index c1623892..c9ec6222 100644 --- a/tests/bindings/test_array.py +++ b/tests/bindings/test_array.py @@ -125,29 +125,20 @@ def test_bad_instantiate(arg): def test_instantiate_with_non_godot_data(recwarn): - v = Array([object()]) - assert list(v) == [None] - assert [str(w.message) for w in recwarn.list] == [ - "Cannot convert `` to Godot's Variant" - ] + with pytest.raises(TypeError): + Array([object()]) def test_append_with_non_godot_data(recwarn): v = Array() - v.append(object()) - assert list(v) == [None] - assert [str(w.message) for w in recwarn.list] == [ - "Cannot convert `` to Godot's Variant" - ] + with pytest.raises(TypeError): + v.append(object()) def test_add_with_non_godot_data(recwarn): v = Array() - v += [object()] - assert list(v) == [None] - assert [str(w.message) for w in recwarn.list] == [ - "Cannot convert `` to Godot's Variant" - ] + with pytest.raises(TypeError): + v += [object()] @pytest.mark.parametrize( From f386e4537754db21ced9771fc3cd02767d5ed664 Mon Sep 17 00:00:00 2001 From: Emmanuel Leblond Date: Sun, 4 Oct 2020 12:03:19 +0200 Subject: [PATCH 3/8] Improve generate_bindings/builtins.py argparse --- generation/generate_bindings.py | 69 ++++++++++++++++++++++++--------- generation/generate_builtins.py | 45 ++++++++++++++------- 2 files changed, 83 insertions(+), 31 deletions(-) diff --git a/generation/generate_bindings.py b/generation/generate_bindings.py index 6a1d1677..0afd6b22 100644 --- a/generation/generate_bindings.py +++ b/generation/generate_bindings.py @@ -7,7 +7,7 @@ from collections import defaultdict from jinja2 import Environment, FileSystemLoader from dataclasses import dataclass, replace -from typing import Optional, Dict, List +from typing import Optional, Dict, List, Tuple from type_specs import TypeSpec, ALL_TYPES_EXCEPT_OBJECTS @@ -542,41 +542,74 @@ def _cook_default_value(type, value, has_default_value): return sorted_classes, constants -def generate_bindings(output_path, api_json_path, sample): - with open(api_json_path, "r") as fd: - raw_data = json.load(fd) - pre_cook_patch_stuff(raw_data) - classes, constants = cook_data(raw_data) +def load_bindings_specs_from_api_json( + api_json: dict, sample: bool +) -> Tuple[List[ClassInfo], Dict[str, int]]: + pre_cook_patch_stuff(api_json) + classes, constants = cook_data(api_json) if sample: strip_sample_stuff(classes) strip_unsupported_stuff(classes) post_cook_patch_stuff(classes) + return classes, constants - print(f"Generating {output_path}") + +def generate_bindings( + no_suffix_output_path: str, classes_specs: List[ClassInfo], constants_specs: Dict[str, int] +): + pyx_output_path = f"{no_suffix_output_path}.pyx" + print(f"Generating {pyx_output_path}") template = env.get_template("bindings.tmpl.pyx") - out = template.render(classes=classes, constants=constants) - with open(output_path, "w") as fd: + out = template.render(classes=classes_specs, constants=constants_specs) + with open(pyx_output_path, "w") as fd: fd.write(out) - pyi_output_path = output_path.rsplit(".", 1)[0] + ".pyi" + pyi_output_path = f"{no_suffix_output_path}.pyi" print(f"Generating {pyi_output_path}") template = env.get_template("bindings.tmpl.pyi") - out = template.render(classes=classes, constants=constants) + out = template.render(classes=classes_specs, constants=constants_specs) with open(pyi_output_path, "w") as fd: fd.write(out) - pxd_output_path = output_path.rsplit(".", 1)[0] + ".pxd" + pxd_output_path = f"{no_suffix_output_path}.pxd" print(f"Generating {pxd_output_path}") template = env.get_template("bindings.tmpl.pxd") - out = template.render(classes=classes, constants=constants) + out = template.render(classes=classes_specs, constants=constants_specs) with open(pxd_output_path, "w") as fd: fd.write(out) if __name__ == "__main__": - parser = argparse.ArgumentParser(description="Generate godot api bindings file") - parser.add_argument("--input", "-i", help="Path to Godot api.json file", default="api.json") - parser.add_argument("--output", "-o", default="godot_bindings_gen.pyx") - parser.add_argument("--sample", action="store_true") + + def _parse_output(val): + suffix = ".pyx" + if not val.endswith(suffix): + raise argparse.ArgumentTypeError(f"Must have a `{suffix}` suffix") + return val[: -len(suffix)] + + parser = argparse.ArgumentParser(description="Generate godot api bindings bindings files") + parser.add_argument( + "--input", + "-i", + required=True, + metavar="API_PATH", + type=argparse.FileType("r", encoding="utf8"), + help="Path to Godot api.json file", + ) + parser.add_argument( + "--output", + "-o", + required=True, + metavar="BINDINGS_PYX", + type=_parse_output, + help="Path to store the generated bindings.pyx (also used to determine .pxd/.pyi output path)", + ) + parser.add_argument( + "--sample", + action="store_true", + help="Generate a subset of the bindings (faster to build, useful for dev)", + ) args = parser.parse_args() - generate_bindings(args.output, args.input, args.sample) + api_json = json.load(args.input) + classes_specs, constants_specs = load_bindings_specs_from_api_json(api_json, args.sample) + generate_bindings(args.output, classes_specs, constants_specs) diff --git a/generation/generate_builtins.py b/generation/generate_builtins.py index c2ba9129..a4f0159f 100644 --- a/generation/generate_builtins.py +++ b/generation/generate_builtins.py @@ -249,9 +249,7 @@ def pre_cook_patch_stuff(gdnative_api): revision = revision["next"] -def load_builtins_specs_from_gdnative_api(gdnative_api_path: str) -> List[BuiltinMethodSpec]: - with open(gdnative_api_path, "r") as fd: - gdnative_api = json.load(fd) +def load_builtins_specs_from_gdnative_api_json(gdnative_api: dict) -> List[BuiltinMethodSpec]: pre_cook_patch_stuff(gdnative_api) revision = gdnative_api["core"] specs = [] @@ -270,9 +268,8 @@ def load_builtins_specs_from_gdnative_api(gdnative_api_path: str) -> List[Builti return specs -def generate_builtins(output_path, gdnative_api_json_path): - builtins_specs = load_builtins_specs_from_gdnative_api(gdnative_api_json_path) - methods_c_name_to_spec = {s.c_name: s for s in builtins_specs} +def generate_builtins(no_suffix_output_path: str, methods_specs: List[BuiltinMethodSpec]): + methods_c_name_to_spec = {s.c_name: s for s in methods_specs} def _get_builtin_method_spec(method_c_name): assert isinstance(method_c_name, str) @@ -316,19 +313,20 @@ def _mark_rendered(method_c_name): } template = env.get_template("builtins.tmpl.pyx") - print(f"Generating {output_path}") + pyx_output_path = f"{no_suffix_output_path}.pyx" + print(f"Generating {pyx_output_path}") out = template.render(**context) - with open(output_path, "w") as fd: + with open(pyx_output_path, "w") as fd: fd.write(out) - pyi_output_path = output_path.rsplit(".", 1)[0] + ".pyi" + pyi_output_path = f"{no_suffix_output_path}.pyi" print(f"Generating {pyi_output_path}") template = env.get_template("builtins.tmpl.pyi") out = template.render(**context) with open(pyi_output_path, "w") as fd: fd.write(out) - pxd_output_path = output_path.rsplit(".", 1)[0] + ".pxd" + pxd_output_path = f"{no_suffix_output_path}.pxd" print(f"Generating {pxd_output_path}") template = env.get_template("builtins.tmpl.pxd") out = template.render(**context) @@ -339,12 +337,33 @@ def _mark_rendered(method_c_name): if __name__ == "__main__": + + def _parse_output(val): + suffix = ".pyx" + if not val.endswith(suffix): + raise argparse.ArgumentTypeError(f"Must have a `{suffix}` suffix") + return val[: -len(suffix)] + parser = argparse.ArgumentParser( description="Generate godot builtins bindings files (except pool arrays)" ) parser.add_argument( - "--input", "-i", help="Path to Godot gdnative_api.json file", default="gdnative_api.json" + "--input", + "-i", + required=True, + metavar="GDNATIVE_API_PATH", + type=argparse.FileType("r", encoding="utf8"), + help="Path to Godot gdnative_api.json file", + ) + parser.add_argument( + "--output", + "-o", + required=True, + metavar="BUILTINS_PYX", + type=_parse_output, + help="Path to store the generated builtins.pyx (also used to determine .pxd/.pyi output path)", ) - parser.add_argument("--output", "-o", default="godot_builtins_gen.pyx") args = parser.parse_args() - generate_builtins(args.output, args.input) + gdnative_api_json = json.load(args.input) + methods_specs = load_builtins_specs_from_gdnative_api_json(gdnative_api_json) + generate_builtins(args.output, methods_specs) From 419b1c2a709b952664f98e2b7afd3fc1c9e9bc05 Mon Sep 17 00:00:00 2001 From: Emmanuel Leblond Date: Tue, 6 Oct 2020 13:57:27 +0200 Subject: [PATCH 4/8] Add Q&A check in generate_builtins.py to ensure all method in gdnative_api.json are used --- generation/builtins_templates/aabb.tmpl.pxi | 40 +-- generation/builtins_templates/array.tmpl.pxi | 113 +++---- generation/builtins_templates/basis.tmpl.pxi | 57 +--- generation/builtins_templates/color.tmpl.pxi | 41 +-- .../builtins_templates/dictionary.tmpl.pxi | 65 ++-- .../builtins_templates/gdstring.tmpl.pxi | 305 +++++++++--------- .../builtins_templates/node_path.tmpl.pxi | 24 +- generation/builtins_templates/plane.tmpl.pxi | 34 +- generation/builtins_templates/quat.tmpl.pxi | 43 +-- generation/builtins_templates/rect2.tmpl.pxi | 30 +- generation/builtins_templates/rid.tmpl.pxi | 17 +- .../builtins_templates/transform.tmpl.pxi | 36 +-- .../builtins_templates/transform2d.tmpl.pxi | 37 +-- .../builtins_templates/vector2.tmpl.pxi | 53 +-- .../builtins_templates/vector3.tmpl.pxi | 60 +--- generation/generate_builtins.py | 63 +++- generation/type_specs.py | 1 + 17 files changed, 339 insertions(+), 680 deletions(-) diff --git a/generation/builtins_templates/aabb.tmpl.pxi b/generation/builtins_templates/aabb.tmpl.pxi index a4214c6d..5108bd71 100644 --- a/generation/builtins_templates/aabb.tmpl.pxi +++ b/generation/builtins_templates/aabb.tmpl.pxi @@ -1,38 +1,3 @@ -{# -""" -// GDAPI: 1.0 -void godot_aabb_new(godot_aabb* r_dest, godot_vector3* p_pos, godot_vector3* p_size) -godot_vector3 godot_aabb_get_position(godot_aabb* p_self) -void godot_aabb_set_position(godot_aabb* p_self, godot_vector3* p_v) -godot_vector3 godot_aabb_get_size(godot_aabb* p_self) -void godot_aabb_set_size(godot_aabb* p_self, godot_vector3* p_v) -godot_string godot_aabb_as_string(godot_aabb* p_self) -godot_real godot_aabb_get_area(godot_aabb* p_self) -godot_bool godot_aabb_has_no_area(godot_aabb* p_self) -godot_bool godot_aabb_has_no_surface(godot_aabb* p_self) -godot_bool godot_aabb_intersects(godot_aabb* p_self, godot_aabb* p_with) -godot_bool godot_aabb_encloses(godot_aabb* p_self, godot_aabb* p_with) -godot_aabb godot_aabb_merge(godot_aabb* p_self, godot_aabb* p_with) -godot_aabb godot_aabb_intersection(godot_aabb* p_self, godot_aabb* p_with) -godot_bool godot_aabb_intersects_plane(godot_aabb* p_self, godot_plane* p_plane) -godot_bool godot_aabb_intersects_segment(godot_aabb* p_self, godot_vector3* p_from, godot_vector3* p_to) -godot_bool godot_aabb_has_point(godot_aabb* p_self, godot_vector3* p_point) -godot_vector3 godot_aabb_get_support(godot_aabb* p_self, godot_vector3* p_dir) -godot_vector3 godot_aabb_get_longest_axis(godot_aabb* p_self) -godot_int godot_aabb_get_longest_axis_index(godot_aabb* p_self) -godot_real godot_aabb_get_longest_axis_size(godot_aabb* p_self) -godot_vector3 godot_aabb_get_shortest_axis(godot_aabb* p_self) -godot_int godot_aabb_get_shortest_axis_index(godot_aabb* p_self) -godot_real godot_aabb_get_shortest_axis_size(godot_aabb* p_self) -godot_aabb godot_aabb_expand(godot_aabb* p_self, godot_vector3* p_to_point) -godot_aabb godot_aabb_grow(godot_aabb* p_self, godot_real p_by) -godot_vector3 godot_aabb_get_endpoint(godot_aabb* p_self, godot_int p_idx) -godot_bool godot_aabb_operator_equal(godot_aabb* p_self, godot_aabb* p_b) -// GDAPI: 1.1 -// GDAPI: 1.2 -""" -#} - {%- block pxd_header -%} {%- endblock -%} {%- block pyx_header -%} @@ -46,6 +11,7 @@ cdef class AABB: {% block python_defs %} def __init__(self, Vector3 pos not None=Vector3(), Vector3 size not None=Vector3()): + {{ force_mark_rendered("godot_aabb_new" )}} gdapi10.godot_aabb_new(&self._gd_data, &pos._gd_data, &size._gd_data) def __repr__(self): @@ -54,21 +20,25 @@ cdef class AABB: @property def position(AABB self) -> Vector3: cdef Vector3 ret = Vector3.__new__(Vector3) + {{ force_mark_rendered("godot_aabb_get_position" )}} ret._gd_data = gdapi10.godot_aabb_get_position(&self._gd_data) return ret @position.setter def position(AABB self, Vector3 val not None) -> None: + {{ force_mark_rendered("godot_aabb_set_position" )}} gdapi10.godot_aabb_set_position(&self._gd_data, &val._gd_data) @property def size(AABB self) -> Vector3: cdef Vector3 ret = Vector3.__new__(Vector3) + {{ force_mark_rendered("godot_aabb_get_size" )}} ret._gd_data = gdapi10.godot_aabb_get_size(&self._gd_data) return ret @size.setter def size(AABB self, Vector3 val not None) -> None: + {{ force_mark_rendered("godot_aabb_set_size" )}} gdapi10.godot_aabb_set_size(&self._gd_data, &val._gd_data) @property diff --git a/generation/builtins_templates/array.tmpl.pxi b/generation/builtins_templates/array.tmpl.pxi index 91292975..c47627a0 100644 --- a/generation/builtins_templates/array.tmpl.pxi +++ b/generation/builtins_templates/array.tmpl.pxi @@ -3,25 +3,38 @@ {%- block pyx_header %} {% endblock -%} +{# TODO: conversion from pool arrays is not supported #} +{{ force_mark_rendered("godot_array_new_pool_byte_array") }} +{{ force_mark_rendered("godot_array_new_pool_color_array") }} +{{ force_mark_rendered("godot_array_new_pool_int_array") }} +{{ force_mark_rendered("godot_array_new_pool_real_array") }} +{{ force_mark_rendered("godot_array_new_pool_string_array") }} +{{ force_mark_rendered("godot_array_new_pool_vector2_array") }} +{{ force_mark_rendered("godot_array_new_pool_vector3_array") }} +{# We can't do const in Python #} +{{ force_mark_rendered("godot_array_operator_index_const") }} @cython.final cdef class Array: {% block cdef_attributes %} + cdef godot_array _gd_data + @staticmethod cdef inline Array new() + @staticmethod cdef inline Array from_ptr(const godot_array *_ptr) + cdef inline Array operator_getslice(self, godot_int start, godot_int stop, godot_int step) cdef inline bint operator_equal(self, Array other) cdef inline Array operator_add(self, Array items) cdef inline operator_iadd(self, Array items) - - cdef godot_array _gd_data - {% endblock %} {% block python_defs %} def __init__(self, iterable=None): + {{ force_mark_rendered("godot_array_new") }} + {{ force_mark_rendered("godot_array_duplicate") }} if not iterable: gdapi10.godot_array_new(&self._gd_data) elif isinstance(iterable, Array): @@ -46,12 +59,14 @@ cdef class Array: # `godot_array` is a cheap structure pointing on a refcounted vector # of variants. Unlike it name could let think, `godot_array_new_copy` # only increment the refcount of the underlying structure. + {{ force_mark_rendered("godot_array_new_copy") }} gdapi10.godot_array_new_copy(&ret._gd_data, _ptr) return ret def __dealloc__(self): # /!\ if `__init__` is skipped, `_gd_data` must be initialized by # hand otherwise we will get a segfault here + {{ force_mark_rendered("godot_array_destroy") }} gdapi10.godot_array_destroy(&self._gd_data) def __repr__(self): @@ -60,75 +75,31 @@ cdef class Array: # Operators cdef inline Array operator_getslice(self, godot_int start, godot_int stop, godot_int step): - cdef Array ret = Array.new() - # TODO: optimize with `godot_array_resize` ? - cdef godot_int size = self.size() - - if start > size - 1: - start = size - 1 - elif start < 0: - start += size - if start < 0: - start = 0 - - if stop > size: - stop = size - elif stop < -size: - stop = -1 - elif stop < 0: - stop += size - - if step > 0: - if start >= stop: - return ret - items = 1 + (stop - start - 1) // step - if items <= 0: - return ret - else: - if start <= stop: - return ret - items = 1 + (stop - start + 1) // step - if items <= 0: - return ret - - gdapi10.godot_array_resize(&ret._gd_data, items) - cdef int i - cdef godot_variant *p_item - for i in range(items): - p_item = gdapi10.godot_array_operator_index(&self._gd_data, i * step + start) - gdapi10.godot_array_append(&ret._gd_data, p_item) - gdapi10.godot_variant_destroy(p_item) - + {{ force_mark_rendered("godot_array_slice") }} + cdef Array ret = Array.__new__(Array) + ret._gd_data = gdapi12.godot_array_slice(&self._gd_data, start, stop, step, False) return ret # TODO: support slice def __getitem__(self, index): + {{ force_mark_rendered("godot_array_operator_index") }} cdef godot_int size = self.size() - # cdef godot_int start - # cdef godot_int stop - # cdef godot_int step - # cdef godot_int items - # if isinstance(index, slice): - # cook_slice(index, size, &start, &stop, &step, &items) - # gdapi10.godot_array_resize(&ret._gd_data, items) - # cdef int i - # cdef godot_variant *p_item - # for i in range(items): - # p_item = gdapi10.godot_array_operator_index(&self._gd_data, i * step + start) - # gdapi10.godot_array_append(&ret._gd_data, p_item) - # gdapi10.godot_variant_destroy(p_item) - - - # step = index.step if index.step is not None else 1 - # if step == 0: - # elif step > 0: - # start = index.start if index.start is not None else 0 - # stop = index.stop if index.stop is not None else size - # else: - # start = index.start if index.start is not None else size - # stop = index.stop if index.stop is not None else -size - 1 - # return Array.operator_getslice(self, start, stop, step) - # else: + cdef godot_int start + cdef godot_int stop + cdef godot_int step + + if isinstance(index, slice): + step = index.step if index.step is not None else 1 + if step == 0: + raise ValueError("slice step cannot be zero") + elif step > 0: + start = index.start if index.start is not None else 0 + stop = index.stop if index.stop is not None else size + else: + start = index.start if index.start is not None else size + stop = index.stop if index.stop is not None else -size - 1 + return Array.operator_getslice(self, start, stop, step) + if index < 0: index = index + size if index < 0 or index >= size: @@ -262,9 +233,13 @@ cdef class Array: {{ render_method("resize") | indent }} {{ render_method("rfind") | indent }} {{ render_method("sort") | indent }} -{# {{ render_method("sort_custom") | indent }} #} + {#- TODO: opaque object as param is not supported #} + {{- force_mark_rendered("godot_array_sort_custom") }} + {#- {{ render_method("sort_custom") | indent }} #} {{ render_method("bsearch") | indent }} -{# {{ render_method("bsearch_custom") | indent }} #} + {#- TODO: opaque object as param is not supported #} + {{- force_mark_rendered("godot_array_bsearch_custom") }} + {#- {{ render_method("bsearch_custom") | indent }} #} {{ render_method("max") | indent }} {{ render_method("min") | indent }} {{ render_method("shuffle") | indent }} diff --git a/generation/builtins_templates/basis.tmpl.pxi b/generation/builtins_templates/basis.tmpl.pxi index a3ae83cb..055e72ef 100644 --- a/generation/builtins_templates/basis.tmpl.pxi +++ b/generation/builtins_templates/basis.tmpl.pxi @@ -1,58 +1,16 @@ -{# -""" -// GDAPI: 1.0 -void godot_basis_new_with_rows(godot_basis* r_dest, godot_vector3* p_x_axis, godot_vector3* p_y_axis, godot_vector3* p_z_axis) -void godot_basis_new_with_axis_and_angle(godot_basis* r_dest, godot_vector3* p_axis, godot_real p_phi) -void godot_basis_new_with_euler(godot_basis* r_dest, godot_vector3* p_euler) -void godot_basis_new_with_euler_quat(godot_basis* r_dest, godot_quat* p_euler) -godot_string godot_basis_as_string(godot_basis* p_self) -godot_basis godot_basis_inverse(godot_basis* p_self) -godot_basis godot_basis_transposed(godot_basis* p_self) -godot_basis godot_basis_orthonormalized(godot_basis* p_self) -godot_real godot_basis_determinant(godot_basis* p_self) -godot_basis godot_basis_rotated(godot_basis* p_self, godot_vector3* p_axis, godot_real p_phi) -godot_basis godot_basis_scaled(godot_basis* p_self, godot_vector3* p_scale) -godot_vector3 godot_basis_get_scale(godot_basis* p_self) -godot_vector3 godot_basis_get_euler(godot_basis* p_self) -godot_real godot_basis_tdotx(godot_basis* p_self, godot_vector3* p_with) -godot_real godot_basis_tdoty(godot_basis* p_self, godot_vector3* p_with) -godot_real godot_basis_tdotz(godot_basis* p_self, godot_vector3* p_with) -godot_vector3 godot_basis_xform(godot_basis* p_self, godot_vector3* p_v) -godot_vector3 godot_basis_xform_inv(godot_basis* p_self, godot_vector3* p_v) -godot_int godot_basis_get_orthogonal_index(godot_basis* p_self) -void godot_basis_new(godot_basis* r_dest) -void godot_basis_get_elements(godot_basis* p_self, godot_vector3* p_elements) -godot_vector3 godot_basis_get_axis(godot_basis* p_self, godot_int p_axis) -void godot_basis_set_axis(godot_basis* p_self, godot_int p_axis, godot_vector3* p_value) -godot_vector3 godot_basis_get_row(godot_basis* p_self, godot_int p_row) -void godot_basis_set_row(godot_basis* p_self, godot_int p_row, godot_vector3* p_value) -godot_bool godot_basis_operator_equal(godot_basis* p_self, godot_basis* p_b) -godot_basis godot_basis_operator_add(godot_basis* p_self, godot_basis* p_b) -godot_basis godot_basis_operator_subtract(godot_basis* p_self, godot_basis* p_b) -godot_basis godot_basis_operator_multiply_vector(godot_basis* p_self, godot_basis* p_b) -godot_basis godot_basis_operator_multiply_scalar(godot_basis* p_self, godot_real p_b) -// GDAPI: 1.1 -godot_quat godot_basis_get_quat(godot_basis* p_self) -void godot_basis_set_quat(godot_basis* p_self, godot_quat* p_quat) -void godot_basis_set_axis_angle_scale(godot_basis* p_self, godot_vector3* p_axis, godot_real p_phi, godot_vector3* p_scale) -void godot_basis_set_euler_scale(godot_basis* p_self, godot_vector3* p_euler, godot_vector3* p_scale) -void godot_basis_set_quat_scale(godot_basis* p_self, godot_quat* p_quat, godot_vector3* p_scale) -godot_basis godot_basis_slerp(godot_basis* p_self, godot_basis* p_b, godot_real p_t) -// GDAPI: 1.2 -""" -#} - {%- block pxd_header -%} {%- endblock -%} {%- block pyx_header -%} cdef inline Basis Basis_multiply_vector(Basis self, Basis b): cdef Basis ret = Basis.__new__(Basis) + {{ force_mark_rendered("godot_basis_operator_multiply_vector") }} ret._gd_data = gdapi10.godot_basis_operator_multiply_vector(&self._gd_data, &b._gd_data) return ret cdef inline Basis Basis_multiply_scalar(Basis self, godot_real b): cdef Basis ret = Basis.__new__(Basis) + {{ force_mark_rendered("godot_basis_operator_multiply_scalar") }} ret._gd_data = gdapi10.godot_basis_operator_multiply_scalar(&self._gd_data, b) return ret @@ -66,17 +24,21 @@ cdef class Basis: {% block python_defs %} def __init__(self, Vector3 x not None=Vector3.RIGHT, Vector3 y not None=Vector3.UP, Vector3 z not None=Vector3.BACK): + {{ force_mark_rendered("godot_basis_new") }} {# We always use the `with_rows` version #} + {{ force_mark_rendered("godot_basis_new_with_rows") }} gdapi10.godot_basis_new_with_rows(&self._gd_data, &(x)._gd_data, &(y)._gd_data, &(z)._gd_data) @staticmethod def from_euler(from_): cdef Basis ret = Basis.__new__(Basis) try: + {{ force_mark_rendered("godot_basis_new_with_euler") }} gdapi10.godot_basis_new_with_euler(&ret._gd_data, &(from_)._gd_data) return ret except TypeError: pass try: + {{ force_mark_rendered("godot_basis_new_with_euler_quat") }} gdapi10.godot_basis_new_with_euler_quat(&ret._gd_data, &(from_)._gd_data) return ret except TypeError: @@ -85,6 +47,7 @@ cdef class Basis: @staticmethod def from_axis_angle(Vector3 axis not None, phi): cdef Basis ret = Basis.__new__(Basis) + {{ force_mark_rendered("godot_basis_new_with_axis_and_angle") }} gdapi10.godot_basis_new_with_axis_and_angle(&ret._gd_data, &axis._gd_data, phi) return ret @@ -94,31 +57,37 @@ cdef class Basis: @property def x(Basis self) -> Vector3: cdef Vector3 ret = Vector3.__new__(Vector3) + {{ force_mark_rendered("godot_basis_get_axis") }} ret._gd_data = gdapi10.godot_basis_get_axis(&self._gd_data, 0) return ret @x.setter def x(Basis self, Vector3 val not None) -> None: + {{ force_mark_rendered("godot_basis_set_axis") }} gdapi10.godot_basis_set_axis(&self._gd_data, 0, &val._gd_data) @property def y(Basis self) -> Vector3: cdef Vector3 ret = Vector3.__new__(Vector3) + {{ force_mark_rendered("godot_basis_get_axis") }} ret._gd_data = gdapi10.godot_basis_get_axis(&self._gd_data, 1) return ret @y.setter def y(Basis self, Vector3 val not None) -> None: + {{ force_mark_rendered("godot_basis_set_axis") }} gdapi10.godot_basis_set_axis(&self._gd_data, 1, &val._gd_data) @property def z(Basis self) -> Vector3: cdef Vector3 ret = Vector3.__new__(Vector3) + {{ force_mark_rendered("godot_basis_get_axis") }} ret._gd_data = gdapi10.godot_basis_get_axis(&self._gd_data, 2) return ret @z.setter def z(Basis self, Vector3 val not None) -> None: + {{ force_mark_rendered("godot_basis_set_axis") }} gdapi10.godot_basis_set_axis(&self._gd_data, 2, &val._gd_data) {{ render_operator_eq() | indent }} diff --git a/generation/builtins_templates/color.tmpl.pxi b/generation/builtins_templates/color.tmpl.pxi index 13361252..ba305143 100644 --- a/generation/builtins_templates/color.tmpl.pxi +++ b/generation/builtins_templates/color.tmpl.pxi @@ -1,42 +1,3 @@ -{# -""" -// GDAPI: 1.0 -void godot_color_new_rgba(godot_color* r_dest, godot_real p_r, godot_real p_g, godot_real p_b, godot_real p_a) -void godot_color_new_rgb(godot_color* r_dest, godot_real p_r, godot_real p_g, godot_real p_b) -godot_real godot_color_get_r(godot_color* p_self) -void godot_color_set_r(godot_color* p_self, godot_real r) -godot_real godot_color_get_g(godot_color* p_self) -void godot_color_set_g(godot_color* p_self, godot_real g) -godot_real godot_color_get_b(godot_color* p_self) -void godot_color_set_b(godot_color* p_self, godot_real b) -godot_real godot_color_get_a(godot_color* p_self) -void godot_color_set_a(godot_color* p_self, godot_real a) -godot_real godot_color_get_h(godot_color* p_self) -godot_real godot_color_get_s(godot_color* p_self) -godot_real godot_color_get_v(godot_color* p_self) -godot_string godot_color_as_string(godot_color* p_self) -godot_int godot_color_to_rgba32(godot_color* p_self) -godot_int godot_color_to_argb32(godot_color* p_self) -godot_real godot_color_gray(godot_color* p_self) -godot_color godot_color_inverted(godot_color* p_self) -godot_color godot_color_contrasted(godot_color* p_self) -godot_color godot_color_linear_interpolate(godot_color* p_self, godot_color* p_b, godot_real p_t) -godot_color godot_color_blend(godot_color* p_self, godot_color* p_over) -godot_string godot_color_to_html(godot_color* p_self, godot_bool p_with_alpha) -godot_bool godot_color_operator_equal(godot_color* p_self, godot_color* p_b) -godot_bool godot_color_operator_less(godot_color* p_self, godot_color* p_b) -// GDAPI: 1.1 -godot_int godot_color_to_abgr32(godot_color* p_self) -godot_int godot_color_to_abgr64(godot_color* p_self) -godot_int godot_color_to_argb64(godot_color* p_self) -godot_int godot_color_to_rgba64(godot_color* p_self) -godot_color godot_color_darkened(godot_color* p_self, godot_real p_amount) -godot_color godot_color_from_hsv(godot_color* p_self, godot_real p_h, godot_real p_s, godot_real p_v, godot_real p_a) -godot_color godot_color_lightened(godot_color* p_self, godot_real p_amount) -// GDAPI: 1.2 -""" -#} - {%- block pxd_header %} {% endblock -%} {%- block pyx_header %} @@ -53,8 +14,10 @@ cdef class Color: {% block python_defs %} def __init__(self, godot_real r=0, godot_real g=0, godot_real b=0, a=None): if a is None: + {{ force_mark_rendered("godot_color_new_rgb")}} gdapi10.godot_color_new_rgb(&self._gd_data, r, g, b) else: + {{ force_mark_rendered("godot_color_new_rgba")}} gdapi10.godot_color_new_rgba(&self._gd_data, r, g, b, a) def __repr__(self): diff --git a/generation/builtins_templates/dictionary.tmpl.pxi b/generation/builtins_templates/dictionary.tmpl.pxi index c40a270a..6be02722 100644 --- a/generation/builtins_templates/dictionary.tmpl.pxi +++ b/generation/builtins_templates/dictionary.tmpl.pxi @@ -1,50 +1,29 @@ -{# -""" -// GDAPI: 1.0 -void godot_dictionary_new(godot_dictionary* r_dest) -void godot_dictionary_new_copy(godot_dictionary* r_dest, godot_dictionary* p_src) -void godot_dictionary_destroy(godot_dictionary* p_self) -godot_int godot_dictionary_size(godot_dictionary* p_self) -godot_bool godot_dictionary_empty(godot_dictionary* p_self) -void godot_dictionary_clear(godot_dictionary* p_self) -godot_bool godot_dictionary_has(godot_dictionary* p_self, godot_variant* p_key) -godot_bool godot_dictionary_has_all(godot_dictionary* p_self, godot_array* p_keys) -void godot_dictionary_erase(godot_dictionary* p_self, godot_variant* p_key) -godot_int godot_dictionary_hash(godot_dictionary* p_self) -godot_array godot_dictionary_keys(godot_dictionary* p_self) -godot_array godot_dictionary_values(godot_dictionary* p_self) -godot_variant godot_dictionary_get(godot_dictionary* p_self, godot_variant* p_key) -void godot_dictionary_set(godot_dictionary* p_self, godot_variant* p_key, godot_variant* p_value) -// godot_variant* godot_dictionary_operator_index(godot_dictionary* p_self, godot_variant* p_key) -// godot_variant* godot_dictionary_operator_index_const(godot_dictionary* p_self, godot_variant* p_key) -// godot_variant* godot_dictionary_next(godot_dictionary* p_self, godot_variant* p_key) -godot_bool godot_dictionary_operator_equal(godot_dictionary* p_self, godot_dictionary* p_b) -godot_string godot_dictionary_to_json(godot_dictionary* p_self) -// GDAPI: 1.1 -godot_bool godot_dictionary_erase_with_return(godot_dictionary* p_self, godot_variant* p_key) -godot_variant godot_dictionary_get_with_default(godot_dictionary* p_self, godot_variant* p_key, godot_variant* p_default) -// GDAPI: 1.2 -godot_dictionary godot_dictionary_duplicate(godot_dictionary* p_self, godot_bool p_deep) -""" -#} - {%- block pxd_header %} {% endblock -%} {%- block pyx_header %} {% endblock -%} +{# We can't do const in Python #} +{{ force_mark_rendered("godot_dictionary_operator_index_const") }} @cython.final cdef class Dictionary: {% block cdef_attributes %} cdef godot_dictionary _gd_data + @staticmethod + cdef inline Dictionary new() + + @staticmethod + cdef inline Dictionary from_ptr(const godot_dictionary *_ptr) + cdef inline operator_update(self, Dictionary items) cdef inline bint operator_equal(self, Dictionary other) {% endblock %} {% block python_defs %} def __init__(self, iterable=None): + {{ force_mark_rendered("godot_dictionary_new") }} if not iterable: gdapi10.godot_dictionary_new(&self._gd_data) elif isinstance(iterable, Dictionary): @@ -63,10 +42,29 @@ cdef class Dictionary: raise ValueError("dictionary update sequence element has length 1; 2 is required") def __dealloc__(self): + {{ force_mark_rendered("godot_dictionary_destroy") }} # /!\ if `__init__` is skipped, `_gd_data` must be initialized by # hand otherwise we will get a segfault here gdapi10.godot_dictionary_destroy(&self._gd_data) + @staticmethod + cdef inline Dictionary new(): + # Call to __new__ bypasses __init__ constructor + cdef Dictionary ret = Dictionary.__new__(Dictionary) + gdapi10.godot_dictionary_new(&ret._gd_data) + return ret + + @staticmethod + cdef inline Dictionary from_ptr(const godot_dictionary *_ptr): + # Call to __new__ bypasses __init__ constructor + cdef Dictionary ret = Dictionary.__new__(Dictionary) + # `godot_dictionary` is a cheap structure pointing on a refcounted hashmap + # of variants. Unlike it name could let think, `godot_dictionary_new_copy` + # only increment the refcount of the underlying structure. + {{ force_mark_rendered("godot_dictionary_new_copy") }} + gdapi10.godot_dictionary_new_copy(&ret._gd_data, _ptr) + return ret + def __repr__(self): repr_dict = {} for k, v in self.items(): @@ -78,6 +76,7 @@ cdef class Dictionary: return f"" def __getitem__(self, object key): + {{ force_mark_rendered("godot_dictionary_operator_index") }} cdef godot_variant var_key if not pyobj_to_godot_variant(key, &var_key): raise TypeError(f"Cannot convert `{key!r}` to Godot Variant") @@ -91,6 +90,7 @@ cdef class Dictionary: {{ render_method("set", py_name="__setitem__") | indent }} def __delitem__(self, object key): + {{ force_mark_rendered("godot_dictionary_erase_with_return") }} cdef godot_variant var_key if not pyobj_to_godot_variant(key, &var_key): raise TypeError(f"Cannot convert `{key!r}` to Godot Variant") @@ -100,6 +100,7 @@ cdef class Dictionary: raise KeyError(key) def __iter__(self): + {{ force_mark_rendered("godot_dictionary_next") }} cdef godot_variant *p_key = NULL # TODO: mid iteration mutation should throw exception ? while True: @@ -115,6 +116,8 @@ cdef class Dictionary: return self.duplicate(True) def get(self, object key, object default=None): + {{ force_mark_rendered("godot_dictionary_get") }} + {{ force_mark_rendered("godot_dictionary_get_with_default") }} cdef godot_variant var_key pyobj_to_godot_variant(key, &var_key) cdef godot_variant var_ret @@ -173,6 +176,8 @@ cdef class Dictionary: return dict(self) == dict(other) def __eq__(self, other): + {# see https://github.com/godotengine/godot/issues/27615 #} + {{ force_mark_rendered("godot_dictionary_operator_equal") }} try: return Dictionary.operator_equal(self, other) except TypeError: diff --git a/generation/builtins_templates/gdstring.tmpl.pxi b/generation/builtins_templates/gdstring.tmpl.pxi index bbf3a9bb..d8437285 100644 --- a/generation/builtins_templates/gdstring.tmpl.pxi +++ b/generation/builtins_templates/gdstring.tmpl.pxi @@ -1,186 +1,151 @@ -{# -""" -// GDAPI: 1.0 -void godot_string_new(godot_string* r_dest) -void godot_string_new_copy(godot_string* r_dest, godot_string* p_src) -void godot_string_new_with_wide_string(godot_string* r_dest, wchar_t* p_contents, int p_size) -// wchar_t* godot_string_operator_index(godot_string* p_self, godot_int p_idx) -wchar_t godot_string_operator_index_const(godot_string* p_self, godot_int p_idx) -// wchar_t* godot_string_wide_str(godot_string* p_self) -godot_bool godot_string_operator_equal(godot_string* p_self, godot_string* p_b) -godot_bool godot_string_operator_less(godot_string* p_self, godot_string* p_b) -godot_string godot_string_operator_plus(godot_string* p_self, godot_string* p_b) -godot_int godot_string_length(godot_string* p_self) -// signed char godot_string_casecmp_to(godot_string* p_self, godot_string* p_str) -// signed char godot_string_nocasecmp_to(godot_string* p_self, godot_string* p_str) -// signed char godot_string_naturalnocasecmp_to(godot_string* p_self, godot_string* p_str) -godot_bool godot_string_begins_with(godot_string* p_self, godot_string* p_string) -godot_bool godot_string_begins_with_char_array(godot_string* p_self, char* p_char_array) -godot_array godot_string_bigrams(godot_string* p_self) -godot_string godot_string_chr(wchar_t p_character) -godot_bool godot_string_ends_with(godot_string* p_self, godot_string* p_string) -godot_int godot_string_find(godot_string* p_self, godot_string p_what) -godot_int godot_string_find_from(godot_string* p_self, godot_string p_what, godot_int p_from) -godot_int godot_string_findmk(godot_string* p_self, godot_array* p_keys) -godot_int godot_string_findmk_from(godot_string* p_self, godot_array* p_keys, godot_int p_from) -godot_int godot_string_findmk_from_in_place(godot_string* p_self, godot_array* p_keys, godot_int p_from, godot_int* r_key) -godot_int godot_string_findn(godot_string* p_self, godot_string p_what) -godot_int godot_string_findn_from(godot_string* p_self, godot_string p_what, godot_int p_from) -godot_int godot_string_find_last(godot_string* p_self, godot_string p_what) -// godot_string godot_string_format(godot_string* p_self, godot_variant* p_values) -// godot_string godot_string_format_with_custom_placeholder(godot_string* p_self, godot_variant* p_values, char* p_placeholder) -godot_string godot_string_hex_encode_buffer(uint8_t* p_buffer, godot_int p_len) -godot_int godot_string_hex_to_int(godot_string* p_self) -godot_int godot_string_hex_to_int_without_prefix(godot_string* p_self) -godot_string godot_string_insert(godot_string* p_self, godot_int p_at_pos, godot_string p_string) -godot_bool godot_string_is_numeric(godot_string* p_self) -godot_bool godot_string_is_subsequence_of(godot_string* p_self, godot_string* p_string) -godot_bool godot_string_is_subsequence_ofi(godot_string* p_self, godot_string* p_string) -godot_string godot_string_lpad(godot_string* p_self, godot_int p_min_length) -godot_string godot_string_lpad_with_custom_character(godot_string* p_self, godot_int p_min_length, godot_string* p_character) -godot_bool godot_string_match(godot_string* p_self, godot_string* p_wildcard) -godot_bool godot_string_matchn(godot_string* p_self, godot_string* p_wildcard) -godot_string godot_string_md5(uint8_t* p_md5) -godot_string godot_string_num(double p_num) -godot_string godot_string_num_int64(int64_t p_num, godot_int p_base) -godot_string godot_string_num_int64_capitalized(int64_t p_num, godot_int p_base, godot_bool p_capitalize_hex) -godot_string godot_string_num_real(double p_num) -godot_string godot_string_num_scientific(double p_num) -godot_string godot_string_num_with_decimals(double p_num, godot_int p_decimals) -godot_string godot_string_pad_decimals(godot_string* p_self, godot_int p_digits) -godot_string godot_string_pad_zeros(godot_string* p_self, godot_int p_digits) -godot_string godot_string_replace_first(godot_string* p_self, godot_string p_key, godot_string p_with) -godot_string godot_string_replace(godot_string* p_self, godot_string p_key, godot_string p_with) -godot_string godot_string_replacen(godot_string* p_self, godot_string p_key, godot_string p_with) -godot_int godot_string_rfind(godot_string* p_self, godot_string p_what) -godot_int godot_string_rfindn(godot_string* p_self, godot_string p_what) -godot_int godot_string_rfind_from(godot_string* p_self, godot_string p_what, godot_int p_from) -godot_int godot_string_rfindn_from(godot_string* p_self, godot_string p_what, godot_int p_from) -godot_string godot_string_rpad(godot_string* p_self, godot_int p_min_length) -godot_string godot_string_rpad_with_custom_character(godot_string* p_self, godot_int p_min_length, godot_string* p_character) -godot_real godot_string_similarity(godot_string* p_self, godot_string* p_string) -godot_string godot_string_sprintf(godot_string* p_self, godot_array* p_values, godot_bool* p_error) -godot_string godot_string_substr(godot_string* p_self, godot_int p_from, godot_int p_chars) -double godot_string_to_double(godot_string* p_self) -godot_real godot_string_to_float(godot_string* p_self) -godot_int godot_string_to_int(godot_string* p_self) -godot_string godot_string_camelcase_to_underscore(godot_string* p_self) -godot_string godot_string_camelcase_to_underscore_lowercased(godot_string* p_self) -godot_string godot_string_capitalize(godot_string* p_self) -double godot_string_char_to_double(char* p_what) -godot_int godot_string_char_to_int(char* p_what) -int64_t godot_string_wchar_to_int(wchar_t* p_str) -godot_int godot_string_char_to_int_with_len(char* p_what, godot_int p_len) -int64_t godot_string_char_to_int64_with_len(wchar_t* p_str, int p_len) -int64_t godot_string_hex_to_int64(godot_string* p_self) -int64_t godot_string_hex_to_int64_with_prefix(godot_string* p_self) -int64_t godot_string_to_int64(godot_string* p_self) -// double godot_string_unicode_char_to_double(wchar_t* p_str, wchar_t** r_end) -godot_int godot_string_get_slice_count(godot_string* p_self, godot_string p_splitter) -godot_string godot_string_get_slice(godot_string* p_self, godot_string p_splitter, godot_int p_slice) -godot_string godot_string_get_slicec(godot_string* p_self, wchar_t p_splitter, godot_int p_slice) -godot_array godot_string_split(godot_string* p_self, godot_string* p_splitter) -godot_array godot_string_split_allow_empty(godot_string* p_self, godot_string* p_splitter) -godot_array godot_string_split_floats(godot_string* p_self, godot_string* p_splitter) -godot_array godot_string_split_floats_allows_empty(godot_string* p_self, godot_string* p_splitter) -godot_array godot_string_split_floats_mk(godot_string* p_self, godot_array* p_splitters) -godot_array godot_string_split_floats_mk_allows_empty(godot_string* p_self, godot_array* p_splitters) -godot_array godot_string_split_ints(godot_string* p_self, godot_string* p_splitter) -godot_array godot_string_split_ints_allows_empty(godot_string* p_self, godot_string* p_splitter) -godot_array godot_string_split_ints_mk(godot_string* p_self, godot_array* p_splitters) -godot_array godot_string_split_ints_mk_allows_empty(godot_string* p_self, godot_array* p_splitters) -godot_array godot_string_split_spaces(godot_string* p_self) -wchar_t godot_string_char_lowercase(wchar_t p_char) -wchar_t godot_string_char_uppercase(wchar_t p_char) -godot_string godot_string_to_lower(godot_string* p_self) -godot_string godot_string_to_upper(godot_string* p_self) -godot_string godot_string_get_basename(godot_string* p_self) -godot_string godot_string_get_extension(godot_string* p_self) -godot_string godot_string_left(godot_string* p_self, godot_int p_pos) -wchar_t godot_string_ord_at(godot_string* p_self, godot_int p_idx) -godot_string godot_string_plus_file(godot_string* p_self, godot_string* p_file) -godot_string godot_string_right(godot_string* p_self, godot_int p_pos) -godot_string godot_string_strip_edges(godot_string* p_self, godot_bool p_left, godot_bool p_right) -godot_string godot_string_strip_escapes(godot_string* p_self) -void godot_string_erase(godot_string* p_self, godot_int p_pos, godot_int p_chars) -godot_char_string godot_string_ascii(godot_string* p_self) -godot_char_string godot_string_ascii_extended(godot_string* p_self) -godot_char_string godot_string_utf8(godot_string* p_self) -godot_bool godot_string_parse_utf8(godot_string* p_self, char* p_utf8) -godot_bool godot_string_parse_utf8_with_len(godot_string* p_self, char* p_utf8, godot_int p_len) -godot_string godot_string_chars_to_utf8(char* p_utf8) -godot_string godot_string_chars_to_utf8_with_len(char* p_utf8, godot_int p_len) -uint32_t godot_string_hash(godot_string* p_self) -uint64_t godot_string_hash64(godot_string* p_self) -uint32_t godot_string_hash_chars(char* p_cstr) -uint32_t godot_string_hash_chars_with_len(char* p_cstr, godot_int p_len) -uint32_t godot_string_hash_utf8_chars(wchar_t* p_str) -uint32_t godot_string_hash_utf8_chars_with_len(wchar_t* p_str, godot_int p_len) -godot_pool_byte_array godot_string_md5_buffer(godot_string* p_self) -godot_string godot_string_md5_text(godot_string* p_self) -godot_pool_byte_array godot_string_sha256_buffer(godot_string* p_self) -godot_string godot_string_sha256_text(godot_string* p_self) -godot_bool godot_string_empty(godot_string* p_self) -godot_string godot_string_get_base_dir(godot_string* p_self) -godot_string godot_string_get_file(godot_string* p_self) -godot_string godot_string_humanize_size(size_t p_size) -godot_bool godot_string_is_abs_path(godot_string* p_self) -godot_bool godot_string_is_rel_path(godot_string* p_self) -godot_bool godot_string_is_resource_file(godot_string* p_self) -godot_string godot_string_path_to(godot_string* p_self, godot_string* p_path) -godot_string godot_string_path_to_file(godot_string* p_self, godot_string* p_path) -godot_string godot_string_simplify_path(godot_string* p_self) -godot_string godot_string_c_escape(godot_string* p_self) -godot_string godot_string_c_escape_multiline(godot_string* p_self) -godot_string godot_string_c_unescape(godot_string* p_self) -godot_string godot_string_http_escape(godot_string* p_self) -godot_string godot_string_http_unescape(godot_string* p_self) -godot_string godot_string_json_escape(godot_string* p_self) -godot_string godot_string_word_wrap(godot_string* p_self, godot_int p_chars_per_line) -godot_string godot_string_xml_escape(godot_string* p_self) -godot_string godot_string_xml_escape_with_quotes(godot_string* p_self) -godot_string godot_string_xml_unescape(godot_string* p_self) -godot_string godot_string_percent_decode(godot_string* p_self) -godot_string godot_string_percent_encode(godot_string* p_self) -godot_bool godot_string_is_valid_float(godot_string* p_self) -godot_bool godot_string_is_valid_hex_number(godot_string* p_self, godot_bool p_with_prefix) -godot_bool godot_string_is_valid_html_color(godot_string* p_self) -godot_bool godot_string_is_valid_identifier(godot_string* p_self) -godot_bool godot_string_is_valid_integer(godot_string* p_self) -godot_bool godot_string_is_valid_ip_address(godot_string* p_self) -void godot_string_destroy(godot_string* p_self) -// GDAPI: 1.1 -godot_string godot_string_dedent(godot_string* p_self) -godot_string godot_string_rstrip(godot_string* p_self, godot_string* p_chars) -godot_pool_string_array godot_string_rsplit(godot_string* p_self, godot_string* p_divisor, godot_bool p_allow_empty, godot_int p_maxsplit) -godot_string godot_string_trim_prefix(godot_string* p_self, godot_string* p_prefix) -godot_string godot_string_trim_suffix(godot_string* p_self, godot_string* p_suffix) -// GDAPI: 1.2 -""" -#} - {%- block pxd_header %} {% endblock -%} {%- block pyx_header %} +from libc.stdint cimport int8_t {% endblock -%} +{# godot_char_string is not really a bultin type...#} +{{ force_mark_rendered("godot_char_string_destroy") }} +{{ force_mark_rendered("godot_char_string_get_data") }} +{{ force_mark_rendered("godot_char_string_length") }} +{# Those methods are present in gdnative_api.json but not in the Godot documentation... #} +{{ force_mark_rendered("godot_string_ascii") }} +{{ force_mark_rendered("godot_string_ascii_extended") }} +{{ force_mark_rendered("godot_string_begins_with_char_array") }} +{{ force_mark_rendered("godot_string_c_escape_multiline") }} +{{ force_mark_rendered("godot_string_camelcase_to_underscore") }} +{{ force_mark_rendered("godot_string_camelcase_to_underscore_lowercased") }} +{{ force_mark_rendered("godot_string_char_lowercase") }} +{{ force_mark_rendered("godot_string_char_to_double") }} +{{ force_mark_rendered("godot_string_char_to_int") }} +{{ force_mark_rendered("godot_string_char_to_int64_with_len") }} +{{ force_mark_rendered("godot_string_char_to_int_with_len") }} +{{ force_mark_rendered("godot_string_char_uppercase") }} +{{ force_mark_rendered("godot_string_chars_to_utf8") }} +{{ force_mark_rendered("godot_string_chars_to_utf8_with_len") }} +{{ force_mark_rendered("godot_string_chr") }} +{{ force_mark_rendered("godot_string_find_from") }} +{{ force_mark_rendered("godot_string_findmk") }} +{{ force_mark_rendered("godot_string_findmk_from") }} +{{ force_mark_rendered("godot_string_findmk_from_in_place") }} +{{ force_mark_rendered("godot_string_findn_from") }} +{{ force_mark_rendered("godot_string_format_with_custom_placeholder") }} +{{ force_mark_rendered("godot_string_get_slice") }} +{{ force_mark_rendered("godot_string_get_slice_count") }} +{{ force_mark_rendered("godot_string_get_slicec") }} +{{ force_mark_rendered("godot_string_hash64") }} +{{ force_mark_rendered("godot_string_hash_chars") }} +{{ force_mark_rendered("godot_string_hash_chars_with_len") }} +{{ force_mark_rendered("godot_string_hash_utf8_chars") }} +{{ force_mark_rendered("godot_string_hash_utf8_chars_with_len") }} +{{ force_mark_rendered("godot_string_hex_encode_buffer") }} +{{ force_mark_rendered("godot_string_hex_to_int64") }} +{{ force_mark_rendered("godot_string_hex_to_int64_with_prefix") }} +{{ force_mark_rendered("godot_string_hex_to_int_without_prefix") }} +{{ force_mark_rendered("godot_string_is_numeric") }} +{{ force_mark_rendered("godot_string_is_resource_file") }} +{{ force_mark_rendered("godot_string_lpad") }} +{{ force_mark_rendered("godot_string_lpad_with_custom_character") }} +{{ force_mark_rendered("godot_string_md5") }} +{{ force_mark_rendered("godot_string_name_destroy") }} +{{ force_mark_rendered("godot_string_name_get_data_unique_pointer") }} +{{ force_mark_rendered("godot_string_name_get_hash") }} +{{ force_mark_rendered("godot_string_name_get_name") }} +{{ force_mark_rendered("godot_string_name_new") }} +{{ force_mark_rendered("godot_string_name_new_data") }} +{{ force_mark_rendered("godot_string_name_operator_equal") }} +{{ force_mark_rendered("godot_string_name_operator_less") }} +{{ force_mark_rendered("godot_string_naturalnocasecmp_to") }} +{{ force_mark_rendered("godot_string_num") }} +{{ force_mark_rendered("godot_string_num_int64") }} +{{ force_mark_rendered("godot_string_num_int64_capitalized") }} +{{ force_mark_rendered("godot_string_num_real") }} +{{ force_mark_rendered("godot_string_num_scientific") }} +{{ force_mark_rendered("godot_string_num_with_decimals") }} +{{ force_mark_rendered("godot_string_operator_index") }} +{{ force_mark_rendered("godot_string_operator_index_const") }} +{{ force_mark_rendered("godot_string_parse_utf8") }} +{{ force_mark_rendered("godot_string_parse_utf8_with_len") }} +{{ force_mark_rendered("godot_string_path_to") }} +{{ force_mark_rendered("godot_string_path_to_file") }} +{{ force_mark_rendered("godot_string_replace_first") }} +{{ force_mark_rendered("godot_string_rfind_from") }} +{{ force_mark_rendered("godot_string_rfindn_from") }} +{{ force_mark_rendered("godot_string_rpad") }} +{{ force_mark_rendered("godot_string_rpad_with_custom_character") }} +{{ force_mark_rendered("godot_string_simplify_path") }} +{{ force_mark_rendered("godot_string_split_allow_empty") }} +{{ force_mark_rendered("godot_string_split_floats_allows_empty") }} +{{ force_mark_rendered("godot_string_split_floats_mk") }} +{{ force_mark_rendered("godot_string_split_floats_mk_allows_empty") }} +{{ force_mark_rendered("godot_string_split_ints") }} +{{ force_mark_rendered("godot_string_split_ints_allows_empty") }} +{{ force_mark_rendered("godot_string_split_ints_mk") }} +{{ force_mark_rendered("godot_string_split_ints_mk_allows_empty") }} +{{ force_mark_rendered("godot_string_split_spaces") }} +{{ force_mark_rendered("godot_string_sprintf") }} +{{ force_mark_rendered("godot_string_to_double") }} +{{ force_mark_rendered("godot_string_to_int64") }} +{{ force_mark_rendered("godot_string_unicode_char_to_double") }} +{{ force_mark_rendered("godot_string_utf8") }} +{{ force_mark_rendered("godot_string_wchar_to_int") }} +{{ force_mark_rendered("godot_string_wide_str") }} +{{ force_mark_rendered("godot_string_word_wrap") }} +{{ force_mark_rendered("godot_string_xml_escape_with_quotes") }} @cython.final cdef class GDString: {% block cdef_attributes %} cdef godot_string _gd_data + + @staticmethod + cdef inline GDString new() + + @staticmethod + cdef inline GDString new_with_wide_string(wchar_t *content, int size) + + @staticmethod + cdef inline GDString from_ptr(const godot_string *_ptr) {% endblock %} {% block python_defs %} def __init__(self, str pystr=None): if not pystr: + {{ force_mark_rendered("godot_string_new" )}} gdapi10.godot_string_new(&self._gd_data) else: pyobj_to_godot_string(pystr, &self._gd_data) + @staticmethod + cdef inline GDString new(): + # Call to __new__ bypasses __init__ constructor + cdef GDString ret = GDString.__new__(GDString) + gdapi10.godot_string_new(&ret._gd_data) + return ret + + @staticmethod + cdef inline GDString new_with_wide_string(wchar_t *content, int size): + {{ force_mark_rendered("godot_string_new_with_wide_string") }} + # Call to __new__ bypasses __init__ constructor + cdef GDString ret = GDString.__new__(GDString) + gdapi10.godot_string_new_with_wide_string(&ret._gd_data, content, size) + return ret + + @staticmethod + cdef inline GDString from_ptr(const godot_string *_ptr): + # Call to __new__ bypasses __init__ constructor + cdef GDString ret = GDString.__new__(GDString) + # `godot_string` is a cheap structure pointing on a refcounted buffer. + # Unlike it name could let think, `godot_string_new_copy` only + # increments the refcount of the underlying structure. + {{ force_mark_rendered("godot_string_new_copy") }} + gdapi10.godot_string_new_copy(&ret._gd_data, _ptr) + return ret + def __dealloc__(GDString self): # /!\ if `__init__` is skipped, `_gd_data` must be initialized by # hand otherwise we will get a segfault here + {{ force_mark_rendered("godot_string_destroy" )}} gdapi10.godot_string_destroy(&self._gd_data) def __repr__(GDString self): @@ -201,6 +166,9 @@ cdef class GDString: {{ render_method("c_escape") | indent }} {{ render_method("c_unescape") | indent }} {{ render_method("capitalize") | indent }} + {{ render_method("casecmp_to") | indent }} + {{ render_method("count") | indent }} + {{ render_method("countn") | indent }} {{ render_method("dedent") | indent }} {{ render_method("empty") | indent }} {{ render_method("ends_with") | indent }} @@ -208,17 +176,22 @@ cdef class GDString: {{ render_method("find") | indent }} {{ render_method("find_last") | indent }} {{ render_method("findn") | indent }} + {{ render_method("format") | indent }} {{ render_method("get_base_dir") | indent }} {{ render_method("get_basename") | indent }} {{ render_method("get_extension") | indent }} {{ render_method("get_file") | indent }} {{ render_method("hash") | indent }} {{ render_method("hex_to_int") | indent }} + {{ render_method("http_escape") | indent }} + {{ render_method("http_unescape") | indent }} + {{ render_method("humanize_size") | indent }} {{ render_method("insert") | indent }} {{ render_method("is_abs_path") | indent }} {{ render_method("is_rel_path") | indent }} {{ render_method("is_subsequence_of") | indent }} {{ render_method("is_subsequence_ofi") | indent }} + {#- {{ render_method("is_valid_filename") | indent }} # TODO: Missing from binding ! #} {{ render_method("is_valid_float") | indent }} {{ render_method("is_valid_hex_number") | indent }} {{ render_method("is_valid_html_color") | indent }} @@ -228,15 +201,19 @@ cdef class GDString: {{ render_method("json_escape") | indent }} {{ render_method("left") | indent }} {{ render_method("length") | indent }} + {#- {{ render_method("lstrip") | indent }} # TODO: Missing from binding ! #} {{ render_method("match") | indent }} {{ render_method("matchn") | indent }} {{ render_method("md5_buffer") | indent }} {{ render_method("md5_text") | indent }} + {{ render_method("nocasecmp_to") | indent }} + {{ render_method("ord_at") | indent }} {{ render_method("pad_decimals") | indent }} {{ render_method("pad_zeros") | indent }} {{ render_method("percent_decode") | indent }} {{ render_method("percent_encode") | indent }} {{ render_method("plus_file") | indent }} + {#- {{ render_method("repeat") | indent }} # TODO: Missing from binding ! #} {{ render_method("replace") | indent }} {{ render_method("replacen") | indent }} {{ render_method("rfind") | indent }} @@ -244,21 +221,27 @@ cdef class GDString: {{ render_method("right") | indent }} {{ render_method("rsplit") | indent }} {{ render_method("rstrip") | indent }} + {#- {{ render_method("sha1_buffer") | indent }} # TODO: Missing from binding ! #} + {#- {{ render_method("sha1_text") | indent }} # TODO: Missing from binding ! #} {{ render_method("sha256_buffer") | indent }} {{ render_method("sha256_text") | indent }} {{ render_method("similarity") | indent }} {{ render_method("split") | indent }} {{ render_method("split_floats") | indent }} {{ render_method("strip_edges") | indent }} + {{ render_method("strip_escapes") | indent }} {{ render_method("substr") | indent }} + {#- {{ render_method("to_ascii") | indent }} # TODO: Missing from binding ! #} {{ render_method("to_float") | indent }} {{ render_method("to_int") | indent }} {{ render_method("to_lower") | indent }} {{ render_method("to_upper") | indent }} + {#- {{ render_method("to_utf8") | indent }} # TODO: Missing from binding ! #} {{ render_method("trim_prefix") | indent }} {{ render_method("trim_suffix") | indent }} {{ render_method("xml_escape") | indent }} {{ render_method("xml_unescape") | indent }} + {% endblock %} {%- block python_consts %} diff --git a/generation/builtins_templates/node_path.tmpl.pxi b/generation/builtins_templates/node_path.tmpl.pxi index 3c989665..ce863af3 100644 --- a/generation/builtins_templates/node_path.tmpl.pxi +++ b/generation/builtins_templates/node_path.tmpl.pxi @@ -1,29 +1,9 @@ -{# -""" -// GDAPI: 1.0 -void godot_node_path_new(godot_node_path* r_dest, godot_string* p_from) -void godot_node_path_new_copy(godot_node_path* r_dest, godot_node_path* p_src) -void godot_node_path_destroy(godot_node_path* p_self) -godot_string godot_node_path_as_string(godot_node_path* p_self) -godot_bool godot_node_path_is_absolute(godot_node_path* p_self) -godot_int godot_node_path_get_name_count(godot_node_path* p_self) -godot_string godot_node_path_get_name(godot_node_path* p_self, godot_int p_idx) -godot_int godot_node_path_get_subname_count(godot_node_path* p_self) -godot_string godot_node_path_get_subname(godot_node_path* p_self, godot_int p_idx) -godot_string godot_node_path_get_concatenated_subnames(godot_node_path* p_self) -godot_bool godot_node_path_is_empty(godot_node_path* p_self) -godot_bool godot_node_path_operator_equal(godot_node_path* p_self, godot_node_path* p_b) -// GDAPI: 1.1 -godot_node_path godot_node_path_get_as_property_path(godot_node_path* p_self) -// GDAPI: 1.2 -""" -#} - {%- block pxd_header %} {% endblock -%} {%- block pyx_header %} {% endblock -%} +{{ force_mark_rendered("godot_node_path_new_copy") }} {# NodePath is const, why does this exists in the first place ? #} @cython.final cdef class NodePath: @@ -33,6 +13,7 @@ cdef class NodePath: {% block python_defs %} def __init__(self, from_): + {{ force_mark_rendered("godot_node_path_new") }} cdef godot_string gd_from try: gdapi10.godot_node_path_new(&self._gd_data, &(from_)._gd_data) @@ -44,6 +25,7 @@ cdef class NodePath: gdapi10.godot_string_destroy(&gd_from) def __dealloc__(NodePath self): + {{ force_mark_rendered("godot_node_path_destroy") }} # /!\ if `__init__` is skipped, `_gd_data` must be initialized by # hand otherwise we will get a segfault here gdapi10.godot_node_path_destroy(&self._gd_data) diff --git a/generation/builtins_templates/plane.tmpl.pxi b/generation/builtins_templates/plane.tmpl.pxi index e29c4583..d0a06ed9 100644 --- a/generation/builtins_templates/plane.tmpl.pxi +++ b/generation/builtins_templates/plane.tmpl.pxi @@ -1,31 +1,3 @@ -{# -""" -// GDAPI: 1.0 -void godot_plane_new_with_reals(godot_plane* r_dest, godot_real p_a, godot_real p_b, godot_real p_c, godot_real p_d) -void godot_plane_new_with_vectors(godot_plane* r_dest, godot_vector3* p_v1, godot_vector3* p_v2, godot_vector3* p_v3) -void godot_plane_new_with_normal(godot_plane* r_dest, godot_vector3* p_normal, godot_real p_d) -godot_string godot_plane_as_string(godot_plane* p_self) -godot_plane godot_plane_normalized(godot_plane* p_self) -godot_vector3 godot_plane_center(godot_plane* p_self) -godot_vector3 godot_plane_get_any_point(godot_plane* p_self) -godot_bool godot_plane_is_point_over(godot_plane* p_self, godot_vector3* p_point) -godot_real godot_plane_distance_to(godot_plane* p_self, godot_vector3* p_point) -godot_bool godot_plane_has_point(godot_plane* p_self, godot_vector3* p_point, godot_real p_epsilon) -godot_vector3 godot_plane_project(godot_plane* p_self, godot_vector3* p_point) -godot_bool godot_plane_intersect_3(godot_plane* p_self, godot_vector3* r_dest, godot_plane* p_b, godot_plane* p_c) -godot_bool godot_plane_intersects_ray(godot_plane* p_self, godot_vector3* r_dest, godot_vector3* p_from, godot_vector3* p_dir) -godot_bool godot_plane_intersects_segment(godot_plane* p_self, godot_vector3* r_dest, godot_vector3* p_begin, godot_vector3* p_end) -godot_plane godot_plane_operator_neg(godot_plane* p_self) -godot_bool godot_plane_operator_equal(godot_plane* p_self, godot_plane* p_b) -void godot_plane_set_normal(godot_plane* p_self, godot_vector3* p_normal) -godot_vector3 godot_plane_get_normal(godot_plane* p_self) -godot_real godot_plane_get_d(godot_plane* p_self) -void godot_plane_set_d(godot_plane* p_self, godot_real p_d) -// GDAPI: 1.1 -// GDAPI: 1.2 -""" -#} - {%- block pxd_header %} {% endblock -%} {%- block pyx_header %} @@ -40,17 +12,20 @@ cdef class Plane: {% block python_defs %} def __init__(self, godot_real a, godot_real b, godot_real c, godot_real d): + {{ force_mark_rendered("godot_plane_new_with_reals") }} gdapi10.godot_plane_new_with_reals(&self._gd_data, a, b, c, d) @staticmethod def from_vectors(Vector3 v1 not None, Vector3 v2 not None, Vector3 v3 not None): cdef Plane ret = Plane.__new__(Plane) + {{ force_mark_rendered("godot_plane_new_with_vectors") }} gdapi10.godot_plane_new_with_vectors(&ret._gd_data, &v1._gd_data, &v2._gd_data, &v3._gd_data) return ret @staticmethod def from_normal(Vector3 normal not None, godot_real d): cdef Plane ret = Plane.__new__(Plane) + {{ force_mark_rendered("godot_plane_new_with_normal") }} gdapi10.godot_plane_new_with_normal(&ret._gd_data, &normal._gd_data, d) return ret @@ -79,6 +54,7 @@ cdef class Plane: def intersects_segment(Plane self, Vector3 begin not None, Vector3 end not None): cdef Vector3 ret = Vector3.__new__(Vector3) + {{ force_mark_rendered("godot_plane_intersects_segment") }} if gdapi10.godot_plane_intersects_segment(&self._gd_data, &ret._gd_data, &begin._gd_data, &end._gd_data): return ret else: @@ -86,6 +62,7 @@ cdef class Plane: def intersects_ray(Plane self, Vector3 from_ not None, Vector3 dir not None): cdef Vector3 ret = Vector3.__new__(Vector3) + {{ force_mark_rendered("godot_plane_intersects_ray") }} if gdapi10.godot_plane_intersects_ray(&self._gd_data, &ret._gd_data, &from_._gd_data, &dir._gd_data): return ret else: @@ -93,6 +70,7 @@ cdef class Plane: def intersect_3(Plane self, Plane b not None, Plane c not None): cdef Vector3 ret = Vector3.__new__(Vector3) + {{ force_mark_rendered("godot_plane_intersect_3") }} if gdapi10.godot_plane_intersect_3(&self._gd_data, &ret._gd_data, &b._gd_data, &c._gd_data): return ret else: diff --git a/generation/builtins_templates/quat.tmpl.pxi b/generation/builtins_templates/quat.tmpl.pxi index 31128684..238b76e8 100644 --- a/generation/builtins_templates/quat.tmpl.pxi +++ b/generation/builtins_templates/quat.tmpl.pxi @@ -1,41 +1,3 @@ -{# -""" -// GDAPI: 1.0 -void godot_quat_new(godot_quat* r_dest, godot_real p_x, godot_real p_y, godot_real p_z, godot_real p_w) -void godot_quat_new_with_axis_angle(godot_quat* r_dest, godot_vector3* p_axis, godot_real p_angle) -godot_real godot_quat_get_x(godot_quat* p_self) -void godot_quat_set_x(godot_quat* p_self, godot_real val) -godot_real godot_quat_get_y(godot_quat* p_self) -void godot_quat_set_y(godot_quat* p_self, godot_real val) -godot_real godot_quat_get_z(godot_quat* p_self) -void godot_quat_set_z(godot_quat* p_self, godot_real val) -godot_real godot_quat_get_w(godot_quat* p_self) -void godot_quat_set_w(godot_quat* p_self, godot_real val) -godot_string godot_quat_as_string(godot_quat* p_self) -godot_real godot_quat_length(godot_quat* p_self) -godot_real godot_quat_length_squared(godot_quat* p_self) -godot_quat godot_quat_normalized(godot_quat* p_self) -godot_bool godot_quat_is_normalized(godot_quat* p_self) -godot_quat godot_quat_inverse(godot_quat* p_self) -godot_real godot_quat_dot(godot_quat* p_self, godot_quat* p_b) -godot_vector3 godot_quat_xform(godot_quat* p_self, godot_vector3* p_v) -godot_quat godot_quat_slerp(godot_quat* p_self, godot_quat* p_b, godot_real p_t) -godot_quat godot_quat_slerpni(godot_quat* p_self, godot_quat* p_b, godot_real p_t) -godot_quat godot_quat_cubic_slerp(godot_quat* p_self, godot_quat* p_b, godot_quat* p_pre_a, godot_quat* p_post_b, godot_real p_t) -godot_quat godot_quat_operator_multiply(godot_quat* p_self, godot_real p_b) -godot_quat godot_quat_operator_add(godot_quat* p_self, godot_quat* p_b) -godot_quat godot_quat_operator_subtract(godot_quat* p_self, godot_quat* p_b) -godot_quat godot_quat_operator_divide(godot_quat* p_self, godot_real p_b) -godot_bool godot_quat_operator_equal(godot_quat* p_self, godot_quat* p_b) -godot_quat godot_quat_operator_neg(godot_quat* p_self) -// GDAPI: 1.1 -void godot_quat_new_with_basis(godot_quat* r_dest, godot_basis* p_basis) -void godot_quat_new_with_euler(godot_quat* r_dest, godot_vector3* p_euler) -void godot_quat_set_axis_angle(godot_quat* p_self, godot_vector3* p_axis, godot_real p_angle) -// GDAPI: 1.2 -""" -#} - {%- block pxd_header %} {% endblock -%} {%- block pyx_header %} @@ -50,12 +12,14 @@ cdef class Quat: {% block python_defs %} def __init__(self, x=0, y=0, z=0, w=0): + {{ force_mark_rendered("godot_quat_new") }} gdapi10.godot_quat_new(&self._gd_data, x, y, z, w) @staticmethod def from_axis_angle(Vector3 axis not None, godot_real angle): # Call to __new__ bypasses __init__ constructor cdef Quat ret = Quat.__new__(Quat) + {{ force_mark_rendered("godot_quat_new_with_axis_angle") }} gdapi10.godot_quat_new_with_axis_angle(&ret._gd_data, &axis._gd_data, angle) return ret @@ -63,6 +27,7 @@ cdef class Quat: def from_basis(Basis basis not None): # Call to __new__ bypasses __init__ constructor cdef Quat ret = Quat.__new__(Quat) + {{ force_mark_rendered("godot_quat_new_with_basis") }} gdapi11.godot_quat_new_with_basis(&ret._gd_data, &basis._gd_data) return ret @@ -70,6 +35,7 @@ cdef class Quat: def from_euler(Vector3 euler not None): # Call to __new__ bypasses __init__ constructor cdef Quat ret = Quat.__new__(Quat) + {{ force_mark_rendered("godot_quat_new_with_euler") }} gdapi11.godot_quat_new_with_euler(&ret._gd_data, &euler._gd_data) return ret @@ -92,6 +58,7 @@ cdef class Quat: if val == 0: raise ZeroDivisionError cdef Quat ret = Quat.__new__(Quat) + {{ force_mark_rendered("godot_quat_operator_divide") }} ret._gd_data = gdapi10.godot_quat_operator_divide(&self._gd_data, val) return ret diff --git a/generation/builtins_templates/rect2.tmpl.pxi b/generation/builtins_templates/rect2.tmpl.pxi index 6f4c3093..4d2edf07 100644 --- a/generation/builtins_templates/rect2.tmpl.pxi +++ b/generation/builtins_templates/rect2.tmpl.pxi @@ -1,31 +1,3 @@ -{# -""" -// GDAPI: 1.0 -void godot_rect2_new_with_position_and_size(godot_rect2* r_dest, godot_vector2* p_pos, godot_vector2* p_size) -void godot_rect2_new(godot_rect2* r_dest, godot_real p_x, godot_real p_y, godot_real p_width, godot_real p_height) -godot_string godot_rect2_as_string(godot_rect2* p_self) -godot_real godot_rect2_get_area(godot_rect2* p_self) -godot_bool godot_rect2_intersects(godot_rect2* p_self, godot_rect2* p_b) -godot_bool godot_rect2_encloses(godot_rect2* p_self, godot_rect2* p_b) -godot_bool godot_rect2_has_no_area(godot_rect2* p_self) -godot_rect2 godot_rect2_clip(godot_rect2* p_self, godot_rect2* p_b) -godot_rect2 godot_rect2_merge(godot_rect2* p_self, godot_rect2* p_b) -godot_bool godot_rect2_has_point(godot_rect2* p_self, godot_vector2* p_point) -godot_rect2 godot_rect2_grow(godot_rect2* p_self, godot_real p_by) -godot_rect2 godot_rect2_expand(godot_rect2* p_self, godot_vector2* p_to) -godot_bool godot_rect2_operator_equal(godot_rect2* p_self, godot_rect2* p_b) -godot_vector2 godot_rect2_get_position(godot_rect2* p_self) -godot_vector2 godot_rect2_get_size(godot_rect2* p_self) -void godot_rect2_set_position(godot_rect2* p_self, godot_vector2* p_pos) -void godot_rect2_set_size(godot_rect2* p_self, godot_vector2* p_size) -// GDAPI: 1.1 -godot_rect2 godot_rect2_grow_individual(godot_rect2* p_self, godot_real p_left, godot_real p_top, godot_real p_right, godot_real p_bottom) -godot_rect2 godot_rect2_grow_margin(godot_rect2* p_self, godot_int p_margin, godot_real p_by) -godot_rect2 godot_rect2_abs(godot_rect2* p_self) -// GDAPI: 1.2 -""" -#} - {%- block pxd_header %} {% endblock -%} {%- block pyx_header %} @@ -40,10 +12,12 @@ cdef class Rect2: {% block python_defs %} def __init__(self, godot_real x=0.0, godot_real y=0.0, godot_real width=0.0, godot_real height=0.0): + {{ force_mark_rendered("godot_rect2_new") }} gdapi10.godot_rect2_new(&self._gd_data, x, y, width, height) @staticmethod def from_pos_size(Vector2 position not None, Vector2 size not None): + {{ force_mark_rendered("godot_rect2_new_with_position_and_size") }} cdef Rect2 ret = Rect2.__new__(Rect2) gdapi10.godot_rect2_new_with_position_and_size(&ret._gd_data, &position._gd_data, &size._gd_data) return ret diff --git a/generation/builtins_templates/rid.tmpl.pxi b/generation/builtins_templates/rid.tmpl.pxi index fd00810d..ac2345ec 100644 --- a/generation/builtins_templates/rid.tmpl.pxi +++ b/generation/builtins_templates/rid.tmpl.pxi @@ -1,16 +1,3 @@ -{# -""" -// GDAPI: 1.0 -void godot_rid_new(godot_rid* r_dest) -godot_int godot_rid_get_id(godot_rid* p_self) -void godot_rid_new_with_resource(godot_rid* r_dest, godot_object* p_from) -godot_bool godot_rid_operator_equal(godot_rid* p_self, godot_rid* p_b) -godot_bool godot_rid_operator_less(godot_rid* p_self, godot_rid* p_b) -// GDAPI: 1.1 -// GDAPI: 1.2 -""" -#} - {%- block pxd_header %} {% endblock -%} {%- block pyx_header %} @@ -27,13 +14,13 @@ cdef class RID: {% block python_defs %} def __init__(self, Resource from_=None): if from_ is not None: - {{ mark_rendered("godot_rid_new_with_resource") }} + {{ force_mark_rendered("godot_rid_new_with_resource") }} gdapi10.godot_rid_new_with_resource( &self._gd_data, from_._gd_ptr ) else: - {{ mark_rendered("godot_rid_new") }} + {{ force_mark_rendered("godot_rid_new") }} gdapi10.godot_rid_new(&self._gd_data) def __repr__(RID self): diff --git a/generation/builtins_templates/transform.tmpl.pxi b/generation/builtins_templates/transform.tmpl.pxi index ffb9f752..eefc0a4a 100644 --- a/generation/builtins_templates/transform.tmpl.pxi +++ b/generation/builtins_templates/transform.tmpl.pxi @@ -1,35 +1,3 @@ -{# -""" -// GDAPI: 1.0 -void godot_transform_new_with_axis_origin(godot_transform* r_dest, godot_vector3* p_x_axis, godot_vector3* p_y_axis, godot_vector3* p_z_axis, godot_vector3* p_origin) -void godot_transform_new(godot_transform* r_dest, godot_basis* p_basis, godot_vector3* p_origin) -godot_basis godot_transform_get_basis(godot_transform* p_self) -void godot_transform_set_basis(godot_transform* p_self, godot_basis* p_v) -godot_vector3 godot_transform_get_origin(godot_transform* p_self) -void godot_transform_set_origin(godot_transform* p_self, godot_vector3* p_v) -godot_string godot_transform_as_string(godot_transform* p_self) -godot_transform godot_transform_inverse(godot_transform* p_self) -godot_transform godot_transform_affine_inverse(godot_transform* p_self) -godot_transform godot_transform_orthonormalized(godot_transform* p_self) -godot_transform godot_transform_rotated(godot_transform* p_self, godot_vector3* p_axis, godot_real p_phi) -godot_transform godot_transform_scaled(godot_transform* p_self, godot_vector3* p_scale) -godot_transform godot_transform_translated(godot_transform* p_self, godot_vector3* p_ofs) -godot_transform godot_transform_looking_at(godot_transform* p_self, godot_vector3* p_target, godot_vector3* p_up) -godot_plane godot_transform_xform_plane(godot_transform* p_self, godot_plane* p_v) -godot_plane godot_transform_xform_inv_plane(godot_transform* p_self, godot_plane* p_v) -void godot_transform_new_identity(godot_transform* r_dest) -godot_bool godot_transform_operator_equal(godot_transform* p_self, godot_transform* p_b) -godot_transform godot_transform_operator_multiply(godot_transform* p_self, godot_transform* p_b) -godot_vector3 godot_transform_xform_vector3(godot_transform* p_self, godot_vector3* p_v) -godot_vector3 godot_transform_xform_inv_vector3(godot_transform* p_self, godot_vector3* p_v) -godot_aabb godot_transform_xform_aabb(godot_transform* p_self, godot_aabb* p_v) -godot_aabb godot_transform_xform_inv_aabb(godot_transform* p_self, godot_aabb* p_v) -// GDAPI: 1.1 -void godot_transform_new_with_quat(godot_transform* r_dest, godot_quat* p_quat) -// GDAPI: 1.2 -""" -#} - {%- block pxd_header %} {% endblock -%} {%- block pyx_header %} @@ -45,8 +13,10 @@ cdef class Transform: {% block python_defs %} def __init__(self, x_axis=None, y_axis=None, z_axis=None, origin=None): if x_axis is None and y_axis is None and z_axis is None and origin is None: + {{ force_mark_rendered("godot_transform_new_identity") }} gdapi10.godot_transform_new_identity(&self._gd_data) else: + {{ force_mark_rendered("godot_transform_new_with_axis_origin") }} gdapi10.godot_transform_new_with_axis_origin( &self._gd_data, &(x_axis)._gd_data, @@ -58,12 +28,14 @@ cdef class Transform: @staticmethod def from_basis_origin(Basis basis not None, Vector3 origin not None): cdef Transform ret = Transform.__new__(Transform) + {{ force_mark_rendered("godot_transform_new") }} gdapi10.godot_transform_new(&ret._gd_data, &basis._gd_data, &origin._gd_data) return ret @staticmethod def from_quat(Quat quat not None): cdef Transform ret = Transform.__new__(Transform) + {{ force_mark_rendered("godot_transform_new_with_quat") }} gdapi11.godot_transform_new_with_quat(&ret._gd_data, &quat._gd_data) return ret diff --git a/generation/builtins_templates/transform2d.tmpl.pxi b/generation/builtins_templates/transform2d.tmpl.pxi index 4990dbb7..97c3a71c 100644 --- a/generation/builtins_templates/transform2d.tmpl.pxi +++ b/generation/builtins_templates/transform2d.tmpl.pxi @@ -1,33 +1,3 @@ -{# -""" -// GDAPI: 1.0 -void godot_transform2d_new(godot_transform2d* r_dest, godot_real p_rot, godot_vector2* p_pos) -void godot_transform2d_new_axis_origin(godot_transform2d* r_dest, godot_vector2* p_x_axis, godot_vector2* p_y_axis, godot_vector2* p_origin) -godot_string godot_transform2d_as_string(godot_transform2d* p_self) -godot_transform2d godot_transform2d_inverse(godot_transform2d* p_self) -godot_transform2d godot_transform2d_affine_inverse(godot_transform2d* p_self) -godot_real godot_transform2d_get_rotation(godot_transform2d* p_self) -godot_vector2 godot_transform2d_get_origin(godot_transform2d* p_self) -godot_vector2 godot_transform2d_get_scale(godot_transform2d* p_self) -godot_transform2d godot_transform2d_orthonormalized(godot_transform2d* p_self) -godot_transform2d godot_transform2d_rotated(godot_transform2d* p_self, godot_real p_phi) -godot_transform2d godot_transform2d_scaled(godot_transform2d* p_self, godot_vector2* p_scale) -godot_transform2d godot_transform2d_translated(godot_transform2d* p_self, godot_vector2* p_offset) -godot_vector2 godot_transform2d_xform_vector2(godot_transform2d* p_self, godot_vector2* p_v) -godot_vector2 godot_transform2d_xform_inv_vector2(godot_transform2d* p_self, godot_vector2* p_v) -godot_vector2 godot_transform2d_basis_xform_vector2(godot_transform2d* p_self, godot_vector2* p_v) -godot_vector2 godot_transform2d_basis_xform_inv_vector2(godot_transform2d* p_self, godot_vector2* p_v) -godot_transform2d godot_transform2d_interpolate_with(godot_transform2d* p_self, godot_transform2d* p_m, godot_real p_c) -godot_bool godot_transform2d_operator_equal(godot_transform2d* p_self, godot_transform2d* p_b) -godot_transform2d godot_transform2d_operator_multiply(godot_transform2d* p_self, godot_transform2d* p_b) -void godot_transform2d_new_identity(godot_transform2d* r_dest) -godot_rect2 godot_transform2d_xform_rect2(godot_transform2d* p_self, godot_rect2* p_v) -godot_rect2 godot_transform2d_xform_inv_rect2(godot_transform2d* p_self, godot_rect2* p_v) -// GDAPI: 1.1 -// GDAPI: 1.2 -""" -#} - {%- block pxd_header %} {% endblock -%} {%- block pyx_header %} @@ -43,8 +13,10 @@ cdef class Transform2D: {% block python_defs %} def __init__(self, x_axis=None, y_axis=None, origin=None): if x_axis is None and y_axis is None and origin is None: + {{ force_mark_rendered("godot_transform2d_new_identity") }} gdapi10.godot_transform2d_new_identity(&self._gd_data) else: + {{ force_mark_rendered("godot_transform2d_new_axis_origin") }} gdapi10.godot_transform2d_new_axis_origin( &self._gd_data, &(x_axis)._gd_data, @@ -55,6 +27,7 @@ cdef class Transform2D: @staticmethod def from_rot_pos(godot_real rot, Vector2 pos not None): cdef Transform2D ret = Transform2D.__new__(Transform2D) + {{ force_mark_rendered("godot_transform2d_new") }} gdapi10.godot_transform2d_new(&ret._gd_data, rot, &pos._gd_data) return ret @@ -84,12 +57,14 @@ cdef class Transform2D: cdef Rect2 ret_r2 try: ret_v2 = Vector2.__new__(Vector2) + {{ force_mark_rendered("godot_transform2d_xform_vector2") }} ret_v2._gd_data = gdapi10.godot_transform2d_xform_vector2(&self._gd_data, &(v)._gd_data) return ret_v2 except TypeError: pass try: ret_r2 = Rect2.__new__(Rect2) + {{ force_mark_rendered("godot_transform2d_xform_rect2") }} ret_r2._gd_data = gdapi10.godot_transform2d_xform_rect2(&self._gd_data, &(v)._gd_data) return ret_r2 except TypeError: @@ -100,12 +75,14 @@ cdef class Transform2D: cdef Rect2 ret_r2 try: ret_v2 = Vector2.__new__(Vector2) + {{ force_mark_rendered("godot_transform2d_xform_inv_vector2") }} ret_v2._gd_data = gdapi10.godot_transform2d_xform_inv_vector2(&self._gd_data, &(v)._gd_data) return ret_v2 except TypeError: pass try: ret_r2 = Rect2.__new__(Rect2) + {{ force_mark_rendered("godot_transform2d_xform_inv_rect2") }} ret_r2._gd_data = gdapi10.godot_transform2d_xform_inv_rect2(&self._gd_data, &(v)._gd_data) return ret_r2 except TypeError: diff --git a/generation/builtins_templates/vector2.tmpl.pxi b/generation/builtins_templates/vector2.tmpl.pxi index f2a0a34a..27046769 100644 --- a/generation/builtins_templates/vector2.tmpl.pxi +++ b/generation/builtins_templates/vector2.tmpl.pxi @@ -1,50 +1,3 @@ -{# -""" -// GDAPI: 1.0 -void godot_vector2_new(godot_vector2* r_dest, godot_real p_x, godot_real p_y) -godot_string godot_vector2_as_string(godot_vector2* p_self) -godot_vector2 godot_vector2_normalized(godot_vector2* p_self) -godot_real godot_vector2_length(godot_vector2* p_self) -godot_real godot_vector2_angle(godot_vector2* p_self) -godot_real godot_vector2_length_squared(godot_vector2* p_self) -godot_bool godot_vector2_is_normalized(godot_vector2* p_self) -godot_real godot_vector2_distance_to(godot_vector2* p_self, godot_vector2* p_to) -godot_real godot_vector2_distance_squared_to(godot_vector2* p_self, godot_vector2* p_to) -godot_real godot_vector2_angle_to(godot_vector2* p_self, godot_vector2* p_to) -godot_real godot_vector2_angle_to_point(godot_vector2* p_self, godot_vector2* p_to) -godot_vector2 godot_vector2_linear_interpolate(godot_vector2* p_self, godot_vector2* p_b, godot_real p_t) -godot_vector2 godot_vector2_cubic_interpolate(godot_vector2* p_self, godot_vector2* p_b, godot_vector2* p_pre_a, godot_vector2* p_post_b, godot_real p_t) -godot_vector2 godot_vector2_rotated(godot_vector2* p_self, godot_real p_phi) -godot_vector2 godot_vector2_tangent(godot_vector2* p_self) -godot_vector2 godot_vector2_floor(godot_vector2* p_self) -godot_vector2 godot_vector2_snapped(godot_vector2* p_self, godot_vector2* p_by) -godot_real godot_vector2_aspect(godot_vector2* p_self) -godot_real godot_vector2_dot(godot_vector2* p_self, godot_vector2* p_with) -godot_vector2 godot_vector2_slide(godot_vector2* p_self, godot_vector2* p_n) -godot_vector2 godot_vector2_bounce(godot_vector2* p_self, godot_vector2* p_n) -godot_vector2 godot_vector2_reflect(godot_vector2* p_self, godot_vector2* p_n) -godot_vector2 godot_vector2_abs(godot_vector2* p_self) -godot_vector2 godot_vector2_clamped(godot_vector2* p_self, godot_real p_length) -godot_vector2 godot_vector2_operator_add(godot_vector2* p_self, godot_vector2* p_b) -godot_vector2 godot_vector2_operator_subtract(godot_vector2* p_self, godot_vector2* p_b) -godot_vector2 godot_vector2_operator_multiply_vector(godot_vector2* p_self, godot_vector2* p_b) -godot_vector2 godot_vector2_operator_multiply_scalar(godot_vector2* p_self, godot_real p_b) -godot_vector2 godot_vector2_operator_divide_vector(godot_vector2* p_self, godot_vector2* p_b) -godot_vector2 godot_vector2_operator_divide_scalar(godot_vector2* p_self, godot_real p_b) -godot_bool godot_vector2_operator_equal(godot_vector2* p_self, godot_vector2* p_b) -godot_bool godot_vector2_operator_less(godot_vector2* p_self, godot_vector2* p_b) -godot_vector2 godot_vector2_operator_neg(godot_vector2* p_self) -void godot_vector2_set_x(godot_vector2* p_self, godot_real p_x) -void godot_vector2_set_y(godot_vector2* p_self, godot_real p_y) -godot_real godot_vector2_get_x(godot_vector2* p_self) -godot_real godot_vector2_get_y(godot_vector2* p_self) -// GDAPI: 1.1 -// GDAPI: 1.2 -godot_vector2 godot_vector2_move_toward(godot_vector2* p_self, godot_vector2* p_to, godot_real p_delta) -godot_vector2 godot_vector2_direction_to(const godot_vector2 *p_self, const godot_vector2 *p_b) -""" -#} - {%- block pxd_header %} {% endblock -%} {%- block pyx_header %} @@ -52,21 +5,25 @@ import math cdef inline Vector2 Vector2_multiply_vector(Vector2 self, Vector2 b): cdef Vector2 ret = Vector2.__new__(Vector2) + {{ force_mark_rendered("godot_vector2_operator_multiply_vector") }} ret._gd_data = gdapi10.godot_vector2_operator_multiply_vector(&self._gd_data, &b._gd_data) return ret cdef inline Vector2 Vector2_multiply_scalar(Vector2 self, godot_real b): cdef Vector2 ret = Vector2.__new__(Vector2) + {{ force_mark_rendered("godot_vector2_operator_multiply_scalar") }} ret._gd_data = gdapi10.godot_vector2_operator_multiply_scalar(&self._gd_data, b) return ret cdef inline Vector2 Vector2_divide_vector(Vector2 self, Vector2 b): cdef Vector2 ret = Vector2.__new__(Vector2) + {{ force_mark_rendered("godot_vector2_operator_divide_vector") }} ret._gd_data = gdapi10.godot_vector2_operator_divide_vector(&self._gd_data, &b._gd_data) return ret cdef inline Vector2 Vector2_divide_scalar(Vector2 self, godot_real b): cdef Vector2 ret = Vector2.__new__(Vector2) + {{ force_mark_rendered("godot_vector2_operator_divide_scalar") }} ret._gd_data = gdapi10.godot_vector2_operator_divide_scalar(&self._gd_data, b) return ret {% endblock -%} @@ -80,6 +37,7 @@ cdef class Vector2: {% block python_defs %} def __init__(self, godot_real x=0.0, godot_real y=0.0): + {{ force_mark_rendered("godot_vector2_new") }} gdapi10.godot_vector2_new(&self._gd_data, x, y) def __repr__(Vector2 self): @@ -137,6 +95,7 @@ cdef class Vector2: {{ render_method("linear_interpolate") | indent }} {{ render_method("cubic_interpolate") | indent }} {{ render_method("move_toward") | indent }} + {{ render_method("direction_to") | indent }} {{ render_method("rotated") | indent }} {{ render_method("tangent") | indent }} {{ render_method("floor") | indent }} diff --git a/generation/builtins_templates/vector3.tmpl.pxi b/generation/builtins_templates/vector3.tmpl.pxi index e41713a2..9c0047c6 100644 --- a/generation/builtins_templates/vector3.tmpl.pxi +++ b/generation/builtins_templates/vector3.tmpl.pxi @@ -1,50 +1,3 @@ -{# -""" -// GDAPI: 1.0 -void godot_vector3_new(godot_vector3* r_dest, godot_real p_x, godot_real p_y, godot_real p_z) -godot_string godot_vector3_as_string(godot_vector3* p_self) -godot_int godot_vector3_min_axis(godot_vector3* p_self) -godot_int godot_vector3_max_axis(godot_vector3* p_self) -godot_real godot_vector3_length(godot_vector3* p_self) -godot_real godot_vector3_length_squared(godot_vector3* p_self) -godot_bool godot_vector3_is_normalized(godot_vector3* p_self) -godot_vector3 godot_vector3_normalized(godot_vector3* p_self) -godot_vector3 godot_vector3_inverse(godot_vector3* p_self) -godot_vector3 godot_vector3_snapped(godot_vector3* p_self, godot_vector3* p_by) -godot_vector3 godot_vector3_rotated(godot_vector3* p_self, godot_vector3* p_axis, godot_real p_phi) -godot_vector3 godot_vector3_linear_interpolate(godot_vector3* p_self, godot_vector3* p_b, godot_real p_t) -godot_vector3 godot_vector3_cubic_interpolate(godot_vector3* p_self, godot_vector3* p_b, godot_vector3* p_pre_a, godot_vector3* p_post_b, godot_real p_t) -godot_real godot_vector3_dot(godot_vector3* p_self, godot_vector3* p_b) -godot_vector3 godot_vector3_cross(godot_vector3* p_self, godot_vector3* p_b) -godot_basis godot_vector3_outer(godot_vector3* p_self, godot_vector3* p_b) -godot_basis godot_vector3_to_diagonal_matrix(godot_vector3* p_self) -godot_vector3 godot_vector3_abs(godot_vector3* p_self) -godot_vector3 godot_vector3_floor(godot_vector3* p_self) -godot_vector3 godot_vector3_ceil(godot_vector3* p_self) -godot_real godot_vector3_distance_to(godot_vector3* p_self, godot_vector3* p_b) -godot_real godot_vector3_distance_squared_to(godot_vector3* p_self, godot_vector3* p_b) -godot_real godot_vector3_angle_to(godot_vector3* p_self, godot_vector3* p_to) -godot_vector3 godot_vector3_slide(godot_vector3* p_self, godot_vector3* p_n) -godot_vector3 godot_vector3_bounce(godot_vector3* p_self, godot_vector3* p_n) -godot_vector3 godot_vector3_reflect(godot_vector3* p_self, godot_vector3* p_n) -godot_vector3 godot_vector3_operator_add(godot_vector3* p_self, godot_vector3* p_b) -godot_vector3 godot_vector3_operator_subtract(godot_vector3* p_self, godot_vector3* p_b) -godot_vector3 godot_vector3_operator_multiply_vector(godot_vector3* p_self, godot_vector3* p_b) -godot_vector3 godot_vector3_operator_multiply_scalar(godot_vector3* p_self, godot_real p_b) -godot_vector3 godot_vector3_operator_divide_vector(godot_vector3* p_self, godot_vector3* p_b) -godot_vector3 godot_vector3_operator_divide_scalar(godot_vector3* p_self, godot_real p_b) -godot_bool godot_vector3_operator_equal(godot_vector3* p_self, godot_vector3* p_b) -godot_bool godot_vector3_operator_less(godot_vector3* p_self, godot_vector3* p_b) -godot_vector3 godot_vector3_operator_neg(godot_vector3* p_self) -void godot_vector3_set_axis(godot_vector3* p_self, godot_vector3_axis p_axis, godot_real p_val) -godot_real godot_vector3_get_axis(godot_vector3* p_self, godot_vector3_axis p_axis) -// GDAPI: 1.1 -// GDAPI: 1.2 -godot_vector3 godot_vector3_move_toward(godot_vector3* p_self, godot_vector3* p_to, godot_real p_delta) -godot_vector3 godot_vector3_direction_to(const godot_vector3 *p_self, const godot_vector3 *p_b) -""" -#} - {%- block pxd_header %} {% endblock -%} {%- block pyx_header %} @@ -56,21 +9,25 @@ from enum import IntEnum cdef inline Vector3_multiply_vector(Vector3 self, Vector3 b): cdef Vector3 ret = Vector3.__new__(Vector3) + {{ force_mark_rendered("godot_vector3_operator_multiply_vector") }} ret._gd_data = gdapi10.godot_vector3_operator_multiply_vector(&self._gd_data, &b._gd_data) return ret cdef inline Vector3_multiply_scalar(Vector3 self, godot_real b): cdef Vector3 ret = Vector3.__new__(Vector3) + {{ force_mark_rendered("godot_vector3_operator_multiply_scalar") }} ret._gd_data = gdapi10.godot_vector3_operator_multiply_scalar(&self._gd_data, b) return ret cdef inline Vector3_divide_vector(Vector3 self, Vector3 b): cdef Vector3 ret = Vector3.__new__(Vector3) + {{ force_mark_rendered("godot_vector3_operator_divide_vector") }} ret._gd_data = gdapi10.godot_vector3_operator_divide_vector(&self._gd_data, &b._gd_data) return ret cdef inline Vector3_divide_scalar(Vector3 self, godot_real b): cdef Vector3 ret = Vector3.__new__(Vector3) + {{ force_mark_rendered("godot_vector3_operator_divide_scalar") }} ret._gd_data = gdapi10.godot_vector3_operator_divide_scalar(&self._gd_data, b) return ret @@ -85,6 +42,7 @@ cdef class Vector3: {% block python_defs %} def __init__(self, godot_real x=0.0, godot_real y=0.0, godot_real z=0.0): + {{ force_mark_rendered("godot_vector3_new") }} gdapi10.godot_vector3_new(&self._gd_data, x, y, z) def __repr__(self): @@ -92,26 +50,32 @@ cdef class Vector3: @property def x(self) -> godot_real: + {{ force_mark_rendered("godot_vector3_get_axis") }} return gdapi10.godot_vector3_get_axis(&self._gd_data, godot_vector3_axis.GODOT_VECTOR3_AXIS_X) @x.setter def x(self, godot_real val) -> None: + {{ force_mark_rendered("godot_vector3_set_axis") }} gdapi10.godot_vector3_set_axis(&self._gd_data, godot_vector3_axis.GODOT_VECTOR3_AXIS_X, val) @property def y(self) -> godot_real: + {{ force_mark_rendered("godot_vector3_get_axis") }} return gdapi10.godot_vector3_get_axis(&self._gd_data, godot_vector3_axis.GODOT_VECTOR3_AXIS_Y) @y.setter def y(self, godot_real val) -> None: + {{ force_mark_rendered("godot_vector3_set_axis") }} gdapi10.godot_vector3_set_axis(&self._gd_data, godot_vector3_axis.GODOT_VECTOR3_AXIS_Y, val) @property def z(self) -> godot_real: + {{ force_mark_rendered("godot_vector3_get_axis") }} return gdapi10.godot_vector3_get_axis(&self._gd_data, godot_vector3_axis.GODOT_VECTOR3_AXIS_Z) @z.setter def z(self, godot_real val) -> None: + {{ force_mark_rendered("godot_vector3_set_axis") }} gdapi10.godot_vector3_set_axis(&self._gd_data, godot_vector3_axis.GODOT_VECTOR3_AXIS_Z, val) {{ render_operator_eq() | indent }} @@ -148,6 +112,7 @@ cdef class Vector3: raise ZeroDivisionError() return Vector3_divide_vector(self, _val) + {{ render_method("as_string") | indent }} {{ render_method("min_axis") | indent }} {{ render_method("max_axis") | indent }} {{ render_method("length") | indent }} @@ -160,6 +125,7 @@ cdef class Vector3: {{ render_method("linear_interpolate") | indent }} {{ render_method("cubic_interpolate") | indent }} {{ render_method("move_toward") | indent }} + {{ render_method("direction_to") | indent }} {{ render_method("dot") | indent }} {{ render_method("cross") | indent }} {{ render_method("outer") | indent }} diff --git a/generation/generate_builtins.py b/generation/generate_builtins.py index a4f0159f..1ba247a5 100644 --- a/generation/generate_builtins.py +++ b/generation/generate_builtins.py @@ -9,7 +9,7 @@ from collections import defaultdict from itertools import product from jinja2 import Environment, FileSystemLoader, StrictUndefined -from typing import List +from typing import List, Set from type_specs import ( TypeSpec, @@ -244,8 +244,11 @@ def pre_cook_patch_stuff(gdnative_api): revision = gdnative_api["core"] while revision: for func in revision["api"]: + # `signed char` is used in some string methods to return comparison + # information (see `godot_string_casecmp_to`). + # The type in two word messes with our (poor) type parsing. if func["return_type"] == "signed char": - func["return_type"] = "schar" + func["return_type"] = "int8_t" revision = revision["next"] @@ -268,12 +271,26 @@ def load_builtins_specs_from_gdnative_api_json(gdnative_api: dict) -> List[Built return specs -def generate_builtins(no_suffix_output_path: str, methods_specs: List[BuiltinMethodSpec]): +def generate_builtins( + no_suffix_output_path: str, methods_specs: List[BuiltinMethodSpec] +) -> Set[str]: methods_c_name_to_spec = {s.c_name: s for s in methods_specs} + # Track the methods used in the templates to enforce they are in sync with the gdnative_api.json + rendered_methods = set() + + def _mark_rendered(method_c_name): + rendered_methods.add(method_c_name) + return "" # Return empty string to not output anything when used in a template + + def _render_target_to_template(render_target): + assert isinstance(render_target, str) + return f"{render_target}.tmpl.pxi" + def _get_builtin_method_spec(method_c_name): assert isinstance(method_c_name, str) try: + _mark_rendered(method_c_name) return methods_c_name_to_spec[method_c_name] except KeyError: raise RuntimeError(f"Unknown method `{method_c_name}`") @@ -285,10 +302,6 @@ def _get_type_spec(py_type): except StopIteration: raise RuntimeError(f"Unknown type `{py_type}`") - def _render_target_to_template(render_target): - assert isinstance(render_target, str) - return f"{render_target}.tmpl.pxi" - def _get_target_method_spec_factory(render_target): assert isinstance(render_target, str) try: @@ -301,15 +314,12 @@ def _get_target_method_spec(method_py_name): return _get_target_method_spec - def _mark_rendered(method_c_name): - pass - context = { - "get_target_method_spec_factory": _get_target_method_spec_factory, - "get_type_spec": _get_type_spec, - "get_builtin_method_spec": _get_builtin_method_spec, "render_target_to_template": _render_target_to_template, - "mark_rendered": _mark_rendered, + "get_builtin_method_spec": _get_builtin_method_spec, + "get_type_spec": _get_type_spec, + "get_target_method_spec_factory": _get_target_method_spec_factory, + "force_mark_rendered": _mark_rendered, } template = env.get_template("builtins.tmpl.pyx") @@ -333,7 +343,24 @@ def _mark_rendered(method_c_name): with open(pxd_output_path, "w") as fd: fd.write(out) - return True + return rendered_methods + + +def ensure_all_methods_has_been_rendered( + methods_specs: List[BuiltinMethodSpec], rendered_methods: Set[str] +): + all_methods = {s.c_name for s in methods_specs} + + unknown_rendered_methods = rendered_methods - all_methods + for method in sorted(unknown_rendered_methods): + print(f"ERROR: `{method}` is used in the templates but not present in gnative_api.json") + + not_rendered_methods = all_methods - rendered_methods + + for method in sorted(not_rendered_methods): + print(f"ERROR: `{method}` is listed in gnative_api.json but not used in the templates") + + return not unknown_rendered_methods and not not_rendered_methods if __name__ == "__main__": @@ -366,4 +393,8 @@ def _parse_output(val): args = parser.parse_args() gdnative_api_json = json.load(args.input) methods_specs = load_builtins_specs_from_gdnative_api_json(gdnative_api_json) - generate_builtins(args.output, methods_specs) + rendered_methods = generate_builtins(args.output, methods_specs) + if not ensure_all_methods_has_been_rendered(methods_specs, rendered_methods): + raise SystemExit( + "Generated builtins are not in line with the provided gdnative_api.json :'(" + ) diff --git a/generation/type_specs.py b/generation/type_specs.py index be3989cc..22ae8414 100644 --- a/generation/type_specs.py +++ b/generation/type_specs.py @@ -12,6 +12,7 @@ class TypeSpec: # Type used in Cython, basically similar to c_type for scalars&enums # and to py_type for Godot objects&builtins cy_type: str + # TODO: typing should be divided between argument and return (e.g. `Union[str, NodePath]` vs `NodePath`) # Type used for PEP 484 Python typing py_type: str = "" # Type is a Godot object (i.e. defined in api.json) From 84dde102af3741802cb944ff58968825d848009d Mon Sep 17 00:00:00 2001 From: Emmanuel Leblond Date: Tue, 6 Oct 2020 21:35:33 +0200 Subject: [PATCH 5/8] Add generation/generate_gdnative_api_struct.py --- .../builtins_templates/gdstring.tmpl.pxi | 9 +- generation/generate_gdnative_api_struct.py | 396 ++ pythonscript/godot/SConscript | 16 +- pythonscript/godot/_hazmat/SConscript | 17 +- .../godot/_hazmat/gdnative_api_struct.pxd | 5131 ----------------- requirements.txt | 1 + tests/bindings/test_string.py | 2 + 7 files changed, 418 insertions(+), 5154 deletions(-) create mode 100644 generation/generate_gdnative_api_struct.py delete mode 100644 pythonscript/godot/_hazmat/gdnative_api_struct.pxd diff --git a/generation/builtins_templates/gdstring.tmpl.pxi b/generation/builtins_templates/gdstring.tmpl.pxi index d8437285..573fbd34 100644 --- a/generation/builtins_templates/gdstring.tmpl.pxi +++ b/generation/builtins_templates/gdstring.tmpl.pxi @@ -185,7 +185,14 @@ cdef class GDString: {{ render_method("hex_to_int") | indent }} {{ render_method("http_escape") | indent }} {{ render_method("http_unescape") | indent }} - {{ render_method("humanize_size") | indent }} + + @staticmethod + def humanize_size(size_t size): + {{ force_mark_rendered("godot_string_humanize_size") }} + cdef GDString __ret = GDString.__new__(GDString) + __ret._gd_data = gdapi10.godot_string_humanize_size(size) + return __ret + {{ render_method("insert") | indent }} {{ render_method("is_abs_path") | indent }} {{ render_method("is_rel_path") | indent }} diff --git a/generation/generate_gdnative_api_struct.py b/generation/generate_gdnative_api_struct.py new file mode 100644 index 00000000..7fb1319f --- /dev/null +++ b/generation/generate_gdnative_api_struct.py @@ -0,0 +1,396 @@ +import re +from typing import List, Dict +import argparse +from pathlib import Path +from pycparser import CParser, c_ast +from autopxd import AutoPxd + + +# List the includes to the stdlib we are expecting. This is needed to hack +# around them given they are needed for pycparser, but should endup in the pxd +# as `from libc.stdint cimport uint8_t` instead of being inside the `cdef extern` +# describing the whole header stuff. +STDLIB_INCLUDES = { + "stdbool.h": ["bool"], + "stdint.h": [ + "uint8_t", + "int8_t", + "uint16_t", + "int16_t", + "uint32_t", + "int32_t", + "uint64_t", + "int64_t", + ], + "wchar.h": ["wchar_t", "size_t"], +} +STDLIB_TYPES = {t for m in STDLIB_INCLUDES.values() for t in m} + + +class CCCP: + """ + CCCP: the Cheap&Coarse C Preprocessor + PyCParser needs to get passed preprocessed C code, but we don't want to + use a real one: + - different OS have different preprocessors (msvc vs clang vs gcc) + - we can control which #include to follow given we don't care about stdlibs ones + - we can easily tweak the behavior of #ifdef parts to ignore platform specificities + + In the end remember that we are not compiling a C program, but creating a + .pxd file that will (in conjuction with a .pyx) be used to generate a .c + file that will include the godot api headers. So there is no need to handle + platform specific (or even opaque structure size !) detail here: they will + be ignored by cython and leave to the final C compilation. + """ + + def __init__( + self, include_dirs: List[str], forced_defined_vars: Dict[str, str], debug: bool = False + ): + self.source = [] + self.source_cursor = 0 + self.forced_defined_vars = forced_defined_vars.keys() + self.defined_vars = {**forced_defined_vars} + self.include_dirs = [Path(p) for p in include_dirs] + self.ingnored_includes = set() + self.debug = debug + + @staticmethod + def source_to_lines(src: str) -> List[str]: + # First remove all comments + src = re.sub(r"(//.*$)", "", src, flags=re.MULTILINE) + src = re.sub(r"/\*.*?\*/", "", src, flags=re.DOTALL) + + # Split lines, taking care of backslashes + lines = [] + multi_lines = "" + for line in src.splitlines(): + line = line.rstrip() + if line.endswith("\\"): + multi_lines += line[:-1] + continue + lines.append(multi_lines + line) + multi_lines = "" + + return lines + + def debug_explain(self, msg): + if self.debug: + print(msg) + + def error_occurred(self, msg): + extract = "\n".join(self.source[max(0, self.source_cursor - 5) : self.source_cursor + 5]) + raise RuntimeError(f"{msg}\n\nOccurred around:\n{extract}") + + def handle_include(self, line): + match_include = re.match(r"^\s*#\s*include\s+[<\"]([a-zA-Z0-9_./]+)[>\"]$", line) + if not match_include: + return None + include_name = match_include.group(1) + if include_name in STDLIB_INCLUDES.keys(): + self.debug_explain(f"INCLUDE INGNORED {include_name}") + self.source.pop(self.source_cursor) + return 0 + for include_dir in self.include_dirs: + include_path = include_dir / include_name + try: + included_source = include_path.read_text() + # Remove #include line and replace it by included source + self.source = ( + self.source[: self.source_cursor] + + self.source_to_lines(included_source) + + self.source[self.source_cursor + 1 :] + ) + self.debug_explain(f"INCLUDE {include_name}") + return 0 + except FileNotFoundError: + pass + self.error_occurred(f"Cannot resolve import `{line}`") + + def handle_define(self, line): + match_define = re.match(r"^\s*#\s*define\s+([a-zA-Z0-9_]+)(\s+|$)", line) + if not match_define: + return None + define_name = match_define.group(1) + define_value = line[len(match_define.group(0)) :] + if define_name not in self.forced_defined_vars: + self.defined_vars[define_name] = self.expand_macros(define_value) + self.debug_explain(f"DEF {define_name}={define_value}") + else: + self.debug_explain(f"DEF IGNORED {define_name}={define_value}") + self.source.pop(self.source_cursor) + return 0 + + def handle_define_macro(self, line): + match_define_macro = re.match(r"^\s*#\s*define\s+([a-zA-Z0-9_]+)\(", line) + if not match_define_macro: + return None + define_name = match_define_macro.group(1) + define_value = line[len(match_define_macro.group(0)) :] + # Macro are not supported, this is ok given they are not used + # (but some are defined) in the gdnative headers. + # As a sanity measure, we make sure the code generated if the macro + # is used will cause the C parser to crash. + self.defined_vars[define_name] = f"#error unsuported macro {define_name}" + self.debug_explain(f"DEF MACRO {define_name}=__UNSUPORTED__") + self.source.pop(self.source_cursor) + return 0 + + def handle_undef(self, line): + match_undefine = re.match(r"^\s*#\s*undef\s+([a-zA-Z0-9_]+)$", line) + if not match_undefine: + return None + define_name = match_undefine.group(1) + if define_name not in self.forced_defined_vars: + self.defined_vars.pop(define_name) + self.debug_explain(f"UNDEF {define_name}") + else: + self.debug_explain(f"UNDEF INGNORED {define_name}") + self.source.pop(self.source_cursor) + return 0 + + def handle_if(self, line): + # Replace ifdef/ifndef by generic if to simplify parsing + line = re.sub(r"^\s*#\s*ifdef\s+([a-zA-Z0-9_]+)$", r"#if defined(\1)", line) + line = re.sub(r"^\s*#\s*ifndef\s+([a-zA-Z0-9_]+)$", r"#if !defined(\1)", line) + + match_if = re.match(r"^\s*#\s*if\s+", line) + if not match_if: + return None + + def _eval_if_condition(condition): + # Turn condition into Python code and eval it \o/ + expr = condition.replace("||", " or ") + expr = expr.replace("&&", " and ") + expr = expr.replace("!", " not ") + expr = re.sub(r"defined\(([a-zA-Z0-9_]+)\)", r"defined('\1')", expr) + try: + return eval( + expr, {"defined": lambda key: key in self.defined_vars}, self.defined_vars + ) + except Exception as exc: + self.error_occurred( + f"Error {exc} while evaluating `{expr}` (generated from `{condition}`)" + ) + + def _keep_until_next_condition(offset): + nested_count = 0 + kept_body = [] + while True: + try: + line = self.source[self.source_cursor + offset] + except IndexError: + self.error_occurred("Reach end of file without #endif") + if re.match(r"^\s*#\s*(if|ifdef|ifndef)(\s+|$)", line): + # Nested #if + nested_count += 1 + else_match = re.match(r"^\s*#\s*(else$|elif\s+)", line) + if else_match: + if nested_count == 0: + condition_type = else_match.group(1).strip() + condition = line[len(else_match.group(1)) :] + return kept_body, condition_type, condition, offset + 1 + if re.match(r"^\s*#\s*endif$", line): + if nested_count == 0: + return kept_body, "endif", "", offset + 1 + else: + nested_count -= 1 + offset += 1 + kept_body.append(line) + + def _retreive_kept_body(condition, offset): + if _eval_if_condition(condition): + kept_body, condition_type, condition, offset = _keep_until_next_condition(offset) + # Skip other else/elif body parts until the matching endif + while condition_type != "endif": + _, condition_type, _, offset = _keep_until_next_condition(offset) + return kept_body, offset + else: + # Ignore the if body part + _, condition_type, condition, offset = _keep_until_next_condition(offset) + if condition_type == "elif": + return _retreive_kept_body(condition, offset) + elif condition_type == "else": + return _retreive_kept_body("True", offset) + else: # endif + return [], offset + + if_condition = line[len(match_if.group()) :] + body, offset = _retreive_kept_body(if_condition, offset=1) + + if_starts = self.source_cursor + if_ends = self.source_cursor + offset + self.source[if_starts:if_ends] = body + + self.debug_explain(f"IF ({line}) ==> {if_starts} {if_ends}") + + return 0 # 0 is not equivalent to None ! + + def handle_unknown(self, line): + match_unknown = re.match(r"^\s*#", line) + if not match_unknown: + return None + self.error_occurred(f"Unknown preprocessor command `{line}`") + + def expand_macros(self, line): + expanded_line = line + # Recursive expansion given a macro can reference another one + while True: + for key, value in self.defined_vars.items(): + expanded_line = re.sub( + f"(^|[^a-zA-Z0-9_]){key}([^a-zA-Z0-9_]|$)", + f"\\g<1>{value}\\g<2>", + expanded_line, + ) + if expanded_line == line: + break + line = expanded_line + return line + + def parse(self, src: str) -> str: + self.source = self.source_to_lines(src) + + cpp_handlers = ( + self.handle_define, + self.handle_define_macro, + self.handle_if, + self.handle_include, + self.handle_undef, + self.handle_unknown, + ) + while True: + try: + source_line = self.source[self.source_cursor] + except IndexError: + # Parsing is done + break + + for cpp_handler in cpp_handlers: + eaten_lines = cpp_handler(source_line) + if eaten_lines is not None: + self.source_cursor += eaten_lines + break + else: + # Not a preprocessor line + self.source[self.source_cursor] = self.expand_macros(source_line) + self.source_cursor += 1 + + return "\n".join(self.source) + + +class PatchedAutoPxd(AutoPxd): + def visit_TypeDecl(self, node): + # Ignore types from stdlib (will be provided by the + # `from libc.stdint cimport uint8_t` syntax) + if node.declname in STDLIB_TYPES: + return + else: + return super().visit_TypeDecl(node) + + def visit_ArrayDecl(self, node): + # autopxd doesn't support array with an expression as size, but in: + # typedef struct {uint8_t _dont_touch_that[GODOT_VECTOR3_SIZE];} godot_vector3; + # `GODOT_VECTOR3_SIZE` gets resolved as `sizeof(void*)` :( + if node.type.declname == "_dont_touch_that": + # Of course the 0 size is wrong, but it's not an issue given + # we don't touch this array in Cython code (hence the name ^^) + node.dim = c_ast.Constant(type="int", value="0") + return super().visit_ArrayDecl(node) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser( + description="Convert gdnative_api_struct.gen.h into Cython .pxd" + ) + parser.add_argument( + "--input", + "-i", + required=True, + metavar="GODOT_HEADERS_PATH", + help="Path to Godot GDNative headers", + ) + parser.add_argument( + "--output", + "-o", + required=True, + type=argparse.FileType("w", encoding="utf8"), + metavar="GDNATIVE_API_STRUCT_PXD", + help="Path to store the generated gdnative_api_struct.pxd file", + ) + args = parser.parse_args() + + # Step 1: preprocessing + header_name = "gdnative_api_struct.gen.h" + with open(f"{args.input}/{header_name}", "r") as fd: + source = fd.read() + + # салют товарищ ! + cccp = CCCP( + include_dirs=[args.input], + forced_defined_vars={"GDAPI": "", "GDN_EXPORT": "", "GDCALLINGCONV": ""}, + ) + + preprocessed = "" + # pycparser requires each symbol must be defined, hence provide a dummy + # definition of the needed stdlib types. + # Note those definitions will then be detected and ignored by PatchedAutoPxd. + for stdtype in STDLIB_TYPES: + preprocessed += f"typedef int {stdtype};\n" + preprocessed += cccp.parse(source) + + with open("output.preprocessed.c", "w") as fd: + fd.write(preprocessed) + + # Step 2: C parsing + parser = CParser() + ast = parser.parse(preprocessed) + + # Step 3: .pxd generation + p = PatchedAutoPxd(header_name) + p.visit(ast) + + pxd_cdef = p.lines() + # Remove the cdef part given we want to add the `nogil` option and + # we also want to add the `godot_method_flags` C inline code + assert pxd_cdef[0].startswith("cdef extern from") + pxd_cdef_body = "\n".join(pxd_cdef[1:]) + + pxd = f"""\ +# /!\\ Autogenerated code, modifications will be lost /!\\ +# see `generation/generate_gdnative_api_struct.py` + + +from libc.stddef cimport wchar_t, size_t +from libc.stdint cimport {', '.join(STDLIB_INCLUDES['stdint.h'])} + +cdef extern from "{header_name}" nogil: + + \"\"\" + typedef enum {{ + GODOT_METHOD_FLAG_NORMAL = 1, + GODOT_METHOD_FLAG_EDITOR = 2, + GODOT_METHOD_FLAG_NOSCRIPT = 4, + GODOT_METHOD_FLAG_CONST = 8, + GODOT_METHOD_FLAG_REVERSE = 16, + GODOT_METHOD_FLAG_VIRTUAL = 32, + GODOT_METHOD_FLAG_FROM_SCRIPT = 64, + GODOT_METHOD_FLAG_VARARG = 128, + GODOT_METHOD_FLAGS_DEFAULT = GODOT_METHOD_FLAG_NORMAL + }} godot_method_flags; + \"\"\" + + ctypedef enum godot_method_flags: + GODOT_METHOD_FLAG_NORMAL = 1 + GODOT_METHOD_FLAG_EDITOR = 2 + GODOT_METHOD_FLAG_NOSCRIPT = 4 + GODOT_METHOD_FLAG_CONST = 8 + GODOT_METHOD_FLAG_REVERSE = 16 # used for events + GODOT_METHOD_FLAG_VIRTUAL = 32 + GODOT_METHOD_FLAG_FROM_SCRIPT = 64 + GODOT_METHOD_FLAG_VARARG = 128 + GODOT_METHOD_FLAGS_DEFAULT = 1 # METHOD_FLAG_NORMAL + + ctypedef bint bool + +{pxd_cdef_body} +""" + args.output.write(pxd) diff --git a/pythonscript/godot/SConscript b/pythonscript/godot/SConscript index ee25aa70..0f40f97e 100644 --- a/pythonscript/godot/SConscript +++ b/pythonscript/godot/SConscript @@ -27,8 +27,8 @@ env.Install("$DIST_SITE_PACKAGES/godot", env.CythonModule("tags", "tags.pyx")) # TODO: merge pool_arrays into builtins godot_pool_arrays_srcs = env.Command( target=("pool_arrays.pyx", "pool_arrays.pxd"), - source=(), - action="python %s --output ${TARGET}" % File("#/generation/generate_pool_arrays.py"), + source=("#/generation/generate_pool_arrays.py",), + action="python ${SOURCE} --output ${TARGET}", ) env.Depends( godot_pool_arrays_srcs, @@ -38,9 +38,8 @@ env.Depends( godot_builtins_srcs = env.Command( target=("builtins.pyx", "builtins.pxd"), - source=("${godot_headers}/gdnative_api.json",), - action="python %s --input ${SOURCE} --output ${TARGET}" - % File("#/generation/generate_builtins.py"), + source=("#/generation/generate_builtins.py", "${godot_headers}/gdnative_api.json"), + action="python ${SOURCES[0]} --input ${SOURCES[1]} --output ${TARGET}", ) env.Depends( godot_builtins_srcs, @@ -85,11 +84,8 @@ else: godot_bindings_srcs = bindings_env.Command( target=("bindings.pyx", "bindings.pxd", "bindings.pyi"), - source=("${godot_headers}/api.json",), - action=( - "python %s ${opts} --input ${SOURCE} --output ${TARGET} " - % File("#/generation/generate_bindings.py") - ), + source=("#/generation/generate_bindings.py", "${godot_headers}/api.json"), + action=("python ${SOURCES[0]} ${opts} --input ${SOURCES[1]} --output ${TARGET} "), opts="--sample" if sample else "", ) bindings_env.Depends( diff --git a/pythonscript/godot/_hazmat/SConscript b/pythonscript/godot/_hazmat/SConscript index 432dc2ee..5e6efacd 100644 --- a/pythonscript/godot/_hazmat/SConscript +++ b/pythonscript/godot/_hazmat/SConscript @@ -18,18 +18,11 @@ env.Install("$DIST_SITE_PACKAGES/godot/_hazmat", pxds) ### Generate godot api .h -> gdnative_api_struct.pxd ### -gdnative_api_struct_pxd = File("gdnative_api_struct.pxd") - -# TODO: autopxd doesn't work out of the box, hence -# `gdnative_api_struct.pxd` has been customized after generation -# generate_gdnative_api_struct = env.Command( -# target=gdnative_api_struct_pxd, -# source=( -# env["godot_headers"], -# "%s/gdnative_api_struct.gen.h" % env["godot_headers"], -# ), -# action="autopxd -I ${SOURCES[0]} ${SOURCES[1]} > ${TARGET}", -# ) +gdnative_api_struct_pxd = env.Command( + target="gdnative_api_struct.pxd", + source=["#/generation/generate_gdnative_api_struct.py", env["godot_headers"]], + action="python ${SOURCES[0]} --input ${SOURCES[1]} --output ${TARGET}", +) ### Cython modules ### diff --git a/pythonscript/godot/_hazmat/gdnative_api_struct.pxd b/pythonscript/godot/_hazmat/gdnative_api_struct.pxd deleted file mode 100644 index 4363fe3b..00000000 --- a/pythonscript/godot/_hazmat/gdnative_api_struct.pxd +++ /dev/null @@ -1,5131 +0,0 @@ -# cython: language_level=3 - -# Semi-automatically generated by python-autopxd2 -# Manual fixes on: -# - nogil attribute on `cdef extern` -# - bint -> bool typedef -# - array attribute in struct got they size messed up (all `_dont_touch_that`) -# - `const` qualifier in function arguments got stripped -# - `godot_method_flags` missing in `gdnative_api_struct.gen.h` - -from libc.stdint cimport uint8_t, uint64_t, int64_t, uint32_t, int32_t -from libc.stddef cimport wchar_t - - -cdef extern from "gdnative_api_struct.gen.h" nogil: - - """ - typedef enum { - GODOT_METHOD_FLAG_NORMAL = 1, - GODOT_METHOD_FLAG_EDITOR = 2, - GODOT_METHOD_FLAG_NOSCRIPT = 4, - GODOT_METHOD_FLAG_CONST = 8, - GODOT_METHOD_FLAG_REVERSE = 16, - GODOT_METHOD_FLAG_VIRTUAL = 32, - GODOT_METHOD_FLAG_FROM_SCRIPT = 64, - GODOT_METHOD_FLAG_VARARG = 128, - GODOT_METHOD_FLAGS_DEFAULT = GODOT_METHOD_FLAG_NORMAL - } godot_method_flags; - """ - - ctypedef enum godot_method_flags: - GODOT_METHOD_FLAG_NORMAL = 1 - GODOT_METHOD_FLAG_EDITOR = 2 - GODOT_METHOD_FLAG_NOSCRIPT = 4 - GODOT_METHOD_FLAG_CONST = 8 - GODOT_METHOD_FLAG_REVERSE = 16 # used for events - GODOT_METHOD_FLAG_VIRTUAL = 32 - GODOT_METHOD_FLAG_FROM_SCRIPT = 64 - GODOT_METHOD_FLAG_VARARG = 128 - GODOT_METHOD_FLAGS_DEFAULT = 1 # METHOD_FLAG_NORMAL - - ctypedef enum godot_error: - GODOT_OK - GODOT_FAILED - GODOT_ERR_UNAVAILABLE - GODOT_ERR_UNCONFIGURED - GODOT_ERR_UNAUTHORIZED - GODOT_ERR_PARAMETER_RANGE_ERROR - GODOT_ERR_OUT_OF_MEMORY - GODOT_ERR_FILE_NOT_FOUND - GODOT_ERR_FILE_BAD_DRIVE - GODOT_ERR_FILE_BAD_PATH - GODOT_ERR_FILE_NO_PERMISSION - GODOT_ERR_FILE_ALREADY_IN_USE - GODOT_ERR_FILE_CANT_OPEN - GODOT_ERR_FILE_CANT_WRITE - GODOT_ERR_FILE_CANT_READ - GODOT_ERR_FILE_UNRECOGNIZED - GODOT_ERR_FILE_CORRUPT - GODOT_ERR_FILE_MISSING_DEPENDENCIES - GODOT_ERR_FILE_EOF - GODOT_ERR_CANT_OPEN - GODOT_ERR_CANT_CREATE - GODOT_ERR_QUERY_FAILED - GODOT_ERR_ALREADY_IN_USE - GODOT_ERR_LOCKED - GODOT_ERR_TIMEOUT - GODOT_ERR_CANT_CONNECT - GODOT_ERR_CANT_RESOLVE - GODOT_ERR_CONNECTION_ERROR - GODOT_ERR_CANT_ACQUIRE_RESOURCE - GODOT_ERR_CANT_FORK - GODOT_ERR_INVALID_DATA - GODOT_ERR_INVALID_PARAMETER - GODOT_ERR_ALREADY_EXISTS - GODOT_ERR_DOES_NOT_EXIST - GODOT_ERR_DATABASE_CANT_READ - GODOT_ERR_DATABASE_CANT_WRITE - GODOT_ERR_COMPILATION_FAILED - GODOT_ERR_METHOD_NOT_FOUND - GODOT_ERR_LINK_FAILED - GODOT_ERR_SCRIPT_FAILED - GODOT_ERR_CYCLIC_LINK - GODOT_ERR_INVALID_DECLARATION - GODOT_ERR_DUPLICATE_SYMBOL - GODOT_ERR_PARSE_ERROR - GODOT_ERR_BUSY - GODOT_ERR_SKIP - GODOT_ERR_HELP - GODOT_ERR_BUG - GODOT_ERR_PRINTER_ON_FIRE - - ctypedef bint bool - - ctypedef bool godot_bool - - ctypedef int godot_int - - ctypedef float godot_real - - ctypedef void godot_object - - ctypedef wchar_t godot_char_type - - ctypedef struct godot_string: - pass - - ctypedef struct godot_char_string: - pass - - ctypedef struct godot_array: - pass - - ctypedef struct godot_pool_array_read_access: - pass - - ctypedef godot_pool_array_read_access godot_pool_byte_array_read_access - - ctypedef godot_pool_array_read_access godot_pool_int_array_read_access - - ctypedef godot_pool_array_read_access godot_pool_real_array_read_access - - ctypedef godot_pool_array_read_access godot_pool_string_array_read_access - - ctypedef godot_pool_array_read_access godot_pool_vector2_array_read_access - - ctypedef godot_pool_array_read_access godot_pool_vector3_array_read_access - - ctypedef godot_pool_array_read_access godot_pool_color_array_read_access - - ctypedef struct godot_pool_array_write_access: - pass - - ctypedef godot_pool_array_write_access godot_pool_byte_array_write_access - - ctypedef godot_pool_array_write_access godot_pool_int_array_write_access - - ctypedef godot_pool_array_write_access godot_pool_real_array_write_access - - ctypedef godot_pool_array_write_access godot_pool_string_array_write_access - - ctypedef godot_pool_array_write_access godot_pool_vector2_array_write_access - - ctypedef godot_pool_array_write_access godot_pool_vector3_array_write_access - - ctypedef godot_pool_array_write_access godot_pool_color_array_write_access - - ctypedef struct godot_pool_byte_array: - pass - - ctypedef struct godot_pool_int_array: - pass - - ctypedef struct godot_pool_real_array: - pass - - ctypedef struct godot_pool_string_array: - pass - - ctypedef struct godot_pool_vector2_array: - pass - - ctypedef struct godot_pool_vector3_array: - pass - - ctypedef struct godot_pool_color_array: - pass - - ctypedef struct godot_color: - pass - - void godot_color_new_rgba(godot_color* r_dest, godot_real p_r, godot_real p_g, godot_real p_b, godot_real p_a) - - void godot_color_new_rgb(godot_color* r_dest, godot_real p_r, godot_real p_g, godot_real p_b) - - godot_real godot_color_get_r(godot_color* p_self) - - void godot_color_set_r(godot_color* p_self, godot_real r) - - godot_real godot_color_get_g(godot_color* p_self) - - void godot_color_set_g(godot_color* p_self, godot_real g) - - godot_real godot_color_get_b(godot_color* p_self) - - void godot_color_set_b(godot_color* p_self, godot_real b) - - godot_real godot_color_get_a(godot_color* p_self) - - void godot_color_set_a(godot_color* p_self, godot_real a) - - godot_real godot_color_get_h(godot_color* p_self) - - godot_real godot_color_get_s(godot_color* p_self) - - godot_real godot_color_get_v(godot_color* p_self) - - godot_string godot_color_as_string(godot_color* p_self) - - godot_int godot_color_to_rgba32(godot_color* p_self) - - godot_int godot_color_to_abgr32(godot_color* p_self) - - godot_int godot_color_to_abgr64(godot_color* p_self) - - godot_int godot_color_to_argb64(godot_color* p_self) - - godot_int godot_color_to_rgba64(godot_color* p_self) - - godot_int godot_color_to_argb32(godot_color* p_self) - - godot_real godot_color_gray(godot_color* p_self) - - godot_color godot_color_inverted(godot_color* p_self) - - godot_color godot_color_contrasted(godot_color* p_self) - - godot_color godot_color_linear_interpolate(godot_color* p_self, godot_color* p_b, godot_real p_t) - - godot_color godot_color_blend(godot_color* p_self, godot_color* p_over) - - godot_color godot_color_darkened(godot_color* p_self, godot_real p_amount) - - godot_color godot_color_from_hsv(godot_color* p_self, godot_real p_h, godot_real p_s, godot_real p_v, godot_real p_a) - - godot_color godot_color_lightened(godot_color* p_self, godot_real p_amount) - - godot_string godot_color_to_html(godot_color* p_self, godot_bool p_with_alpha) - - godot_bool godot_color_operator_equal(godot_color* p_self, godot_color* p_b) - - godot_bool godot_color_operator_less(godot_color* p_self, godot_color* p_b) - - ctypedef struct godot_vector2: - pass - - void godot_vector2_new(godot_vector2* r_dest, godot_real p_x, godot_real p_y) - - godot_string godot_vector2_as_string(godot_vector2* p_self) - - godot_vector2 godot_vector2_normalized(godot_vector2* p_self) - - godot_real godot_vector2_length(godot_vector2* p_self) - - godot_real godot_vector2_angle(godot_vector2* p_self) - - godot_real godot_vector2_length_squared(godot_vector2* p_self) - - godot_bool godot_vector2_is_normalized(godot_vector2* p_self) - - godot_real godot_vector2_distance_to(godot_vector2* p_self, godot_vector2* p_to) - - godot_real godot_vector2_distance_squared_to(godot_vector2* p_self, godot_vector2* p_to) - - godot_real godot_vector2_angle_to(godot_vector2* p_self, godot_vector2* p_to) - - godot_real godot_vector2_angle_to_point(godot_vector2* p_self, godot_vector2* p_to) - - godot_vector2 godot_vector2_linear_interpolate(godot_vector2* p_self, godot_vector2* p_b, godot_real p_t) - - godot_vector2 godot_vector2_cubic_interpolate(godot_vector2* p_self, godot_vector2* p_b, godot_vector2* p_pre_a, godot_vector2* p_post_b, godot_real p_t) - - godot_vector2 godot_vector2_move_toward(godot_vector2* p_self, godot_vector2* p_to, godot_real p_delta) - - godot_vector2 godot_vector2_rotated(godot_vector2* p_self, godot_real p_phi) - - godot_vector2 godot_vector2_tangent(godot_vector2* p_self) - - godot_vector2 godot_vector2_floor(godot_vector2* p_self) - - godot_vector2 godot_vector2_snapped(godot_vector2* p_self, godot_vector2* p_by) - - godot_real godot_vector2_aspect(godot_vector2* p_self) - - godot_real godot_vector2_dot(godot_vector2* p_self, godot_vector2* p_with) - - godot_vector2 godot_vector2_slide(godot_vector2* p_self, godot_vector2* p_n) - - godot_vector2 godot_vector2_bounce(godot_vector2* p_self, godot_vector2* p_n) - - godot_vector2 godot_vector2_reflect(godot_vector2* p_self, godot_vector2* p_n) - - godot_vector2 godot_vector2_abs(godot_vector2* p_self) - - godot_vector2 godot_vector2_clamped(godot_vector2* p_self, godot_real p_length) - - godot_vector2 godot_vector2_operator_add(godot_vector2* p_self, godot_vector2* p_b) - - godot_vector2 godot_vector2_operator_subtract(godot_vector2* p_self, godot_vector2* p_b) - - godot_vector2 godot_vector2_operator_multiply_vector(godot_vector2* p_self, godot_vector2* p_b) - - godot_vector2 godot_vector2_operator_multiply_scalar(godot_vector2* p_self, godot_real p_b) - - godot_vector2 godot_vector2_operator_divide_vector(godot_vector2* p_self, godot_vector2* p_b) - - godot_vector2 godot_vector2_operator_divide_scalar(godot_vector2* p_self, godot_real p_b) - - godot_bool godot_vector2_operator_equal(godot_vector2* p_self, godot_vector2* p_b) - - godot_bool godot_vector2_operator_less(godot_vector2* p_self, godot_vector2* p_b) - - godot_vector2 godot_vector2_operator_neg(godot_vector2* p_self) - - void godot_vector2_set_x(godot_vector2* p_self, godot_real p_x) - - void godot_vector2_set_y(godot_vector2* p_self, godot_real p_y) - - godot_real godot_vector2_get_x(godot_vector2* p_self) - - godot_real godot_vector2_get_y(godot_vector2* p_self) - - ctypedef struct godot_vector3: - pass - - ctypedef struct godot_basis: - pass - - ctypedef struct godot_quat: - pass - - void godot_quat_new(godot_quat* r_dest, godot_real p_x, godot_real p_y, godot_real p_z, godot_real p_w) - - void godot_quat_new_with_axis_angle(godot_quat* r_dest, godot_vector3* p_axis, godot_real p_angle) - - void godot_quat_new_with_basis(godot_quat* r_dest, godot_basis* p_basis) - - void godot_quat_new_with_euler(godot_quat* r_dest, godot_vector3* p_euler) - - godot_real godot_quat_get_x(godot_quat* p_self) - - void godot_quat_set_x(godot_quat* p_self, godot_real val) - - godot_real godot_quat_get_y(godot_quat* p_self) - - void godot_quat_set_y(godot_quat* p_self, godot_real val) - - godot_real godot_quat_get_z(godot_quat* p_self) - - void godot_quat_set_z(godot_quat* p_self, godot_real val) - - godot_real godot_quat_get_w(godot_quat* p_self) - - void godot_quat_set_w(godot_quat* p_self, godot_real val) - - godot_string godot_quat_as_string(godot_quat* p_self) - - godot_real godot_quat_length(godot_quat* p_self) - - godot_real godot_quat_length_squared(godot_quat* p_self) - - godot_quat godot_quat_normalized(godot_quat* p_self) - - godot_bool godot_quat_is_normalized(godot_quat* p_self) - - godot_quat godot_quat_inverse(godot_quat* p_self) - - godot_real godot_quat_dot(godot_quat* p_self, godot_quat* p_b) - - godot_vector3 godot_quat_xform(godot_quat* p_self, godot_vector3* p_v) - - godot_quat godot_quat_slerp(godot_quat* p_self, godot_quat* p_b, godot_real p_t) - - godot_quat godot_quat_slerpni(godot_quat* p_self, godot_quat* p_b, godot_real p_t) - - godot_quat godot_quat_cubic_slerp(godot_quat* p_self, godot_quat* p_b, godot_quat* p_pre_a, godot_quat* p_post_b, godot_real p_t) - - godot_quat godot_quat_operator_multiply(godot_quat* p_self, godot_real p_b) - - godot_quat godot_quat_operator_add(godot_quat* p_self, godot_quat* p_b) - - godot_quat godot_quat_operator_subtract(godot_quat* p_self, godot_quat* p_b) - - godot_quat godot_quat_operator_divide(godot_quat* p_self, godot_real p_b) - - godot_bool godot_quat_operator_equal(godot_quat* p_self, godot_quat* p_b) - - godot_quat godot_quat_operator_neg(godot_quat* p_self) - - void godot_quat_set_axis_angle(godot_quat* p_self, godot_vector3* p_axis, godot_real p_angle) - - void godot_basis_new_with_rows(godot_basis* r_dest, godot_vector3* p_x_axis, godot_vector3* p_y_axis, godot_vector3* p_z_axis) - - void godot_basis_new_with_axis_and_angle(godot_basis* r_dest, godot_vector3* p_axis, godot_real p_phi) - - void godot_basis_new_with_euler(godot_basis* r_dest, godot_vector3* p_euler) - - void godot_basis_new_with_euler_quat(godot_basis* r_dest, godot_quat* p_euler) - - godot_string godot_basis_as_string(godot_basis* p_self) - - godot_basis godot_basis_inverse(godot_basis* p_self) - - godot_basis godot_basis_transposed(godot_basis* p_self) - - godot_basis godot_basis_orthonormalized(godot_basis* p_self) - - godot_real godot_basis_determinant(godot_basis* p_self) - - godot_basis godot_basis_rotated(godot_basis* p_self, godot_vector3* p_axis, godot_real p_phi) - - godot_basis godot_basis_scaled(godot_basis* p_self, godot_vector3* p_scale) - - godot_vector3 godot_basis_get_scale(godot_basis* p_self) - - godot_vector3 godot_basis_get_euler(godot_basis* p_self) - - godot_quat godot_basis_get_quat(godot_basis* p_self) - - void godot_basis_set_quat(godot_basis* p_self, godot_quat* p_quat) - - void godot_basis_set_axis_angle_scale(godot_basis* p_self, godot_vector3* p_axis, godot_real p_phi, godot_vector3* p_scale) - - void godot_basis_set_euler_scale(godot_basis* p_self, godot_vector3* p_euler, godot_vector3* p_scale) - - void godot_basis_set_quat_scale(godot_basis* p_self, godot_quat* p_quat, godot_vector3* p_scale) - - godot_real godot_basis_tdotx(godot_basis* p_self, godot_vector3* p_with) - - godot_real godot_basis_tdoty(godot_basis* p_self, godot_vector3* p_with) - - godot_real godot_basis_tdotz(godot_basis* p_self, godot_vector3* p_with) - - godot_vector3 godot_basis_xform(godot_basis* p_self, godot_vector3* p_v) - - godot_vector3 godot_basis_xform_inv(godot_basis* p_self, godot_vector3* p_v) - - godot_int godot_basis_get_orthogonal_index(godot_basis* p_self) - - void godot_basis_new(godot_basis* r_dest) - - void godot_basis_get_elements(godot_basis* p_self, godot_vector3* p_elements) - - godot_vector3 godot_basis_get_axis(godot_basis* p_self, godot_int p_axis) - - void godot_basis_set_axis(godot_basis* p_self, godot_int p_axis, godot_vector3* p_value) - - godot_vector3 godot_basis_get_row(godot_basis* p_self, godot_int p_row) - - void godot_basis_set_row(godot_basis* p_self, godot_int p_row, godot_vector3* p_value) - - godot_bool godot_basis_operator_equal(godot_basis* p_self, godot_basis* p_b) - - godot_basis godot_basis_operator_add(godot_basis* p_self, godot_basis* p_b) - - godot_basis godot_basis_operator_subtract(godot_basis* p_self, godot_basis* p_b) - - godot_basis godot_basis_operator_multiply_vector(godot_basis* p_self, godot_basis* p_b) - - godot_basis godot_basis_operator_multiply_scalar(godot_basis* p_self, godot_real p_b) - - godot_basis godot_basis_slerp(godot_basis* p_self, godot_basis* p_b, godot_real p_t) - - ctypedef enum godot_vector3_axis: - GODOT_VECTOR3_AXIS_X - GODOT_VECTOR3_AXIS_Y - GODOT_VECTOR3_AXIS_Z - - void godot_vector3_new(godot_vector3* r_dest, godot_real p_x, godot_real p_y, godot_real p_z) - - godot_string godot_vector3_as_string(godot_vector3* p_self) - - godot_int godot_vector3_min_axis(godot_vector3* p_self) - - godot_int godot_vector3_max_axis(godot_vector3* p_self) - - godot_real godot_vector3_length(godot_vector3* p_self) - - godot_real godot_vector3_length_squared(godot_vector3* p_self) - - godot_bool godot_vector3_is_normalized(godot_vector3* p_self) - - godot_vector3 godot_vector3_normalized(godot_vector3* p_self) - - godot_vector3 godot_vector3_inverse(godot_vector3* p_self) - - godot_vector3 godot_vector3_snapped(godot_vector3* p_self, godot_vector3* p_by) - - godot_vector3 godot_vector3_rotated(godot_vector3* p_self, godot_vector3* p_axis, godot_real p_phi) - - godot_vector3 godot_vector3_linear_interpolate(godot_vector3* p_self, godot_vector3* p_b, godot_real p_t) - - godot_vector3 godot_vector3_cubic_interpolate(godot_vector3* p_self, godot_vector3* p_b, godot_vector3* p_pre_a, godot_vector3* p_post_b, godot_real p_t) - - godot_vector3 godot_vector3_move_toward(godot_vector3* p_self, godot_vector3* p_to, godot_real p_delta) - - godot_real godot_vector3_dot(godot_vector3* p_self, godot_vector3* p_b) - - godot_vector3 godot_vector3_cross(godot_vector3* p_self, godot_vector3* p_b) - - godot_basis godot_vector3_outer(godot_vector3* p_self, godot_vector3* p_b) - - godot_basis godot_vector3_to_diagonal_matrix(godot_vector3* p_self) - - godot_vector3 godot_vector3_abs(godot_vector3* p_self) - - godot_vector3 godot_vector3_floor(godot_vector3* p_self) - - godot_vector3 godot_vector3_ceil(godot_vector3* p_self) - - godot_real godot_vector3_distance_to(godot_vector3* p_self, godot_vector3* p_b) - - godot_real godot_vector3_distance_squared_to(godot_vector3* p_self, godot_vector3* p_b) - - godot_real godot_vector3_angle_to(godot_vector3* p_self, godot_vector3* p_to) - - godot_vector3 godot_vector3_slide(godot_vector3* p_self, godot_vector3* p_n) - - godot_vector3 godot_vector3_bounce(godot_vector3* p_self, godot_vector3* p_n) - - godot_vector3 godot_vector3_reflect(godot_vector3* p_self, godot_vector3* p_n) - - godot_vector3 godot_vector3_operator_add(godot_vector3* p_self, godot_vector3* p_b) - - godot_vector3 godot_vector3_operator_subtract(godot_vector3* p_self, godot_vector3* p_b) - - godot_vector3 godot_vector3_operator_multiply_vector(godot_vector3* p_self, godot_vector3* p_b) - - godot_vector3 godot_vector3_operator_multiply_scalar(godot_vector3* p_self, godot_real p_b) - - godot_vector3 godot_vector3_operator_divide_vector(godot_vector3* p_self, godot_vector3* p_b) - - godot_vector3 godot_vector3_operator_divide_scalar(godot_vector3* p_self, godot_real p_b) - - godot_bool godot_vector3_operator_equal(godot_vector3* p_self, godot_vector3* p_b) - - godot_bool godot_vector3_operator_less(godot_vector3* p_self, godot_vector3* p_b) - - godot_vector3 godot_vector3_operator_neg(godot_vector3* p_self) - - void godot_vector3_set_axis(godot_vector3* p_self, godot_vector3_axis p_axis, godot_real p_val) - - godot_real godot_vector3_get_axis(godot_vector3* p_self, godot_vector3_axis p_axis) - - void godot_pool_byte_array_new(godot_pool_byte_array* r_dest) - - void godot_pool_byte_array_new_copy(godot_pool_byte_array* r_dest, godot_pool_byte_array* p_src) - - void godot_pool_byte_array_new_with_array(godot_pool_byte_array* r_dest, godot_array* p_a) - - void godot_pool_byte_array_append(godot_pool_byte_array* p_self, uint8_t p_data) - - void godot_pool_byte_array_append_array(godot_pool_byte_array* p_self, godot_pool_byte_array* p_array) - - godot_error godot_pool_byte_array_insert(godot_pool_byte_array* p_self, godot_int p_idx, uint8_t p_data) - - void godot_pool_byte_array_invert(godot_pool_byte_array* p_self) - - void godot_pool_byte_array_push_back(godot_pool_byte_array* p_self, uint8_t p_data) - - void godot_pool_byte_array_remove(godot_pool_byte_array* p_self, godot_int p_idx) - - void godot_pool_byte_array_resize(godot_pool_byte_array* p_self, godot_int p_size) - - godot_pool_byte_array_read_access* godot_pool_byte_array_read(godot_pool_byte_array* p_self) - - godot_pool_byte_array_write_access* godot_pool_byte_array_write(godot_pool_byte_array* p_self) - - void godot_pool_byte_array_set(godot_pool_byte_array* p_self, godot_int p_idx, uint8_t p_data) - - uint8_t godot_pool_byte_array_get(godot_pool_byte_array* p_self, godot_int p_idx) - - godot_int godot_pool_byte_array_size(godot_pool_byte_array* p_self) - - void godot_pool_byte_array_destroy(godot_pool_byte_array* p_self) - - void godot_pool_int_array_new(godot_pool_int_array* r_dest) - - void godot_pool_int_array_new_copy(godot_pool_int_array* r_dest, godot_pool_int_array* p_src) - - void godot_pool_int_array_new_with_array(godot_pool_int_array* r_dest, godot_array* p_a) - - void godot_pool_int_array_append(godot_pool_int_array* p_self, godot_int p_data) - - void godot_pool_int_array_append_array(godot_pool_int_array* p_self, godot_pool_int_array* p_array) - - godot_error godot_pool_int_array_insert(godot_pool_int_array* p_self, godot_int p_idx, godot_int p_data) - - void godot_pool_int_array_invert(godot_pool_int_array* p_self) - - void godot_pool_int_array_push_back(godot_pool_int_array* p_self, godot_int p_data) - - void godot_pool_int_array_remove(godot_pool_int_array* p_self, godot_int p_idx) - - void godot_pool_int_array_resize(godot_pool_int_array* p_self, godot_int p_size) - - godot_pool_int_array_read_access* godot_pool_int_array_read(godot_pool_int_array* p_self) - - godot_pool_int_array_write_access* godot_pool_int_array_write(godot_pool_int_array* p_self) - - void godot_pool_int_array_set(godot_pool_int_array* p_self, godot_int p_idx, godot_int p_data) - - godot_int godot_pool_int_array_get(godot_pool_int_array* p_self, godot_int p_idx) - - godot_int godot_pool_int_array_size(godot_pool_int_array* p_self) - - void godot_pool_int_array_destroy(godot_pool_int_array* p_self) - - void godot_pool_real_array_new(godot_pool_real_array* r_dest) - - void godot_pool_real_array_new_copy(godot_pool_real_array* r_dest, godot_pool_real_array* p_src) - - void godot_pool_real_array_new_with_array(godot_pool_real_array* r_dest, godot_array* p_a) - - void godot_pool_real_array_append(godot_pool_real_array* p_self, godot_real p_data) - - void godot_pool_real_array_append_array(godot_pool_real_array* p_self, godot_pool_real_array* p_array) - - godot_error godot_pool_real_array_insert(godot_pool_real_array* p_self, godot_int p_idx, godot_real p_data) - - void godot_pool_real_array_invert(godot_pool_real_array* p_self) - - void godot_pool_real_array_push_back(godot_pool_real_array* p_self, godot_real p_data) - - void godot_pool_real_array_remove(godot_pool_real_array* p_self, godot_int p_idx) - - void godot_pool_real_array_resize(godot_pool_real_array* p_self, godot_int p_size) - - godot_pool_real_array_read_access* godot_pool_real_array_read(godot_pool_real_array* p_self) - - godot_pool_real_array_write_access* godot_pool_real_array_write(godot_pool_real_array* p_self) - - void godot_pool_real_array_set(godot_pool_real_array* p_self, godot_int p_idx, godot_real p_data) - - godot_real godot_pool_real_array_get(godot_pool_real_array* p_self, godot_int p_idx) - - godot_int godot_pool_real_array_size(godot_pool_real_array* p_self) - - void godot_pool_real_array_destroy(godot_pool_real_array* p_self) - - void godot_pool_string_array_new(godot_pool_string_array* r_dest) - - void godot_pool_string_array_new_copy(godot_pool_string_array* r_dest, godot_pool_string_array* p_src) - - void godot_pool_string_array_new_with_array(godot_pool_string_array* r_dest, godot_array* p_a) - - void godot_pool_string_array_append(godot_pool_string_array* p_self, godot_string* p_data) - - void godot_pool_string_array_append_array(godot_pool_string_array* p_self, godot_pool_string_array* p_array) - - godot_error godot_pool_string_array_insert(godot_pool_string_array* p_self, godot_int p_idx, godot_string* p_data) - - void godot_pool_string_array_invert(godot_pool_string_array* p_self) - - void godot_pool_string_array_push_back(godot_pool_string_array* p_self, godot_string* p_data) - - void godot_pool_string_array_remove(godot_pool_string_array* p_self, godot_int p_idx) - - void godot_pool_string_array_resize(godot_pool_string_array* p_self, godot_int p_size) - - godot_pool_string_array_read_access* godot_pool_string_array_read(godot_pool_string_array* p_self) - - godot_pool_string_array_write_access* godot_pool_string_array_write(godot_pool_string_array* p_self) - - void godot_pool_string_array_set(godot_pool_string_array* p_self, godot_int p_idx, godot_string* p_data) - - godot_string godot_pool_string_array_get(godot_pool_string_array* p_self, godot_int p_idx) - - godot_int godot_pool_string_array_size(godot_pool_string_array* p_self) - - void godot_pool_string_array_destroy(godot_pool_string_array* p_self) - - void godot_pool_vector2_array_new(godot_pool_vector2_array* r_dest) - - void godot_pool_vector2_array_new_copy(godot_pool_vector2_array* r_dest, godot_pool_vector2_array* p_src) - - void godot_pool_vector2_array_new_with_array(godot_pool_vector2_array* r_dest, godot_array* p_a) - - void godot_pool_vector2_array_append(godot_pool_vector2_array* p_self, godot_vector2* p_data) - - void godot_pool_vector2_array_append_array(godot_pool_vector2_array* p_self, godot_pool_vector2_array* p_array) - - godot_error godot_pool_vector2_array_insert(godot_pool_vector2_array* p_self, godot_int p_idx, godot_vector2* p_data) - - void godot_pool_vector2_array_invert(godot_pool_vector2_array* p_self) - - void godot_pool_vector2_array_push_back(godot_pool_vector2_array* p_self, godot_vector2* p_data) - - void godot_pool_vector2_array_remove(godot_pool_vector2_array* p_self, godot_int p_idx) - - void godot_pool_vector2_array_resize(godot_pool_vector2_array* p_self, godot_int p_size) - - godot_pool_vector2_array_read_access* godot_pool_vector2_array_read(godot_pool_vector2_array* p_self) - - godot_pool_vector2_array_write_access* godot_pool_vector2_array_write(godot_pool_vector2_array* p_self) - - void godot_pool_vector2_array_set(godot_pool_vector2_array* p_self, godot_int p_idx, godot_vector2* p_data) - - godot_vector2 godot_pool_vector2_array_get(godot_pool_vector2_array* p_self, godot_int p_idx) - - godot_int godot_pool_vector2_array_size(godot_pool_vector2_array* p_self) - - void godot_pool_vector2_array_destroy(godot_pool_vector2_array* p_self) - - void godot_pool_vector3_array_new(godot_pool_vector3_array* r_dest) - - void godot_pool_vector3_array_new_copy(godot_pool_vector3_array* r_dest, godot_pool_vector3_array* p_src) - - void godot_pool_vector3_array_new_with_array(godot_pool_vector3_array* r_dest, godot_array* p_a) - - void godot_pool_vector3_array_append(godot_pool_vector3_array* p_self, godot_vector3* p_data) - - void godot_pool_vector3_array_append_array(godot_pool_vector3_array* p_self, godot_pool_vector3_array* p_array) - - godot_error godot_pool_vector3_array_insert(godot_pool_vector3_array* p_self, godot_int p_idx, godot_vector3* p_data) - - void godot_pool_vector3_array_invert(godot_pool_vector3_array* p_self) - - void godot_pool_vector3_array_push_back(godot_pool_vector3_array* p_self, godot_vector3* p_data) - - void godot_pool_vector3_array_remove(godot_pool_vector3_array* p_self, godot_int p_idx) - - void godot_pool_vector3_array_resize(godot_pool_vector3_array* p_self, godot_int p_size) - - godot_pool_vector3_array_read_access* godot_pool_vector3_array_read(godot_pool_vector3_array* p_self) - - godot_pool_vector3_array_write_access* godot_pool_vector3_array_write(godot_pool_vector3_array* p_self) - - void godot_pool_vector3_array_set(godot_pool_vector3_array* p_self, godot_int p_idx, godot_vector3* p_data) - - godot_vector3 godot_pool_vector3_array_get(godot_pool_vector3_array* p_self, godot_int p_idx) - - godot_int godot_pool_vector3_array_size(godot_pool_vector3_array* p_self) - - void godot_pool_vector3_array_destroy(godot_pool_vector3_array* p_self) - - void godot_pool_color_array_new(godot_pool_color_array* r_dest) - - void godot_pool_color_array_new_copy(godot_pool_color_array* r_dest, godot_pool_color_array* p_src) - - void godot_pool_color_array_new_with_array(godot_pool_color_array* r_dest, godot_array* p_a) - - void godot_pool_color_array_append(godot_pool_color_array* p_self, godot_color* p_data) - - void godot_pool_color_array_append_array(godot_pool_color_array* p_self, godot_pool_color_array* p_array) - - godot_error godot_pool_color_array_insert(godot_pool_color_array* p_self, godot_int p_idx, godot_color* p_data) - - void godot_pool_color_array_invert(godot_pool_color_array* p_self) - - void godot_pool_color_array_push_back(godot_pool_color_array* p_self, godot_color* p_data) - - void godot_pool_color_array_remove(godot_pool_color_array* p_self, godot_int p_idx) - - void godot_pool_color_array_resize(godot_pool_color_array* p_self, godot_int p_size) - - godot_pool_color_array_read_access* godot_pool_color_array_read(godot_pool_color_array* p_self) - - godot_pool_color_array_write_access* godot_pool_color_array_write(godot_pool_color_array* p_self) - - void godot_pool_color_array_set(godot_pool_color_array* p_self, godot_int p_idx, godot_color* p_data) - - godot_color godot_pool_color_array_get(godot_pool_color_array* p_self, godot_int p_idx) - - godot_int godot_pool_color_array_size(godot_pool_color_array* p_self) - - void godot_pool_color_array_destroy(godot_pool_color_array* p_self) - - godot_pool_byte_array_read_access* godot_pool_byte_array_read_access_copy(godot_pool_byte_array_read_access* p_other) - - uint8_t* godot_pool_byte_array_read_access_ptr(godot_pool_byte_array_read_access* p_read) - - void godot_pool_byte_array_read_access_operator_assign(godot_pool_byte_array_read_access* p_read, godot_pool_byte_array_read_access* p_other) - - void godot_pool_byte_array_read_access_destroy(godot_pool_byte_array_read_access* p_read) - - godot_pool_int_array_read_access* godot_pool_int_array_read_access_copy(godot_pool_int_array_read_access* p_other) - - godot_int* godot_pool_int_array_read_access_ptr(godot_pool_int_array_read_access* p_read) - - void godot_pool_int_array_read_access_operator_assign(godot_pool_int_array_read_access* p_read, godot_pool_int_array_read_access* p_other) - - void godot_pool_int_array_read_access_destroy(godot_pool_int_array_read_access* p_read) - - godot_pool_real_array_read_access* godot_pool_real_array_read_access_copy(godot_pool_real_array_read_access* p_other) - - godot_real* godot_pool_real_array_read_access_ptr(godot_pool_real_array_read_access* p_read) - - void godot_pool_real_array_read_access_operator_assign(godot_pool_real_array_read_access* p_read, godot_pool_real_array_read_access* p_other) - - void godot_pool_real_array_read_access_destroy(godot_pool_real_array_read_access* p_read) - - godot_pool_string_array_read_access* godot_pool_string_array_read_access_copy(godot_pool_string_array_read_access* p_other) - - godot_string* godot_pool_string_array_read_access_ptr(godot_pool_string_array_read_access* p_read) - - void godot_pool_string_array_read_access_operator_assign(godot_pool_string_array_read_access* p_read, godot_pool_string_array_read_access* p_other) - - void godot_pool_string_array_read_access_destroy(godot_pool_string_array_read_access* p_read) - - godot_pool_vector2_array_read_access* godot_pool_vector2_array_read_access_copy(godot_pool_vector2_array_read_access* p_other) - - godot_vector2* godot_pool_vector2_array_read_access_ptr(godot_pool_vector2_array_read_access* p_read) - - void godot_pool_vector2_array_read_access_operator_assign(godot_pool_vector2_array_read_access* p_read, godot_pool_vector2_array_read_access* p_other) - - void godot_pool_vector2_array_read_access_destroy(godot_pool_vector2_array_read_access* p_read) - - godot_pool_vector3_array_read_access* godot_pool_vector3_array_read_access_copy(godot_pool_vector3_array_read_access* p_other) - - godot_vector3* godot_pool_vector3_array_read_access_ptr(godot_pool_vector3_array_read_access* p_read) - - void godot_pool_vector3_array_read_access_operator_assign(godot_pool_vector3_array_read_access* p_read, godot_pool_vector3_array_read_access* p_other) - - void godot_pool_vector3_array_read_access_destroy(godot_pool_vector3_array_read_access* p_read) - - godot_pool_color_array_read_access* godot_pool_color_array_read_access_copy(godot_pool_color_array_read_access* p_other) - - godot_color* godot_pool_color_array_read_access_ptr(godot_pool_color_array_read_access* p_read) - - void godot_pool_color_array_read_access_operator_assign(godot_pool_color_array_read_access* p_read, godot_pool_color_array_read_access* p_other) - - void godot_pool_color_array_read_access_destroy(godot_pool_color_array_read_access* p_read) - - godot_pool_byte_array_write_access* godot_pool_byte_array_write_access_copy(godot_pool_byte_array_write_access* p_other) - - uint8_t* godot_pool_byte_array_write_access_ptr(godot_pool_byte_array_write_access* p_write) - - void godot_pool_byte_array_write_access_operator_assign(godot_pool_byte_array_write_access* p_write, godot_pool_byte_array_write_access* p_other) - - void godot_pool_byte_array_write_access_destroy(godot_pool_byte_array_write_access* p_write) - - godot_pool_int_array_write_access* godot_pool_int_array_write_access_copy(godot_pool_int_array_write_access* p_other) - - godot_int* godot_pool_int_array_write_access_ptr(godot_pool_int_array_write_access* p_write) - - void godot_pool_int_array_write_access_operator_assign(godot_pool_int_array_write_access* p_write, godot_pool_int_array_write_access* p_other) - - void godot_pool_int_array_write_access_destroy(godot_pool_int_array_write_access* p_write) - - godot_pool_real_array_write_access* godot_pool_real_array_write_access_copy(godot_pool_real_array_write_access* p_other) - - godot_real* godot_pool_real_array_write_access_ptr(godot_pool_real_array_write_access* p_write) - - void godot_pool_real_array_write_access_operator_assign(godot_pool_real_array_write_access* p_write, godot_pool_real_array_write_access* p_other) - - void godot_pool_real_array_write_access_destroy(godot_pool_real_array_write_access* p_write) - - godot_pool_string_array_write_access* godot_pool_string_array_write_access_copy(godot_pool_string_array_write_access* p_other) - - godot_string* godot_pool_string_array_write_access_ptr(godot_pool_string_array_write_access* p_write) - - void godot_pool_string_array_write_access_operator_assign(godot_pool_string_array_write_access* p_write, godot_pool_string_array_write_access* p_other) - - void godot_pool_string_array_write_access_destroy(godot_pool_string_array_write_access* p_write) - - godot_pool_vector2_array_write_access* godot_pool_vector2_array_write_access_copy(godot_pool_vector2_array_write_access* p_other) - - godot_vector2* godot_pool_vector2_array_write_access_ptr(godot_pool_vector2_array_write_access* p_write) - - void godot_pool_vector2_array_write_access_operator_assign(godot_pool_vector2_array_write_access* p_write, godot_pool_vector2_array_write_access* p_other) - - void godot_pool_vector2_array_write_access_destroy(godot_pool_vector2_array_write_access* p_write) - - godot_pool_vector3_array_write_access* godot_pool_vector3_array_write_access_copy(godot_pool_vector3_array_write_access* p_other) - - godot_vector3* godot_pool_vector3_array_write_access_ptr(godot_pool_vector3_array_write_access* p_write) - - void godot_pool_vector3_array_write_access_operator_assign(godot_pool_vector3_array_write_access* p_write, godot_pool_vector3_array_write_access* p_other) - - void godot_pool_vector3_array_write_access_destroy(godot_pool_vector3_array_write_access* p_write) - - godot_pool_color_array_write_access* godot_pool_color_array_write_access_copy(godot_pool_color_array_write_access* p_other) - - godot_color* godot_pool_color_array_write_access_ptr(godot_pool_color_array_write_access* p_write) - - void godot_pool_color_array_write_access_operator_assign(godot_pool_color_array_write_access* p_write, godot_pool_color_array_write_access* p_other) - - void godot_pool_color_array_write_access_destroy(godot_pool_color_array_write_access* p_write) - - ctypedef struct godot_variant: - pass - - cdef enum godot_variant_type: - GODOT_VARIANT_TYPE_NIL - GODOT_VARIANT_TYPE_BOOL - GODOT_VARIANT_TYPE_INT - GODOT_VARIANT_TYPE_REAL - GODOT_VARIANT_TYPE_STRING - GODOT_VARIANT_TYPE_VECTOR2 - GODOT_VARIANT_TYPE_RECT2 - GODOT_VARIANT_TYPE_VECTOR3 - GODOT_VARIANT_TYPE_TRANSFORM2D - GODOT_VARIANT_TYPE_PLANE - GODOT_VARIANT_TYPE_QUAT - GODOT_VARIANT_TYPE_AABB - GODOT_VARIANT_TYPE_BASIS - GODOT_VARIANT_TYPE_TRANSFORM - GODOT_VARIANT_TYPE_COLOR - GODOT_VARIANT_TYPE_NODE_PATH - GODOT_VARIANT_TYPE_RID - GODOT_VARIANT_TYPE_OBJECT - GODOT_VARIANT_TYPE_DICTIONARY - GODOT_VARIANT_TYPE_ARRAY - GODOT_VARIANT_TYPE_POOL_BYTE_ARRAY - GODOT_VARIANT_TYPE_POOL_INT_ARRAY - GODOT_VARIANT_TYPE_POOL_REAL_ARRAY - GODOT_VARIANT_TYPE_POOL_STRING_ARRAY - GODOT_VARIANT_TYPE_POOL_VECTOR2_ARRAY - GODOT_VARIANT_TYPE_POOL_VECTOR3_ARRAY - GODOT_VARIANT_TYPE_POOL_COLOR_ARRAY - - cdef enum godot_variant_call_error_error: - GODOT_CALL_ERROR_CALL_OK - GODOT_CALL_ERROR_CALL_ERROR_INVALID_METHOD - GODOT_CALL_ERROR_CALL_ERROR_INVALID_ARGUMENT - GODOT_CALL_ERROR_CALL_ERROR_TOO_MANY_ARGUMENTS - GODOT_CALL_ERROR_CALL_ERROR_TOO_FEW_ARGUMENTS - GODOT_CALL_ERROR_CALL_ERROR_INSTANCE_IS_NULL - - cdef struct godot_variant_call_error: - godot_variant_call_error_error error - int argument - godot_variant_type expected - - cdef enum godot_variant_operator: - GODOT_VARIANT_OP_EQUAL - GODOT_VARIANT_OP_NOT_EQUAL - GODOT_VARIANT_OP_LESS - GODOT_VARIANT_OP_LESS_EQUAL - GODOT_VARIANT_OP_GREATER - GODOT_VARIANT_OP_GREATER_EQUAL - GODOT_VARIANT_OP_ADD - GODOT_VARIANT_OP_SUBTRACT - GODOT_VARIANT_OP_MULTIPLY - GODOT_VARIANT_OP_DIVIDE - GODOT_VARIANT_OP_NEGATE - GODOT_VARIANT_OP_POSITIVE - GODOT_VARIANT_OP_MODULE - GODOT_VARIANT_OP_STRING_CONCAT - GODOT_VARIANT_OP_SHIFT_LEFT - GODOT_VARIANT_OP_SHIFT_RIGHT - GODOT_VARIANT_OP_BIT_AND - GODOT_VARIANT_OP_BIT_OR - GODOT_VARIANT_OP_BIT_XOR - GODOT_VARIANT_OP_BIT_NEGATE - GODOT_VARIANT_OP_AND - GODOT_VARIANT_OP_OR - GODOT_VARIANT_OP_XOR - GODOT_VARIANT_OP_NOT - GODOT_VARIANT_OP_IN - GODOT_VARIANT_OP_MAX - - ctypedef struct godot_aabb: - pass - - ctypedef struct godot_plane: - pass - - void godot_plane_new_with_reals(godot_plane* r_dest, godot_real p_a, godot_real p_b, godot_real p_c, godot_real p_d) - - void godot_plane_new_with_vectors(godot_plane* r_dest, godot_vector3* p_v1, godot_vector3* p_v2, godot_vector3* p_v3) - - void godot_plane_new_with_normal(godot_plane* r_dest, godot_vector3* p_normal, godot_real p_d) - - godot_string godot_plane_as_string(godot_plane* p_self) - - godot_plane godot_plane_normalized(godot_plane* p_self) - - godot_vector3 godot_plane_center(godot_plane* p_self) - - godot_vector3 godot_plane_get_any_point(godot_plane* p_self) - - godot_bool godot_plane_is_point_over(godot_plane* p_self, godot_vector3* p_point) - - godot_real godot_plane_distance_to(godot_plane* p_self, godot_vector3* p_point) - - godot_bool godot_plane_has_point(godot_plane* p_self, godot_vector3* p_point, godot_real p_epsilon) - - godot_vector3 godot_plane_project(godot_plane* p_self, godot_vector3* p_point) - - godot_bool godot_plane_intersect_3(godot_plane* p_self, godot_vector3* r_dest, godot_plane* p_b, godot_plane* p_c) - - godot_bool godot_plane_intersects_ray(godot_plane* p_self, godot_vector3* r_dest, godot_vector3* p_from, godot_vector3* p_dir) - - godot_bool godot_plane_intersects_segment(godot_plane* p_self, godot_vector3* r_dest, godot_vector3* p_begin, godot_vector3* p_end) - - godot_plane godot_plane_operator_neg(godot_plane* p_self) - - godot_bool godot_plane_operator_equal(godot_plane* p_self, godot_plane* p_b) - - void godot_plane_set_normal(godot_plane* p_self, godot_vector3* p_normal) - - godot_vector3 godot_plane_get_normal(godot_plane* p_self) - - godot_real godot_plane_get_d(godot_plane* p_self) - - void godot_plane_set_d(godot_plane* p_self, godot_real p_d) - - void godot_aabb_new(godot_aabb* r_dest, godot_vector3* p_pos, godot_vector3* p_size) - - godot_vector3 godot_aabb_get_position(godot_aabb* p_self) - - void godot_aabb_set_position(godot_aabb* p_self, godot_vector3* p_v) - - godot_vector3 godot_aabb_get_size(godot_aabb* p_self) - - void godot_aabb_set_size(godot_aabb* p_self, godot_vector3* p_v) - - godot_string godot_aabb_as_string(godot_aabb* p_self) - - godot_real godot_aabb_get_area(godot_aabb* p_self) - - godot_bool godot_aabb_has_no_area(godot_aabb* p_self) - - godot_bool godot_aabb_has_no_surface(godot_aabb* p_self) - - godot_bool godot_aabb_intersects(godot_aabb* p_self, godot_aabb* p_with) - - godot_bool godot_aabb_encloses(godot_aabb* p_self, godot_aabb* p_with) - - godot_aabb godot_aabb_merge(godot_aabb* p_self, godot_aabb* p_with) - - godot_aabb godot_aabb_intersection(godot_aabb* p_self, godot_aabb* p_with) - - godot_bool godot_aabb_intersects_plane(godot_aabb* p_self, godot_plane* p_plane) - - godot_bool godot_aabb_intersects_segment(godot_aabb* p_self, godot_vector3* p_from, godot_vector3* p_to) - - godot_bool godot_aabb_has_point(godot_aabb* p_self, godot_vector3* p_point) - - godot_vector3 godot_aabb_get_support(godot_aabb* p_self, godot_vector3* p_dir) - - godot_vector3 godot_aabb_get_longest_axis(godot_aabb* p_self) - - godot_int godot_aabb_get_longest_axis_index(godot_aabb* p_self) - - godot_real godot_aabb_get_longest_axis_size(godot_aabb* p_self) - - godot_vector3 godot_aabb_get_shortest_axis(godot_aabb* p_self) - - godot_int godot_aabb_get_shortest_axis_index(godot_aabb* p_self) - - godot_real godot_aabb_get_shortest_axis_size(godot_aabb* p_self) - - godot_aabb godot_aabb_expand(godot_aabb* p_self, godot_vector3* p_to_point) - - godot_aabb godot_aabb_grow(godot_aabb* p_self, godot_real p_by) - - godot_vector3 godot_aabb_get_endpoint(godot_aabb* p_self, godot_int p_idx) - - godot_bool godot_aabb_operator_equal(godot_aabb* p_self, godot_aabb* p_b) - - ctypedef struct godot_dictionary: - pass - - void godot_dictionary_new(godot_dictionary* r_dest) - - void godot_dictionary_new_copy(godot_dictionary* r_dest, godot_dictionary* p_src) - - void godot_dictionary_destroy(godot_dictionary* p_self) - - godot_dictionary godot_dictionary_duplicate(godot_dictionary* p_self, godot_bool p_deep) - - godot_int godot_dictionary_size(godot_dictionary* p_self) - - godot_bool godot_dictionary_empty(godot_dictionary* p_self) - - void godot_dictionary_clear(godot_dictionary* p_self) - - godot_bool godot_dictionary_has(godot_dictionary* p_self, godot_variant* p_key) - - godot_bool godot_dictionary_has_all(godot_dictionary* p_self, godot_array* p_keys) - - void godot_dictionary_erase(godot_dictionary* p_self, godot_variant* p_key) - - godot_int godot_dictionary_hash(godot_dictionary* p_self) - - godot_array godot_dictionary_keys(godot_dictionary* p_self) - - godot_array godot_dictionary_values(godot_dictionary* p_self) - - godot_variant godot_dictionary_get(godot_dictionary* p_self, godot_variant* p_key) - - void godot_dictionary_set(godot_dictionary* p_self, godot_variant* p_key, godot_variant* p_value) - - godot_variant* godot_dictionary_operator_index(godot_dictionary* p_self, godot_variant* p_key) - - godot_variant* godot_dictionary_operator_index_const(godot_dictionary* p_self, godot_variant* p_key) - - godot_variant* godot_dictionary_next(godot_dictionary* p_self, godot_variant* p_key) - - godot_bool godot_dictionary_operator_equal(godot_dictionary* p_self, godot_dictionary* p_b) - - godot_string godot_dictionary_to_json(godot_dictionary* p_self) - - godot_bool godot_dictionary_erase_with_return(godot_dictionary* p_self, godot_variant* p_key) - - godot_variant godot_dictionary_get_with_default(godot_dictionary* p_self, godot_variant* p_key, godot_variant* p_default) - - ctypedef struct godot_node_path: - pass - - void godot_node_path_new(godot_node_path* r_dest, godot_string* p_from) - - void godot_node_path_new_copy(godot_node_path* r_dest, godot_node_path* p_src) - - void godot_node_path_destroy(godot_node_path* p_self) - - godot_string godot_node_path_as_string(godot_node_path* p_self) - - godot_bool godot_node_path_is_absolute(godot_node_path* p_self) - - godot_int godot_node_path_get_name_count(godot_node_path* p_self) - - godot_string godot_node_path_get_name(godot_node_path* p_self, godot_int p_idx) - - godot_int godot_node_path_get_subname_count(godot_node_path* p_self) - - godot_string godot_node_path_get_subname(godot_node_path* p_self, godot_int p_idx) - - godot_string godot_node_path_get_concatenated_subnames(godot_node_path* p_self) - - godot_bool godot_node_path_is_empty(godot_node_path* p_self) - - godot_bool godot_node_path_operator_equal(godot_node_path* p_self, godot_node_path* p_b) - - godot_node_path godot_node_path_get_as_property_path(godot_node_path* p_self) - - cdef struct godot_rect2: - pass - - void godot_rect2_new_with_position_and_size(godot_rect2* r_dest, godot_vector2* p_pos, godot_vector2* p_size) - - void godot_rect2_new(godot_rect2* r_dest, godot_real p_x, godot_real p_y, godot_real p_width, godot_real p_height) - - godot_string godot_rect2_as_string(godot_rect2* p_self) - - godot_real godot_rect2_get_area(godot_rect2* p_self) - - godot_bool godot_rect2_intersects(godot_rect2* p_self, godot_rect2* p_b) - - godot_bool godot_rect2_encloses(godot_rect2* p_self, godot_rect2* p_b) - - godot_bool godot_rect2_has_no_area(godot_rect2* p_self) - - godot_rect2 godot_rect2_clip(godot_rect2* p_self, godot_rect2* p_b) - - godot_rect2 godot_rect2_merge(godot_rect2* p_self, godot_rect2* p_b) - - godot_bool godot_rect2_has_point(godot_rect2* p_self, godot_vector2* p_point) - - godot_rect2 godot_rect2_grow(godot_rect2* p_self, godot_real p_by) - - godot_rect2 godot_rect2_grow_individual(godot_rect2* p_self, godot_real p_left, godot_real p_top, godot_real p_right, godot_real p_bottom) - - godot_rect2 godot_rect2_grow_margin(godot_rect2* p_self, godot_int p_margin, godot_real p_by) - - godot_rect2 godot_rect2_abs(godot_rect2* p_self) - - godot_rect2 godot_rect2_expand(godot_rect2* p_self, godot_vector2* p_to) - - godot_bool godot_rect2_operator_equal(godot_rect2* p_self, godot_rect2* p_b) - - godot_vector2 godot_rect2_get_position(godot_rect2* p_self) - - godot_vector2 godot_rect2_get_size(godot_rect2* p_self) - - void godot_rect2_set_position(godot_rect2* p_self, godot_vector2* p_pos) - - void godot_rect2_set_size(godot_rect2* p_self, godot_vector2* p_size) - - ctypedef struct godot_rid: - pass - - void godot_rid_new(godot_rid* r_dest) - - godot_int godot_rid_get_id(godot_rid* p_self) - - void godot_rid_new_with_resource(godot_rid* r_dest, godot_object* p_from) - - godot_bool godot_rid_operator_equal(godot_rid* p_self, godot_rid* p_b) - - godot_bool godot_rid_operator_less(godot_rid* p_self, godot_rid* p_b) - - ctypedef struct godot_transform: - pass - - void godot_transform_new_with_axis_origin(godot_transform* r_dest, godot_vector3* p_x_axis, godot_vector3* p_y_axis, godot_vector3* p_z_axis, godot_vector3* p_origin) - - void godot_transform_new(godot_transform* r_dest, godot_basis* p_basis, godot_vector3* p_origin) - - void godot_transform_new_with_quat(godot_transform* r_dest, godot_quat* p_quat) - - godot_basis godot_transform_get_basis(godot_transform* p_self) - - void godot_transform_set_basis(godot_transform* p_self, godot_basis* p_v) - - godot_vector3 godot_transform_get_origin(godot_transform* p_self) - - void godot_transform_set_origin(godot_transform* p_self, godot_vector3* p_v) - - godot_string godot_transform_as_string(godot_transform* p_self) - - godot_transform godot_transform_inverse(godot_transform* p_self) - - godot_transform godot_transform_affine_inverse(godot_transform* p_self) - - godot_transform godot_transform_orthonormalized(godot_transform* p_self) - - godot_transform godot_transform_rotated(godot_transform* p_self, godot_vector3* p_axis, godot_real p_phi) - - godot_transform godot_transform_scaled(godot_transform* p_self, godot_vector3* p_scale) - - godot_transform godot_transform_translated(godot_transform* p_self, godot_vector3* p_ofs) - - godot_transform godot_transform_looking_at(godot_transform* p_self, godot_vector3* p_target, godot_vector3* p_up) - - godot_plane godot_transform_xform_plane(godot_transform* p_self, godot_plane* p_v) - - godot_plane godot_transform_xform_inv_plane(godot_transform* p_self, godot_plane* p_v) - - void godot_transform_new_identity(godot_transform* r_dest) - - godot_bool godot_transform_operator_equal(godot_transform* p_self, godot_transform* p_b) - - godot_transform godot_transform_operator_multiply(godot_transform* p_self, godot_transform* p_b) - - godot_vector3 godot_transform_xform_vector3(godot_transform* p_self, godot_vector3* p_v) - - godot_vector3 godot_transform_xform_inv_vector3(godot_transform* p_self, godot_vector3* p_v) - - godot_aabb godot_transform_xform_aabb(godot_transform* p_self, godot_aabb* p_v) - - godot_aabb godot_transform_xform_inv_aabb(godot_transform* p_self, godot_aabb* p_v) - - ctypedef struct godot_transform2d: - pass - - void godot_transform2d_new(godot_transform2d* r_dest, godot_real p_rot, godot_vector2* p_pos) - - void godot_transform2d_new_axis_origin(godot_transform2d* r_dest, godot_vector2* p_x_axis, godot_vector2* p_y_axis, godot_vector2* p_origin) - - godot_string godot_transform2d_as_string(godot_transform2d* p_self) - - godot_transform2d godot_transform2d_inverse(godot_transform2d* p_self) - - godot_transform2d godot_transform2d_affine_inverse(godot_transform2d* p_self) - - godot_real godot_transform2d_get_rotation(godot_transform2d* p_self) - - godot_vector2 godot_transform2d_get_origin(godot_transform2d* p_self) - - godot_vector2 godot_transform2d_get_scale(godot_transform2d* p_self) - - godot_transform2d godot_transform2d_orthonormalized(godot_transform2d* p_self) - - godot_transform2d godot_transform2d_rotated(godot_transform2d* p_self, godot_real p_phi) - - godot_transform2d godot_transform2d_scaled(godot_transform2d* p_self, godot_vector2* p_scale) - - godot_transform2d godot_transform2d_translated(godot_transform2d* p_self, godot_vector2* p_offset) - - godot_vector2 godot_transform2d_xform_vector2(godot_transform2d* p_self, godot_vector2* p_v) - - godot_vector2 godot_transform2d_xform_inv_vector2(godot_transform2d* p_self, godot_vector2* p_v) - - godot_vector2 godot_transform2d_basis_xform_vector2(godot_transform2d* p_self, godot_vector2* p_v) - - godot_vector2 godot_transform2d_basis_xform_inv_vector2(godot_transform2d* p_self, godot_vector2* p_v) - - godot_transform2d godot_transform2d_interpolate_with(godot_transform2d* p_self, godot_transform2d* p_m, godot_real p_c) - - godot_bool godot_transform2d_operator_equal(godot_transform2d* p_self, godot_transform2d* p_b) - - godot_transform2d godot_transform2d_operator_multiply(godot_transform2d* p_self, godot_transform2d* p_b) - - void godot_transform2d_new_identity(godot_transform2d* r_dest) - - godot_rect2 godot_transform2d_xform_rect2(godot_transform2d* p_self, godot_rect2* p_v) - - godot_rect2 godot_transform2d_xform_inv_rect2(godot_transform2d* p_self, godot_rect2* p_v) - - godot_variant_type godot_variant_get_type(godot_variant* p_v) - - void godot_variant_new_copy(godot_variant* r_dest, godot_variant* p_src) - - void godot_variant_new_nil(godot_variant* r_dest) - - void godot_variant_new_bool(godot_variant* r_dest, godot_bool p_b) - - void godot_variant_new_uint(godot_variant* r_dest, uint64_t p_i) - - void godot_variant_new_int(godot_variant* r_dest, int64_t p_i) - - void godot_variant_new_real(godot_variant* r_dest, double p_r) - - void godot_variant_new_string(godot_variant* r_dest, godot_string* p_s) - - void godot_variant_new_vector2(godot_variant* r_dest, godot_vector2* p_v2) - - void godot_variant_new_rect2(godot_variant* r_dest, godot_rect2* p_rect2) - - void godot_variant_new_vector3(godot_variant* r_dest, godot_vector3* p_v3) - - void godot_variant_new_transform2d(godot_variant* r_dest, godot_transform2d* p_t2d) - - void godot_variant_new_plane(godot_variant* r_dest, godot_plane* p_plane) - - void godot_variant_new_quat(godot_variant* r_dest, godot_quat* p_quat) - - void godot_variant_new_aabb(godot_variant* r_dest, godot_aabb* p_aabb) - - void godot_variant_new_basis(godot_variant* r_dest, godot_basis* p_basis) - - void godot_variant_new_transform(godot_variant* r_dest, godot_transform* p_trans) - - void godot_variant_new_color(godot_variant* r_dest, godot_color* p_color) - - void godot_variant_new_node_path(godot_variant* r_dest, godot_node_path* p_np) - - void godot_variant_new_rid(godot_variant* r_dest, godot_rid* p_rid) - - void godot_variant_new_object(godot_variant* r_dest, godot_object* p_obj) - - void godot_variant_new_dictionary(godot_variant* r_dest, godot_dictionary* p_dict) - - void godot_variant_new_array(godot_variant* r_dest, godot_array* p_arr) - - void godot_variant_new_pool_byte_array(godot_variant* r_dest, godot_pool_byte_array* p_pba) - - void godot_variant_new_pool_int_array(godot_variant* r_dest, godot_pool_int_array* p_pia) - - void godot_variant_new_pool_real_array(godot_variant* r_dest, godot_pool_real_array* p_pra) - - void godot_variant_new_pool_string_array(godot_variant* r_dest, godot_pool_string_array* p_psa) - - void godot_variant_new_pool_vector2_array(godot_variant* r_dest, godot_pool_vector2_array* p_pv2a) - - void godot_variant_new_pool_vector3_array(godot_variant* r_dest, godot_pool_vector3_array* p_pv3a) - - void godot_variant_new_pool_color_array(godot_variant* r_dest, godot_pool_color_array* p_pca) - - godot_bool godot_variant_as_bool(godot_variant* p_self) - - uint64_t godot_variant_as_uint(godot_variant* p_self) - - int64_t godot_variant_as_int(godot_variant* p_self) - - double godot_variant_as_real(godot_variant* p_self) - - godot_string godot_variant_as_string(godot_variant* p_self) - - godot_vector2 godot_variant_as_vector2(godot_variant* p_self) - - godot_rect2 godot_variant_as_rect2(godot_variant* p_self) - - godot_vector3 godot_variant_as_vector3(godot_variant* p_self) - - godot_transform2d godot_variant_as_transform2d(godot_variant* p_self) - - godot_plane godot_variant_as_plane(godot_variant* p_self) - - godot_quat godot_variant_as_quat(godot_variant* p_self) - - godot_aabb godot_variant_as_aabb(godot_variant* p_self) - - godot_basis godot_variant_as_basis(godot_variant* p_self) - - godot_transform godot_variant_as_transform(godot_variant* p_self) - - godot_color godot_variant_as_color(godot_variant* p_self) - - godot_node_path godot_variant_as_node_path(godot_variant* p_self) - - godot_rid godot_variant_as_rid(godot_variant* p_self) - - godot_object* godot_variant_as_object(godot_variant* p_self) - - godot_dictionary godot_variant_as_dictionary(godot_variant* p_self) - - godot_array godot_variant_as_array(godot_variant* p_self) - - godot_pool_byte_array godot_variant_as_pool_byte_array(godot_variant* p_self) - - godot_pool_int_array godot_variant_as_pool_int_array(godot_variant* p_self) - - godot_pool_real_array godot_variant_as_pool_real_array(godot_variant* p_self) - - godot_pool_string_array godot_variant_as_pool_string_array(godot_variant* p_self) - - godot_pool_vector2_array godot_variant_as_pool_vector2_array(godot_variant* p_self) - - godot_pool_vector3_array godot_variant_as_pool_vector3_array(godot_variant* p_self) - - godot_pool_color_array godot_variant_as_pool_color_array(godot_variant* p_self) - - godot_variant godot_variant_call(godot_variant* p_self, godot_string* p_method, godot_variant** p_args, godot_int p_argcount, godot_variant_call_error* r_error) - - godot_bool godot_variant_has_method(godot_variant* p_self, godot_string* p_method) - - godot_bool godot_variant_operator_equal(godot_variant* p_self, godot_variant* p_other) - - godot_bool godot_variant_operator_less(godot_variant* p_self, godot_variant* p_other) - - godot_bool godot_variant_hash_compare(godot_variant* p_self, godot_variant* p_other) - - godot_bool godot_variant_booleanize(godot_variant* p_self) - - void godot_variant_destroy(godot_variant* p_self) - - godot_string godot_variant_get_operator_name(godot_variant_operator p_op) - - void godot_variant_evaluate(godot_variant_operator p_op, godot_variant* p_a, godot_variant* p_b, godot_variant* r_ret, godot_bool* r_valid) - - void godot_array_new(godot_array* r_dest) - - void godot_array_new_copy(godot_array* r_dest, godot_array* p_src) - - void godot_array_new_pool_color_array(godot_array* r_dest, godot_pool_color_array* p_pca) - - void godot_array_new_pool_vector3_array(godot_array* r_dest, godot_pool_vector3_array* p_pv3a) - - void godot_array_new_pool_vector2_array(godot_array* r_dest, godot_pool_vector2_array* p_pv2a) - - void godot_array_new_pool_string_array(godot_array* r_dest, godot_pool_string_array* p_psa) - - void godot_array_new_pool_real_array(godot_array* r_dest, godot_pool_real_array* p_pra) - - void godot_array_new_pool_int_array(godot_array* r_dest, godot_pool_int_array* p_pia) - - void godot_array_new_pool_byte_array(godot_array* r_dest, godot_pool_byte_array* p_pba) - - void godot_array_set(godot_array* p_self, godot_int p_idx, godot_variant* p_value) - - godot_variant godot_array_get(godot_array* p_self, godot_int p_idx) - - godot_variant* godot_array_operator_index(godot_array* p_self, godot_int p_idx) - - godot_variant* godot_array_operator_index_const(godot_array* p_self, godot_int p_idx) - - void godot_array_append(godot_array* p_self, godot_variant* p_value) - - void godot_array_clear(godot_array* p_self) - - godot_int godot_array_count(godot_array* p_self, godot_variant* p_value) - - godot_bool godot_array_empty(godot_array* p_self) - - void godot_array_erase(godot_array* p_self, godot_variant* p_value) - - godot_variant godot_array_front(godot_array* p_self) - - godot_variant godot_array_back(godot_array* p_self) - - godot_int godot_array_find(godot_array* p_self, godot_variant* p_what, godot_int p_from) - - godot_int godot_array_find_last(godot_array* p_self, godot_variant* p_what) - - godot_bool godot_array_has(godot_array* p_self, godot_variant* p_value) - - godot_int godot_array_hash(godot_array* p_self) - - void godot_array_insert(godot_array* p_self, godot_int p_pos, godot_variant* p_value) - - void godot_array_invert(godot_array* p_self) - - godot_variant godot_array_pop_back(godot_array* p_self) - - godot_variant godot_array_pop_front(godot_array* p_self) - - void godot_array_push_back(godot_array* p_self, godot_variant* p_value) - - void godot_array_push_front(godot_array* p_self, godot_variant* p_value) - - void godot_array_remove(godot_array* p_self, godot_int p_idx) - - void godot_array_resize(godot_array* p_self, godot_int p_size) - - godot_int godot_array_rfind(godot_array* p_self, godot_variant* p_what, godot_int p_from) - - godot_int godot_array_size(godot_array* p_self) - - void godot_array_sort(godot_array* p_self) - - void godot_array_sort_custom(godot_array* p_self, godot_object* p_obj, godot_string* p_func) - - godot_int godot_array_bsearch(godot_array* p_self, godot_variant* p_value, godot_bool p_before) - - godot_int godot_array_bsearch_custom(godot_array* p_self, godot_variant* p_value, godot_object* p_obj, godot_string* p_func, godot_bool p_before) - - void godot_array_destroy(godot_array* p_self) - - godot_array godot_array_duplicate(godot_array* p_self, godot_bool p_deep) - - godot_variant godot_array_max(godot_array* p_self) - - godot_variant godot_array_min(godot_array* p_self) - - void godot_array_shuffle(godot_array* p_self) - - godot_int godot_char_string_length(godot_char_string* p_cs) - - char* godot_char_string_get_data(godot_char_string* p_cs) - - void godot_char_string_destroy(godot_char_string* p_cs) - - void godot_string_new(godot_string* r_dest) - - void godot_string_new_copy(godot_string* r_dest, godot_string* p_src) - - void godot_string_new_with_wide_string(godot_string* r_dest, wchar_t* p_contents, int p_size) - - wchar_t* godot_string_operator_index(godot_string* p_self, godot_int p_idx) - - wchar_t godot_string_operator_index_const(godot_string* p_self, godot_int p_idx) - - wchar_t* godot_string_wide_str(godot_string* p_self) - - godot_bool godot_string_operator_equal(godot_string* p_self, godot_string* p_b) - - godot_bool godot_string_operator_less(godot_string* p_self, godot_string* p_b) - - godot_string godot_string_operator_plus(godot_string* p_self, godot_string* p_b) - - godot_int godot_string_length(godot_string* p_self) - - signed char godot_string_casecmp_to(godot_string* p_self, godot_string* p_str) - - signed char godot_string_nocasecmp_to(godot_string* p_self, godot_string* p_str) - - signed char godot_string_naturalnocasecmp_to(godot_string* p_self, godot_string* p_str) - - godot_bool godot_string_begins_with(godot_string* p_self, godot_string* p_string) - - godot_bool godot_string_begins_with_char_array(godot_string* p_self, char* p_char_array) - - godot_array godot_string_bigrams(godot_string* p_self) - - godot_string godot_string_chr(wchar_t p_character) - - godot_bool godot_string_ends_with(godot_string* p_self, godot_string* p_string) - - godot_int godot_string_find(godot_string* p_self, godot_string p_what) - - godot_int godot_string_find_from(godot_string* p_self, godot_string p_what, godot_int p_from) - - godot_int godot_string_findmk(godot_string* p_self, godot_array* p_keys) - - godot_int godot_string_findmk_from(godot_string* p_self, godot_array* p_keys, godot_int p_from) - - godot_int godot_string_findmk_from_in_place(godot_string* p_self, godot_array* p_keys, godot_int p_from, godot_int* r_key) - - godot_int godot_string_findn(godot_string* p_self, godot_string p_what) - - godot_int godot_string_findn_from(godot_string* p_self, godot_string p_what, godot_int p_from) - - godot_int godot_string_find_last(godot_string* p_self, godot_string p_what) - - godot_string godot_string_format(godot_string* p_self, godot_variant* p_values) - - godot_string godot_string_format_with_custom_placeholder(godot_string* p_self, godot_variant* p_values, char* p_placeholder) - - godot_string godot_string_hex_encode_buffer(uint8_t* p_buffer, godot_int p_len) - - godot_int godot_string_hex_to_int(godot_string* p_self) - - godot_int godot_string_hex_to_int_without_prefix(godot_string* p_self) - - godot_string godot_string_insert(godot_string* p_self, godot_int p_at_pos, godot_string p_string) - - godot_bool godot_string_is_numeric(godot_string* p_self) - - godot_bool godot_string_is_subsequence_of(godot_string* p_self, godot_string* p_string) - - godot_bool godot_string_is_subsequence_ofi(godot_string* p_self, godot_string* p_string) - - godot_string godot_string_lpad(godot_string* p_self, godot_int p_min_length) - - godot_string godot_string_lpad_with_custom_character(godot_string* p_self, godot_int p_min_length, godot_string* p_character) - - godot_bool godot_string_match(godot_string* p_self, godot_string* p_wildcard) - - godot_bool godot_string_matchn(godot_string* p_self, godot_string* p_wildcard) - - godot_string godot_string_md5(uint8_t* p_md5) - - godot_string godot_string_num(double p_num) - - godot_string godot_string_num_int64(int64_t p_num, godot_int p_base) - - godot_string godot_string_num_int64_capitalized(int64_t p_num, godot_int p_base, godot_bool p_capitalize_hex) - - godot_string godot_string_num_real(double p_num) - - godot_string godot_string_num_scientific(double p_num) - - godot_string godot_string_num_with_decimals(double p_num, godot_int p_decimals) - - godot_string godot_string_pad_decimals(godot_string* p_self, godot_int p_digits) - - godot_string godot_string_pad_zeros(godot_string* p_self, godot_int p_digits) - - godot_string godot_string_replace_first(godot_string* p_self, godot_string p_key, godot_string p_with) - - godot_string godot_string_replace(godot_string* p_self, godot_string p_key, godot_string p_with) - - godot_string godot_string_replacen(godot_string* p_self, godot_string p_key, godot_string p_with) - - godot_int godot_string_rfind(godot_string* p_self, godot_string p_what) - - godot_int godot_string_rfindn(godot_string* p_self, godot_string p_what) - - godot_int godot_string_rfind_from(godot_string* p_self, godot_string p_what, godot_int p_from) - - godot_int godot_string_rfindn_from(godot_string* p_self, godot_string p_what, godot_int p_from) - - godot_string godot_string_rpad(godot_string* p_self, godot_int p_min_length) - - godot_string godot_string_rpad_with_custom_character(godot_string* p_self, godot_int p_min_length, godot_string* p_character) - - godot_real godot_string_similarity(godot_string* p_self, godot_string* p_string) - - godot_string godot_string_sprintf(godot_string* p_self, godot_array* p_values, godot_bool* p_error) - - godot_string godot_string_substr(godot_string* p_self, godot_int p_from, godot_int p_chars) - - double godot_string_to_double(godot_string* p_self) - - godot_real godot_string_to_float(godot_string* p_self) - - godot_int godot_string_to_int(godot_string* p_self) - - godot_string godot_string_camelcase_to_underscore(godot_string* p_self) - - godot_string godot_string_camelcase_to_underscore_lowercased(godot_string* p_self) - - godot_string godot_string_capitalize(godot_string* p_self) - - double godot_string_char_to_double(char* p_what) - - godot_int godot_string_char_to_int(char* p_what) - - int64_t godot_string_wchar_to_int(wchar_t* p_str) - - godot_int godot_string_char_to_int_with_len(char* p_what, godot_int p_len) - - int64_t godot_string_char_to_int64_with_len(wchar_t* p_str, int p_len) - - int64_t godot_string_hex_to_int64(godot_string* p_self) - - int64_t godot_string_hex_to_int64_with_prefix(godot_string* p_self) - - int64_t godot_string_to_int64(godot_string* p_self) - - double godot_string_unicode_char_to_double(wchar_t* p_str, wchar_t** r_end) - - godot_int godot_string_get_slice_count(godot_string* p_self, godot_string p_splitter) - - godot_string godot_string_get_slice(godot_string* p_self, godot_string p_splitter, godot_int p_slice) - - godot_string godot_string_get_slicec(godot_string* p_self, wchar_t p_splitter, godot_int p_slice) - - godot_array godot_string_split(godot_string* p_self, godot_string* p_splitter) - - godot_array godot_string_split_allow_empty(godot_string* p_self, godot_string* p_splitter) - - godot_array godot_string_split_floats(godot_string* p_self, godot_string* p_splitter) - - godot_array godot_string_split_floats_allows_empty(godot_string* p_self, godot_string* p_splitter) - - godot_array godot_string_split_floats_mk(godot_string* p_self, godot_array* p_splitters) - - godot_array godot_string_split_floats_mk_allows_empty(godot_string* p_self, godot_array* p_splitters) - - godot_array godot_string_split_ints(godot_string* p_self, godot_string* p_splitter) - - godot_array godot_string_split_ints_allows_empty(godot_string* p_self, godot_string* p_splitter) - - godot_array godot_string_split_ints_mk(godot_string* p_self, godot_array* p_splitters) - - godot_array godot_string_split_ints_mk_allows_empty(godot_string* p_self, godot_array* p_splitters) - - godot_array godot_string_split_spaces(godot_string* p_self) - - wchar_t godot_string_char_lowercase(wchar_t p_char) - - wchar_t godot_string_char_uppercase(wchar_t p_char) - - godot_string godot_string_to_lower(godot_string* p_self) - - godot_string godot_string_to_upper(godot_string* p_self) - - godot_string godot_string_get_basename(godot_string* p_self) - - godot_string godot_string_get_extension(godot_string* p_self) - - godot_string godot_string_left(godot_string* p_self, godot_int p_pos) - - wchar_t godot_string_ord_at(godot_string* p_self, godot_int p_idx) - - godot_string godot_string_plus_file(godot_string* p_self, godot_string* p_file) - - godot_string godot_string_right(godot_string* p_self, godot_int p_pos) - - godot_string godot_string_strip_edges(godot_string* p_self, godot_bool p_left, godot_bool p_right) - - godot_string godot_string_strip_escapes(godot_string* p_self) - - void godot_string_erase(godot_string* p_self, godot_int p_pos, godot_int p_chars) - - godot_char_string godot_string_ascii(godot_string* p_self) - - godot_char_string godot_string_ascii_extended(godot_string* p_self) - - godot_char_string godot_string_utf8(godot_string* p_self) - - godot_bool godot_string_parse_utf8(godot_string* p_self, char* p_utf8) - - godot_bool godot_string_parse_utf8_with_len(godot_string* p_self, char* p_utf8, godot_int p_len) - - godot_string godot_string_chars_to_utf8(char* p_utf8) - - godot_string godot_string_chars_to_utf8_with_len(char* p_utf8, godot_int p_len) - - uint32_t godot_string_hash(godot_string* p_self) - - uint64_t godot_string_hash64(godot_string* p_self) - - uint32_t godot_string_hash_chars(char* p_cstr) - - uint32_t godot_string_hash_chars_with_len(char* p_cstr, godot_int p_len) - - uint32_t godot_string_hash_utf8_chars(wchar_t* p_str) - - uint32_t godot_string_hash_utf8_chars_with_len(wchar_t* p_str, godot_int p_len) - - godot_pool_byte_array godot_string_md5_buffer(godot_string* p_self) - - godot_string godot_string_md5_text(godot_string* p_self) - - godot_pool_byte_array godot_string_sha256_buffer(godot_string* p_self) - - godot_string godot_string_sha256_text(godot_string* p_self) - - godot_bool godot_string_empty(godot_string* p_self) - - godot_string godot_string_get_base_dir(godot_string* p_self) - - godot_string godot_string_get_file(godot_string* p_self) - - godot_string godot_string_humanize_size(size_t p_size) - - godot_bool godot_string_is_abs_path(godot_string* p_self) - - godot_bool godot_string_is_rel_path(godot_string* p_self) - - godot_bool godot_string_is_resource_file(godot_string* p_self) - - godot_string godot_string_path_to(godot_string* p_self, godot_string* p_path) - - godot_string godot_string_path_to_file(godot_string* p_self, godot_string* p_path) - - godot_string godot_string_simplify_path(godot_string* p_self) - - godot_string godot_string_c_escape(godot_string* p_self) - - godot_string godot_string_c_escape_multiline(godot_string* p_self) - - godot_string godot_string_c_unescape(godot_string* p_self) - - godot_string godot_string_http_escape(godot_string* p_self) - - godot_string godot_string_http_unescape(godot_string* p_self) - - godot_string godot_string_json_escape(godot_string* p_self) - - godot_string godot_string_word_wrap(godot_string* p_self, godot_int p_chars_per_line) - - godot_string godot_string_xml_escape(godot_string* p_self) - - godot_string godot_string_xml_escape_with_quotes(godot_string* p_self) - - godot_string godot_string_xml_unescape(godot_string* p_self) - - godot_string godot_string_percent_decode(godot_string* p_self) - - godot_string godot_string_percent_encode(godot_string* p_self) - - godot_bool godot_string_is_valid_float(godot_string* p_self) - - godot_bool godot_string_is_valid_hex_number(godot_string* p_self, godot_bool p_with_prefix) - - godot_bool godot_string_is_valid_html_color(godot_string* p_self) - - godot_bool godot_string_is_valid_identifier(godot_string* p_self) - - godot_bool godot_string_is_valid_integer(godot_string* p_self) - - godot_bool godot_string_is_valid_ip_address(godot_string* p_self) - - godot_string godot_string_dedent(godot_string* p_self) - - godot_string godot_string_trim_prefix(godot_string* p_self, godot_string* p_prefix) - - godot_string godot_string_trim_suffix(godot_string* p_self, godot_string* p_suffix) - - godot_string godot_string_rstrip(godot_string* p_self, godot_string* p_chars) - - godot_pool_string_array godot_string_rsplit(godot_string* p_self, godot_string* p_divisor, godot_bool p_allow_empty, godot_int p_maxsplit) - - void godot_string_destroy(godot_string* p_self) - - ctypedef struct godot_string_name: - pass - - void godot_string_name_new(godot_string_name* r_dest, godot_string* p_name) - - void godot_string_name_new_data(godot_string_name* r_dest, char* p_name) - - godot_string godot_string_name_get_name(godot_string_name* p_self) - - uint32_t godot_string_name_get_hash(godot_string_name* p_self) - - void* godot_string_name_get_data_unique_pointer(godot_string_name* p_self) - - godot_bool godot_string_name_operator_equal(godot_string_name* p_self, godot_string_name* p_other) - - godot_bool godot_string_name_operator_less(godot_string_name* p_self, godot_string_name* p_other) - - void godot_string_name_destroy(godot_string_name* p_self) - - void godot_object_destroy(godot_object* p_o) - - godot_object* godot_global_get_singleton(char* p_name) - - ctypedef struct godot_method_bind: - pass - - godot_method_bind* godot_method_bind_get_method(char* p_classname, char* p_methodname) - - void godot_method_bind_ptrcall(godot_method_bind* p_method_bind, godot_object* p_instance, const void** p_args, void* p_ret) - - godot_variant godot_method_bind_call(godot_method_bind* p_method_bind, godot_object* p_instance, godot_variant** p_args, int p_arg_count, godot_variant_call_error* p_call_error) - - cdef struct godot_gdnative_api_version: - unsigned int major - unsigned int minor - - cdef struct godot_gdnative_api_struct: - unsigned int type - godot_gdnative_api_version version - godot_gdnative_api_struct* next - - ctypedef void (*_godot_gdnative_init_options_godot_gdnative_init_options_report_version_mismatch_ft)(godot_object* p_library, char* p_what, godot_gdnative_api_version p_want, godot_gdnative_api_version p_have) - - ctypedef void (*_godot_gdnative_init_options_godot_gdnative_init_options_report_loading_error_ft)(godot_object* p_library, char* p_what) - - ctypedef struct godot_gdnative_init_options: - godot_bool in_editor - uint64_t core_api_hash - uint64_t editor_api_hash - uint64_t no_api_hash - _godot_gdnative_init_options_godot_gdnative_init_options_report_version_mismatch_ft report_version_mismatch - _godot_gdnative_init_options_godot_gdnative_init_options_report_loading_error_ft report_loading_error - godot_object* gd_native_library - godot_gdnative_core_api_struct* api_struct - godot_string* active_library_path - - ctypedef struct godot_gdnative_terminate_options: - godot_bool in_editor - - ctypedef godot_object* (*godot_class_constructor)() - - godot_class_constructor godot_get_class_constructor(char* p_classname) - - godot_dictionary godot_get_global_constants() - - ctypedef void (*godot_gdnative_init_fn)(godot_gdnative_init_options*) - - ctypedef void (*godot_gdnative_terminate_fn)(godot_gdnative_terminate_options*) - - ctypedef godot_variant (*godot_gdnative_procedure_fn)(godot_array*) - - ctypedef godot_variant (*native_call_cb)(void*, godot_array*) - - void godot_register_native_call_type(char* p_call_type, native_call_cb p_callback) - - void* godot_alloc(int p_bytes) - - void* godot_realloc(void* p_ptr, int p_bytes) - - void godot_free(void* p_ptr) - - void godot_print_error(char* p_description, char* p_function, char* p_file, int p_line) - - void godot_print_warning(char* p_description, char* p_function, char* p_file, int p_line) - - void godot_print(godot_string* p_message) - - bool godot_is_instance_valid(godot_object* p_object) - - void* godot_android_get_env() - - void* godot_android_get_activity() - - void* godot_android_get_surface() - - bool godot_android_is_activity_resumed() - - ctypedef void* (*_godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_constructor_ft)(godot_object*) - - ctypedef void (*_godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_destructor_ft)(void*) - - ctypedef godot_string (*_godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_get_name_ft)(void*) - - ctypedef godot_int (*_godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_get_capabilities_ft)(void*) - - ctypedef godot_bool (*_godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_get_anchor_detection_is_enabled_ft)(void*) - - ctypedef void (*_godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_set_anchor_detection_is_enabled_ft)(void*, godot_bool) - - ctypedef godot_bool (*_godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_is_stereo_ft)(void*) - - ctypedef godot_bool (*_godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_is_initialized_ft)(void*) - - ctypedef godot_bool (*_godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_initialize_ft)(void*) - - ctypedef void (*_godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_uninitialize_ft)(void*) - - ctypedef godot_vector2 (*_godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_get_render_targetsize_ft)(void*) - - ctypedef godot_transform (*_godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_get_transform_for_eye_ft)(void*, godot_int, godot_transform*) - - ctypedef void (*_godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_fill_projection_for_eye_ft)(void*, godot_real*, godot_int, godot_real, godot_real, godot_real) - - ctypedef void (*_godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_commit_for_eye_ft)(void*, godot_int, godot_rid*, godot_rect2*) - - ctypedef void (*_godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_process_ft)(void*) - - ctypedef godot_int (*_godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_get_external_texture_for_eye_ft)(void*, godot_int) - - ctypedef void (*_godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_notification_ft)(void*, godot_int) - - ctypedef godot_int (*_godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_get_camera_feed_id_ft)(void*) - - ctypedef struct godot_arvr_interface_gdnative: - godot_gdnative_api_version version - _godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_constructor_ft constructor - _godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_destructor_ft destructor - _godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_get_name_ft get_name - _godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_get_capabilities_ft get_capabilities - _godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_get_anchor_detection_is_enabled_ft get_anchor_detection_is_enabled - _godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_set_anchor_detection_is_enabled_ft set_anchor_detection_is_enabled - _godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_is_stereo_ft is_stereo - _godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_is_initialized_ft is_initialized - _godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_initialize_ft initialize - _godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_uninitialize_ft uninitialize - _godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_get_render_targetsize_ft get_render_targetsize - _godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_get_transform_for_eye_ft get_transform_for_eye - _godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_fill_projection_for_eye_ft fill_projection_for_eye - _godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_commit_for_eye_ft commit_for_eye - _godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_process_ft process - _godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_get_external_texture_for_eye_ft get_external_texture_for_eye - _godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_notification_ft notification - _godot_arvr_interface_gdnative_godot_arvr_interface_gdnative_get_camera_feed_id_ft get_camera_feed_id - - void godot_arvr_register_interface(godot_arvr_interface_gdnative* p_interface) - - godot_real godot_arvr_get_worldscale() - - godot_transform godot_arvr_get_reference_frame() - - void godot_arvr_blit(godot_int p_eye, godot_rid* p_render_target, godot_rect2* p_rect) - - godot_int godot_arvr_get_texid(godot_rid* p_render_target) - - godot_int godot_arvr_add_controller(char* p_device_name, godot_int p_hand, godot_bool p_tracks_orientation, godot_bool p_tracks_position) - - void godot_arvr_remove_controller(godot_int p_controller_id) - - void godot_arvr_set_controller_transform(godot_int p_controller_id, godot_transform* p_transform, godot_bool p_tracks_orientation, godot_bool p_tracks_position) - - void godot_arvr_set_controller_button(godot_int p_controller_id, godot_int p_button, godot_bool p_is_pressed) - - void godot_arvr_set_controller_axis(godot_int p_controller_id, godot_int p_axis, godot_real p_value, godot_bool p_can_be_negative) - - godot_real godot_arvr_get_controller_rumble(godot_int p_controller_id) - - ctypedef enum godot_method_rpc_mode: - GODOT_METHOD_RPC_MODE_DISABLED - GODOT_METHOD_RPC_MODE_REMOTE - GODOT_METHOD_RPC_MODE_MASTER - GODOT_METHOD_RPC_MODE_PUPPET - GODOT_METHOD_RPC_MODE_SLAVE - GODOT_METHOD_RPC_MODE_REMOTESYNC - GODOT_METHOD_RPC_MODE_SYNC - GODOT_METHOD_RPC_MODE_MASTERSYNC - GODOT_METHOD_RPC_MODE_PUPPETSYNC - - ctypedef enum godot_property_hint: - GODOT_PROPERTY_HINT_NONE - GODOT_PROPERTY_HINT_RANGE - GODOT_PROPERTY_HINT_EXP_RANGE - GODOT_PROPERTY_HINT_ENUM - GODOT_PROPERTY_HINT_EXP_EASING - GODOT_PROPERTY_HINT_LENGTH - GODOT_PROPERTY_HINT_SPRITE_FRAME - GODOT_PROPERTY_HINT_KEY_ACCEL - GODOT_PROPERTY_HINT_FLAGS - GODOT_PROPERTY_HINT_LAYERS_2D_RENDER - GODOT_PROPERTY_HINT_LAYERS_2D_PHYSICS - GODOT_PROPERTY_HINT_LAYERS_3D_RENDER - GODOT_PROPERTY_HINT_LAYERS_3D_PHYSICS - GODOT_PROPERTY_HINT_FILE - GODOT_PROPERTY_HINT_DIR - GODOT_PROPERTY_HINT_GLOBAL_FILE - GODOT_PROPERTY_HINT_GLOBAL_DIR - GODOT_PROPERTY_HINT_RESOURCE_TYPE - GODOT_PROPERTY_HINT_MULTILINE_TEXT - GODOT_PROPERTY_HINT_PLACEHOLDER_TEXT - GODOT_PROPERTY_HINT_COLOR_NO_ALPHA - GODOT_PROPERTY_HINT_IMAGE_COMPRESS_LOSSY - GODOT_PROPERTY_HINT_IMAGE_COMPRESS_LOSSLESS - GODOT_PROPERTY_HINT_OBJECT_ID - GODOT_PROPERTY_HINT_TYPE_STRING - GODOT_PROPERTY_HINT_NODE_PATH_TO_EDITED_NODE - GODOT_PROPERTY_HINT_METHOD_OF_VARIANT_TYPE - GODOT_PROPERTY_HINT_METHOD_OF_BASE_TYPE - GODOT_PROPERTY_HINT_METHOD_OF_INSTANCE - GODOT_PROPERTY_HINT_METHOD_OF_SCRIPT - GODOT_PROPERTY_HINT_PROPERTY_OF_VARIANT_TYPE - GODOT_PROPERTY_HINT_PROPERTY_OF_BASE_TYPE - GODOT_PROPERTY_HINT_PROPERTY_OF_INSTANCE - GODOT_PROPERTY_HINT_PROPERTY_OF_SCRIPT - GODOT_PROPERTY_HINT_MAX - - ctypedef enum godot_property_usage_flags: - GODOT_PROPERTY_USAGE_STORAGE - GODOT_PROPERTY_USAGE_EDITOR - GODOT_PROPERTY_USAGE_NETWORK - GODOT_PROPERTY_USAGE_EDITOR_HELPER - GODOT_PROPERTY_USAGE_CHECKABLE - GODOT_PROPERTY_USAGE_CHECKED - GODOT_PROPERTY_USAGE_INTERNATIONALIZED - GODOT_PROPERTY_USAGE_GROUP - GODOT_PROPERTY_USAGE_CATEGORY - GODOT_PROPERTY_USAGE_STORE_IF_NONZERO - GODOT_PROPERTY_USAGE_STORE_IF_NONONE - GODOT_PROPERTY_USAGE_NO_INSTANCE_STATE - GODOT_PROPERTY_USAGE_RESTART_IF_CHANGED - GODOT_PROPERTY_USAGE_SCRIPT_VARIABLE - GODOT_PROPERTY_USAGE_STORE_IF_NULL - GODOT_PROPERTY_USAGE_ANIMATE_AS_TRIGGER - GODOT_PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED - GODOT_PROPERTY_USAGE_DEFAULT - GODOT_PROPERTY_USAGE_DEFAULT_INTL - GODOT_PROPERTY_USAGE_NOEDITOR - - ctypedef struct godot_property_attributes: - godot_method_rpc_mode rset_type - godot_int type - godot_property_hint hint - godot_string hint_string - godot_property_usage_flags usage - godot_variant default_value - - ctypedef void* (*_godot_instance_create_func_godot_instance_create_func_create_func_ft)(godot_object*, void*) - - ctypedef void (*_godot_instance_create_func_godot_instance_create_func_free_func_ft)(void*) - - ctypedef struct godot_instance_create_func: - _godot_instance_create_func_godot_instance_create_func_create_func_ft create_func - void* method_data - _godot_instance_create_func_godot_instance_create_func_free_func_ft free_func - - ctypedef void (*_godot_instance_destroy_func_godot_instance_destroy_func_destroy_func_ft)(godot_object*, void*, void*) - - ctypedef void (*_godot_instance_destroy_func_godot_instance_destroy_func_free_func_ft)(void*) - - ctypedef struct godot_instance_destroy_func: - _godot_instance_destroy_func_godot_instance_destroy_func_destroy_func_ft destroy_func - void* method_data - _godot_instance_destroy_func_godot_instance_destroy_func_free_func_ft free_func - - void godot_nativescript_register_class(void* p_gdnative_handle, char* p_name, char* p_base, godot_instance_create_func p_create_func, godot_instance_destroy_func p_destroy_func) - - void godot_nativescript_register_tool_class(void* p_gdnative_handle, char* p_name, char* p_base, godot_instance_create_func p_create_func, godot_instance_destroy_func p_destroy_func) - - ctypedef struct godot_method_attributes: - godot_method_rpc_mode rpc_type - - ctypedef godot_variant (*_godot_instance_method_godot_instance_method_method_ft)(godot_object*, void*, void*, int, godot_variant**) - - ctypedef void (*_godot_instance_method_godot_instance_method_free_func_ft)(void*) - - ctypedef struct godot_instance_method: - _godot_instance_method_godot_instance_method_method_ft method - void* method_data - _godot_instance_method_godot_instance_method_free_func_ft free_func - - void godot_nativescript_register_method(void* p_gdnative_handle, char* p_name, char* p_function_name, godot_method_attributes p_attr, godot_instance_method p_method) - - ctypedef void (*_godot_property_set_func_godot_property_set_func_set_func_ft)(godot_object*, void*, void*, godot_variant*) - - ctypedef void (*_godot_property_set_func_godot_property_set_func_free_func_ft)(void*) - - ctypedef struct godot_property_set_func: - _godot_property_set_func_godot_property_set_func_set_func_ft set_func - void* method_data - _godot_property_set_func_godot_property_set_func_free_func_ft free_func - - ctypedef godot_variant (*_godot_property_get_func_godot_property_get_func_get_func_ft)(godot_object*, void*, void*) - - ctypedef void (*_godot_property_get_func_godot_property_get_func_free_func_ft)(void*) - - ctypedef struct godot_property_get_func: - _godot_property_get_func_godot_property_get_func_get_func_ft get_func - void* method_data - _godot_property_get_func_godot_property_get_func_free_func_ft free_func - - void godot_nativescript_register_property(void* p_gdnative_handle, char* p_name, char* p_path, godot_property_attributes* p_attr, godot_property_set_func p_set_func, godot_property_get_func p_get_func) - - ctypedef struct godot_signal_argument: - godot_string name - godot_int type - godot_property_hint hint - godot_string hint_string - godot_property_usage_flags usage - godot_variant default_value - - ctypedef struct godot_signal: - godot_string name - int num_args - godot_signal_argument* args - int num_default_args - godot_variant* default_args - - void godot_nativescript_register_signal(void* p_gdnative_handle, char* p_name, godot_signal* p_signal) - - void* godot_nativescript_get_userdata(godot_object* p_instance) - - ctypedef struct godot_method_arg: - godot_string name - godot_variant_type type - godot_property_hint hint - godot_string hint_string - - void godot_nativescript_set_method_argument_information(void* p_gdnative_handle, char* p_name, char* p_function_name, int p_num_args, godot_method_arg* p_args) - - void godot_nativescript_set_class_documentation(void* p_gdnative_handle, char* p_name, godot_string p_documentation) - - void godot_nativescript_set_method_documentation(void* p_gdnative_handle, char* p_name, char* p_function_name, godot_string p_documentation) - - void godot_nativescript_set_property_documentation(void* p_gdnative_handle, char* p_name, char* p_path, godot_string p_documentation) - - void godot_nativescript_set_signal_documentation(void* p_gdnative_handle, char* p_name, char* p_signal_name, godot_string p_documentation) - - void godot_nativescript_set_global_type_tag(int p_idx, char* p_name, void* p_type_tag) - - void* godot_nativescript_get_global_type_tag(int p_idx, char* p_name) - - void godot_nativescript_set_type_tag(void* p_gdnative_handle, char* p_name, void* p_type_tag) - - void* godot_nativescript_get_type_tag(godot_object* p_object) - - ctypedef void* (*_godot_instance_binding_functions_godot_instance_binding_functions_alloc_instance_binding_data_ft)(void*, void*, godot_object*) - - ctypedef void (*_godot_instance_binding_functions_godot_instance_binding_functions_free_instance_binding_data_ft)(void*, void*) - - ctypedef void (*_godot_instance_binding_functions_godot_instance_binding_functions_refcount_incremented_instance_binding_ft)(void*, godot_object*) - - ctypedef bool (*_godot_instance_binding_functions_godot_instance_binding_functions_refcount_decremented_instance_binding_ft)(void*, godot_object*) - - ctypedef void (*_godot_instance_binding_functions_godot_instance_binding_functions_free_func_ft)(void*) - - ctypedef struct godot_instance_binding_functions: - _godot_instance_binding_functions_godot_instance_binding_functions_alloc_instance_binding_data_ft alloc_instance_binding_data - _godot_instance_binding_functions_godot_instance_binding_functions_free_instance_binding_data_ft free_instance_binding_data - _godot_instance_binding_functions_godot_instance_binding_functions_refcount_incremented_instance_binding_ft refcount_incremented_instance_binding - _godot_instance_binding_functions_godot_instance_binding_functions_refcount_decremented_instance_binding_ft refcount_decremented_instance_binding - void* data - _godot_instance_binding_functions_godot_instance_binding_functions_free_func_ft free_func - - int godot_nativescript_register_instance_binding_data_functions(godot_instance_binding_functions p_binding_functions) - - void godot_nativescript_unregister_instance_binding_data_functions(int p_idx) - - void* godot_nativescript_get_instance_binding_data(int p_idx, godot_object* p_object) - - void godot_nativescript_profiling_add_data(char* p_signature, uint64_t p_time) - - ctypedef godot_error (*_godot_net_stream_peer_godot_net_stream_peer_get_data_ft)(void* user, uint8_t* p_buffer, int p_bytes) - - ctypedef godot_error (*_godot_net_stream_peer_godot_net_stream_peer_get_partial_data_ft)(void* user, uint8_t* p_buffer, int p_bytes, int* r_received) - - ctypedef godot_error (*_godot_net_stream_peer_godot_net_stream_peer_put_data_ft)(void* user, uint8_t* p_data, int p_bytes) - - ctypedef godot_error (*_godot_net_stream_peer_godot_net_stream_peer_put_partial_data_ft)(void* user, uint8_t* p_data, int p_bytes, int* r_sent) - - ctypedef int (*_godot_net_stream_peer_godot_net_stream_peer_get_available_bytes_ft)(void* user) - - ctypedef struct godot_net_stream_peer: - godot_gdnative_api_version version - godot_object* data - _godot_net_stream_peer_godot_net_stream_peer_get_data_ft get_data - _godot_net_stream_peer_godot_net_stream_peer_get_partial_data_ft get_partial_data - _godot_net_stream_peer_godot_net_stream_peer_put_data_ft put_data - _godot_net_stream_peer_godot_net_stream_peer_put_partial_data_ft put_partial_data - _godot_net_stream_peer_godot_net_stream_peer_get_available_bytes_ft get_available_bytes - void* next - - void godot_net_bind_stream_peer(godot_object* p_obj, godot_net_stream_peer* p_interface) - - ctypedef godot_error (*_godot_net_packet_peer_godot_net_packet_peer_get_packet_ft)(void*, uint8_t**, int*) - - ctypedef godot_error (*_godot_net_packet_peer_godot_net_packet_peer_put_packet_ft)(void*, uint8_t*, int) - - ctypedef godot_int (*_godot_net_packet_peer_godot_net_packet_peer_get_available_packet_count_ft)(void*) - - ctypedef godot_int (*_godot_net_packet_peer_godot_net_packet_peer_get_max_packet_size_ft)(void*) - - ctypedef struct godot_net_packet_peer: - godot_gdnative_api_version version - godot_object* data - _godot_net_packet_peer_godot_net_packet_peer_get_packet_ft get_packet - _godot_net_packet_peer_godot_net_packet_peer_put_packet_ft put_packet - _godot_net_packet_peer_godot_net_packet_peer_get_available_packet_count_ft get_available_packet_count - _godot_net_packet_peer_godot_net_packet_peer_get_max_packet_size_ft get_max_packet_size - void* next - - void godot_net_bind_packet_peer(godot_object* p_obj, godot_net_packet_peer*) - - ctypedef godot_error (*_godot_net_multiplayer_peer_godot_net_multiplayer_peer_get_packet_ft)(void*, uint8_t**, int*) - - ctypedef godot_error (*_godot_net_multiplayer_peer_godot_net_multiplayer_peer_put_packet_ft)(void*, uint8_t*, int) - - ctypedef godot_int (*_godot_net_multiplayer_peer_godot_net_multiplayer_peer_get_available_packet_count_ft)(void*) - - ctypedef godot_int (*_godot_net_multiplayer_peer_godot_net_multiplayer_peer_get_max_packet_size_ft)(void*) - - ctypedef void (*_godot_net_multiplayer_peer_godot_net_multiplayer_peer_set_transfer_mode_ft)(void*, godot_int) - - ctypedef godot_int (*_godot_net_multiplayer_peer_godot_net_multiplayer_peer_get_transfer_mode_ft)(void*) - - ctypedef void (*_godot_net_multiplayer_peer_godot_net_multiplayer_peer_set_target_peer_ft)(void*, godot_int) - - ctypedef godot_int (*_godot_net_multiplayer_peer_godot_net_multiplayer_peer_get_packet_peer_ft)(void*) - - ctypedef godot_bool (*_godot_net_multiplayer_peer_godot_net_multiplayer_peer_is_server_ft)(void*) - - ctypedef void (*_godot_net_multiplayer_peer_godot_net_multiplayer_peer_poll_ft)(void*) - - ctypedef int32_t (*_godot_net_multiplayer_peer_godot_net_multiplayer_peer_get_unique_id_ft)(void*) - - ctypedef void (*_godot_net_multiplayer_peer_godot_net_multiplayer_peer_set_refuse_new_connections_ft)(void*, godot_bool) - - ctypedef godot_bool (*_godot_net_multiplayer_peer_godot_net_multiplayer_peer_is_refusing_new_connections_ft)(void*) - - ctypedef godot_int (*_godot_net_multiplayer_peer_godot_net_multiplayer_peer_get_connection_status_ft)(void*) - - ctypedef struct godot_net_multiplayer_peer: - godot_gdnative_api_version version - godot_object* data - _godot_net_multiplayer_peer_godot_net_multiplayer_peer_get_packet_ft get_packet - _godot_net_multiplayer_peer_godot_net_multiplayer_peer_put_packet_ft put_packet - _godot_net_multiplayer_peer_godot_net_multiplayer_peer_get_available_packet_count_ft get_available_packet_count - _godot_net_multiplayer_peer_godot_net_multiplayer_peer_get_max_packet_size_ft get_max_packet_size - _godot_net_multiplayer_peer_godot_net_multiplayer_peer_set_transfer_mode_ft set_transfer_mode - _godot_net_multiplayer_peer_godot_net_multiplayer_peer_get_transfer_mode_ft get_transfer_mode - _godot_net_multiplayer_peer_godot_net_multiplayer_peer_set_target_peer_ft set_target_peer - _godot_net_multiplayer_peer_godot_net_multiplayer_peer_get_packet_peer_ft get_packet_peer - _godot_net_multiplayer_peer_godot_net_multiplayer_peer_is_server_ft is_server - _godot_net_multiplayer_peer_godot_net_multiplayer_peer_poll_ft poll - _godot_net_multiplayer_peer_godot_net_multiplayer_peer_get_unique_id_ft get_unique_id - _godot_net_multiplayer_peer_godot_net_multiplayer_peer_set_refuse_new_connections_ft set_refuse_new_connections - _godot_net_multiplayer_peer_godot_net_multiplayer_peer_is_refusing_new_connections_ft is_refusing_new_connections - _godot_net_multiplayer_peer_godot_net_multiplayer_peer_get_connection_status_ft get_connection_status - void* next - - void godot_net_bind_multiplayer_peer(godot_object* p_obj, godot_net_multiplayer_peer*) - - ctypedef void (*_godot_net_webrtc_library_godot_net_webrtc_library_unregistered_ft)() - - ctypedef godot_error (*_godot_net_webrtc_library_godot_net_webrtc_library_create_peer_connection_ft)(godot_object*) - - ctypedef struct godot_net_webrtc_library: - godot_gdnative_api_version version - _godot_net_webrtc_library_godot_net_webrtc_library_unregistered_ft unregistered - _godot_net_webrtc_library_godot_net_webrtc_library_create_peer_connection_ft create_peer_connection - void* next - - ctypedef godot_int (*_godot_net_webrtc_peer_connection_godot_net_webrtc_peer_connection_get_connection_state_ft)(void*) - - ctypedef godot_error (*_godot_net_webrtc_peer_connection_godot_net_webrtc_peer_connection_initialize_ft)(void*, godot_dictionary*) - - ctypedef godot_object* (*_godot_net_webrtc_peer_connection_godot_net_webrtc_peer_connection_create_data_channel_ft)(void*, char* p_channel_name, godot_dictionary*) - - ctypedef godot_error (*_godot_net_webrtc_peer_connection_godot_net_webrtc_peer_connection_create_offer_ft)(void*) - - ctypedef godot_error (*_godot_net_webrtc_peer_connection_godot_net_webrtc_peer_connection_create_answer_ft)(void*) - - ctypedef godot_error (*_godot_net_webrtc_peer_connection_godot_net_webrtc_peer_connection_set_remote_description_ft)(void*, char*, char*) - - ctypedef godot_error (*_godot_net_webrtc_peer_connection_godot_net_webrtc_peer_connection_set_local_description_ft)(void*, char*, char*) - - ctypedef godot_error (*_godot_net_webrtc_peer_connection_godot_net_webrtc_peer_connection_add_ice_candidate_ft)(void*, char*, int, char*) - - ctypedef godot_error (*_godot_net_webrtc_peer_connection_godot_net_webrtc_peer_connection_poll_ft)(void*) - - ctypedef void (*_godot_net_webrtc_peer_connection_godot_net_webrtc_peer_connection_close_ft)(void*) - - ctypedef struct godot_net_webrtc_peer_connection: - godot_gdnative_api_version version - godot_object* data - _godot_net_webrtc_peer_connection_godot_net_webrtc_peer_connection_get_connection_state_ft get_connection_state - _godot_net_webrtc_peer_connection_godot_net_webrtc_peer_connection_initialize_ft initialize - _godot_net_webrtc_peer_connection_godot_net_webrtc_peer_connection_create_data_channel_ft create_data_channel - _godot_net_webrtc_peer_connection_godot_net_webrtc_peer_connection_create_offer_ft create_offer - _godot_net_webrtc_peer_connection_godot_net_webrtc_peer_connection_create_answer_ft create_answer - _godot_net_webrtc_peer_connection_godot_net_webrtc_peer_connection_set_remote_description_ft set_remote_description - _godot_net_webrtc_peer_connection_godot_net_webrtc_peer_connection_set_local_description_ft set_local_description - _godot_net_webrtc_peer_connection_godot_net_webrtc_peer_connection_add_ice_candidate_ft add_ice_candidate - _godot_net_webrtc_peer_connection_godot_net_webrtc_peer_connection_poll_ft poll - _godot_net_webrtc_peer_connection_godot_net_webrtc_peer_connection_close_ft close - void* next - - ctypedef godot_error (*_godot_net_webrtc_data_channel_godot_net_webrtc_data_channel_get_packet_ft)(void*, uint8_t**, int*) - - ctypedef godot_error (*_godot_net_webrtc_data_channel_godot_net_webrtc_data_channel_put_packet_ft)(void*, uint8_t*, int) - - ctypedef godot_int (*_godot_net_webrtc_data_channel_godot_net_webrtc_data_channel_get_available_packet_count_ft)(void*) - - ctypedef godot_int (*_godot_net_webrtc_data_channel_godot_net_webrtc_data_channel_get_max_packet_size_ft)(void*) - - ctypedef void (*_godot_net_webrtc_data_channel_godot_net_webrtc_data_channel_set_write_mode_ft)(void*, godot_int) - - ctypedef godot_int (*_godot_net_webrtc_data_channel_godot_net_webrtc_data_channel_get_write_mode_ft)(void*) - - ctypedef bool (*_godot_net_webrtc_data_channel_godot_net_webrtc_data_channel_was_string_packet_ft)(void*) - - ctypedef godot_int (*_godot_net_webrtc_data_channel_godot_net_webrtc_data_channel_get_ready_state_ft)(void*) - - ctypedef char* (*_godot_net_webrtc_data_channel_godot_net_webrtc_data_channel_get_label_ft)(void*) - - ctypedef bool (*_godot_net_webrtc_data_channel_godot_net_webrtc_data_channel_is_ordered_ft)(void*) - - ctypedef int (*_godot_net_webrtc_data_channel_godot_net_webrtc_data_channel_get_id_ft)(void*) - - ctypedef int (*_godot_net_webrtc_data_channel_godot_net_webrtc_data_channel_get_max_packet_life_time_ft)(void*) - - ctypedef int (*_godot_net_webrtc_data_channel_godot_net_webrtc_data_channel_get_max_retransmits_ft)(void*) - - ctypedef char* (*_godot_net_webrtc_data_channel_godot_net_webrtc_data_channel_get_protocol_ft)(void*) - - ctypedef bool (*_godot_net_webrtc_data_channel_godot_net_webrtc_data_channel_is_negotiated_ft)(void*) - - ctypedef godot_error (*_godot_net_webrtc_data_channel_godot_net_webrtc_data_channel_poll_ft)(void*) - - ctypedef void (*_godot_net_webrtc_data_channel_godot_net_webrtc_data_channel_close_ft)(void*) - - ctypedef struct godot_net_webrtc_data_channel: - godot_gdnative_api_version version - godot_object* data - _godot_net_webrtc_data_channel_godot_net_webrtc_data_channel_get_packet_ft get_packet - _godot_net_webrtc_data_channel_godot_net_webrtc_data_channel_put_packet_ft put_packet - _godot_net_webrtc_data_channel_godot_net_webrtc_data_channel_get_available_packet_count_ft get_available_packet_count - _godot_net_webrtc_data_channel_godot_net_webrtc_data_channel_get_max_packet_size_ft get_max_packet_size - _godot_net_webrtc_data_channel_godot_net_webrtc_data_channel_set_write_mode_ft set_write_mode - _godot_net_webrtc_data_channel_godot_net_webrtc_data_channel_get_write_mode_ft get_write_mode - _godot_net_webrtc_data_channel_godot_net_webrtc_data_channel_was_string_packet_ft was_string_packet - _godot_net_webrtc_data_channel_godot_net_webrtc_data_channel_get_ready_state_ft get_ready_state - _godot_net_webrtc_data_channel_godot_net_webrtc_data_channel_get_label_ft get_label - _godot_net_webrtc_data_channel_godot_net_webrtc_data_channel_is_ordered_ft is_ordered - _godot_net_webrtc_data_channel_godot_net_webrtc_data_channel_get_id_ft get_id - _godot_net_webrtc_data_channel_godot_net_webrtc_data_channel_get_max_packet_life_time_ft get_max_packet_life_time - _godot_net_webrtc_data_channel_godot_net_webrtc_data_channel_get_max_retransmits_ft get_max_retransmits - _godot_net_webrtc_data_channel_godot_net_webrtc_data_channel_get_protocol_ft get_protocol - _godot_net_webrtc_data_channel_godot_net_webrtc_data_channel_is_negotiated_ft is_negotiated - _godot_net_webrtc_data_channel_godot_net_webrtc_data_channel_poll_ft poll - _godot_net_webrtc_data_channel_godot_net_webrtc_data_channel_close_ft close - void* next - - godot_error godot_net_set_webrtc_library(godot_net_webrtc_library*) - - void godot_net_bind_webrtc_peer_connection(godot_object* p_obj, godot_net_webrtc_peer_connection*) - - void godot_net_bind_webrtc_data_channel(godot_object* p_obj, godot_net_webrtc_data_channel*) - - ctypedef void godot_pluginscript_instance_data - - ctypedef void godot_pluginscript_script_data - - ctypedef void godot_pluginscript_language_data - - ctypedef godot_pluginscript_instance_data* (*_godot_pluginscript_instance_desc_godot_pluginscript_instance_desc_init_ft)(godot_pluginscript_script_data* p_data, godot_object* p_owner) - - ctypedef void (*_godot_pluginscript_instance_desc_godot_pluginscript_instance_desc_finish_ft)(godot_pluginscript_instance_data* p_data) - - ctypedef godot_bool (*_godot_pluginscript_instance_desc_godot_pluginscript_instance_desc_set_prop_ft)(godot_pluginscript_instance_data* p_data, godot_string* p_name, godot_variant* p_value) - - ctypedef godot_bool (*_godot_pluginscript_instance_desc_godot_pluginscript_instance_desc_get_prop_ft)(godot_pluginscript_instance_data* p_data, godot_string* p_name, godot_variant* r_ret) - - ctypedef godot_variant (*_godot_pluginscript_instance_desc_godot_pluginscript_instance_desc_call_method_ft)(godot_pluginscript_instance_data* p_data, godot_string_name* p_method, godot_variant** p_args, int p_argcount, godot_variant_call_error* r_error) - - ctypedef void (*_godot_pluginscript_instance_desc_godot_pluginscript_instance_desc_notification_ft)(godot_pluginscript_instance_data* p_data, int p_notification) - - ctypedef godot_method_rpc_mode (*_godot_pluginscript_instance_desc_godot_pluginscript_instance_desc_get_rpc_mode_ft)(godot_pluginscript_instance_data* p_data, godot_string* p_method) - - ctypedef godot_method_rpc_mode (*_godot_pluginscript_instance_desc_godot_pluginscript_instance_desc_get_rset_mode_ft)(godot_pluginscript_instance_data* p_data, godot_string* p_variable) - - ctypedef void (*_godot_pluginscript_instance_desc_godot_pluginscript_instance_desc_refcount_incremented_ft)(godot_pluginscript_instance_data* p_data) - - ctypedef bool (*_godot_pluginscript_instance_desc_godot_pluginscript_instance_desc_refcount_decremented_ft)(godot_pluginscript_instance_data* p_data) - - ctypedef struct godot_pluginscript_instance_desc: - _godot_pluginscript_instance_desc_godot_pluginscript_instance_desc_init_ft init - _godot_pluginscript_instance_desc_godot_pluginscript_instance_desc_finish_ft finish - _godot_pluginscript_instance_desc_godot_pluginscript_instance_desc_set_prop_ft set_prop - _godot_pluginscript_instance_desc_godot_pluginscript_instance_desc_get_prop_ft get_prop - _godot_pluginscript_instance_desc_godot_pluginscript_instance_desc_call_method_ft call_method - _godot_pluginscript_instance_desc_godot_pluginscript_instance_desc_notification_ft notification - _godot_pluginscript_instance_desc_godot_pluginscript_instance_desc_get_rpc_mode_ft get_rpc_mode - _godot_pluginscript_instance_desc_godot_pluginscript_instance_desc_get_rset_mode_ft get_rset_mode - _godot_pluginscript_instance_desc_godot_pluginscript_instance_desc_refcount_incremented_ft refcount_incremented - _godot_pluginscript_instance_desc_godot_pluginscript_instance_desc_refcount_decremented_ft refcount_decremented - - ctypedef struct godot_pluginscript_script_manifest: - godot_pluginscript_script_data* data - godot_string_name name - godot_bool is_tool - godot_string_name base - godot_dictionary member_lines - godot_array methods - godot_array signals - godot_array properties - - ctypedef godot_pluginscript_script_manifest (*_godot_pluginscript_script_desc_godot_pluginscript_script_desc_init_ft)(godot_pluginscript_language_data* p_data, godot_string* p_path, godot_string* p_source, godot_error* r_error) - - ctypedef void (*_godot_pluginscript_script_desc_godot_pluginscript_script_desc_finish_ft)(godot_pluginscript_script_data* p_data) - - ctypedef struct godot_pluginscript_script_desc: - _godot_pluginscript_script_desc_godot_pluginscript_script_desc_init_ft init - _godot_pluginscript_script_desc_godot_pluginscript_script_desc_finish_ft finish - godot_pluginscript_instance_desc instance_desc - - ctypedef struct godot_pluginscript_profiling_data: - godot_string_name signature - godot_int call_count - godot_int total_time - godot_int self_time - - ctypedef godot_pluginscript_language_data* (*_godot_pluginscript_language_desc_godot_pluginscript_language_desc_init_ft)() - - ctypedef void (*_godot_pluginscript_language_desc_godot_pluginscript_language_desc_finish_ft)(godot_pluginscript_language_data* p_data) - - ctypedef godot_string (*_godot_pluginscript_language_desc_godot_pluginscript_language_desc_get_template_source_code_ft)(godot_pluginscript_language_data* p_data, godot_string* p_class_name, godot_string* p_base_class_name) - - ctypedef godot_bool (*_godot_pluginscript_language_desc_godot_pluginscript_language_desc_validate_ft)(godot_pluginscript_language_data* p_data, godot_string* p_script, int* r_line_error, int* r_col_error, godot_string* r_test_error, godot_string* p_path, godot_pool_string_array* r_functions) - - ctypedef int (*_godot_pluginscript_language_desc_godot_pluginscript_language_desc_find_function_ft)(godot_pluginscript_language_data* p_data, godot_string* p_function, godot_string* p_code) - - ctypedef godot_string (*_godot_pluginscript_language_desc_godot_pluginscript_language_desc_make_function_ft)(godot_pluginscript_language_data* p_data, godot_string* p_class, godot_string* p_name, godot_pool_string_array* p_args) - - ctypedef godot_error (*_godot_pluginscript_language_desc_godot_pluginscript_language_desc_complete_code_ft)(godot_pluginscript_language_data* p_data, godot_string* p_code, godot_string* p_path, godot_object* p_owner, godot_array* r_options, godot_bool* r_force, godot_string* r_call_hint) - - ctypedef void (*_godot_pluginscript_language_desc_godot_pluginscript_language_desc_auto_indent_code_ft)(godot_pluginscript_language_data* p_data, godot_string* p_code, int p_from_line, int p_to_line) - - ctypedef void (*_godot_pluginscript_language_desc_godot_pluginscript_language_desc_add_global_constant_ft)(godot_pluginscript_language_data* p_data, godot_string* p_variable, godot_variant* p_value) - - ctypedef godot_string (*_godot_pluginscript_language_desc_godot_pluginscript_language_desc_debug_get_error_ft)(godot_pluginscript_language_data* p_data) - - ctypedef int (*_godot_pluginscript_language_desc_godot_pluginscript_language_desc_debug_get_stack_level_count_ft)(godot_pluginscript_language_data* p_data) - - ctypedef int (*_godot_pluginscript_language_desc_godot_pluginscript_language_desc_debug_get_stack_level_line_ft)(godot_pluginscript_language_data* p_data, int p_level) - - ctypedef godot_string (*_godot_pluginscript_language_desc_godot_pluginscript_language_desc_debug_get_stack_level_function_ft)(godot_pluginscript_language_data* p_data, int p_level) - - ctypedef godot_string (*_godot_pluginscript_language_desc_godot_pluginscript_language_desc_debug_get_stack_level_source_ft)(godot_pluginscript_language_data* p_data, int p_level) - - ctypedef void (*_godot_pluginscript_language_desc_godot_pluginscript_language_desc_debug_get_stack_level_locals_ft)(godot_pluginscript_language_data* p_data, int p_level, godot_pool_string_array* p_locals, godot_array* p_values, int p_max_subitems, int p_max_depth) - - ctypedef void (*_godot_pluginscript_language_desc_godot_pluginscript_language_desc_debug_get_stack_level_members_ft)(godot_pluginscript_language_data* p_data, int p_level, godot_pool_string_array* p_members, godot_array* p_values, int p_max_subitems, int p_max_depth) - - ctypedef void (*_godot_pluginscript_language_desc_godot_pluginscript_language_desc_debug_get_globals_ft)(godot_pluginscript_language_data* p_data, godot_pool_string_array* p_locals, godot_array* p_values, int p_max_subitems, int p_max_depth) - - ctypedef godot_string (*_godot_pluginscript_language_desc_godot_pluginscript_language_desc_debug_parse_stack_level_expression_ft)(godot_pluginscript_language_data* p_data, int p_level, godot_string* p_expression, int p_max_subitems, int p_max_depth) - - ctypedef void (*_godot_pluginscript_language_desc_godot_pluginscript_language_desc_get_public_functions_ft)(godot_pluginscript_language_data* p_data, godot_array* r_functions) - - ctypedef void (*_godot_pluginscript_language_desc_godot_pluginscript_language_desc_get_public_constants_ft)(godot_pluginscript_language_data* p_data, godot_dictionary* r_constants) - - ctypedef void (*_godot_pluginscript_language_desc_godot_pluginscript_language_desc_profiling_start_ft)(godot_pluginscript_language_data* p_data) - - ctypedef void (*_godot_pluginscript_language_desc_godot_pluginscript_language_desc_profiling_stop_ft)(godot_pluginscript_language_data* p_data) - - ctypedef int (*_godot_pluginscript_language_desc_godot_pluginscript_language_desc_profiling_get_accumulated_data_ft)(godot_pluginscript_language_data* p_data, godot_pluginscript_profiling_data* r_info, int p_info_max) - - ctypedef int (*_godot_pluginscript_language_desc_godot_pluginscript_language_desc_profiling_get_frame_data_ft)(godot_pluginscript_language_data* p_data, godot_pluginscript_profiling_data* r_info, int p_info_max) - - ctypedef void (*_godot_pluginscript_language_desc_godot_pluginscript_language_desc_profiling_frame_ft)(godot_pluginscript_language_data* p_data) - - ctypedef struct godot_pluginscript_language_desc: - char* name - char* type - char* extension - char** recognized_extensions - _godot_pluginscript_language_desc_godot_pluginscript_language_desc_init_ft init - _godot_pluginscript_language_desc_godot_pluginscript_language_desc_finish_ft finish - char** reserved_words - char** comment_delimiters - char** string_delimiters - godot_bool has_named_classes - godot_bool supports_builtin_mode - _godot_pluginscript_language_desc_godot_pluginscript_language_desc_get_template_source_code_ft get_template_source_code - _godot_pluginscript_language_desc_godot_pluginscript_language_desc_validate_ft validate - _godot_pluginscript_language_desc_godot_pluginscript_language_desc_find_function_ft find_function - _godot_pluginscript_language_desc_godot_pluginscript_language_desc_make_function_ft make_function - _godot_pluginscript_language_desc_godot_pluginscript_language_desc_complete_code_ft complete_code - _godot_pluginscript_language_desc_godot_pluginscript_language_desc_auto_indent_code_ft auto_indent_code - _godot_pluginscript_language_desc_godot_pluginscript_language_desc_add_global_constant_ft add_global_constant - _godot_pluginscript_language_desc_godot_pluginscript_language_desc_debug_get_error_ft debug_get_error - _godot_pluginscript_language_desc_godot_pluginscript_language_desc_debug_get_stack_level_count_ft debug_get_stack_level_count - _godot_pluginscript_language_desc_godot_pluginscript_language_desc_debug_get_stack_level_line_ft debug_get_stack_level_line - _godot_pluginscript_language_desc_godot_pluginscript_language_desc_debug_get_stack_level_function_ft debug_get_stack_level_function - _godot_pluginscript_language_desc_godot_pluginscript_language_desc_debug_get_stack_level_source_ft debug_get_stack_level_source - _godot_pluginscript_language_desc_godot_pluginscript_language_desc_debug_get_stack_level_locals_ft debug_get_stack_level_locals - _godot_pluginscript_language_desc_godot_pluginscript_language_desc_debug_get_stack_level_members_ft debug_get_stack_level_members - _godot_pluginscript_language_desc_godot_pluginscript_language_desc_debug_get_globals_ft debug_get_globals - _godot_pluginscript_language_desc_godot_pluginscript_language_desc_debug_parse_stack_level_expression_ft debug_parse_stack_level_expression - _godot_pluginscript_language_desc_godot_pluginscript_language_desc_get_public_functions_ft get_public_functions - _godot_pluginscript_language_desc_godot_pluginscript_language_desc_get_public_constants_ft get_public_constants - _godot_pluginscript_language_desc_godot_pluginscript_language_desc_profiling_start_ft profiling_start - _godot_pluginscript_language_desc_godot_pluginscript_language_desc_profiling_stop_ft profiling_stop - _godot_pluginscript_language_desc_godot_pluginscript_language_desc_profiling_get_accumulated_data_ft profiling_get_accumulated_data - _godot_pluginscript_language_desc_godot_pluginscript_language_desc_profiling_get_frame_data_ft profiling_get_frame_data - _godot_pluginscript_language_desc_godot_pluginscript_language_desc_profiling_frame_ft profiling_frame - godot_pluginscript_script_desc script_desc - - void godot_pluginscript_register_language(godot_pluginscript_language_desc* language_desc) - - ctypedef void* (*_godot_videodecoder_interface_gdnative_godot_videodecoder_interface_gdnative_constructor_ft)(godot_object*) - - ctypedef void (*_godot_videodecoder_interface_gdnative_godot_videodecoder_interface_gdnative_destructor_ft)(void*) - - ctypedef char* (*_godot_videodecoder_interface_gdnative_godot_videodecoder_interface_gdnative_get_plugin_name_ft)() - - ctypedef char** (*_godot_videodecoder_interface_gdnative_godot_videodecoder_interface_gdnative_get_supported_extensions_ft)(int* count) - - ctypedef godot_bool (*_godot_videodecoder_interface_gdnative_godot_videodecoder_interface_gdnative_open_file_ft)(void*, void*) - - ctypedef godot_real (*_godot_videodecoder_interface_gdnative_godot_videodecoder_interface_gdnative_get_length_ft)(void*) - - ctypedef godot_real (*_godot_videodecoder_interface_gdnative_godot_videodecoder_interface_gdnative_get_playback_position_ft)(void*) - - ctypedef void (*_godot_videodecoder_interface_gdnative_godot_videodecoder_interface_gdnative_seek_ft)(void*, godot_real) - - ctypedef void (*_godot_videodecoder_interface_gdnative_godot_videodecoder_interface_gdnative_set_audio_track_ft)(void*, godot_int) - - ctypedef void (*_godot_videodecoder_interface_gdnative_godot_videodecoder_interface_gdnative_update_ft)(void*, godot_real) - - ctypedef godot_pool_byte_array* (*_godot_videodecoder_interface_gdnative_godot_videodecoder_interface_gdnative_get_videoframe_ft)(void*) - - ctypedef godot_int (*_godot_videodecoder_interface_gdnative_godot_videodecoder_interface_gdnative_get_audioframe_ft)(void*, float*, int) - - ctypedef godot_int (*_godot_videodecoder_interface_gdnative_godot_videodecoder_interface_gdnative_get_channels_ft)(void*) - - ctypedef godot_int (*_godot_videodecoder_interface_gdnative_godot_videodecoder_interface_gdnative_get_mix_rate_ft)(void*) - - ctypedef godot_vector2 (*_godot_videodecoder_interface_gdnative_godot_videodecoder_interface_gdnative_get_texture_size_ft)(void*) - - ctypedef struct godot_videodecoder_interface_gdnative: - godot_gdnative_api_version version - void* next - _godot_videodecoder_interface_gdnative_godot_videodecoder_interface_gdnative_constructor_ft constructor - _godot_videodecoder_interface_gdnative_godot_videodecoder_interface_gdnative_destructor_ft destructor - _godot_videodecoder_interface_gdnative_godot_videodecoder_interface_gdnative_get_plugin_name_ft get_plugin_name - _godot_videodecoder_interface_gdnative_godot_videodecoder_interface_gdnative_get_supported_extensions_ft get_supported_extensions - _godot_videodecoder_interface_gdnative_godot_videodecoder_interface_gdnative_open_file_ft open_file - _godot_videodecoder_interface_gdnative_godot_videodecoder_interface_gdnative_get_length_ft get_length - _godot_videodecoder_interface_gdnative_godot_videodecoder_interface_gdnative_get_playback_position_ft get_playback_position - _godot_videodecoder_interface_gdnative_godot_videodecoder_interface_gdnative_seek_ft seek - _godot_videodecoder_interface_gdnative_godot_videodecoder_interface_gdnative_set_audio_track_ft set_audio_track - _godot_videodecoder_interface_gdnative_godot_videodecoder_interface_gdnative_update_ft update - _godot_videodecoder_interface_gdnative_godot_videodecoder_interface_gdnative_get_videoframe_ft get_videoframe - _godot_videodecoder_interface_gdnative_godot_videodecoder_interface_gdnative_get_audioframe_ft get_audioframe - _godot_videodecoder_interface_gdnative_godot_videodecoder_interface_gdnative_get_channels_ft get_channels - _godot_videodecoder_interface_gdnative_godot_videodecoder_interface_gdnative_get_mix_rate_ft get_mix_rate - _godot_videodecoder_interface_gdnative_godot_videodecoder_interface_gdnative_get_texture_size_ft get_texture_size - - ctypedef int (*GDNativeAudioMixCallback)(void*, float*, int) - - godot_int godot_videodecoder_file_read(void* file_ptr, uint8_t* buf, int buf_size) - - int64_t godot_videodecoder_file_seek(void* file_ptr, int64_t pos, int whence) - - void godot_videodecoder_register_decoder(godot_videodecoder_interface_gdnative* p_interface) - - cdef enum GDNATIVE_API_TYPES: - GDNATIVE_CORE - GDNATIVE_EXT_NATIVESCRIPT - GDNATIVE_EXT_PLUGINSCRIPT - GDNATIVE_EXT_ANDROID - GDNATIVE_EXT_ARVR - GDNATIVE_EXT_VIDEODECODER - GDNATIVE_EXT_NET - - ctypedef void (*_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_nativescript_set_method_argument_information_ft)(void* p_gdnative_handle, char* p_name, char* p_function_name, int p_num_args, godot_method_arg* p_args) - - ctypedef void (*_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_nativescript_set_class_documentation_ft)(void* p_gdnative_handle, char* p_name, godot_string p_documentation) - - ctypedef void (*_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_nativescript_set_method_documentation_ft)(void* p_gdnative_handle, char* p_name, char* p_function_name, godot_string p_documentation) - - ctypedef void (*_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_nativescript_set_property_documentation_ft)(void* p_gdnative_handle, char* p_name, char* p_path, godot_string p_documentation) - - ctypedef void (*_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_nativescript_set_signal_documentation_ft)(void* p_gdnative_handle, char* p_name, char* p_signal_name, godot_string p_documentation) - - ctypedef void (*_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_nativescript_set_global_type_tag_ft)(int p_idx, char* p_name, void* p_type_tag) - - ctypedef void* (*_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_nativescript_get_global_type_tag_ft)(int p_idx, char* p_name) - - ctypedef void (*_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_nativescript_set_type_tag_ft)(void* p_gdnative_handle, char* p_name, void* p_type_tag) - - ctypedef void* (*_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_nativescript_get_type_tag_ft)(godot_object* p_object) - - ctypedef int (*_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_nativescript_register_instance_binding_data_functions_ft)(godot_instance_binding_functions p_binding_functions) - - ctypedef void (*_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_nativescript_unregister_instance_binding_data_functions_ft)(int p_idx) - - ctypedef void* (*_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_nativescript_get_instance_binding_data_ft)(int p_idx, godot_object* p_object) - - ctypedef void (*_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_nativescript_profiling_add_data_ft)(char* p_signature, uint64_t p_line) - - cdef struct godot_gdnative_ext_nativescript_1_1_api_struct: - unsigned int type - godot_gdnative_api_version version - godot_gdnative_api_struct* next - _godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_nativescript_set_method_argument_information_ft godot_nativescript_set_method_argument_information - _godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_nativescript_set_class_documentation_ft godot_nativescript_set_class_documentation - _godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_nativescript_set_method_documentation_ft godot_nativescript_set_method_documentation - _godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_nativescript_set_property_documentation_ft godot_nativescript_set_property_documentation - _godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_nativescript_set_signal_documentation_ft godot_nativescript_set_signal_documentation - _godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_nativescript_set_global_type_tag_ft godot_nativescript_set_global_type_tag - _godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_nativescript_get_global_type_tag_ft godot_nativescript_get_global_type_tag - _godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_nativescript_set_type_tag_ft godot_nativescript_set_type_tag - _godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_nativescript_get_type_tag_ft godot_nativescript_get_type_tag - _godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_nativescript_register_instance_binding_data_functions_ft godot_nativescript_register_instance_binding_data_functions - _godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_nativescript_unregister_instance_binding_data_functions_ft godot_nativescript_unregister_instance_binding_data_functions - _godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_nativescript_get_instance_binding_data_ft godot_nativescript_get_instance_binding_data - _godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_gdnative_ext_nativescript_1_1_api_struct_godot_nativescript_profiling_add_data_ft godot_nativescript_profiling_add_data - - ctypedef void (*_godot_gdnative_ext_nativescript_api_struct_godot_gdnative_ext_nativescript_api_struct_godot_gdnative_ext_nativescript_api_struct_godot_nativescript_register_class_ft)(void* p_gdnative_handle, char* p_name, char* p_base, godot_instance_create_func p_create_func, godot_instance_destroy_func p_destroy_func) - - ctypedef void (*_godot_gdnative_ext_nativescript_api_struct_godot_gdnative_ext_nativescript_api_struct_godot_gdnative_ext_nativescript_api_struct_godot_nativescript_register_tool_class_ft)(void* p_gdnative_handle, char* p_name, char* p_base, godot_instance_create_func p_create_func, godot_instance_destroy_func p_destroy_func) - - ctypedef void (*_godot_gdnative_ext_nativescript_api_struct_godot_gdnative_ext_nativescript_api_struct_godot_gdnative_ext_nativescript_api_struct_godot_nativescript_register_method_ft)(void* p_gdnative_handle, char* p_name, char* p_function_name, godot_method_attributes p_attr, godot_instance_method p_method) - - ctypedef void (*_godot_gdnative_ext_nativescript_api_struct_godot_gdnative_ext_nativescript_api_struct_godot_gdnative_ext_nativescript_api_struct_godot_nativescript_register_property_ft)(void* p_gdnative_handle, char* p_name, char* p_path, godot_property_attributes* p_attr, godot_property_set_func p_set_func, godot_property_get_func p_get_func) - - ctypedef void (*_godot_gdnative_ext_nativescript_api_struct_godot_gdnative_ext_nativescript_api_struct_godot_gdnative_ext_nativescript_api_struct_godot_nativescript_register_signal_ft)(void* p_gdnative_handle, char* p_name, godot_signal* p_signal) - - ctypedef void* (*_godot_gdnative_ext_nativescript_api_struct_godot_gdnative_ext_nativescript_api_struct_godot_gdnative_ext_nativescript_api_struct_godot_nativescript_get_userdata_ft)(godot_object* p_instance) - - cdef struct godot_gdnative_ext_nativescript_api_struct: - unsigned int type - godot_gdnative_api_version version - godot_gdnative_api_struct* next - _godot_gdnative_ext_nativescript_api_struct_godot_gdnative_ext_nativescript_api_struct_godot_gdnative_ext_nativescript_api_struct_godot_nativescript_register_class_ft godot_nativescript_register_class - _godot_gdnative_ext_nativescript_api_struct_godot_gdnative_ext_nativescript_api_struct_godot_gdnative_ext_nativescript_api_struct_godot_nativescript_register_tool_class_ft godot_nativescript_register_tool_class - _godot_gdnative_ext_nativescript_api_struct_godot_gdnative_ext_nativescript_api_struct_godot_gdnative_ext_nativescript_api_struct_godot_nativescript_register_method_ft godot_nativescript_register_method - _godot_gdnative_ext_nativescript_api_struct_godot_gdnative_ext_nativescript_api_struct_godot_gdnative_ext_nativescript_api_struct_godot_nativescript_register_property_ft godot_nativescript_register_property - _godot_gdnative_ext_nativescript_api_struct_godot_gdnative_ext_nativescript_api_struct_godot_gdnative_ext_nativescript_api_struct_godot_nativescript_register_signal_ft godot_nativescript_register_signal - _godot_gdnative_ext_nativescript_api_struct_godot_gdnative_ext_nativescript_api_struct_godot_gdnative_ext_nativescript_api_struct_godot_nativescript_get_userdata_ft godot_nativescript_get_userdata - - ctypedef void (*_godot_gdnative_ext_pluginscript_api_struct_godot_gdnative_ext_pluginscript_api_struct_godot_gdnative_ext_pluginscript_api_struct_godot_pluginscript_register_language_ft)(godot_pluginscript_language_desc* language_desc) - - cdef struct godot_gdnative_ext_pluginscript_api_struct: - unsigned int type - godot_gdnative_api_version version - godot_gdnative_api_struct* next - _godot_gdnative_ext_pluginscript_api_struct_godot_gdnative_ext_pluginscript_api_struct_godot_gdnative_ext_pluginscript_api_struct_godot_pluginscript_register_language_ft godot_pluginscript_register_language - - ctypedef void* (*_godot_gdnative_ext_android_api_struct_godot_gdnative_ext_android_api_struct_godot_gdnative_ext_android_api_struct_godot_android_get_env_ft)() - - ctypedef void* (*_godot_gdnative_ext_android_api_struct_godot_gdnative_ext_android_api_struct_godot_gdnative_ext_android_api_struct_godot_android_get_activity_ft)() - - ctypedef void* (*_godot_gdnative_ext_android_api_struct_godot_gdnative_ext_android_api_struct_godot_gdnative_ext_android_api_struct_godot_android_get_surface_ft)() - - ctypedef bool (*_godot_gdnative_ext_android_api_struct_godot_gdnative_ext_android_api_struct_godot_gdnative_ext_android_api_struct_godot_android_is_activity_resumed_ft)() - - cdef struct godot_gdnative_ext_android_api_struct: - unsigned int type - godot_gdnative_api_version version - godot_gdnative_api_struct* next - _godot_gdnative_ext_android_api_struct_godot_gdnative_ext_android_api_struct_godot_gdnative_ext_android_api_struct_godot_android_get_env_ft godot_android_get_env - _godot_gdnative_ext_android_api_struct_godot_gdnative_ext_android_api_struct_godot_gdnative_ext_android_api_struct_godot_android_get_activity_ft godot_android_get_activity - _godot_gdnative_ext_android_api_struct_godot_gdnative_ext_android_api_struct_godot_gdnative_ext_android_api_struct_godot_android_get_surface_ft godot_android_get_surface - _godot_gdnative_ext_android_api_struct_godot_gdnative_ext_android_api_struct_godot_gdnative_ext_android_api_struct_godot_android_is_activity_resumed_ft godot_android_is_activity_resumed - - ctypedef void (*_godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_arvr_register_interface_ft)(godot_arvr_interface_gdnative* p_interface) - - ctypedef godot_real (*_godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_arvr_get_worldscale_ft)() - - ctypedef godot_transform (*_godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_arvr_get_reference_frame_ft)() - - ctypedef void (*_godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_arvr_blit_ft)(int p_eye, godot_rid* p_render_target, godot_rect2* p_screen_rect) - - ctypedef godot_int (*_godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_arvr_get_texid_ft)(godot_rid* p_render_target) - - ctypedef godot_int (*_godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_arvr_add_controller_ft)(char* p_device_name, godot_int p_hand, godot_bool p_tracks_orientation, godot_bool p_tracks_position) - - ctypedef void (*_godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_arvr_remove_controller_ft)(godot_int p_controller_id) - - ctypedef void (*_godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_arvr_set_controller_transform_ft)(godot_int p_controller_id, godot_transform* p_transform, godot_bool p_tracks_orientation, godot_bool p_tracks_position) - - ctypedef void (*_godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_arvr_set_controller_button_ft)(godot_int p_controller_id, godot_int p_button, godot_bool p_is_pressed) - - ctypedef void (*_godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_arvr_set_controller_axis_ft)(godot_int p_controller_id, godot_int p_exis, godot_real p_value, godot_bool p_can_be_negative) - - ctypedef godot_real (*_godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_arvr_get_controller_rumble_ft)(godot_int p_controller_id) - - cdef struct godot_gdnative_ext_arvr_api_struct: - unsigned int type - godot_gdnative_api_version version - godot_gdnative_api_struct* next - _godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_arvr_register_interface_ft godot_arvr_register_interface - _godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_arvr_get_worldscale_ft godot_arvr_get_worldscale - _godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_arvr_get_reference_frame_ft godot_arvr_get_reference_frame - _godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_arvr_blit_ft godot_arvr_blit - _godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_arvr_get_texid_ft godot_arvr_get_texid - _godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_arvr_add_controller_ft godot_arvr_add_controller - _godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_arvr_remove_controller_ft godot_arvr_remove_controller - _godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_arvr_set_controller_transform_ft godot_arvr_set_controller_transform - _godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_arvr_set_controller_button_ft godot_arvr_set_controller_button - _godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_arvr_set_controller_axis_ft godot_arvr_set_controller_axis - _godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_gdnative_ext_arvr_api_struct_godot_arvr_get_controller_rumble_ft godot_arvr_get_controller_rumble - - ctypedef godot_int (*_godot_gdnative_ext_videodecoder_api_struct_godot_gdnative_ext_videodecoder_api_struct_godot_gdnative_ext_videodecoder_api_struct_godot_videodecoder_file_read_ft)(void* file_ptr, uint8_t* buf, int buf_size) - - ctypedef int64_t (*_godot_gdnative_ext_videodecoder_api_struct_godot_gdnative_ext_videodecoder_api_struct_godot_gdnative_ext_videodecoder_api_struct_godot_videodecoder_file_seek_ft)(void* file_ptr, int64_t pos, int whence) - - ctypedef void (*_godot_gdnative_ext_videodecoder_api_struct_godot_gdnative_ext_videodecoder_api_struct_godot_gdnative_ext_videodecoder_api_struct_godot_videodecoder_register_decoder_ft)(godot_videodecoder_interface_gdnative* p_interface) - - cdef struct godot_gdnative_ext_videodecoder_api_struct: - unsigned int type - godot_gdnative_api_version version - godot_gdnative_api_struct* next - _godot_gdnative_ext_videodecoder_api_struct_godot_gdnative_ext_videodecoder_api_struct_godot_gdnative_ext_videodecoder_api_struct_godot_videodecoder_file_read_ft godot_videodecoder_file_read - _godot_gdnative_ext_videodecoder_api_struct_godot_gdnative_ext_videodecoder_api_struct_godot_gdnative_ext_videodecoder_api_struct_godot_videodecoder_file_seek_ft godot_videodecoder_file_seek - _godot_gdnative_ext_videodecoder_api_struct_godot_gdnative_ext_videodecoder_api_struct_godot_gdnative_ext_videodecoder_api_struct_godot_videodecoder_register_decoder_ft godot_videodecoder_register_decoder - - ctypedef godot_error (*_godot_gdnative_ext_net_3_2_api_struct_godot_gdnative_ext_net_3_2_api_struct_godot_gdnative_ext_net_3_2_api_struct_godot_net_set_webrtc_library_ft)(godot_net_webrtc_library* p_library) - - ctypedef void (*_godot_gdnative_ext_net_3_2_api_struct_godot_gdnative_ext_net_3_2_api_struct_godot_gdnative_ext_net_3_2_api_struct_godot_net_bind_webrtc_peer_connection_ft)(godot_object* p_obj, godot_net_webrtc_peer_connection* p_interface) - - ctypedef void (*_godot_gdnative_ext_net_3_2_api_struct_godot_gdnative_ext_net_3_2_api_struct_godot_gdnative_ext_net_3_2_api_struct_godot_net_bind_webrtc_data_channel_ft)(godot_object* p_obj, godot_net_webrtc_data_channel* p_interface) - - cdef struct godot_gdnative_ext_net_3_2_api_struct: - unsigned int type - godot_gdnative_api_version version - godot_gdnative_api_struct* next - _godot_gdnative_ext_net_3_2_api_struct_godot_gdnative_ext_net_3_2_api_struct_godot_gdnative_ext_net_3_2_api_struct_godot_net_set_webrtc_library_ft godot_net_set_webrtc_library - _godot_gdnative_ext_net_3_2_api_struct_godot_gdnative_ext_net_3_2_api_struct_godot_gdnative_ext_net_3_2_api_struct_godot_net_bind_webrtc_peer_connection_ft godot_net_bind_webrtc_peer_connection - _godot_gdnative_ext_net_3_2_api_struct_godot_gdnative_ext_net_3_2_api_struct_godot_gdnative_ext_net_3_2_api_struct_godot_net_bind_webrtc_data_channel_ft godot_net_bind_webrtc_data_channel - - ctypedef void (*_godot_gdnative_ext_net_api_struct_godot_gdnative_ext_net_api_struct_godot_gdnative_ext_net_api_struct_godot_net_bind_stream_peer_ft)(godot_object* p_obj, godot_net_stream_peer* p_interface) - - ctypedef void (*_godot_gdnative_ext_net_api_struct_godot_gdnative_ext_net_api_struct_godot_gdnative_ext_net_api_struct_godot_net_bind_packet_peer_ft)(godot_object* p_obj, godot_net_packet_peer* p_interface) - - ctypedef void (*_godot_gdnative_ext_net_api_struct_godot_gdnative_ext_net_api_struct_godot_gdnative_ext_net_api_struct_godot_net_bind_multiplayer_peer_ft)(godot_object* p_obj, godot_net_multiplayer_peer* p_interface) - - cdef struct godot_gdnative_ext_net_api_struct: - unsigned int type - godot_gdnative_api_version version - godot_gdnative_api_struct* next - _godot_gdnative_ext_net_api_struct_godot_gdnative_ext_net_api_struct_godot_gdnative_ext_net_api_struct_godot_net_bind_stream_peer_ft godot_net_bind_stream_peer - _godot_gdnative_ext_net_api_struct_godot_gdnative_ext_net_api_struct_godot_gdnative_ext_net_api_struct_godot_net_bind_packet_peer_ft godot_net_bind_packet_peer - _godot_gdnative_ext_net_api_struct_godot_gdnative_ext_net_api_struct_godot_gdnative_ext_net_api_struct_godot_net_bind_multiplayer_peer_ft godot_net_bind_multiplayer_peer - - ctypedef godot_dictionary (*_godot_gdnative_core_1_2_api_struct_godot_gdnative_core_1_2_api_struct_godot_gdnative_core_1_2_api_struct_godot_dictionary_duplicate_ft)(godot_dictionary* p_self, godot_bool p_deep) - - ctypedef godot_vector3 (*_godot_gdnative_core_1_2_api_struct_godot_gdnative_core_1_2_api_struct_godot_gdnative_core_1_2_api_struct_godot_vector3_move_toward_ft)(godot_vector3* p_self, godot_vector3* p_to, godot_real p_delta) - - ctypedef godot_vector2 (*_godot_gdnative_core_1_2_api_struct_godot_gdnative_core_1_2_api_struct_godot_gdnative_core_1_2_api_struct_godot_vector2_move_toward_ft)(godot_vector2* p_self, godot_vector2* p_to, godot_real p_delta) - - cdef struct godot_gdnative_core_1_2_api_struct: - unsigned int type - godot_gdnative_api_version version - godot_gdnative_api_struct* next - _godot_gdnative_core_1_2_api_struct_godot_gdnative_core_1_2_api_struct_godot_gdnative_core_1_2_api_struct_godot_dictionary_duplicate_ft godot_dictionary_duplicate - _godot_gdnative_core_1_2_api_struct_godot_gdnative_core_1_2_api_struct_godot_gdnative_core_1_2_api_struct_godot_vector3_move_toward_ft godot_vector3_move_toward - _godot_gdnative_core_1_2_api_struct_godot_gdnative_core_1_2_api_struct_godot_gdnative_core_1_2_api_struct_godot_vector2_move_toward_ft godot_vector2_move_toward - - ctypedef godot_int (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_color_to_abgr32_ft)(godot_color* p_self) - - ctypedef godot_int (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_color_to_abgr64_ft)(godot_color* p_self) - - ctypedef godot_int (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_color_to_argb64_ft)(godot_color* p_self) - - ctypedef godot_int (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_color_to_rgba64_ft)(godot_color* p_self) - - ctypedef godot_color (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_color_darkened_ft)(godot_color* p_self, godot_real p_amount) - - ctypedef godot_color (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_color_from_hsv_ft)(godot_color* p_self, godot_real p_h, godot_real p_s, godot_real p_v, godot_real p_a) - - ctypedef godot_color (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_color_lightened_ft)(godot_color* p_self, godot_real p_amount) - - ctypedef godot_array (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_array_duplicate_ft)(godot_array* p_self, godot_bool p_deep) - - ctypedef godot_variant (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_array_max_ft)(godot_array* p_self) - - ctypedef godot_variant (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_array_min_ft)(godot_array* p_self) - - ctypedef void (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_array_shuffle_ft)(godot_array* p_self) - - ctypedef godot_basis (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_basis_slerp_ft)(godot_basis* p_self, godot_basis* p_b, godot_real p_t) - - ctypedef godot_variant (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_dictionary_get_with_default_ft)(godot_dictionary* p_self, godot_variant* p_key, godot_variant* p_default) - - ctypedef bool (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_dictionary_erase_with_return_ft)(godot_dictionary* p_self, godot_variant* p_key) - - ctypedef godot_node_path (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_node_path_get_as_property_path_ft)(godot_node_path* p_self) - - ctypedef void (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_quat_set_axis_angle_ft)(godot_quat* p_self, godot_vector3* p_axis, godot_real p_angle) - - ctypedef godot_rect2 (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_rect2_grow_individual_ft)(godot_rect2* p_self, godot_real p_left, godot_real p_top, godot_real p_right, godot_real p_bottom) - - ctypedef godot_rect2 (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_rect2_grow_margin_ft)(godot_rect2* p_self, godot_int p_margin, godot_real p_by) - - ctypedef godot_rect2 (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_rect2_abs_ft)(godot_rect2* p_self) - - ctypedef godot_string (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_string_dedent_ft)(godot_string* p_self) - - ctypedef godot_string (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_string_trim_prefix_ft)(godot_string* p_self, godot_string* p_prefix) - - ctypedef godot_string (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_string_trim_suffix_ft)(godot_string* p_self, godot_string* p_suffix) - - ctypedef godot_string (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_string_rstrip_ft)(godot_string* p_self, godot_string* p_chars) - - ctypedef godot_pool_string_array (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_string_rsplit_ft)(godot_string* p_self, godot_string* p_divisor, godot_bool p_allow_empty, godot_int p_maxsplit) - - ctypedef godot_quat (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_basis_get_quat_ft)(godot_basis* p_self) - - ctypedef void (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_basis_set_quat_ft)(godot_basis* p_self, godot_quat* p_quat) - - ctypedef void (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_basis_set_axis_angle_scale_ft)(godot_basis* p_self, godot_vector3* p_axis, godot_real p_phi, godot_vector3* p_scale) - - ctypedef void (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_basis_set_euler_scale_ft)(godot_basis* p_self, godot_vector3* p_euler, godot_vector3* p_scale) - - ctypedef void (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_basis_set_quat_scale_ft)(godot_basis* p_self, godot_quat* p_quat, godot_vector3* p_scale) - - ctypedef bool (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_is_instance_valid_ft)(godot_object* p_object) - - ctypedef void (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_quat_new_with_basis_ft)(godot_quat* r_dest, godot_basis* p_basis) - - ctypedef void (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_quat_new_with_euler_ft)(godot_quat* r_dest, godot_vector3* p_euler) - - ctypedef void (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_transform_new_with_quat_ft)(godot_transform* r_dest, godot_quat* p_quat) - - ctypedef godot_string (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_variant_get_operator_name_ft)(godot_variant_operator p_op) - - ctypedef void (*_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_variant_evaluate_ft)(godot_variant_operator p_op, godot_variant* p_a, godot_variant* p_b, godot_variant* r_ret, godot_bool* r_valid) - - cdef struct godot_gdnative_core_1_1_api_struct: - unsigned int type - godot_gdnative_api_version version - godot_gdnative_api_struct* next - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_color_to_abgr32_ft godot_color_to_abgr32 - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_color_to_abgr64_ft godot_color_to_abgr64 - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_color_to_argb64_ft godot_color_to_argb64 - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_color_to_rgba64_ft godot_color_to_rgba64 - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_color_darkened_ft godot_color_darkened - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_color_from_hsv_ft godot_color_from_hsv - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_color_lightened_ft godot_color_lightened - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_array_duplicate_ft godot_array_duplicate - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_array_max_ft godot_array_max - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_array_min_ft godot_array_min - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_array_shuffle_ft godot_array_shuffle - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_basis_slerp_ft godot_basis_slerp - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_dictionary_get_with_default_ft godot_dictionary_get_with_default - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_dictionary_erase_with_return_ft godot_dictionary_erase_with_return - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_node_path_get_as_property_path_ft godot_node_path_get_as_property_path - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_quat_set_axis_angle_ft godot_quat_set_axis_angle - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_rect2_grow_individual_ft godot_rect2_grow_individual - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_rect2_grow_margin_ft godot_rect2_grow_margin - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_rect2_abs_ft godot_rect2_abs - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_string_dedent_ft godot_string_dedent - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_string_trim_prefix_ft godot_string_trim_prefix - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_string_trim_suffix_ft godot_string_trim_suffix - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_string_rstrip_ft godot_string_rstrip - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_string_rsplit_ft godot_string_rsplit - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_basis_get_quat_ft godot_basis_get_quat - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_basis_set_quat_ft godot_basis_set_quat - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_basis_set_axis_angle_scale_ft godot_basis_set_axis_angle_scale - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_basis_set_euler_scale_ft godot_basis_set_euler_scale - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_basis_set_quat_scale_ft godot_basis_set_quat_scale - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_is_instance_valid_ft godot_is_instance_valid - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_quat_new_with_basis_ft godot_quat_new_with_basis - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_quat_new_with_euler_ft godot_quat_new_with_euler - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_transform_new_with_quat_ft godot_transform_new_with_quat - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_variant_get_operator_name_ft godot_variant_get_operator_name - _godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_gdnative_core_1_1_api_struct_godot_variant_evaluate_ft godot_variant_evaluate - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_new_rgba_ft)(godot_color* r_dest, godot_real p_r, godot_real p_g, godot_real p_b, godot_real p_a) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_new_rgb_ft)(godot_color* r_dest, godot_real p_r, godot_real p_g, godot_real p_b) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_get_r_ft)(godot_color* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_set_r_ft)(godot_color* p_self, godot_real r) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_get_g_ft)(godot_color* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_set_g_ft)(godot_color* p_self, godot_real g) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_get_b_ft)(godot_color* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_set_b_ft)(godot_color* p_self, godot_real b) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_get_a_ft)(godot_color* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_set_a_ft)(godot_color* p_self, godot_real a) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_get_h_ft)(godot_color* p_self) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_get_s_ft)(godot_color* p_self) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_get_v_ft)(godot_color* p_self) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_as_string_ft)(godot_color* p_self) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_to_rgba32_ft)(godot_color* p_self) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_to_argb32_ft)(godot_color* p_self) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_gray_ft)(godot_color* p_self) - - ctypedef godot_color (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_inverted_ft)(godot_color* p_self) - - ctypedef godot_color (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_contrasted_ft)(godot_color* p_self) - - ctypedef godot_color (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_linear_interpolate_ft)(godot_color* p_self, godot_color* p_b, godot_real p_t) - - ctypedef godot_color (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_blend_ft)(godot_color* p_self, godot_color* p_over) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_to_html_ft)(godot_color* p_self, godot_bool p_with_alpha) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_operator_equal_ft)(godot_color* p_self, godot_color* p_b) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_operator_less_ft)(godot_color* p_self, godot_color* p_b) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_new_ft)(godot_vector2* r_dest, godot_real p_x, godot_real p_y) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_as_string_ft)(godot_vector2* p_self) - - ctypedef godot_vector2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_normalized_ft)(godot_vector2* p_self) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_length_ft)(godot_vector2* p_self) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_angle_ft)(godot_vector2* p_self) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_length_squared_ft)(godot_vector2* p_self) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_is_normalized_ft)(godot_vector2* p_self) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_distance_to_ft)(godot_vector2* p_self, godot_vector2* p_to) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_distance_squared_to_ft)(godot_vector2* p_self, godot_vector2* p_to) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_angle_to_ft)(godot_vector2* p_self, godot_vector2* p_to) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_angle_to_point_ft)(godot_vector2* p_self, godot_vector2* p_to) - - ctypedef godot_vector2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_linear_interpolate_ft)(godot_vector2* p_self, godot_vector2* p_b, godot_real p_t) - - ctypedef godot_vector2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_cubic_interpolate_ft)(godot_vector2* p_self, godot_vector2* p_b, godot_vector2* p_pre_a, godot_vector2* p_post_b, godot_real p_t) - - ctypedef godot_vector2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_rotated_ft)(godot_vector2* p_self, godot_real p_phi) - - ctypedef godot_vector2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_tangent_ft)(godot_vector2* p_self) - - ctypedef godot_vector2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_floor_ft)(godot_vector2* p_self) - - ctypedef godot_vector2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_snapped_ft)(godot_vector2* p_self, godot_vector2* p_by) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_aspect_ft)(godot_vector2* p_self) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_dot_ft)(godot_vector2* p_self, godot_vector2* p_with) - - ctypedef godot_vector2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_slide_ft)(godot_vector2* p_self, godot_vector2* p_n) - - ctypedef godot_vector2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_bounce_ft)(godot_vector2* p_self, godot_vector2* p_n) - - ctypedef godot_vector2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_reflect_ft)(godot_vector2* p_self, godot_vector2* p_n) - - ctypedef godot_vector2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_abs_ft)(godot_vector2* p_self) - - ctypedef godot_vector2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_clamped_ft)(godot_vector2* p_self, godot_real p_length) - - ctypedef godot_vector2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_operator_add_ft)(godot_vector2* p_self, godot_vector2* p_b) - - ctypedef godot_vector2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_operator_subtract_ft)(godot_vector2* p_self, godot_vector2* p_b) - - ctypedef godot_vector2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_operator_multiply_vector_ft)(godot_vector2* p_self, godot_vector2* p_b) - - ctypedef godot_vector2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_operator_multiply_scalar_ft)(godot_vector2* p_self, godot_real p_b) - - ctypedef godot_vector2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_operator_divide_vector_ft)(godot_vector2* p_self, godot_vector2* p_b) - - ctypedef godot_vector2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_operator_divide_scalar_ft)(godot_vector2* p_self, godot_real p_b) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_operator_equal_ft)(godot_vector2* p_self, godot_vector2* p_b) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_operator_less_ft)(godot_vector2* p_self, godot_vector2* p_b) - - ctypedef godot_vector2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_operator_neg_ft)(godot_vector2* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_set_x_ft)(godot_vector2* p_self, godot_real p_x) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_set_y_ft)(godot_vector2* p_self, godot_real p_y) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_get_x_ft)(godot_vector2* p_self) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_get_y_ft)(godot_vector2* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_new_ft)(godot_quat* r_dest, godot_real p_x, godot_real p_y, godot_real p_z, godot_real p_w) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_new_with_axis_angle_ft)(godot_quat* r_dest, godot_vector3* p_axis, godot_real p_angle) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_get_x_ft)(godot_quat* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_set_x_ft)(godot_quat* p_self, godot_real val) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_get_y_ft)(godot_quat* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_set_y_ft)(godot_quat* p_self, godot_real val) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_get_z_ft)(godot_quat* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_set_z_ft)(godot_quat* p_self, godot_real val) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_get_w_ft)(godot_quat* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_set_w_ft)(godot_quat* p_self, godot_real val) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_as_string_ft)(godot_quat* p_self) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_length_ft)(godot_quat* p_self) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_length_squared_ft)(godot_quat* p_self) - - ctypedef godot_quat (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_normalized_ft)(godot_quat* p_self) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_is_normalized_ft)(godot_quat* p_self) - - ctypedef godot_quat (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_inverse_ft)(godot_quat* p_self) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_dot_ft)(godot_quat* p_self, godot_quat* p_b) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_xform_ft)(godot_quat* p_self, godot_vector3* p_v) - - ctypedef godot_quat (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_slerp_ft)(godot_quat* p_self, godot_quat* p_b, godot_real p_t) - - ctypedef godot_quat (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_slerpni_ft)(godot_quat* p_self, godot_quat* p_b, godot_real p_t) - - ctypedef godot_quat (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_cubic_slerp_ft)(godot_quat* p_self, godot_quat* p_b, godot_quat* p_pre_a, godot_quat* p_post_b, godot_real p_t) - - ctypedef godot_quat (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_operator_multiply_ft)(godot_quat* p_self, godot_real p_b) - - ctypedef godot_quat (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_operator_add_ft)(godot_quat* p_self, godot_quat* p_b) - - ctypedef godot_quat (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_operator_subtract_ft)(godot_quat* p_self, godot_quat* p_b) - - ctypedef godot_quat (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_operator_divide_ft)(godot_quat* p_self, godot_real p_b) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_operator_equal_ft)(godot_quat* p_self, godot_quat* p_b) - - ctypedef godot_quat (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_operator_neg_ft)(godot_quat* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_new_with_rows_ft)(godot_basis* r_dest, godot_vector3* p_x_axis, godot_vector3* p_y_axis, godot_vector3* p_z_axis) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_new_with_axis_and_angle_ft)(godot_basis* r_dest, godot_vector3* p_axis, godot_real p_phi) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_new_with_euler_ft)(godot_basis* r_dest, godot_vector3* p_euler) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_as_string_ft)(godot_basis* p_self) - - ctypedef godot_basis (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_inverse_ft)(godot_basis* p_self) - - ctypedef godot_basis (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_transposed_ft)(godot_basis* p_self) - - ctypedef godot_basis (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_orthonormalized_ft)(godot_basis* p_self) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_determinant_ft)(godot_basis* p_self) - - ctypedef godot_basis (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_rotated_ft)(godot_basis* p_self, godot_vector3* p_axis, godot_real p_phi) - - ctypedef godot_basis (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_scaled_ft)(godot_basis* p_self, godot_vector3* p_scale) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_get_scale_ft)(godot_basis* p_self) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_get_euler_ft)(godot_basis* p_self) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_tdotx_ft)(godot_basis* p_self, godot_vector3* p_with) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_tdoty_ft)(godot_basis* p_self, godot_vector3* p_with) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_tdotz_ft)(godot_basis* p_self, godot_vector3* p_with) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_xform_ft)(godot_basis* p_self, godot_vector3* p_v) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_xform_inv_ft)(godot_basis* p_self, godot_vector3* p_v) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_get_orthogonal_index_ft)(godot_basis* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_new_ft)(godot_basis* r_dest) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_new_with_euler_quat_ft)(godot_basis* r_dest, godot_quat* p_euler) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_get_elements_ft)(godot_basis* p_self, godot_vector3* p_elements) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_get_axis_ft)(godot_basis* p_self, godot_int p_axis) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_set_axis_ft)(godot_basis* p_self, godot_int p_axis, godot_vector3* p_value) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_get_row_ft)(godot_basis* p_self, godot_int p_row) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_set_row_ft)(godot_basis* p_self, godot_int p_row, godot_vector3* p_value) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_operator_equal_ft)(godot_basis* p_self, godot_basis* p_b) - - ctypedef godot_basis (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_operator_add_ft)(godot_basis* p_self, godot_basis* p_b) - - ctypedef godot_basis (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_operator_subtract_ft)(godot_basis* p_self, godot_basis* p_b) - - ctypedef godot_basis (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_operator_multiply_vector_ft)(godot_basis* p_self, godot_basis* p_b) - - ctypedef godot_basis (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_operator_multiply_scalar_ft)(godot_basis* p_self, godot_real p_b) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_new_ft)(godot_vector3* r_dest, godot_real p_x, godot_real p_y, godot_real p_z) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_as_string_ft)(godot_vector3* p_self) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_min_axis_ft)(godot_vector3* p_self) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_max_axis_ft)(godot_vector3* p_self) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_length_ft)(godot_vector3* p_self) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_length_squared_ft)(godot_vector3* p_self) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_is_normalized_ft)(godot_vector3* p_self) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_normalized_ft)(godot_vector3* p_self) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_inverse_ft)(godot_vector3* p_self) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_snapped_ft)(godot_vector3* p_self, godot_vector3* p_by) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_rotated_ft)(godot_vector3* p_self, godot_vector3* p_axis, godot_real p_phi) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_linear_interpolate_ft)(godot_vector3* p_self, godot_vector3* p_b, godot_real p_t) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_cubic_interpolate_ft)(godot_vector3* p_self, godot_vector3* p_b, godot_vector3* p_pre_a, godot_vector3* p_post_b, godot_real p_t) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_dot_ft)(godot_vector3* p_self, godot_vector3* p_b) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_cross_ft)(godot_vector3* p_self, godot_vector3* p_b) - - ctypedef godot_basis (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_outer_ft)(godot_vector3* p_self, godot_vector3* p_b) - - ctypedef godot_basis (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_to_diagonal_matrix_ft)(godot_vector3* p_self) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_abs_ft)(godot_vector3* p_self) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_floor_ft)(godot_vector3* p_self) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_ceil_ft)(godot_vector3* p_self) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_distance_to_ft)(godot_vector3* p_self, godot_vector3* p_b) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_distance_squared_to_ft)(godot_vector3* p_self, godot_vector3* p_b) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_angle_to_ft)(godot_vector3* p_self, godot_vector3* p_to) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_slide_ft)(godot_vector3* p_self, godot_vector3* p_n) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_bounce_ft)(godot_vector3* p_self, godot_vector3* p_n) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_reflect_ft)(godot_vector3* p_self, godot_vector3* p_n) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_operator_add_ft)(godot_vector3* p_self, godot_vector3* p_b) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_operator_subtract_ft)(godot_vector3* p_self, godot_vector3* p_b) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_operator_multiply_vector_ft)(godot_vector3* p_self, godot_vector3* p_b) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_operator_multiply_scalar_ft)(godot_vector3* p_self, godot_real p_b) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_operator_divide_vector_ft)(godot_vector3* p_self, godot_vector3* p_b) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_operator_divide_scalar_ft)(godot_vector3* p_self, godot_real p_b) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_operator_equal_ft)(godot_vector3* p_self, godot_vector3* p_b) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_operator_less_ft)(godot_vector3* p_self, godot_vector3* p_b) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_operator_neg_ft)(godot_vector3* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_set_axis_ft)(godot_vector3* p_self, godot_vector3_axis p_axis, godot_real p_val) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_get_axis_ft)(godot_vector3* p_self, godot_vector3_axis p_axis) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_new_ft)(godot_pool_byte_array* r_dest) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_new_copy_ft)(godot_pool_byte_array* r_dest, godot_pool_byte_array* p_src) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_new_with_array_ft)(godot_pool_byte_array* r_dest, godot_array* p_a) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_append_ft)(godot_pool_byte_array* p_self, uint8_t p_data) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_append_array_ft)(godot_pool_byte_array* p_self, godot_pool_byte_array* p_array) - - ctypedef godot_error (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_insert_ft)(godot_pool_byte_array* p_self, godot_int p_idx, uint8_t p_data) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_invert_ft)(godot_pool_byte_array* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_push_back_ft)(godot_pool_byte_array* p_self, uint8_t p_data) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_remove_ft)(godot_pool_byte_array* p_self, godot_int p_idx) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_resize_ft)(godot_pool_byte_array* p_self, godot_int p_size) - - ctypedef godot_pool_byte_array_read_access* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_read_ft)(godot_pool_byte_array* p_self) - - ctypedef godot_pool_byte_array_write_access* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_write_ft)(godot_pool_byte_array* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_set_ft)(godot_pool_byte_array* p_self, godot_int p_idx, uint8_t p_data) - - ctypedef uint8_t (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_get_ft)(godot_pool_byte_array* p_self, godot_int p_idx) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_size_ft)(godot_pool_byte_array* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_destroy_ft)(godot_pool_byte_array* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_new_ft)(godot_pool_int_array* r_dest) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_new_copy_ft)(godot_pool_int_array* r_dest, godot_pool_int_array* p_src) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_new_with_array_ft)(godot_pool_int_array* r_dest, godot_array* p_a) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_append_ft)(godot_pool_int_array* p_self, godot_int p_data) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_append_array_ft)(godot_pool_int_array* p_self, godot_pool_int_array* p_array) - - ctypedef godot_error (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_insert_ft)(godot_pool_int_array* p_self, godot_int p_idx, godot_int p_data) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_invert_ft)(godot_pool_int_array* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_push_back_ft)(godot_pool_int_array* p_self, godot_int p_data) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_remove_ft)(godot_pool_int_array* p_self, godot_int p_idx) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_resize_ft)(godot_pool_int_array* p_self, godot_int p_size) - - ctypedef godot_pool_int_array_read_access* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_read_ft)(godot_pool_int_array* p_self) - - ctypedef godot_pool_int_array_write_access* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_write_ft)(godot_pool_int_array* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_set_ft)(godot_pool_int_array* p_self, godot_int p_idx, godot_int p_data) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_get_ft)(godot_pool_int_array* p_self, godot_int p_idx) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_size_ft)(godot_pool_int_array* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_destroy_ft)(godot_pool_int_array* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_new_ft)(godot_pool_real_array* r_dest) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_new_copy_ft)(godot_pool_real_array* r_dest, godot_pool_real_array* p_src) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_new_with_array_ft)(godot_pool_real_array* r_dest, godot_array* p_a) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_append_ft)(godot_pool_real_array* p_self, godot_real p_data) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_append_array_ft)(godot_pool_real_array* p_self, godot_pool_real_array* p_array) - - ctypedef godot_error (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_insert_ft)(godot_pool_real_array* p_self, godot_int p_idx, godot_real p_data) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_invert_ft)(godot_pool_real_array* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_push_back_ft)(godot_pool_real_array* p_self, godot_real p_data) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_remove_ft)(godot_pool_real_array* p_self, godot_int p_idx) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_resize_ft)(godot_pool_real_array* p_self, godot_int p_size) - - ctypedef godot_pool_real_array_read_access* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_read_ft)(godot_pool_real_array* p_self) - - ctypedef godot_pool_real_array_write_access* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_write_ft)(godot_pool_real_array* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_set_ft)(godot_pool_real_array* p_self, godot_int p_idx, godot_real p_data) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_get_ft)(godot_pool_real_array* p_self, godot_int p_idx) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_size_ft)(godot_pool_real_array* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_destroy_ft)(godot_pool_real_array* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_new_ft)(godot_pool_string_array* r_dest) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_new_copy_ft)(godot_pool_string_array* r_dest, godot_pool_string_array* p_src) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_new_with_array_ft)(godot_pool_string_array* r_dest, godot_array* p_a) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_append_ft)(godot_pool_string_array* p_self, godot_string* p_data) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_append_array_ft)(godot_pool_string_array* p_self, godot_pool_string_array* p_array) - - ctypedef godot_error (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_insert_ft)(godot_pool_string_array* p_self, godot_int p_idx, godot_string* p_data) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_invert_ft)(godot_pool_string_array* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_push_back_ft)(godot_pool_string_array* p_self, godot_string* p_data) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_remove_ft)(godot_pool_string_array* p_self, godot_int p_idx) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_resize_ft)(godot_pool_string_array* p_self, godot_int p_size) - - ctypedef godot_pool_string_array_read_access* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_read_ft)(godot_pool_string_array* p_self) - - ctypedef godot_pool_string_array_write_access* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_write_ft)(godot_pool_string_array* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_set_ft)(godot_pool_string_array* p_self, godot_int p_idx, godot_string* p_data) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_get_ft)(godot_pool_string_array* p_self, godot_int p_idx) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_size_ft)(godot_pool_string_array* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_destroy_ft)(godot_pool_string_array* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_new_ft)(godot_pool_vector2_array* r_dest) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_new_copy_ft)(godot_pool_vector2_array* r_dest, godot_pool_vector2_array* p_src) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_new_with_array_ft)(godot_pool_vector2_array* r_dest, godot_array* p_a) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_append_ft)(godot_pool_vector2_array* p_self, godot_vector2* p_data) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_append_array_ft)(godot_pool_vector2_array* p_self, godot_pool_vector2_array* p_array) - - ctypedef godot_error (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_insert_ft)(godot_pool_vector2_array* p_self, godot_int p_idx, godot_vector2* p_data) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_invert_ft)(godot_pool_vector2_array* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_push_back_ft)(godot_pool_vector2_array* p_self, godot_vector2* p_data) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_remove_ft)(godot_pool_vector2_array* p_self, godot_int p_idx) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_resize_ft)(godot_pool_vector2_array* p_self, godot_int p_size) - - ctypedef godot_pool_vector2_array_read_access* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_read_ft)(godot_pool_vector2_array* p_self) - - ctypedef godot_pool_vector2_array_write_access* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_write_ft)(godot_pool_vector2_array* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_set_ft)(godot_pool_vector2_array* p_self, godot_int p_idx, godot_vector2* p_data) - - ctypedef godot_vector2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_get_ft)(godot_pool_vector2_array* p_self, godot_int p_idx) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_size_ft)(godot_pool_vector2_array* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_destroy_ft)(godot_pool_vector2_array* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_new_ft)(godot_pool_vector3_array* r_dest) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_new_copy_ft)(godot_pool_vector3_array* r_dest, godot_pool_vector3_array* p_src) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_new_with_array_ft)(godot_pool_vector3_array* r_dest, godot_array* p_a) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_append_ft)(godot_pool_vector3_array* p_self, godot_vector3* p_data) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_append_array_ft)(godot_pool_vector3_array* p_self, godot_pool_vector3_array* p_array) - - ctypedef godot_error (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_insert_ft)(godot_pool_vector3_array* p_self, godot_int p_idx, godot_vector3* p_data) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_invert_ft)(godot_pool_vector3_array* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_push_back_ft)(godot_pool_vector3_array* p_self, godot_vector3* p_data) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_remove_ft)(godot_pool_vector3_array* p_self, godot_int p_idx) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_resize_ft)(godot_pool_vector3_array* p_self, godot_int p_size) - - ctypedef godot_pool_vector3_array_read_access* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_read_ft)(godot_pool_vector3_array* p_self) - - ctypedef godot_pool_vector3_array_write_access* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_write_ft)(godot_pool_vector3_array* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_set_ft)(godot_pool_vector3_array* p_self, godot_int p_idx, godot_vector3* p_data) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_get_ft)(godot_pool_vector3_array* p_self, godot_int p_idx) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_size_ft)(godot_pool_vector3_array* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_destroy_ft)(godot_pool_vector3_array* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_new_ft)(godot_pool_color_array* r_dest) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_new_copy_ft)(godot_pool_color_array* r_dest, godot_pool_color_array* p_src) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_new_with_array_ft)(godot_pool_color_array* r_dest, godot_array* p_a) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_append_ft)(godot_pool_color_array* p_self, godot_color* p_data) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_append_array_ft)(godot_pool_color_array* p_self, godot_pool_color_array* p_array) - - ctypedef godot_error (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_insert_ft)(godot_pool_color_array* p_self, godot_int p_idx, godot_color* p_data) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_invert_ft)(godot_pool_color_array* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_push_back_ft)(godot_pool_color_array* p_self, godot_color* p_data) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_remove_ft)(godot_pool_color_array* p_self, godot_int p_idx) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_resize_ft)(godot_pool_color_array* p_self, godot_int p_size) - - ctypedef godot_pool_color_array_read_access* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_read_ft)(godot_pool_color_array* p_self) - - ctypedef godot_pool_color_array_write_access* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_write_ft)(godot_pool_color_array* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_set_ft)(godot_pool_color_array* p_self, godot_int p_idx, godot_color* p_data) - - ctypedef godot_color (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_get_ft)(godot_pool_color_array* p_self, godot_int p_idx) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_size_ft)(godot_pool_color_array* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_destroy_ft)(godot_pool_color_array* p_self) - - ctypedef godot_pool_byte_array_read_access* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_read_access_copy_ft)(godot_pool_byte_array_read_access* p_read) - - ctypedef uint8_t* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_read_access_ptr_ft)(godot_pool_byte_array_read_access* p_read) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_read_access_operator_assign_ft)(godot_pool_byte_array_read_access* p_read, godot_pool_byte_array_read_access* p_other) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_read_access_destroy_ft)(godot_pool_byte_array_read_access* p_read) - - ctypedef godot_pool_int_array_read_access* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_read_access_copy_ft)(godot_pool_int_array_read_access* p_read) - - ctypedef godot_int* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_read_access_ptr_ft)(godot_pool_int_array_read_access* p_read) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_read_access_operator_assign_ft)(godot_pool_int_array_read_access* p_read, godot_pool_int_array_read_access* p_other) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_read_access_destroy_ft)(godot_pool_int_array_read_access* p_read) - - ctypedef godot_pool_real_array_read_access* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_read_access_copy_ft)(godot_pool_real_array_read_access* p_read) - - ctypedef godot_real* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_read_access_ptr_ft)(godot_pool_real_array_read_access* p_read) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_read_access_operator_assign_ft)(godot_pool_real_array_read_access* p_read, godot_pool_real_array_read_access* p_other) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_read_access_destroy_ft)(godot_pool_real_array_read_access* p_read) - - ctypedef godot_pool_string_array_read_access* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_read_access_copy_ft)(godot_pool_string_array_read_access* p_read) - - ctypedef godot_string* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_read_access_ptr_ft)(godot_pool_string_array_read_access* p_read) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_read_access_operator_assign_ft)(godot_pool_string_array_read_access* p_read, godot_pool_string_array_read_access* p_other) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_read_access_destroy_ft)(godot_pool_string_array_read_access* p_read) - - ctypedef godot_pool_vector2_array_read_access* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_read_access_copy_ft)(godot_pool_vector2_array_read_access* p_read) - - ctypedef godot_vector2* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_read_access_ptr_ft)(godot_pool_vector2_array_read_access* p_read) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_read_access_operator_assign_ft)(godot_pool_vector2_array_read_access* p_read, godot_pool_vector2_array_read_access* p_other) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_read_access_destroy_ft)(godot_pool_vector2_array_read_access* p_read) - - ctypedef godot_pool_vector3_array_read_access* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_read_access_copy_ft)(godot_pool_vector3_array_read_access* p_read) - - ctypedef godot_vector3* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_read_access_ptr_ft)(godot_pool_vector3_array_read_access* p_read) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_read_access_operator_assign_ft)(godot_pool_vector3_array_read_access* p_read, godot_pool_vector3_array_read_access* p_other) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_read_access_destroy_ft)(godot_pool_vector3_array_read_access* p_read) - - ctypedef godot_pool_color_array_read_access* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_read_access_copy_ft)(godot_pool_color_array_read_access* p_read) - - ctypedef godot_color* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_read_access_ptr_ft)(godot_pool_color_array_read_access* p_read) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_read_access_operator_assign_ft)(godot_pool_color_array_read_access* p_read, godot_pool_color_array_read_access* p_other) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_read_access_destroy_ft)(godot_pool_color_array_read_access* p_read) - - ctypedef godot_pool_byte_array_write_access* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_write_access_copy_ft)(godot_pool_byte_array_write_access* p_write) - - ctypedef uint8_t* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_write_access_ptr_ft)(godot_pool_byte_array_write_access* p_write) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_write_access_operator_assign_ft)(godot_pool_byte_array_write_access* p_write, godot_pool_byte_array_write_access* p_other) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_write_access_destroy_ft)(godot_pool_byte_array_write_access* p_write) - - ctypedef godot_pool_int_array_write_access* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_write_access_copy_ft)(godot_pool_int_array_write_access* p_write) - - ctypedef godot_int* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_write_access_ptr_ft)(godot_pool_int_array_write_access* p_write) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_write_access_operator_assign_ft)(godot_pool_int_array_write_access* p_write, godot_pool_int_array_write_access* p_other) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_write_access_destroy_ft)(godot_pool_int_array_write_access* p_write) - - ctypedef godot_pool_real_array_write_access* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_write_access_copy_ft)(godot_pool_real_array_write_access* p_write) - - ctypedef godot_real* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_write_access_ptr_ft)(godot_pool_real_array_write_access* p_write) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_write_access_operator_assign_ft)(godot_pool_real_array_write_access* p_write, godot_pool_real_array_write_access* p_other) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_write_access_destroy_ft)(godot_pool_real_array_write_access* p_write) - - ctypedef godot_pool_string_array_write_access* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_write_access_copy_ft)(godot_pool_string_array_write_access* p_write) - - ctypedef godot_string* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_write_access_ptr_ft)(godot_pool_string_array_write_access* p_write) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_write_access_operator_assign_ft)(godot_pool_string_array_write_access* p_write, godot_pool_string_array_write_access* p_other) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_write_access_destroy_ft)(godot_pool_string_array_write_access* p_write) - - ctypedef godot_pool_vector2_array_write_access* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_write_access_copy_ft)(godot_pool_vector2_array_write_access* p_write) - - ctypedef godot_vector2* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_write_access_ptr_ft)(godot_pool_vector2_array_write_access* p_write) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_write_access_operator_assign_ft)(godot_pool_vector2_array_write_access* p_write, godot_pool_vector2_array_write_access* p_other) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_write_access_destroy_ft)(godot_pool_vector2_array_write_access* p_write) - - ctypedef godot_pool_vector3_array_write_access* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_write_access_copy_ft)(godot_pool_vector3_array_write_access* p_write) - - ctypedef godot_vector3* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_write_access_ptr_ft)(godot_pool_vector3_array_write_access* p_write) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_write_access_operator_assign_ft)(godot_pool_vector3_array_write_access* p_write, godot_pool_vector3_array_write_access* p_other) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_write_access_destroy_ft)(godot_pool_vector3_array_write_access* p_write) - - ctypedef godot_pool_color_array_write_access* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_write_access_copy_ft)(godot_pool_color_array_write_access* p_write) - - ctypedef godot_color* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_write_access_ptr_ft)(godot_pool_color_array_write_access* p_write) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_write_access_operator_assign_ft)(godot_pool_color_array_write_access* p_write, godot_pool_color_array_write_access* p_other) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_write_access_destroy_ft)(godot_pool_color_array_write_access* p_write) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_new_ft)(godot_array* r_dest) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_new_copy_ft)(godot_array* r_dest, godot_array* p_src) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_new_pool_color_array_ft)(godot_array* r_dest, godot_pool_color_array* p_pca) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_new_pool_vector3_array_ft)(godot_array* r_dest, godot_pool_vector3_array* p_pv3a) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_new_pool_vector2_array_ft)(godot_array* r_dest, godot_pool_vector2_array* p_pv2a) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_new_pool_string_array_ft)(godot_array* r_dest, godot_pool_string_array* p_psa) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_new_pool_real_array_ft)(godot_array* r_dest, godot_pool_real_array* p_pra) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_new_pool_int_array_ft)(godot_array* r_dest, godot_pool_int_array* p_pia) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_new_pool_byte_array_ft)(godot_array* r_dest, godot_pool_byte_array* p_pba) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_set_ft)(godot_array* p_self, godot_int p_idx, godot_variant* p_value) - - ctypedef godot_variant (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_get_ft)(godot_array* p_self, godot_int p_idx) - - ctypedef godot_variant* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_operator_index_ft)(godot_array* p_self, godot_int p_idx) - - ctypedef godot_variant* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_operator_index_const_ft)(godot_array* p_self, godot_int p_idx) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_append_ft)(godot_array* p_self, godot_variant* p_value) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_clear_ft)(godot_array* p_self) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_count_ft)(godot_array* p_self, godot_variant* p_value) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_empty_ft)(godot_array* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_erase_ft)(godot_array* p_self, godot_variant* p_value) - - ctypedef godot_variant (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_front_ft)(godot_array* p_self) - - ctypedef godot_variant (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_back_ft)(godot_array* p_self) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_find_ft)(godot_array* p_self, godot_variant* p_what, godot_int p_from) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_find_last_ft)(godot_array* p_self, godot_variant* p_what) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_has_ft)(godot_array* p_self, godot_variant* p_value) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_hash_ft)(godot_array* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_insert_ft)(godot_array* p_self, godot_int p_pos, godot_variant* p_value) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_invert_ft)(godot_array* p_self) - - ctypedef godot_variant (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_pop_back_ft)(godot_array* p_self) - - ctypedef godot_variant (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_pop_front_ft)(godot_array* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_push_back_ft)(godot_array* p_self, godot_variant* p_value) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_push_front_ft)(godot_array* p_self, godot_variant* p_value) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_remove_ft)(godot_array* p_self, godot_int p_idx) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_resize_ft)(godot_array* p_self, godot_int p_size) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_rfind_ft)(godot_array* p_self, godot_variant* p_what, godot_int p_from) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_size_ft)(godot_array* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_sort_ft)(godot_array* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_sort_custom_ft)(godot_array* p_self, godot_object* p_obj, godot_string* p_func) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_bsearch_ft)(godot_array* p_self, godot_variant* p_value, godot_bool p_before) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_bsearch_custom_ft)(godot_array* p_self, godot_variant* p_value, godot_object* p_obj, godot_string* p_func, godot_bool p_before) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_destroy_ft)(godot_array* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_new_ft)(godot_dictionary* r_dest) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_new_copy_ft)(godot_dictionary* r_dest, godot_dictionary* p_src) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_destroy_ft)(godot_dictionary* p_self) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_size_ft)(godot_dictionary* p_self) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_empty_ft)(godot_dictionary* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_clear_ft)(godot_dictionary* p_self) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_has_ft)(godot_dictionary* p_self, godot_variant* p_key) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_has_all_ft)(godot_dictionary* p_self, godot_array* p_keys) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_erase_ft)(godot_dictionary* p_self, godot_variant* p_key) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_hash_ft)(godot_dictionary* p_self) - - ctypedef godot_array (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_keys_ft)(godot_dictionary* p_self) - - ctypedef godot_array (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_values_ft)(godot_dictionary* p_self) - - ctypedef godot_variant (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_get_ft)(godot_dictionary* p_self, godot_variant* p_key) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_set_ft)(godot_dictionary* p_self, godot_variant* p_key, godot_variant* p_value) - - ctypedef godot_variant* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_operator_index_ft)(godot_dictionary* p_self, godot_variant* p_key) - - ctypedef godot_variant* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_operator_index_const_ft)(godot_dictionary* p_self, godot_variant* p_key) - - ctypedef godot_variant* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_next_ft)(godot_dictionary* p_self, godot_variant* p_key) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_operator_equal_ft)(godot_dictionary* p_self, godot_dictionary* p_b) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_to_json_ft)(godot_dictionary* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_node_path_new_ft)(godot_node_path* r_dest, godot_string* p_from) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_node_path_new_copy_ft)(godot_node_path* r_dest, godot_node_path* p_src) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_node_path_destroy_ft)(godot_node_path* p_self) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_node_path_as_string_ft)(godot_node_path* p_self) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_node_path_is_absolute_ft)(godot_node_path* p_self) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_node_path_get_name_count_ft)(godot_node_path* p_self) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_node_path_get_name_ft)(godot_node_path* p_self, godot_int p_idx) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_node_path_get_subname_count_ft)(godot_node_path* p_self) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_node_path_get_subname_ft)(godot_node_path* p_self, godot_int p_idx) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_node_path_get_concatenated_subnames_ft)(godot_node_path* p_self) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_node_path_is_empty_ft)(godot_node_path* p_self) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_node_path_operator_equal_ft)(godot_node_path* p_self, godot_node_path* p_b) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_new_with_reals_ft)(godot_plane* r_dest, godot_real p_a, godot_real p_b, godot_real p_c, godot_real p_d) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_new_with_vectors_ft)(godot_plane* r_dest, godot_vector3* p_v1, godot_vector3* p_v2, godot_vector3* p_v3) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_new_with_normal_ft)(godot_plane* r_dest, godot_vector3* p_normal, godot_real p_d) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_as_string_ft)(godot_plane* p_self) - - ctypedef godot_plane (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_normalized_ft)(godot_plane* p_self) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_center_ft)(godot_plane* p_self) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_get_any_point_ft)(godot_plane* p_self) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_is_point_over_ft)(godot_plane* p_self, godot_vector3* p_point) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_distance_to_ft)(godot_plane* p_self, godot_vector3* p_point) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_has_point_ft)(godot_plane* p_self, godot_vector3* p_point, godot_real p_epsilon) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_project_ft)(godot_plane* p_self, godot_vector3* p_point) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_intersect_3_ft)(godot_plane* p_self, godot_vector3* r_dest, godot_plane* p_b, godot_plane* p_c) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_intersects_ray_ft)(godot_plane* p_self, godot_vector3* r_dest, godot_vector3* p_from, godot_vector3* p_dir) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_intersects_segment_ft)(godot_plane* p_self, godot_vector3* r_dest, godot_vector3* p_begin, godot_vector3* p_end) - - ctypedef godot_plane (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_operator_neg_ft)(godot_plane* p_self) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_operator_equal_ft)(godot_plane* p_self, godot_plane* p_b) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_set_normal_ft)(godot_plane* p_self, godot_vector3* p_normal) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_get_normal_ft)(godot_plane* p_self) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_get_d_ft)(godot_plane* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_set_d_ft)(godot_plane* p_self, godot_real p_d) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rect2_new_with_position_and_size_ft)(godot_rect2* r_dest, godot_vector2* p_pos, godot_vector2* p_size) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rect2_new_ft)(godot_rect2* r_dest, godot_real p_x, godot_real p_y, godot_real p_width, godot_real p_height) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rect2_as_string_ft)(godot_rect2* p_self) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rect2_get_area_ft)(godot_rect2* p_self) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rect2_intersects_ft)(godot_rect2* p_self, godot_rect2* p_b) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rect2_encloses_ft)(godot_rect2* p_self, godot_rect2* p_b) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rect2_has_no_area_ft)(godot_rect2* p_self) - - ctypedef godot_rect2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rect2_clip_ft)(godot_rect2* p_self, godot_rect2* p_b) - - ctypedef godot_rect2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rect2_merge_ft)(godot_rect2* p_self, godot_rect2* p_b) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rect2_has_point_ft)(godot_rect2* p_self, godot_vector2* p_point) - - ctypedef godot_rect2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rect2_grow_ft)(godot_rect2* p_self, godot_real p_by) - - ctypedef godot_rect2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rect2_expand_ft)(godot_rect2* p_self, godot_vector2* p_to) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rect2_operator_equal_ft)(godot_rect2* p_self, godot_rect2* p_b) - - ctypedef godot_vector2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rect2_get_position_ft)(godot_rect2* p_self) - - ctypedef godot_vector2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rect2_get_size_ft)(godot_rect2* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rect2_set_position_ft)(godot_rect2* p_self, godot_vector2* p_pos) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rect2_set_size_ft)(godot_rect2* p_self, godot_vector2* p_size) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_new_ft)(godot_aabb* r_dest, godot_vector3* p_pos, godot_vector3* p_size) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_get_position_ft)(godot_aabb* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_set_position_ft)(godot_aabb* p_self, godot_vector3* p_v) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_get_size_ft)(godot_aabb* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_set_size_ft)(godot_aabb* p_self, godot_vector3* p_v) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_as_string_ft)(godot_aabb* p_self) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_get_area_ft)(godot_aabb* p_self) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_has_no_area_ft)(godot_aabb* p_self) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_has_no_surface_ft)(godot_aabb* p_self) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_intersects_ft)(godot_aabb* p_self, godot_aabb* p_with) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_encloses_ft)(godot_aabb* p_self, godot_aabb* p_with) - - ctypedef godot_aabb (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_merge_ft)(godot_aabb* p_self, godot_aabb* p_with) - - ctypedef godot_aabb (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_intersection_ft)(godot_aabb* p_self, godot_aabb* p_with) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_intersects_plane_ft)(godot_aabb* p_self, godot_plane* p_plane) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_intersects_segment_ft)(godot_aabb* p_self, godot_vector3* p_from, godot_vector3* p_to) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_has_point_ft)(godot_aabb* p_self, godot_vector3* p_point) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_get_support_ft)(godot_aabb* p_self, godot_vector3* p_dir) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_get_longest_axis_ft)(godot_aabb* p_self) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_get_longest_axis_index_ft)(godot_aabb* p_self) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_get_longest_axis_size_ft)(godot_aabb* p_self) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_get_shortest_axis_ft)(godot_aabb* p_self) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_get_shortest_axis_index_ft)(godot_aabb* p_self) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_get_shortest_axis_size_ft)(godot_aabb* p_self) - - ctypedef godot_aabb (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_expand_ft)(godot_aabb* p_self, godot_vector3* p_to_point) - - ctypedef godot_aabb (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_grow_ft)(godot_aabb* p_self, godot_real p_by) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_get_endpoint_ft)(godot_aabb* p_self, godot_int p_idx) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_operator_equal_ft)(godot_aabb* p_self, godot_aabb* p_b) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rid_new_ft)(godot_rid* r_dest) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rid_get_id_ft)(godot_rid* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rid_new_with_resource_ft)(godot_rid* r_dest, godot_object* p_from) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rid_operator_equal_ft)(godot_rid* p_self, godot_rid* p_b) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rid_operator_less_ft)(godot_rid* p_self, godot_rid* p_b) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_new_with_axis_origin_ft)(godot_transform* r_dest, godot_vector3* p_x_axis, godot_vector3* p_y_axis, godot_vector3* p_z_axis, godot_vector3* p_origin) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_new_ft)(godot_transform* r_dest, godot_basis* p_basis, godot_vector3* p_origin) - - ctypedef godot_basis (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_get_basis_ft)(godot_transform* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_set_basis_ft)(godot_transform* p_self, godot_basis* p_v) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_get_origin_ft)(godot_transform* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_set_origin_ft)(godot_transform* p_self, godot_vector3* p_v) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_as_string_ft)(godot_transform* p_self) - - ctypedef godot_transform (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_inverse_ft)(godot_transform* p_self) - - ctypedef godot_transform (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_affine_inverse_ft)(godot_transform* p_self) - - ctypedef godot_transform (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_orthonormalized_ft)(godot_transform* p_self) - - ctypedef godot_transform (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_rotated_ft)(godot_transform* p_self, godot_vector3* p_axis, godot_real p_phi) - - ctypedef godot_transform (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_scaled_ft)(godot_transform* p_self, godot_vector3* p_scale) - - ctypedef godot_transform (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_translated_ft)(godot_transform* p_self, godot_vector3* p_ofs) - - ctypedef godot_transform (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_looking_at_ft)(godot_transform* p_self, godot_vector3* p_target, godot_vector3* p_up) - - ctypedef godot_plane (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_xform_plane_ft)(godot_transform* p_self, godot_plane* p_v) - - ctypedef godot_plane (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_xform_inv_plane_ft)(godot_transform* p_self, godot_plane* p_v) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_new_identity_ft)(godot_transform* r_dest) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_operator_equal_ft)(godot_transform* p_self, godot_transform* p_b) - - ctypedef godot_transform (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_operator_multiply_ft)(godot_transform* p_self, godot_transform* p_b) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_xform_vector3_ft)(godot_transform* p_self, godot_vector3* p_v) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_xform_inv_vector3_ft)(godot_transform* p_self, godot_vector3* p_v) - - ctypedef godot_aabb (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_xform_aabb_ft)(godot_transform* p_self, godot_aabb* p_v) - - ctypedef godot_aabb (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_xform_inv_aabb_ft)(godot_transform* p_self, godot_aabb* p_v) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_new_ft)(godot_transform2d* r_dest, godot_real p_rot, godot_vector2* p_pos) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_new_axis_origin_ft)(godot_transform2d* r_dest, godot_vector2* p_x_axis, godot_vector2* p_y_axis, godot_vector2* p_origin) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_as_string_ft)(godot_transform2d* p_self) - - ctypedef godot_transform2d (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_inverse_ft)(godot_transform2d* p_self) - - ctypedef godot_transform2d (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_affine_inverse_ft)(godot_transform2d* p_self) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_get_rotation_ft)(godot_transform2d* p_self) - - ctypedef godot_vector2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_get_origin_ft)(godot_transform2d* p_self) - - ctypedef godot_vector2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_get_scale_ft)(godot_transform2d* p_self) - - ctypedef godot_transform2d (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_orthonormalized_ft)(godot_transform2d* p_self) - - ctypedef godot_transform2d (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_rotated_ft)(godot_transform2d* p_self, godot_real p_phi) - - ctypedef godot_transform2d (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_scaled_ft)(godot_transform2d* p_self, godot_vector2* p_scale) - - ctypedef godot_transform2d (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_translated_ft)(godot_transform2d* p_self, godot_vector2* p_offset) - - ctypedef godot_vector2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_xform_vector2_ft)(godot_transform2d* p_self, godot_vector2* p_v) - - ctypedef godot_vector2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_xform_inv_vector2_ft)(godot_transform2d* p_self, godot_vector2* p_v) - - ctypedef godot_vector2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_basis_xform_vector2_ft)(godot_transform2d* p_self, godot_vector2* p_v) - - ctypedef godot_vector2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_basis_xform_inv_vector2_ft)(godot_transform2d* p_self, godot_vector2* p_v) - - ctypedef godot_transform2d (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_interpolate_with_ft)(godot_transform2d* p_self, godot_transform2d* p_m, godot_real p_c) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_operator_equal_ft)(godot_transform2d* p_self, godot_transform2d* p_b) - - ctypedef godot_transform2d (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_operator_multiply_ft)(godot_transform2d* p_self, godot_transform2d* p_b) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_new_identity_ft)(godot_transform2d* r_dest) - - ctypedef godot_rect2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_xform_rect2_ft)(godot_transform2d* p_self, godot_rect2* p_v) - - ctypedef godot_rect2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_xform_inv_rect2_ft)(godot_transform2d* p_self, godot_rect2* p_v) - - ctypedef godot_variant_type (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_get_type_ft)(godot_variant* p_v) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_copy_ft)(godot_variant* r_dest, godot_variant* p_src) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_nil_ft)(godot_variant* r_dest) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_bool_ft)(godot_variant* r_dest, godot_bool p_b) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_uint_ft)(godot_variant* r_dest, uint64_t p_i) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_int_ft)(godot_variant* r_dest, int64_t p_i) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_real_ft)(godot_variant* r_dest, double p_r) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_string_ft)(godot_variant* r_dest, godot_string* p_s) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_vector2_ft)(godot_variant* r_dest, godot_vector2* p_v2) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_rect2_ft)(godot_variant* r_dest, godot_rect2* p_rect2) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_vector3_ft)(godot_variant* r_dest, godot_vector3* p_v3) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_transform2d_ft)(godot_variant* r_dest, godot_transform2d* p_t2d) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_plane_ft)(godot_variant* r_dest, godot_plane* p_plane) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_quat_ft)(godot_variant* r_dest, godot_quat* p_quat) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_aabb_ft)(godot_variant* r_dest, godot_aabb* p_aabb) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_basis_ft)(godot_variant* r_dest, godot_basis* p_basis) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_transform_ft)(godot_variant* r_dest, godot_transform* p_trans) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_color_ft)(godot_variant* r_dest, godot_color* p_color) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_node_path_ft)(godot_variant* r_dest, godot_node_path* p_np) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_rid_ft)(godot_variant* r_dest, godot_rid* p_rid) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_object_ft)(godot_variant* r_dest, godot_object* p_obj) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_dictionary_ft)(godot_variant* r_dest, godot_dictionary* p_dict) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_array_ft)(godot_variant* r_dest, godot_array* p_arr) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_pool_byte_array_ft)(godot_variant* r_dest, godot_pool_byte_array* p_pba) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_pool_int_array_ft)(godot_variant* r_dest, godot_pool_int_array* p_pia) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_pool_real_array_ft)(godot_variant* r_dest, godot_pool_real_array* p_pra) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_pool_string_array_ft)(godot_variant* r_dest, godot_pool_string_array* p_psa) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_pool_vector2_array_ft)(godot_variant* r_dest, godot_pool_vector2_array* p_pv2a) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_pool_vector3_array_ft)(godot_variant* r_dest, godot_pool_vector3_array* p_pv3a) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_pool_color_array_ft)(godot_variant* r_dest, godot_pool_color_array* p_pca) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_bool_ft)(godot_variant* p_self) - - ctypedef uint64_t (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_uint_ft)(godot_variant* p_self) - - ctypedef int64_t (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_int_ft)(godot_variant* p_self) - - ctypedef double (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_real_ft)(godot_variant* p_self) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_string_ft)(godot_variant* p_self) - - ctypedef godot_vector2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_vector2_ft)(godot_variant* p_self) - - ctypedef godot_rect2 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_rect2_ft)(godot_variant* p_self) - - ctypedef godot_vector3 (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_vector3_ft)(godot_variant* p_self) - - ctypedef godot_transform2d (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_transform2d_ft)(godot_variant* p_self) - - ctypedef godot_plane (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_plane_ft)(godot_variant* p_self) - - ctypedef godot_quat (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_quat_ft)(godot_variant* p_self) - - ctypedef godot_aabb (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_aabb_ft)(godot_variant* p_self) - - ctypedef godot_basis (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_basis_ft)(godot_variant* p_self) - - ctypedef godot_transform (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_transform_ft)(godot_variant* p_self) - - ctypedef godot_color (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_color_ft)(godot_variant* p_self) - - ctypedef godot_node_path (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_node_path_ft)(godot_variant* p_self) - - ctypedef godot_rid (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_rid_ft)(godot_variant* p_self) - - ctypedef godot_object* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_object_ft)(godot_variant* p_self) - - ctypedef godot_dictionary (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_dictionary_ft)(godot_variant* p_self) - - ctypedef godot_array (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_array_ft)(godot_variant* p_self) - - ctypedef godot_pool_byte_array (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_pool_byte_array_ft)(godot_variant* p_self) - - ctypedef godot_pool_int_array (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_pool_int_array_ft)(godot_variant* p_self) - - ctypedef godot_pool_real_array (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_pool_real_array_ft)(godot_variant* p_self) - - ctypedef godot_pool_string_array (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_pool_string_array_ft)(godot_variant* p_self) - - ctypedef godot_pool_vector2_array (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_pool_vector2_array_ft)(godot_variant* p_self) - - ctypedef godot_pool_vector3_array (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_pool_vector3_array_ft)(godot_variant* p_self) - - ctypedef godot_pool_color_array (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_pool_color_array_ft)(godot_variant* p_self) - - ctypedef godot_variant (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_call_ft)(godot_variant* p_self, godot_string* p_method, godot_variant** p_args, godot_int p_argcount, godot_variant_call_error* r_error) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_has_method_ft)(godot_variant* p_self, godot_string* p_method) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_operator_equal_ft)(godot_variant* p_self, godot_variant* p_other) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_operator_less_ft)(godot_variant* p_self, godot_variant* p_other) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_hash_compare_ft)(godot_variant* p_self, godot_variant* p_other) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_booleanize_ft)(godot_variant* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_destroy_ft)(godot_variant* p_self) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_char_string_length_ft)(godot_char_string* p_cs) - - ctypedef char* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_char_string_get_data_ft)(godot_char_string* p_cs) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_char_string_destroy_ft)(godot_char_string* p_cs) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_new_ft)(godot_string* r_dest) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_new_copy_ft)(godot_string* r_dest, godot_string* p_src) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_new_with_wide_string_ft)(godot_string* r_dest, wchar_t* p_contents, int p_size) - - ctypedef wchar_t* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_operator_index_ft)(godot_string* p_self, godot_int p_idx) - - ctypedef wchar_t (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_operator_index_const_ft)(godot_string* p_self, godot_int p_idx) - - ctypedef wchar_t* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_wide_str_ft)(godot_string* p_self) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_operator_equal_ft)(godot_string* p_self, godot_string* p_b) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_operator_less_ft)(godot_string* p_self, godot_string* p_b) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_operator_plus_ft)(godot_string* p_self, godot_string* p_b) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_length_ft)(godot_string* p_self) - - ctypedef signed char (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_casecmp_to_ft)(godot_string* p_self, godot_string* p_str) - - ctypedef signed char (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_nocasecmp_to_ft)(godot_string* p_self, godot_string* p_str) - - ctypedef signed char (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_naturalnocasecmp_to_ft)(godot_string* p_self, godot_string* p_str) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_begins_with_ft)(godot_string* p_self, godot_string* p_string) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_begins_with_char_array_ft)(godot_string* p_self, char* p_char_array) - - ctypedef godot_array (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_bigrams_ft)(godot_string* p_self) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_chr_ft)(wchar_t p_character) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_ends_with_ft)(godot_string* p_self, godot_string* p_string) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_find_ft)(godot_string* p_self, godot_string p_what) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_find_from_ft)(godot_string* p_self, godot_string p_what, godot_int p_from) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_findmk_ft)(godot_string* p_self, godot_array* p_keys) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_findmk_from_ft)(godot_string* p_self, godot_array* p_keys, godot_int p_from) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_findmk_from_in_place_ft)(godot_string* p_self, godot_array* p_keys, godot_int p_from, godot_int* r_key) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_findn_ft)(godot_string* p_self, godot_string p_what) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_findn_from_ft)(godot_string* p_self, godot_string p_what, godot_int p_from) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_find_last_ft)(godot_string* p_self, godot_string p_what) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_format_ft)(godot_string* p_self, godot_variant* p_values) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_format_with_custom_placeholder_ft)(godot_string* p_self, godot_variant* p_values, char* p_placeholder) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_hex_encode_buffer_ft)(uint8_t* p_buffer, godot_int p_len) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_hex_to_int_ft)(godot_string* p_self) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_hex_to_int_without_prefix_ft)(godot_string* p_self) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_insert_ft)(godot_string* p_self, godot_int p_at_pos, godot_string p_string) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_is_numeric_ft)(godot_string* p_self) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_is_subsequence_of_ft)(godot_string* p_self, godot_string* p_string) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_is_subsequence_ofi_ft)(godot_string* p_self, godot_string* p_string) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_lpad_ft)(godot_string* p_self, godot_int p_min_length) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_lpad_with_custom_character_ft)(godot_string* p_self, godot_int p_min_length, godot_string* p_character) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_match_ft)(godot_string* p_self, godot_string* p_wildcard) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_matchn_ft)(godot_string* p_self, godot_string* p_wildcard) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_md5_ft)(uint8_t* p_md5) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_num_ft)(double p_num) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_num_int64_ft)(int64_t p_num, godot_int p_base) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_num_int64_capitalized_ft)(int64_t p_num, godot_int p_base, godot_bool p_capitalize_hex) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_num_real_ft)(double p_num) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_num_scientific_ft)(double p_num) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_num_with_decimals_ft)(double p_num, godot_int p_decimals) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_pad_decimals_ft)(godot_string* p_self, godot_int p_digits) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_pad_zeros_ft)(godot_string* p_self, godot_int p_digits) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_replace_first_ft)(godot_string* p_self, godot_string p_key, godot_string p_with) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_replace_ft)(godot_string* p_self, godot_string p_key, godot_string p_with) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_replacen_ft)(godot_string* p_self, godot_string p_key, godot_string p_with) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_rfind_ft)(godot_string* p_self, godot_string p_what) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_rfindn_ft)(godot_string* p_self, godot_string p_what) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_rfind_from_ft)(godot_string* p_self, godot_string p_what, godot_int p_from) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_rfindn_from_ft)(godot_string* p_self, godot_string p_what, godot_int p_from) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_rpad_ft)(godot_string* p_self, godot_int p_min_length) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_rpad_with_custom_character_ft)(godot_string* p_self, godot_int p_min_length, godot_string* p_character) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_similarity_ft)(godot_string* p_self, godot_string* p_string) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_sprintf_ft)(godot_string* p_self, godot_array* p_values, godot_bool* p_error) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_substr_ft)(godot_string* p_self, godot_int p_from, godot_int p_chars) - - ctypedef double (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_to_double_ft)(godot_string* p_self) - - ctypedef godot_real (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_to_float_ft)(godot_string* p_self) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_to_int_ft)(godot_string* p_self) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_camelcase_to_underscore_ft)(godot_string* p_self) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_camelcase_to_underscore_lowercased_ft)(godot_string* p_self) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_capitalize_ft)(godot_string* p_self) - - ctypedef double (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_char_to_double_ft)(char* p_what) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_char_to_int_ft)(char* p_what) - - ctypedef int64_t (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_wchar_to_int_ft)(wchar_t* p_str) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_char_to_int_with_len_ft)(char* p_what, godot_int p_len) - - ctypedef int64_t (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_char_to_int64_with_len_ft)(wchar_t* p_str, int p_len) - - ctypedef int64_t (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_hex_to_int64_ft)(godot_string* p_self) - - ctypedef int64_t (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_hex_to_int64_with_prefix_ft)(godot_string* p_self) - - ctypedef int64_t (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_to_int64_ft)(godot_string* p_self) - - ctypedef double (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_unicode_char_to_double_ft)(wchar_t* p_str, wchar_t** r_end) - - ctypedef godot_int (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_get_slice_count_ft)(godot_string* p_self, godot_string p_splitter) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_get_slice_ft)(godot_string* p_self, godot_string p_splitter, godot_int p_slice) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_get_slicec_ft)(godot_string* p_self, wchar_t p_splitter, godot_int p_slice) - - ctypedef godot_array (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_split_ft)(godot_string* p_self, godot_string* p_splitter) - - ctypedef godot_array (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_split_allow_empty_ft)(godot_string* p_self, godot_string* p_splitter) - - ctypedef godot_array (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_split_floats_ft)(godot_string* p_self, godot_string* p_splitter) - - ctypedef godot_array (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_split_floats_allows_empty_ft)(godot_string* p_self, godot_string* p_splitter) - - ctypedef godot_array (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_split_floats_mk_ft)(godot_string* p_self, godot_array* p_splitters) - - ctypedef godot_array (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_split_floats_mk_allows_empty_ft)(godot_string* p_self, godot_array* p_splitters) - - ctypedef godot_array (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_split_ints_ft)(godot_string* p_self, godot_string* p_splitter) - - ctypedef godot_array (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_split_ints_allows_empty_ft)(godot_string* p_self, godot_string* p_splitter) - - ctypedef godot_array (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_split_ints_mk_ft)(godot_string* p_self, godot_array* p_splitters) - - ctypedef godot_array (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_split_ints_mk_allows_empty_ft)(godot_string* p_self, godot_array* p_splitters) - - ctypedef godot_array (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_split_spaces_ft)(godot_string* p_self) - - ctypedef wchar_t (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_char_lowercase_ft)(wchar_t p_char) - - ctypedef wchar_t (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_char_uppercase_ft)(wchar_t p_char) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_to_lower_ft)(godot_string* p_self) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_to_upper_ft)(godot_string* p_self) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_get_basename_ft)(godot_string* p_self) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_get_extension_ft)(godot_string* p_self) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_left_ft)(godot_string* p_self, godot_int p_pos) - - ctypedef wchar_t (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_ord_at_ft)(godot_string* p_self, godot_int p_idx) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_plus_file_ft)(godot_string* p_self, godot_string* p_file) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_right_ft)(godot_string* p_self, godot_int p_pos) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_strip_edges_ft)(godot_string* p_self, godot_bool p_left, godot_bool p_right) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_strip_escapes_ft)(godot_string* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_erase_ft)(godot_string* p_self, godot_int p_pos, godot_int p_chars) - - ctypedef godot_char_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_ascii_ft)(godot_string* p_self) - - ctypedef godot_char_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_ascii_extended_ft)(godot_string* p_self) - - ctypedef godot_char_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_utf8_ft)(godot_string* p_self) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_parse_utf8_ft)(godot_string* p_self, char* p_utf8) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_parse_utf8_with_len_ft)(godot_string* p_self, char* p_utf8, godot_int p_len) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_chars_to_utf8_ft)(char* p_utf8) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_chars_to_utf8_with_len_ft)(char* p_utf8, godot_int p_len) - - ctypedef uint32_t (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_hash_ft)(godot_string* p_self) - - ctypedef uint64_t (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_hash64_ft)(godot_string* p_self) - - ctypedef uint32_t (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_hash_chars_ft)(char* p_cstr) - - ctypedef uint32_t (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_hash_chars_with_len_ft)(char* p_cstr, godot_int p_len) - - ctypedef uint32_t (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_hash_utf8_chars_ft)(wchar_t* p_str) - - ctypedef uint32_t (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_hash_utf8_chars_with_len_ft)(wchar_t* p_str, godot_int p_len) - - ctypedef godot_pool_byte_array (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_md5_buffer_ft)(godot_string* p_self) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_md5_text_ft)(godot_string* p_self) - - ctypedef godot_pool_byte_array (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_sha256_buffer_ft)(godot_string* p_self) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_sha256_text_ft)(godot_string* p_self) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_empty_ft)(godot_string* p_self) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_get_base_dir_ft)(godot_string* p_self) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_get_file_ft)(godot_string* p_self) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_humanize_size_ft)(size_t p_size) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_is_abs_path_ft)(godot_string* p_self) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_is_rel_path_ft)(godot_string* p_self) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_is_resource_file_ft)(godot_string* p_self) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_path_to_ft)(godot_string* p_self, godot_string* p_path) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_path_to_file_ft)(godot_string* p_self, godot_string* p_path) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_simplify_path_ft)(godot_string* p_self) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_c_escape_ft)(godot_string* p_self) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_c_escape_multiline_ft)(godot_string* p_self) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_c_unescape_ft)(godot_string* p_self) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_http_escape_ft)(godot_string* p_self) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_http_unescape_ft)(godot_string* p_self) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_json_escape_ft)(godot_string* p_self) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_word_wrap_ft)(godot_string* p_self, godot_int p_chars_per_line) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_xml_escape_ft)(godot_string* p_self) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_xml_escape_with_quotes_ft)(godot_string* p_self) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_xml_unescape_ft)(godot_string* p_self) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_percent_decode_ft)(godot_string* p_self) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_percent_encode_ft)(godot_string* p_self) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_is_valid_float_ft)(godot_string* p_self) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_is_valid_hex_number_ft)(godot_string* p_self, godot_bool p_with_prefix) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_is_valid_html_color_ft)(godot_string* p_self) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_is_valid_identifier_ft)(godot_string* p_self) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_is_valid_integer_ft)(godot_string* p_self) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_is_valid_ip_address_ft)(godot_string* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_destroy_ft)(godot_string* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_name_new_ft)(godot_string_name* r_dest, godot_string* p_name) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_name_new_data_ft)(godot_string_name* r_dest, char* p_name) - - ctypedef godot_string (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_name_get_name_ft)(godot_string_name* p_self) - - ctypedef uint32_t (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_name_get_hash_ft)(godot_string_name* p_self) - - ctypedef void* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_name_get_data_unique_pointer_ft)(godot_string_name* p_self) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_name_operator_equal_ft)(godot_string_name* p_self, godot_string_name* p_other) - - ctypedef godot_bool (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_name_operator_less_ft)(godot_string_name* p_self, godot_string_name* p_other) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_name_destroy_ft)(godot_string_name* p_self) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_object_destroy_ft)(godot_object* p_o) - - ctypedef godot_object* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_global_get_singleton_ft)(char* p_name) - - ctypedef godot_method_bind* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_method_bind_get_method_ft)(char* p_classname, char* p_methodname) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_method_bind_ptrcall_ft)(godot_method_bind* p_method_bind, godot_object* p_instance, void** p_args, void* p_ret) - - ctypedef godot_variant (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_method_bind_call_ft)(godot_method_bind* p_method_bind, godot_object* p_instance, godot_variant** p_args, int p_arg_count, godot_variant_call_error* p_call_error) - - ctypedef godot_class_constructor (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_get_class_constructor_ft)(char* p_classname) - - ctypedef godot_dictionary (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_get_global_constants_ft)() - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_register_native_call_type_ft)(char* call_type, native_call_cb p_callback) - - ctypedef void* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_alloc_ft)(int p_bytes) - - ctypedef void* (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_realloc_ft)(void* p_ptr, int p_bytes) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_free_ft)(void* p_ptr) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_print_error_ft)(char* p_description, char* p_function, char* p_file, int p_line) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_print_warning_ft)(char* p_description, char* p_function, char* p_file, int p_line) - - ctypedef void (*_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_print_ft)(godot_string* p_message) - - cdef struct godot_gdnative_core_api_struct: - unsigned int type - godot_gdnative_api_version version - godot_gdnative_api_struct* next - unsigned int num_extensions - godot_gdnative_api_struct** extensions - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_new_rgba_ft godot_color_new_rgba - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_new_rgb_ft godot_color_new_rgb - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_get_r_ft godot_color_get_r - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_set_r_ft godot_color_set_r - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_get_g_ft godot_color_get_g - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_set_g_ft godot_color_set_g - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_get_b_ft godot_color_get_b - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_set_b_ft godot_color_set_b - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_get_a_ft godot_color_get_a - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_set_a_ft godot_color_set_a - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_get_h_ft godot_color_get_h - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_get_s_ft godot_color_get_s - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_get_v_ft godot_color_get_v - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_as_string_ft godot_color_as_string - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_to_rgba32_ft godot_color_to_rgba32 - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_to_argb32_ft godot_color_to_argb32 - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_gray_ft godot_color_gray - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_inverted_ft godot_color_inverted - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_contrasted_ft godot_color_contrasted - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_linear_interpolate_ft godot_color_linear_interpolate - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_blend_ft godot_color_blend - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_to_html_ft godot_color_to_html - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_operator_equal_ft godot_color_operator_equal - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_color_operator_less_ft godot_color_operator_less - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_new_ft godot_vector2_new - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_as_string_ft godot_vector2_as_string - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_normalized_ft godot_vector2_normalized - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_length_ft godot_vector2_length - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_angle_ft godot_vector2_angle - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_length_squared_ft godot_vector2_length_squared - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_is_normalized_ft godot_vector2_is_normalized - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_distance_to_ft godot_vector2_distance_to - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_distance_squared_to_ft godot_vector2_distance_squared_to - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_angle_to_ft godot_vector2_angle_to - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_angle_to_point_ft godot_vector2_angle_to_point - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_linear_interpolate_ft godot_vector2_linear_interpolate - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_cubic_interpolate_ft godot_vector2_cubic_interpolate - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_rotated_ft godot_vector2_rotated - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_tangent_ft godot_vector2_tangent - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_floor_ft godot_vector2_floor - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_snapped_ft godot_vector2_snapped - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_aspect_ft godot_vector2_aspect - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_dot_ft godot_vector2_dot - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_slide_ft godot_vector2_slide - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_bounce_ft godot_vector2_bounce - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_reflect_ft godot_vector2_reflect - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_abs_ft godot_vector2_abs - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_clamped_ft godot_vector2_clamped - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_operator_add_ft godot_vector2_operator_add - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_operator_subtract_ft godot_vector2_operator_subtract - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_operator_multiply_vector_ft godot_vector2_operator_multiply_vector - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_operator_multiply_scalar_ft godot_vector2_operator_multiply_scalar - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_operator_divide_vector_ft godot_vector2_operator_divide_vector - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_operator_divide_scalar_ft godot_vector2_operator_divide_scalar - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_operator_equal_ft godot_vector2_operator_equal - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_operator_less_ft godot_vector2_operator_less - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_operator_neg_ft godot_vector2_operator_neg - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_set_x_ft godot_vector2_set_x - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_set_y_ft godot_vector2_set_y - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_get_x_ft godot_vector2_get_x - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector2_get_y_ft godot_vector2_get_y - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_new_ft godot_quat_new - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_new_with_axis_angle_ft godot_quat_new_with_axis_angle - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_get_x_ft godot_quat_get_x - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_set_x_ft godot_quat_set_x - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_get_y_ft godot_quat_get_y - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_set_y_ft godot_quat_set_y - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_get_z_ft godot_quat_get_z - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_set_z_ft godot_quat_set_z - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_get_w_ft godot_quat_get_w - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_set_w_ft godot_quat_set_w - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_as_string_ft godot_quat_as_string - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_length_ft godot_quat_length - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_length_squared_ft godot_quat_length_squared - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_normalized_ft godot_quat_normalized - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_is_normalized_ft godot_quat_is_normalized - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_inverse_ft godot_quat_inverse - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_dot_ft godot_quat_dot - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_xform_ft godot_quat_xform - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_slerp_ft godot_quat_slerp - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_slerpni_ft godot_quat_slerpni - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_cubic_slerp_ft godot_quat_cubic_slerp - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_operator_multiply_ft godot_quat_operator_multiply - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_operator_add_ft godot_quat_operator_add - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_operator_subtract_ft godot_quat_operator_subtract - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_operator_divide_ft godot_quat_operator_divide - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_operator_equal_ft godot_quat_operator_equal - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_quat_operator_neg_ft godot_quat_operator_neg - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_new_with_rows_ft godot_basis_new_with_rows - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_new_with_axis_and_angle_ft godot_basis_new_with_axis_and_angle - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_new_with_euler_ft godot_basis_new_with_euler - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_as_string_ft godot_basis_as_string - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_inverse_ft godot_basis_inverse - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_transposed_ft godot_basis_transposed - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_orthonormalized_ft godot_basis_orthonormalized - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_determinant_ft godot_basis_determinant - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_rotated_ft godot_basis_rotated - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_scaled_ft godot_basis_scaled - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_get_scale_ft godot_basis_get_scale - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_get_euler_ft godot_basis_get_euler - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_tdotx_ft godot_basis_tdotx - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_tdoty_ft godot_basis_tdoty - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_tdotz_ft godot_basis_tdotz - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_xform_ft godot_basis_xform - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_xform_inv_ft godot_basis_xform_inv - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_get_orthogonal_index_ft godot_basis_get_orthogonal_index - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_new_ft godot_basis_new - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_new_with_euler_quat_ft godot_basis_new_with_euler_quat - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_get_elements_ft godot_basis_get_elements - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_get_axis_ft godot_basis_get_axis - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_set_axis_ft godot_basis_set_axis - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_get_row_ft godot_basis_get_row - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_set_row_ft godot_basis_set_row - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_operator_equal_ft godot_basis_operator_equal - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_operator_add_ft godot_basis_operator_add - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_operator_subtract_ft godot_basis_operator_subtract - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_operator_multiply_vector_ft godot_basis_operator_multiply_vector - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_basis_operator_multiply_scalar_ft godot_basis_operator_multiply_scalar - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_new_ft godot_vector3_new - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_as_string_ft godot_vector3_as_string - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_min_axis_ft godot_vector3_min_axis - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_max_axis_ft godot_vector3_max_axis - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_length_ft godot_vector3_length - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_length_squared_ft godot_vector3_length_squared - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_is_normalized_ft godot_vector3_is_normalized - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_normalized_ft godot_vector3_normalized - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_inverse_ft godot_vector3_inverse - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_snapped_ft godot_vector3_snapped - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_rotated_ft godot_vector3_rotated - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_linear_interpolate_ft godot_vector3_linear_interpolate - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_cubic_interpolate_ft godot_vector3_cubic_interpolate - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_dot_ft godot_vector3_dot - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_cross_ft godot_vector3_cross - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_outer_ft godot_vector3_outer - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_to_diagonal_matrix_ft godot_vector3_to_diagonal_matrix - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_abs_ft godot_vector3_abs - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_floor_ft godot_vector3_floor - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_ceil_ft godot_vector3_ceil - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_distance_to_ft godot_vector3_distance_to - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_distance_squared_to_ft godot_vector3_distance_squared_to - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_angle_to_ft godot_vector3_angle_to - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_slide_ft godot_vector3_slide - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_bounce_ft godot_vector3_bounce - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_reflect_ft godot_vector3_reflect - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_operator_add_ft godot_vector3_operator_add - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_operator_subtract_ft godot_vector3_operator_subtract - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_operator_multiply_vector_ft godot_vector3_operator_multiply_vector - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_operator_multiply_scalar_ft godot_vector3_operator_multiply_scalar - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_operator_divide_vector_ft godot_vector3_operator_divide_vector - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_operator_divide_scalar_ft godot_vector3_operator_divide_scalar - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_operator_equal_ft godot_vector3_operator_equal - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_operator_less_ft godot_vector3_operator_less - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_operator_neg_ft godot_vector3_operator_neg - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_set_axis_ft godot_vector3_set_axis - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_vector3_get_axis_ft godot_vector3_get_axis - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_new_ft godot_pool_byte_array_new - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_new_copy_ft godot_pool_byte_array_new_copy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_new_with_array_ft godot_pool_byte_array_new_with_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_append_ft godot_pool_byte_array_append - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_append_array_ft godot_pool_byte_array_append_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_insert_ft godot_pool_byte_array_insert - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_invert_ft godot_pool_byte_array_invert - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_push_back_ft godot_pool_byte_array_push_back - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_remove_ft godot_pool_byte_array_remove - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_resize_ft godot_pool_byte_array_resize - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_read_ft godot_pool_byte_array_read - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_write_ft godot_pool_byte_array_write - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_set_ft godot_pool_byte_array_set - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_get_ft godot_pool_byte_array_get - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_size_ft godot_pool_byte_array_size - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_destroy_ft godot_pool_byte_array_destroy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_new_ft godot_pool_int_array_new - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_new_copy_ft godot_pool_int_array_new_copy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_new_with_array_ft godot_pool_int_array_new_with_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_append_ft godot_pool_int_array_append - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_append_array_ft godot_pool_int_array_append_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_insert_ft godot_pool_int_array_insert - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_invert_ft godot_pool_int_array_invert - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_push_back_ft godot_pool_int_array_push_back - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_remove_ft godot_pool_int_array_remove - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_resize_ft godot_pool_int_array_resize - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_read_ft godot_pool_int_array_read - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_write_ft godot_pool_int_array_write - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_set_ft godot_pool_int_array_set - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_get_ft godot_pool_int_array_get - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_size_ft godot_pool_int_array_size - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_destroy_ft godot_pool_int_array_destroy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_new_ft godot_pool_real_array_new - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_new_copy_ft godot_pool_real_array_new_copy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_new_with_array_ft godot_pool_real_array_new_with_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_append_ft godot_pool_real_array_append - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_append_array_ft godot_pool_real_array_append_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_insert_ft godot_pool_real_array_insert - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_invert_ft godot_pool_real_array_invert - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_push_back_ft godot_pool_real_array_push_back - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_remove_ft godot_pool_real_array_remove - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_resize_ft godot_pool_real_array_resize - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_read_ft godot_pool_real_array_read - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_write_ft godot_pool_real_array_write - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_set_ft godot_pool_real_array_set - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_get_ft godot_pool_real_array_get - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_size_ft godot_pool_real_array_size - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_destroy_ft godot_pool_real_array_destroy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_new_ft godot_pool_string_array_new - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_new_copy_ft godot_pool_string_array_new_copy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_new_with_array_ft godot_pool_string_array_new_with_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_append_ft godot_pool_string_array_append - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_append_array_ft godot_pool_string_array_append_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_insert_ft godot_pool_string_array_insert - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_invert_ft godot_pool_string_array_invert - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_push_back_ft godot_pool_string_array_push_back - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_remove_ft godot_pool_string_array_remove - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_resize_ft godot_pool_string_array_resize - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_read_ft godot_pool_string_array_read - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_write_ft godot_pool_string_array_write - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_set_ft godot_pool_string_array_set - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_get_ft godot_pool_string_array_get - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_size_ft godot_pool_string_array_size - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_destroy_ft godot_pool_string_array_destroy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_new_ft godot_pool_vector2_array_new - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_new_copy_ft godot_pool_vector2_array_new_copy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_new_with_array_ft godot_pool_vector2_array_new_with_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_append_ft godot_pool_vector2_array_append - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_append_array_ft godot_pool_vector2_array_append_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_insert_ft godot_pool_vector2_array_insert - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_invert_ft godot_pool_vector2_array_invert - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_push_back_ft godot_pool_vector2_array_push_back - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_remove_ft godot_pool_vector2_array_remove - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_resize_ft godot_pool_vector2_array_resize - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_read_ft godot_pool_vector2_array_read - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_write_ft godot_pool_vector2_array_write - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_set_ft godot_pool_vector2_array_set - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_get_ft godot_pool_vector2_array_get - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_size_ft godot_pool_vector2_array_size - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_destroy_ft godot_pool_vector2_array_destroy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_new_ft godot_pool_vector3_array_new - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_new_copy_ft godot_pool_vector3_array_new_copy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_new_with_array_ft godot_pool_vector3_array_new_with_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_append_ft godot_pool_vector3_array_append - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_append_array_ft godot_pool_vector3_array_append_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_insert_ft godot_pool_vector3_array_insert - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_invert_ft godot_pool_vector3_array_invert - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_push_back_ft godot_pool_vector3_array_push_back - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_remove_ft godot_pool_vector3_array_remove - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_resize_ft godot_pool_vector3_array_resize - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_read_ft godot_pool_vector3_array_read - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_write_ft godot_pool_vector3_array_write - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_set_ft godot_pool_vector3_array_set - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_get_ft godot_pool_vector3_array_get - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_size_ft godot_pool_vector3_array_size - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_destroy_ft godot_pool_vector3_array_destroy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_new_ft godot_pool_color_array_new - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_new_copy_ft godot_pool_color_array_new_copy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_new_with_array_ft godot_pool_color_array_new_with_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_append_ft godot_pool_color_array_append - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_append_array_ft godot_pool_color_array_append_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_insert_ft godot_pool_color_array_insert - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_invert_ft godot_pool_color_array_invert - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_push_back_ft godot_pool_color_array_push_back - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_remove_ft godot_pool_color_array_remove - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_resize_ft godot_pool_color_array_resize - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_read_ft godot_pool_color_array_read - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_write_ft godot_pool_color_array_write - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_set_ft godot_pool_color_array_set - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_get_ft godot_pool_color_array_get - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_size_ft godot_pool_color_array_size - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_destroy_ft godot_pool_color_array_destroy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_read_access_copy_ft godot_pool_byte_array_read_access_copy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_read_access_ptr_ft godot_pool_byte_array_read_access_ptr - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_read_access_operator_assign_ft godot_pool_byte_array_read_access_operator_assign - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_read_access_destroy_ft godot_pool_byte_array_read_access_destroy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_read_access_copy_ft godot_pool_int_array_read_access_copy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_read_access_ptr_ft godot_pool_int_array_read_access_ptr - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_read_access_operator_assign_ft godot_pool_int_array_read_access_operator_assign - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_read_access_destroy_ft godot_pool_int_array_read_access_destroy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_read_access_copy_ft godot_pool_real_array_read_access_copy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_read_access_ptr_ft godot_pool_real_array_read_access_ptr - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_read_access_operator_assign_ft godot_pool_real_array_read_access_operator_assign - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_read_access_destroy_ft godot_pool_real_array_read_access_destroy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_read_access_copy_ft godot_pool_string_array_read_access_copy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_read_access_ptr_ft godot_pool_string_array_read_access_ptr - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_read_access_operator_assign_ft godot_pool_string_array_read_access_operator_assign - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_read_access_destroy_ft godot_pool_string_array_read_access_destroy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_read_access_copy_ft godot_pool_vector2_array_read_access_copy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_read_access_ptr_ft godot_pool_vector2_array_read_access_ptr - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_read_access_operator_assign_ft godot_pool_vector2_array_read_access_operator_assign - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_read_access_destroy_ft godot_pool_vector2_array_read_access_destroy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_read_access_copy_ft godot_pool_vector3_array_read_access_copy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_read_access_ptr_ft godot_pool_vector3_array_read_access_ptr - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_read_access_operator_assign_ft godot_pool_vector3_array_read_access_operator_assign - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_read_access_destroy_ft godot_pool_vector3_array_read_access_destroy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_read_access_copy_ft godot_pool_color_array_read_access_copy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_read_access_ptr_ft godot_pool_color_array_read_access_ptr - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_read_access_operator_assign_ft godot_pool_color_array_read_access_operator_assign - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_read_access_destroy_ft godot_pool_color_array_read_access_destroy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_write_access_copy_ft godot_pool_byte_array_write_access_copy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_write_access_ptr_ft godot_pool_byte_array_write_access_ptr - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_write_access_operator_assign_ft godot_pool_byte_array_write_access_operator_assign - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_byte_array_write_access_destroy_ft godot_pool_byte_array_write_access_destroy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_write_access_copy_ft godot_pool_int_array_write_access_copy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_write_access_ptr_ft godot_pool_int_array_write_access_ptr - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_write_access_operator_assign_ft godot_pool_int_array_write_access_operator_assign - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_int_array_write_access_destroy_ft godot_pool_int_array_write_access_destroy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_write_access_copy_ft godot_pool_real_array_write_access_copy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_write_access_ptr_ft godot_pool_real_array_write_access_ptr - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_write_access_operator_assign_ft godot_pool_real_array_write_access_operator_assign - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_real_array_write_access_destroy_ft godot_pool_real_array_write_access_destroy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_write_access_copy_ft godot_pool_string_array_write_access_copy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_write_access_ptr_ft godot_pool_string_array_write_access_ptr - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_write_access_operator_assign_ft godot_pool_string_array_write_access_operator_assign - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_string_array_write_access_destroy_ft godot_pool_string_array_write_access_destroy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_write_access_copy_ft godot_pool_vector2_array_write_access_copy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_write_access_ptr_ft godot_pool_vector2_array_write_access_ptr - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_write_access_operator_assign_ft godot_pool_vector2_array_write_access_operator_assign - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector2_array_write_access_destroy_ft godot_pool_vector2_array_write_access_destroy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_write_access_copy_ft godot_pool_vector3_array_write_access_copy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_write_access_ptr_ft godot_pool_vector3_array_write_access_ptr - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_write_access_operator_assign_ft godot_pool_vector3_array_write_access_operator_assign - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_vector3_array_write_access_destroy_ft godot_pool_vector3_array_write_access_destroy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_write_access_copy_ft godot_pool_color_array_write_access_copy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_write_access_ptr_ft godot_pool_color_array_write_access_ptr - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_write_access_operator_assign_ft godot_pool_color_array_write_access_operator_assign - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_pool_color_array_write_access_destroy_ft godot_pool_color_array_write_access_destroy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_new_ft godot_array_new - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_new_copy_ft godot_array_new_copy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_new_pool_color_array_ft godot_array_new_pool_color_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_new_pool_vector3_array_ft godot_array_new_pool_vector3_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_new_pool_vector2_array_ft godot_array_new_pool_vector2_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_new_pool_string_array_ft godot_array_new_pool_string_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_new_pool_real_array_ft godot_array_new_pool_real_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_new_pool_int_array_ft godot_array_new_pool_int_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_new_pool_byte_array_ft godot_array_new_pool_byte_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_set_ft godot_array_set - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_get_ft godot_array_get - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_operator_index_ft godot_array_operator_index - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_operator_index_const_ft godot_array_operator_index_const - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_append_ft godot_array_append - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_clear_ft godot_array_clear - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_count_ft godot_array_count - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_empty_ft godot_array_empty - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_erase_ft godot_array_erase - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_front_ft godot_array_front - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_back_ft godot_array_back - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_find_ft godot_array_find - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_find_last_ft godot_array_find_last - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_has_ft godot_array_has - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_hash_ft godot_array_hash - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_insert_ft godot_array_insert - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_invert_ft godot_array_invert - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_pop_back_ft godot_array_pop_back - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_pop_front_ft godot_array_pop_front - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_push_back_ft godot_array_push_back - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_push_front_ft godot_array_push_front - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_remove_ft godot_array_remove - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_resize_ft godot_array_resize - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_rfind_ft godot_array_rfind - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_size_ft godot_array_size - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_sort_ft godot_array_sort - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_sort_custom_ft godot_array_sort_custom - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_bsearch_ft godot_array_bsearch - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_bsearch_custom_ft godot_array_bsearch_custom - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_array_destroy_ft godot_array_destroy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_new_ft godot_dictionary_new - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_new_copy_ft godot_dictionary_new_copy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_destroy_ft godot_dictionary_destroy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_size_ft godot_dictionary_size - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_empty_ft godot_dictionary_empty - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_clear_ft godot_dictionary_clear - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_has_ft godot_dictionary_has - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_has_all_ft godot_dictionary_has_all - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_erase_ft godot_dictionary_erase - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_hash_ft godot_dictionary_hash - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_keys_ft godot_dictionary_keys - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_values_ft godot_dictionary_values - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_get_ft godot_dictionary_get - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_set_ft godot_dictionary_set - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_operator_index_ft godot_dictionary_operator_index - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_operator_index_const_ft godot_dictionary_operator_index_const - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_next_ft godot_dictionary_next - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_operator_equal_ft godot_dictionary_operator_equal - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_dictionary_to_json_ft godot_dictionary_to_json - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_node_path_new_ft godot_node_path_new - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_node_path_new_copy_ft godot_node_path_new_copy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_node_path_destroy_ft godot_node_path_destroy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_node_path_as_string_ft godot_node_path_as_string - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_node_path_is_absolute_ft godot_node_path_is_absolute - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_node_path_get_name_count_ft godot_node_path_get_name_count - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_node_path_get_name_ft godot_node_path_get_name - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_node_path_get_subname_count_ft godot_node_path_get_subname_count - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_node_path_get_subname_ft godot_node_path_get_subname - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_node_path_get_concatenated_subnames_ft godot_node_path_get_concatenated_subnames - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_node_path_is_empty_ft godot_node_path_is_empty - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_node_path_operator_equal_ft godot_node_path_operator_equal - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_new_with_reals_ft godot_plane_new_with_reals - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_new_with_vectors_ft godot_plane_new_with_vectors - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_new_with_normal_ft godot_plane_new_with_normal - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_as_string_ft godot_plane_as_string - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_normalized_ft godot_plane_normalized - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_center_ft godot_plane_center - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_get_any_point_ft godot_plane_get_any_point - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_is_point_over_ft godot_plane_is_point_over - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_distance_to_ft godot_plane_distance_to - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_has_point_ft godot_plane_has_point - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_project_ft godot_plane_project - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_intersect_3_ft godot_plane_intersect_3 - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_intersects_ray_ft godot_plane_intersects_ray - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_intersects_segment_ft godot_plane_intersects_segment - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_operator_neg_ft godot_plane_operator_neg - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_operator_equal_ft godot_plane_operator_equal - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_set_normal_ft godot_plane_set_normal - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_get_normal_ft godot_plane_get_normal - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_get_d_ft godot_plane_get_d - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_plane_set_d_ft godot_plane_set_d - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rect2_new_with_position_and_size_ft godot_rect2_new_with_position_and_size - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rect2_new_ft godot_rect2_new - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rect2_as_string_ft godot_rect2_as_string - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rect2_get_area_ft godot_rect2_get_area - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rect2_intersects_ft godot_rect2_intersects - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rect2_encloses_ft godot_rect2_encloses - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rect2_has_no_area_ft godot_rect2_has_no_area - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rect2_clip_ft godot_rect2_clip - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rect2_merge_ft godot_rect2_merge - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rect2_has_point_ft godot_rect2_has_point - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rect2_grow_ft godot_rect2_grow - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rect2_expand_ft godot_rect2_expand - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rect2_operator_equal_ft godot_rect2_operator_equal - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rect2_get_position_ft godot_rect2_get_position - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rect2_get_size_ft godot_rect2_get_size - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rect2_set_position_ft godot_rect2_set_position - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rect2_set_size_ft godot_rect2_set_size - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_new_ft godot_aabb_new - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_get_position_ft godot_aabb_get_position - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_set_position_ft godot_aabb_set_position - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_get_size_ft godot_aabb_get_size - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_set_size_ft godot_aabb_set_size - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_as_string_ft godot_aabb_as_string - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_get_area_ft godot_aabb_get_area - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_has_no_area_ft godot_aabb_has_no_area - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_has_no_surface_ft godot_aabb_has_no_surface - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_intersects_ft godot_aabb_intersects - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_encloses_ft godot_aabb_encloses - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_merge_ft godot_aabb_merge - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_intersection_ft godot_aabb_intersection - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_intersects_plane_ft godot_aabb_intersects_plane - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_intersects_segment_ft godot_aabb_intersects_segment - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_has_point_ft godot_aabb_has_point - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_get_support_ft godot_aabb_get_support - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_get_longest_axis_ft godot_aabb_get_longest_axis - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_get_longest_axis_index_ft godot_aabb_get_longest_axis_index - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_get_longest_axis_size_ft godot_aabb_get_longest_axis_size - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_get_shortest_axis_ft godot_aabb_get_shortest_axis - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_get_shortest_axis_index_ft godot_aabb_get_shortest_axis_index - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_get_shortest_axis_size_ft godot_aabb_get_shortest_axis_size - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_expand_ft godot_aabb_expand - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_grow_ft godot_aabb_grow - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_get_endpoint_ft godot_aabb_get_endpoint - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_aabb_operator_equal_ft godot_aabb_operator_equal - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rid_new_ft godot_rid_new - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rid_get_id_ft godot_rid_get_id - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rid_new_with_resource_ft godot_rid_new_with_resource - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rid_operator_equal_ft godot_rid_operator_equal - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_rid_operator_less_ft godot_rid_operator_less - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_new_with_axis_origin_ft godot_transform_new_with_axis_origin - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_new_ft godot_transform_new - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_get_basis_ft godot_transform_get_basis - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_set_basis_ft godot_transform_set_basis - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_get_origin_ft godot_transform_get_origin - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_set_origin_ft godot_transform_set_origin - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_as_string_ft godot_transform_as_string - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_inverse_ft godot_transform_inverse - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_affine_inverse_ft godot_transform_affine_inverse - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_orthonormalized_ft godot_transform_orthonormalized - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_rotated_ft godot_transform_rotated - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_scaled_ft godot_transform_scaled - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_translated_ft godot_transform_translated - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_looking_at_ft godot_transform_looking_at - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_xform_plane_ft godot_transform_xform_plane - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_xform_inv_plane_ft godot_transform_xform_inv_plane - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_new_identity_ft godot_transform_new_identity - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_operator_equal_ft godot_transform_operator_equal - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_operator_multiply_ft godot_transform_operator_multiply - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_xform_vector3_ft godot_transform_xform_vector3 - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_xform_inv_vector3_ft godot_transform_xform_inv_vector3 - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_xform_aabb_ft godot_transform_xform_aabb - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform_xform_inv_aabb_ft godot_transform_xform_inv_aabb - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_new_ft godot_transform2d_new - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_new_axis_origin_ft godot_transform2d_new_axis_origin - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_as_string_ft godot_transform2d_as_string - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_inverse_ft godot_transform2d_inverse - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_affine_inverse_ft godot_transform2d_affine_inverse - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_get_rotation_ft godot_transform2d_get_rotation - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_get_origin_ft godot_transform2d_get_origin - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_get_scale_ft godot_transform2d_get_scale - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_orthonormalized_ft godot_transform2d_orthonormalized - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_rotated_ft godot_transform2d_rotated - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_scaled_ft godot_transform2d_scaled - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_translated_ft godot_transform2d_translated - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_xform_vector2_ft godot_transform2d_xform_vector2 - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_xform_inv_vector2_ft godot_transform2d_xform_inv_vector2 - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_basis_xform_vector2_ft godot_transform2d_basis_xform_vector2 - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_basis_xform_inv_vector2_ft godot_transform2d_basis_xform_inv_vector2 - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_interpolate_with_ft godot_transform2d_interpolate_with - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_operator_equal_ft godot_transform2d_operator_equal - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_operator_multiply_ft godot_transform2d_operator_multiply - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_new_identity_ft godot_transform2d_new_identity - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_xform_rect2_ft godot_transform2d_xform_rect2 - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_transform2d_xform_inv_rect2_ft godot_transform2d_xform_inv_rect2 - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_get_type_ft godot_variant_get_type - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_copy_ft godot_variant_new_copy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_nil_ft godot_variant_new_nil - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_bool_ft godot_variant_new_bool - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_uint_ft godot_variant_new_uint - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_int_ft godot_variant_new_int - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_real_ft godot_variant_new_real - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_string_ft godot_variant_new_string - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_vector2_ft godot_variant_new_vector2 - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_rect2_ft godot_variant_new_rect2 - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_vector3_ft godot_variant_new_vector3 - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_transform2d_ft godot_variant_new_transform2d - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_plane_ft godot_variant_new_plane - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_quat_ft godot_variant_new_quat - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_aabb_ft godot_variant_new_aabb - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_basis_ft godot_variant_new_basis - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_transform_ft godot_variant_new_transform - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_color_ft godot_variant_new_color - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_node_path_ft godot_variant_new_node_path - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_rid_ft godot_variant_new_rid - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_object_ft godot_variant_new_object - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_dictionary_ft godot_variant_new_dictionary - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_array_ft godot_variant_new_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_pool_byte_array_ft godot_variant_new_pool_byte_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_pool_int_array_ft godot_variant_new_pool_int_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_pool_real_array_ft godot_variant_new_pool_real_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_pool_string_array_ft godot_variant_new_pool_string_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_pool_vector2_array_ft godot_variant_new_pool_vector2_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_pool_vector3_array_ft godot_variant_new_pool_vector3_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_new_pool_color_array_ft godot_variant_new_pool_color_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_bool_ft godot_variant_as_bool - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_uint_ft godot_variant_as_uint - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_int_ft godot_variant_as_int - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_real_ft godot_variant_as_real - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_string_ft godot_variant_as_string - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_vector2_ft godot_variant_as_vector2 - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_rect2_ft godot_variant_as_rect2 - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_vector3_ft godot_variant_as_vector3 - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_transform2d_ft godot_variant_as_transform2d - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_plane_ft godot_variant_as_plane - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_quat_ft godot_variant_as_quat - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_aabb_ft godot_variant_as_aabb - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_basis_ft godot_variant_as_basis - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_transform_ft godot_variant_as_transform - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_color_ft godot_variant_as_color - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_node_path_ft godot_variant_as_node_path - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_rid_ft godot_variant_as_rid - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_object_ft godot_variant_as_object - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_dictionary_ft godot_variant_as_dictionary - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_array_ft godot_variant_as_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_pool_byte_array_ft godot_variant_as_pool_byte_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_pool_int_array_ft godot_variant_as_pool_int_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_pool_real_array_ft godot_variant_as_pool_real_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_pool_string_array_ft godot_variant_as_pool_string_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_pool_vector2_array_ft godot_variant_as_pool_vector2_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_pool_vector3_array_ft godot_variant_as_pool_vector3_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_as_pool_color_array_ft godot_variant_as_pool_color_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_call_ft godot_variant_call - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_has_method_ft godot_variant_has_method - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_operator_equal_ft godot_variant_operator_equal - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_operator_less_ft godot_variant_operator_less - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_hash_compare_ft godot_variant_hash_compare - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_booleanize_ft godot_variant_booleanize - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_variant_destroy_ft godot_variant_destroy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_char_string_length_ft godot_char_string_length - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_char_string_get_data_ft godot_char_string_get_data - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_char_string_destroy_ft godot_char_string_destroy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_new_ft godot_string_new - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_new_copy_ft godot_string_new_copy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_new_with_wide_string_ft godot_string_new_with_wide_string - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_operator_index_ft godot_string_operator_index - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_operator_index_const_ft godot_string_operator_index_const - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_wide_str_ft godot_string_wide_str - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_operator_equal_ft godot_string_operator_equal - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_operator_less_ft godot_string_operator_less - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_operator_plus_ft godot_string_operator_plus - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_length_ft godot_string_length - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_casecmp_to_ft godot_string_casecmp_to - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_nocasecmp_to_ft godot_string_nocasecmp_to - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_naturalnocasecmp_to_ft godot_string_naturalnocasecmp_to - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_begins_with_ft godot_string_begins_with - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_begins_with_char_array_ft godot_string_begins_with_char_array - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_bigrams_ft godot_string_bigrams - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_chr_ft godot_string_chr - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_ends_with_ft godot_string_ends_with - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_find_ft godot_string_find - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_find_from_ft godot_string_find_from - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_findmk_ft godot_string_findmk - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_findmk_from_ft godot_string_findmk_from - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_findmk_from_in_place_ft godot_string_findmk_from_in_place - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_findn_ft godot_string_findn - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_findn_from_ft godot_string_findn_from - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_find_last_ft godot_string_find_last - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_format_ft godot_string_format - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_format_with_custom_placeholder_ft godot_string_format_with_custom_placeholder - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_hex_encode_buffer_ft godot_string_hex_encode_buffer - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_hex_to_int_ft godot_string_hex_to_int - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_hex_to_int_without_prefix_ft godot_string_hex_to_int_without_prefix - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_insert_ft godot_string_insert - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_is_numeric_ft godot_string_is_numeric - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_is_subsequence_of_ft godot_string_is_subsequence_of - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_is_subsequence_ofi_ft godot_string_is_subsequence_ofi - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_lpad_ft godot_string_lpad - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_lpad_with_custom_character_ft godot_string_lpad_with_custom_character - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_match_ft godot_string_match - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_matchn_ft godot_string_matchn - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_md5_ft godot_string_md5 - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_num_ft godot_string_num - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_num_int64_ft godot_string_num_int64 - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_num_int64_capitalized_ft godot_string_num_int64_capitalized - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_num_real_ft godot_string_num_real - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_num_scientific_ft godot_string_num_scientific - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_num_with_decimals_ft godot_string_num_with_decimals - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_pad_decimals_ft godot_string_pad_decimals - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_pad_zeros_ft godot_string_pad_zeros - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_replace_first_ft godot_string_replace_first - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_replace_ft godot_string_replace - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_replacen_ft godot_string_replacen - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_rfind_ft godot_string_rfind - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_rfindn_ft godot_string_rfindn - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_rfind_from_ft godot_string_rfind_from - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_rfindn_from_ft godot_string_rfindn_from - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_rpad_ft godot_string_rpad - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_rpad_with_custom_character_ft godot_string_rpad_with_custom_character - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_similarity_ft godot_string_similarity - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_sprintf_ft godot_string_sprintf - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_substr_ft godot_string_substr - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_to_double_ft godot_string_to_double - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_to_float_ft godot_string_to_float - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_to_int_ft godot_string_to_int - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_camelcase_to_underscore_ft godot_string_camelcase_to_underscore - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_camelcase_to_underscore_lowercased_ft godot_string_camelcase_to_underscore_lowercased - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_capitalize_ft godot_string_capitalize - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_char_to_double_ft godot_string_char_to_double - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_char_to_int_ft godot_string_char_to_int - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_wchar_to_int_ft godot_string_wchar_to_int - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_char_to_int_with_len_ft godot_string_char_to_int_with_len - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_char_to_int64_with_len_ft godot_string_char_to_int64_with_len - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_hex_to_int64_ft godot_string_hex_to_int64 - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_hex_to_int64_with_prefix_ft godot_string_hex_to_int64_with_prefix - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_to_int64_ft godot_string_to_int64 - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_unicode_char_to_double_ft godot_string_unicode_char_to_double - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_get_slice_count_ft godot_string_get_slice_count - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_get_slice_ft godot_string_get_slice - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_get_slicec_ft godot_string_get_slicec - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_split_ft godot_string_split - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_split_allow_empty_ft godot_string_split_allow_empty - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_split_floats_ft godot_string_split_floats - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_split_floats_allows_empty_ft godot_string_split_floats_allows_empty - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_split_floats_mk_ft godot_string_split_floats_mk - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_split_floats_mk_allows_empty_ft godot_string_split_floats_mk_allows_empty - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_split_ints_ft godot_string_split_ints - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_split_ints_allows_empty_ft godot_string_split_ints_allows_empty - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_split_ints_mk_ft godot_string_split_ints_mk - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_split_ints_mk_allows_empty_ft godot_string_split_ints_mk_allows_empty - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_split_spaces_ft godot_string_split_spaces - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_char_lowercase_ft godot_string_char_lowercase - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_char_uppercase_ft godot_string_char_uppercase - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_to_lower_ft godot_string_to_lower - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_to_upper_ft godot_string_to_upper - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_get_basename_ft godot_string_get_basename - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_get_extension_ft godot_string_get_extension - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_left_ft godot_string_left - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_ord_at_ft godot_string_ord_at - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_plus_file_ft godot_string_plus_file - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_right_ft godot_string_right - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_strip_edges_ft godot_string_strip_edges - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_strip_escapes_ft godot_string_strip_escapes - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_erase_ft godot_string_erase - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_ascii_ft godot_string_ascii - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_ascii_extended_ft godot_string_ascii_extended - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_utf8_ft godot_string_utf8 - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_parse_utf8_ft godot_string_parse_utf8 - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_parse_utf8_with_len_ft godot_string_parse_utf8_with_len - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_chars_to_utf8_ft godot_string_chars_to_utf8 - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_chars_to_utf8_with_len_ft godot_string_chars_to_utf8_with_len - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_hash_ft godot_string_hash - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_hash64_ft godot_string_hash64 - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_hash_chars_ft godot_string_hash_chars - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_hash_chars_with_len_ft godot_string_hash_chars_with_len - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_hash_utf8_chars_ft godot_string_hash_utf8_chars - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_hash_utf8_chars_with_len_ft godot_string_hash_utf8_chars_with_len - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_md5_buffer_ft godot_string_md5_buffer - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_md5_text_ft godot_string_md5_text - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_sha256_buffer_ft godot_string_sha256_buffer - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_sha256_text_ft godot_string_sha256_text - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_empty_ft godot_string_empty - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_get_base_dir_ft godot_string_get_base_dir - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_get_file_ft godot_string_get_file - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_humanize_size_ft godot_string_humanize_size - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_is_abs_path_ft godot_string_is_abs_path - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_is_rel_path_ft godot_string_is_rel_path - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_is_resource_file_ft godot_string_is_resource_file - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_path_to_ft godot_string_path_to - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_path_to_file_ft godot_string_path_to_file - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_simplify_path_ft godot_string_simplify_path - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_c_escape_ft godot_string_c_escape - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_c_escape_multiline_ft godot_string_c_escape_multiline - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_c_unescape_ft godot_string_c_unescape - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_http_escape_ft godot_string_http_escape - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_http_unescape_ft godot_string_http_unescape - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_json_escape_ft godot_string_json_escape - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_word_wrap_ft godot_string_word_wrap - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_xml_escape_ft godot_string_xml_escape - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_xml_escape_with_quotes_ft godot_string_xml_escape_with_quotes - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_xml_unescape_ft godot_string_xml_unescape - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_percent_decode_ft godot_string_percent_decode - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_percent_encode_ft godot_string_percent_encode - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_is_valid_float_ft godot_string_is_valid_float - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_is_valid_hex_number_ft godot_string_is_valid_hex_number - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_is_valid_html_color_ft godot_string_is_valid_html_color - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_is_valid_identifier_ft godot_string_is_valid_identifier - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_is_valid_integer_ft godot_string_is_valid_integer - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_is_valid_ip_address_ft godot_string_is_valid_ip_address - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_destroy_ft godot_string_destroy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_name_new_ft godot_string_name_new - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_name_new_data_ft godot_string_name_new_data - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_name_get_name_ft godot_string_name_get_name - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_name_get_hash_ft godot_string_name_get_hash - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_name_get_data_unique_pointer_ft godot_string_name_get_data_unique_pointer - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_name_operator_equal_ft godot_string_name_operator_equal - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_name_operator_less_ft godot_string_name_operator_less - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_string_name_destroy_ft godot_string_name_destroy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_object_destroy_ft godot_object_destroy - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_global_get_singleton_ft godot_global_get_singleton - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_method_bind_get_method_ft godot_method_bind_get_method - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_method_bind_ptrcall_ft godot_method_bind_ptrcall - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_method_bind_call_ft godot_method_bind_call - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_get_class_constructor_ft godot_get_class_constructor - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_get_global_constants_ft godot_get_global_constants - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_register_native_call_type_ft godot_register_native_call_type - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_alloc_ft godot_alloc - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_realloc_ft godot_realloc - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_free_ft godot_free - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_print_error_ft godot_print_error - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_print_warning_ft godot_print_warning - _godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_gdnative_core_api_struct_godot_print_ft godot_print diff --git a/requirements.txt b/requirements.txt index b0742d76..247cc624 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,5 +2,6 @@ scons==3.1.1 cython==0.29.21 black==19.10b0 autopxd==1.0.0 +pycparser==2.20 jinja2==2.10.3 zstandard==0.13.0 diff --git a/tests/bindings/test_string.py b/tests/bindings/test_string.py index d7d7dcc4..9eb9c1c3 100644 --- a/tests/bindings/test_string.py +++ b/tests/bindings/test_string.py @@ -23,6 +23,8 @@ def test_base(): assert GDString("abc").length() == 3 assert GDString("3.14").to_float() == pytest.approx(3.14) assert GDString("42").to_int() == 42 + # GDString.humanize_size is a static method + assert GDString.humanize_size(133790307) == GDString("127.5 MiB") @pytest.mark.parametrize("char", ["e", "é", "€", "蛇", "🐍"]) From 3345950e14f917d71a54da649608965b67c6b0fa Mon Sep 17 00:00:00 2001 From: Emmanuel Leblond Date: Tue, 6 Oct 2020 21:57:10 +0200 Subject: [PATCH 6/8] Optimization in generate_gdnative_api_struct.py, bam ! 2x time faster ! --- generation/generate_gdnative_api_struct.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/generation/generate_gdnative_api_struct.py b/generation/generate_gdnative_api_struct.py index 7fb1319f..c795d55a 100644 --- a/generation/generate_gdnative_api_struct.py +++ b/generation/generate_gdnative_api_struct.py @@ -232,6 +232,9 @@ def handle_unknown(self, line): self.error_occurred(f"Unknown preprocessor command `{line}`") def expand_macros(self, line): + # Simple optim to discard most of the lines given regex search is cpu heavy + if not line or all(key not in line for key in self.defined_vars.keys()): + return line expanded_line = line # Recursive expansion given a macro can reference another one while True: From 8c5764b83c9e7caad82523926c5b08ccf317e689 Mon Sep 17 00:00:00 2001 From: Emmanuel Leblond Date: Tue, 6 Oct 2020 21:59:07 +0200 Subject: [PATCH 7/8] Update autopxd2 version --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 247cc624..5be65023 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,7 @@ scons==3.1.1 cython==0.29.21 black==19.10b0 -autopxd==1.0.0 +autopxd2==1.1.0 pycparser==2.20 jinja2==2.10.3 zstandard==0.13.0 From 5549e0cd00f0e571370d112b5ae9a495d3f15c6a Mon Sep 17 00:00:00 2001 From: Emmanuel Leblond Date: Thu, 8 Oct 2020 13:54:40 +0200 Subject: [PATCH 8/8] Delete _ignored.tmpl.pxi --- generation/builtins_templates/_ignored.tmpl.pxi | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 generation/builtins_templates/_ignored.tmpl.pxi diff --git a/generation/builtins_templates/_ignored.tmpl.pxi b/generation/builtins_templates/_ignored.tmpl.pxi deleted file mode 100644 index 21b945cc..00000000 --- a/generation/builtins_templates/_ignored.tmpl.pxi +++ /dev/null @@ -1,5 +0,0 @@ -{%- set gd_functions = cook_c_signatures(""" -// GDAPI: 1.0 -// GDAPI: 1.1 -// GDAPI: 1.2 -""") -%}