Compare commits
47 Commits
3.0
...
godot-3.3-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a8ab6802c3 | ||
|
|
bab3c758d5 | ||
|
|
4bae481fc3 | ||
|
|
8a52bd0701 | ||
|
|
226e67be05 | ||
|
|
cec9b8ebb2 | ||
|
|
38cfba79bb | ||
|
|
34401939f3 | ||
|
|
e03903ac70 | ||
|
|
afd4b26c1b | ||
|
|
d93984d820 | ||
|
|
2f20022adf | ||
|
|
ddf67cc7b8 | ||
|
|
4b73c5445e | ||
|
|
57138143b5 | ||
|
|
83c651ada4 | ||
|
|
4fa11f8c2a | ||
|
|
3cde668e84 | ||
|
|
efea911ad5 | ||
|
|
6d4b930ba3 | ||
|
|
fb3010491b | ||
|
|
f1229c6077 | ||
|
|
1d9327bed5 | ||
|
|
f1e459d0f7 | ||
|
|
7f65d4d9f2 | ||
|
|
66f7af84ce | ||
|
|
ad61229a5a | ||
|
|
4ed3534d8f | ||
|
|
34c73d78b3 | ||
|
|
196f1e973b | ||
|
|
a557a2e76f | ||
|
|
b98ac387a1 | ||
|
|
0180db5bd3 | ||
|
|
6b74abd615 | ||
|
|
808b007bf8 | ||
|
|
b296f465d4 | ||
|
|
a51d905c5a | ||
|
|
2279783d45 | ||
|
|
efac77fa4f | ||
|
|
22af213d25 | ||
|
|
a0df1393b4 | ||
|
|
55d7cd4bf3 | ||
|
|
40cd3d1bda | ||
|
|
32aa216bab | ||
|
|
20e86b4422 | ||
|
|
2d221de20c | ||
|
|
a67b968a0b |
13
.gitattributes
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
# Properly detect languages on Github
|
||||
*.h linguist-language=c
|
||||
*.inc linguist-language=c
|
||||
drivers/* linguist-vendored
|
||||
|
||||
*.c eol=lf
|
||||
*.cpp eol=lf
|
||||
*.mm eol=lf
|
||||
*.h eol=lf
|
||||
*.py eol=lf
|
||||
*.hpp eol=lf
|
||||
*.xml eol=lf
|
||||
*.json eol=lf
|
||||
@@ -1,6 +1,6 @@
|
||||
MIT License
|
||||
# MIT License
|
||||
|
||||
Copyright (c) 2017 GodotNativeTools
|
||||
Copyright (c) 2017-2021 Godot Engine contributors.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
24
README.md
@@ -1,4 +1,5 @@
|
||||
# godot_headers
|
||||
# godot-headers
|
||||
|
||||
#### `GDNative / NativeScript`
|
||||
|
||||
> `GDNative` enables the use of dynamically linked libraries inside of [**Godot**](https://github.com/godotengine/godot).
|
||||
@@ -13,14 +14,19 @@
|
||||
| **Build latest version of Godot** | [**GitHub**](https://github.com/godotengine/godot) | [**Docs**](https://godot.readthedocs.io/en/latest/development/compiling/index.html) |
|
||||
| --- | --- | --- |
|
||||
|
||||
### Clone godot_headers into Library
|
||||
### Clone godot-headers into Library
|
||||
|
||||
Clone `godot_headers` under `SimpleLibrary/`
|
||||
Clone `godot-headers` under `SimpleLibrary/`
|
||||
|
||||
```bash
|
||||
cd SimpleLibrary
|
||||
git clone https://github.com/GodotNativeTools/godot_headers
|
||||
git clone https://github.com/godotengine/godot-headers
|
||||
```
|
||||
|
||||
> Note that the master branch of this repository contains the header for the latest Godot master. If you want to build GDNative modules for older versions of Godot add `-b <version>` to the git clone command above. i.e. `git clone https://github.com/godotengine/godot-headers -b 3.0` will retrieve headers compatible with Godot 3.0.
|
||||
|
||||
> With the exception of a breaking change in the ARVR module between 3.0 and 3.1, GDNative plugins written for an older version of Godot will work in newer versions.
|
||||
|
||||
```bash
|
||||
[SimpleLibrary]
|
||||
├── lib/
|
||||
@@ -104,7 +110,7 @@ godot_variant GDN_EXPORT some_test_procedure(void *data, godot_array *args) {
|
||||
godot_variant_new_int(&ret, 42);
|
||||
|
||||
godot_string s;
|
||||
godot_string_new_unicode_data(&s, L"Hello World", 11);
|
||||
godot_string_new_with_wide_string(&s, L"Hello World", 11);
|
||||
godot_print(&s);
|
||||
|
||||
godot_string_destroy(&s);
|
||||
@@ -209,8 +215,8 @@ use of GDNative to implement scripts backed by native code.
|
||||
|
||||
**Which languages are binding as a NativeScript?**
|
||||
|
||||
[**C++**](https://github.com/GodotNativeTools/cpp_bindings),
|
||||
[**D**](https://github.com/GodotNativeTools/d_bindings),
|
||||
[**C++**](https://github.com/godotengine/godot-cpp),
|
||||
[**D**](https://github.com/godot-d/godot-d),
|
||||
[**Nim**](https://github.com/pragmagic/godot-nim)
|
||||
|
||||
**Can you debug NativeScripts?**
|
||||
@@ -218,10 +224,6 @@ use of GDNative to implement scripts backed by native code.
|
||||
You must compile the library with debug
|
||||
symbols, and then you can use your debugger as usual.
|
||||
|
||||
**Are NativeScripts in Godot 3.0?**
|
||||
|
||||
They are! 🎉
|
||||
|
||||
**Can you use one GDNativeLibrary for all NativeScripts?**
|
||||
|
||||
You can! ✨
|
||||
|
||||
56
android/godot_android.h
Normal file
@@ -0,0 +1,56 @@
|
||||
/*************************************************************************/
|
||||
/* godot_android.h */
|
||||
/*************************************************************************/
|
||||
/* This file is part of: */
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
/* "Software"), to deal in the Software without restriction, including */
|
||||
/* without limitation the rights to use, copy, modify, merge, publish, */
|
||||
/* distribute, sublicense, and/or sell copies of the Software, and to */
|
||||
/* permit persons to whom the Software is furnished to do so, subject to */
|
||||
/* the following conditions: */
|
||||
/* */
|
||||
/* The above copyright notice and this permission notice shall be */
|
||||
/* included in all copies or substantial portions of the Software. */
|
||||
/* */
|
||||
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
|
||||
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
|
||||
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
|
||||
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
|
||||
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
|
||||
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
|
||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||
/*************************************************************************/
|
||||
|
||||
#ifndef GODOT_ANDROID_GDN_H
|
||||
#define GODOT_ANDROID_GDN_H
|
||||
|
||||
#include <gdnative/gdnative.h>
|
||||
|
||||
#ifdef __ANDROID__
|
||||
#include <jni.h>
|
||||
#else
|
||||
#define JNIEnv void
|
||||
#define jobject void *
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
JNIEnv *GDAPI godot_android_get_env();
|
||||
jobject GDAPI godot_android_get_activity();
|
||||
jobject GDAPI godot_android_get_surface();
|
||||
bool GDAPI godot_android_is_activity_resumed();
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* !GODOT_ANDROID_GDN_H */
|
||||
@@ -5,8 +5,8 @@
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */
|
||||
/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
@@ -37,7 +37,15 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// For future versions of the API we should only add new functions at the end of the structure and use the
|
||||
// version info to detect whether a call is available
|
||||
|
||||
// Use these to populate version in your plugin
|
||||
#define GODOTVR_API_MAJOR 1
|
||||
#define GODOTVR_API_MINOR 2
|
||||
|
||||
typedef struct {
|
||||
godot_gdnative_api_version version; /* version of our API */
|
||||
void *(*constructor)(godot_object *);
|
||||
void (*destructor)(void *);
|
||||
godot_string (*get_name)(const void *);
|
||||
@@ -53,6 +61,12 @@ typedef struct {
|
||||
void (*fill_projection_for_eye)(void *, godot_real *, godot_int, godot_real, godot_real, godot_real);
|
||||
void (*commit_for_eye)(void *, godot_int, godot_rid *, godot_rect2 *);
|
||||
void (*process)(void *);
|
||||
// only in 1.1 onwards
|
||||
godot_int (*get_external_texture_for_eye)(void *, godot_int);
|
||||
void (*notification)(void *, godot_int);
|
||||
godot_int (*get_camera_feed_id)(void *);
|
||||
// only in 1.2 onwards
|
||||
godot_int (*get_external_depth_for_eye)(void *, godot_int);
|
||||
} godot_arvr_interface_gdnative;
|
||||
|
||||
void GDAPI godot_arvr_register_interface(const godot_arvr_interface_gdnative *p_interface);
|
||||
@@ -73,6 +87,10 @@ void GDAPI godot_arvr_set_controller_button(godot_int p_controller_id, godot_int
|
||||
void GDAPI 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 GDAPI godot_arvr_get_controller_rumble(godot_int p_controller_id);
|
||||
|
||||
// ARVR 1.2 functions
|
||||
void GDAPI godot_arvr_set_interface(godot_object *p_arvr_interface, const godot_arvr_interface_gdnative *p_gdn_interface);
|
||||
godot_int GDAPI godot_arvr_get_depthid(godot_rid *p_render_target);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */
|
||||
/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */
|
||||
/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
@@ -130,6 +130,16 @@ godot_int GDAPI godot_array_bsearch_custom(godot_array *p_self, const godot_vari
|
||||
|
||||
void GDAPI godot_array_destroy(godot_array *p_self);
|
||||
|
||||
godot_array GDAPI godot_array_duplicate(const godot_array *p_self, const godot_bool p_deep);
|
||||
|
||||
godot_array GDAPI godot_array_slice(const godot_array *p_self, const godot_int p_begin, const godot_int p_end, const godot_int p_step, const godot_bool p_deep);
|
||||
|
||||
godot_variant GDAPI godot_array_max(const godot_array *p_self);
|
||||
|
||||
godot_variant GDAPI godot_array_min(const godot_array *p_self);
|
||||
|
||||
void GDAPI godot_array_shuffle(godot_array *p_self);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */
|
||||
/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
@@ -62,6 +62,7 @@ extern "C" {
|
||||
void GDAPI godot_basis_new_with_rows(godot_basis *r_dest, const godot_vector3 *p_x_axis, const godot_vector3 *p_y_axis, const godot_vector3 *p_z_axis);
|
||||
void GDAPI godot_basis_new_with_axis_and_angle(godot_basis *r_dest, const godot_vector3 *p_axis, const godot_real p_phi);
|
||||
void GDAPI godot_basis_new_with_euler(godot_basis *r_dest, const godot_vector3 *p_euler);
|
||||
void GDAPI godot_basis_new_with_euler_quat(godot_basis *r_dest, const godot_quat *p_euler);
|
||||
|
||||
godot_string GDAPI godot_basis_as_string(const godot_basis *p_self);
|
||||
|
||||
@@ -81,6 +82,16 @@ godot_vector3 GDAPI godot_basis_get_scale(const godot_basis *p_self);
|
||||
|
||||
godot_vector3 GDAPI godot_basis_get_euler(const godot_basis *p_self);
|
||||
|
||||
godot_quat GDAPI godot_basis_get_quat(const godot_basis *p_self);
|
||||
|
||||
void GDAPI godot_basis_set_quat(godot_basis *p_self, const godot_quat *p_quat);
|
||||
|
||||
void GDAPI godot_basis_set_axis_angle_scale(godot_basis *p_self, const godot_vector3 *p_axis, godot_real p_phi, const godot_vector3 *p_scale);
|
||||
|
||||
void GDAPI godot_basis_set_euler_scale(godot_basis *p_self, const godot_vector3 *p_euler, const godot_vector3 *p_scale);
|
||||
|
||||
void GDAPI godot_basis_set_quat_scale(godot_basis *p_self, const godot_quat *p_quat, const godot_vector3 *p_scale);
|
||||
|
||||
godot_real GDAPI godot_basis_tdotx(const godot_basis *p_self, const godot_vector3 *p_with);
|
||||
|
||||
godot_real GDAPI godot_basis_tdoty(const godot_basis *p_self, const godot_vector3 *p_with);
|
||||
@@ -95,8 +106,6 @@ godot_int GDAPI godot_basis_get_orthogonal_index(const godot_basis *p_self);
|
||||
|
||||
void GDAPI godot_basis_new(godot_basis *r_dest);
|
||||
|
||||
void GDAPI godot_basis_new_with_euler_quat(godot_basis *r_dest, const godot_quat *p_euler);
|
||||
|
||||
// p_elements is a pointer to an array of 3 (!!) vector3
|
||||
void GDAPI godot_basis_get_elements(const godot_basis *p_self, godot_vector3 *p_elements);
|
||||
|
||||
@@ -118,6 +127,8 @@ godot_basis GDAPI godot_basis_operator_multiply_vector(const godot_basis *p_self
|
||||
|
||||
godot_basis GDAPI godot_basis_operator_multiply_scalar(const godot_basis *p_self, const godot_real p_b);
|
||||
|
||||
godot_basis GDAPI godot_basis_slerp(const godot_basis *p_self, const godot_basis *p_b, const godot_real p_t);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */
|
||||
/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
@@ -81,6 +81,14 @@ godot_string GDAPI godot_color_as_string(const godot_color *p_self);
|
||||
|
||||
godot_int GDAPI godot_color_to_rgba32(const godot_color *p_self);
|
||||
|
||||
godot_int GDAPI godot_color_to_abgr32(const godot_color *p_self);
|
||||
|
||||
godot_int GDAPI godot_color_to_abgr64(const godot_color *p_self);
|
||||
|
||||
godot_int GDAPI godot_color_to_argb64(const godot_color *p_self);
|
||||
|
||||
godot_int GDAPI godot_color_to_rgba64(const godot_color *p_self);
|
||||
|
||||
godot_int GDAPI godot_color_to_argb32(const godot_color *p_self);
|
||||
|
||||
godot_real GDAPI godot_color_gray(const godot_color *p_self);
|
||||
@@ -93,6 +101,12 @@ godot_color GDAPI godot_color_linear_interpolate(const godot_color *p_self, cons
|
||||
|
||||
godot_color GDAPI godot_color_blend(const godot_color *p_self, const godot_color *p_over);
|
||||
|
||||
godot_color GDAPI godot_color_darkened(const godot_color *p_self, const godot_real p_amount);
|
||||
|
||||
godot_color GDAPI godot_color_from_hsv(const godot_color *p_self, const godot_real p_h, const godot_real p_s, const godot_real p_v, const godot_real p_a);
|
||||
|
||||
godot_color GDAPI godot_color_lightened(const godot_color *p_self, const godot_real p_amount);
|
||||
|
||||
godot_string GDAPI godot_color_to_html(const godot_color *p_self, const godot_bool p_with_alpha);
|
||||
|
||||
godot_bool GDAPI godot_color_operator_equal(const godot_color *p_self, const godot_color *p_b);
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */
|
||||
/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
@@ -63,6 +63,8 @@ void GDAPI godot_dictionary_new(godot_dictionary *r_dest);
|
||||
void GDAPI godot_dictionary_new_copy(godot_dictionary *r_dest, const godot_dictionary *p_src);
|
||||
void GDAPI godot_dictionary_destroy(godot_dictionary *p_self);
|
||||
|
||||
godot_dictionary GDAPI godot_dictionary_duplicate(const godot_dictionary *p_self, const godot_bool p_deep);
|
||||
|
||||
godot_int GDAPI godot_dictionary_size(const godot_dictionary *p_self);
|
||||
|
||||
godot_bool GDAPI godot_dictionary_empty(const godot_dictionary *p_self);
|
||||
@@ -94,6 +96,12 @@ godot_bool GDAPI godot_dictionary_operator_equal(const godot_dictionary *p_self,
|
||||
|
||||
godot_string GDAPI godot_dictionary_to_json(const godot_dictionary *p_self);
|
||||
|
||||
// GDNative core 1.1
|
||||
|
||||
godot_bool GDAPI godot_dictionary_erase_with_return(godot_dictionary *p_self, const godot_variant *p_key);
|
||||
|
||||
godot_variant GDAPI godot_dictionary_get_with_default(const godot_dictionary *p_self, const godot_variant *p_key, const godot_variant *p_default);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */
|
||||
/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
@@ -35,7 +35,7 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
#if defined(_WIN32) || defined(__ANDROID__)
|
||||
#define GDCALLINGCONV
|
||||
#define GDAPI GDCALLINGCONV
|
||||
#elif defined(__APPLE__)
|
||||
@@ -47,13 +47,15 @@ extern "C" {
|
||||
#define GDCALLINGCONV __attribute__((sysv_abi))
|
||||
#define GDAPI GDCALLINGCONV
|
||||
#endif
|
||||
#else
|
||||
#else // !_WIN32 && !__APPLE__
|
||||
#define GDCALLINGCONV __attribute__((sysv_abi))
|
||||
#define GDAPI GDCALLINGCONV
|
||||
#endif
|
||||
|
||||
// This is for libraries *using* the header, NOT GODOT EXPOSING STUFF!!
|
||||
#ifdef _WIN32
|
||||
#ifdef __GNUC__
|
||||
#define GDN_EXPORT __attribute__((visibility("default")))
|
||||
#elif defined(_WIN32)
|
||||
#define GDN_EXPORT __declspec(dllexport)
|
||||
#else
|
||||
#define GDN_EXPORT
|
||||
@@ -67,7 +69,7 @@ extern "C" {
|
||||
////// Error
|
||||
|
||||
typedef enum {
|
||||
GODOT_OK,
|
||||
GODOT_OK, // (0)
|
||||
GODOT_FAILED, ///< Generic fail error
|
||||
GODOT_ERR_UNAVAILABLE, ///< What is requested is unsupported/unavailable
|
||||
GODOT_ERR_UNCONFIGURED, ///< The object being used hasn't been properly set up yet
|
||||
@@ -97,12 +99,12 @@ typedef enum {
|
||||
GODOT_ERR_CONNECTION_ERROR,
|
||||
GODOT_ERR_CANT_ACQUIRE_RESOURCE,
|
||||
GODOT_ERR_CANT_FORK,
|
||||
GODOT_ERR_INVALID_DATA, ///< Data passed is invalid (30)
|
||||
GODOT_ERR_INVALID_DATA, ///< Data passed is invalid (30)
|
||||
GODOT_ERR_INVALID_PARAMETER, ///< Parameter passed is invalid
|
||||
GODOT_ERR_ALREADY_EXISTS, ///< When adding, item already exists
|
||||
GODOT_ERR_DOES_NOT_EXIST, ///< When retrieving/erasing, it item does not exist
|
||||
GODOT_ERR_DATABASE_CANT_READ, ///< database is full
|
||||
GODOT_ERR_DATABASE_CANT_WRITE, ///< database is full (35)
|
||||
GODOT_ERR_DATABASE_CANT_WRITE, ///< database is full (35)
|
||||
GODOT_ERR_COMPILATION_FAILED,
|
||||
GODOT_ERR_METHOD_NOT_FOUND,
|
||||
GODOT_ERR_LINK_FAILED,
|
||||
@@ -282,6 +284,17 @@ void GDAPI godot_print_error(const char *p_description, const char *p_function,
|
||||
void GDAPI godot_print_warning(const char *p_description, const char *p_function, const char *p_file, int p_line);
|
||||
void GDAPI godot_print(const godot_string *p_message);
|
||||
|
||||
// GDNATIVE CORE 1.0.1
|
||||
|
||||
bool GDAPI godot_is_instance_valid(const godot_object *p_object);
|
||||
|
||||
//tags used for safe dynamic casting
|
||||
void GDAPI *godot_get_class_tag(const godot_string_name *p_class);
|
||||
godot_object GDAPI *godot_object_cast_to(const godot_object *p_object, void *p_class_tag);
|
||||
|
||||
// equivalent of GDScript's instance_from_id
|
||||
godot_object GDAPI *godot_instance_from_id(godot_int p_instance_id);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */
|
||||
/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
@@ -80,6 +80,8 @@ godot_bool GDAPI godot_node_path_is_empty(const godot_node_path *p_self);
|
||||
|
||||
godot_bool GDAPI godot_node_path_operator_equal(const godot_node_path *p_self, const godot_node_path *p_b);
|
||||
|
||||
godot_node_path godot_node_path_get_as_property_path(const godot_node_path *p_self);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */
|
||||
/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */
|
||||
/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
@@ -191,6 +191,8 @@ uint8_t GDAPI godot_pool_byte_array_get(const godot_pool_byte_array *p_self, con
|
||||
|
||||
godot_int GDAPI godot_pool_byte_array_size(const godot_pool_byte_array *p_self);
|
||||
|
||||
godot_bool GDAPI godot_pool_byte_array_empty(const godot_pool_byte_array *p_self);
|
||||
|
||||
void GDAPI godot_pool_byte_array_destroy(godot_pool_byte_array *p_self);
|
||||
|
||||
// int
|
||||
@@ -222,6 +224,8 @@ godot_int GDAPI godot_pool_int_array_get(const godot_pool_int_array *p_self, con
|
||||
|
||||
godot_int GDAPI godot_pool_int_array_size(const godot_pool_int_array *p_self);
|
||||
|
||||
godot_bool GDAPI godot_pool_int_array_empty(const godot_pool_int_array *p_self);
|
||||
|
||||
void GDAPI godot_pool_int_array_destroy(godot_pool_int_array *p_self);
|
||||
|
||||
// real
|
||||
@@ -253,6 +257,8 @@ godot_real GDAPI godot_pool_real_array_get(const godot_pool_real_array *p_self,
|
||||
|
||||
godot_int GDAPI godot_pool_real_array_size(const godot_pool_real_array *p_self);
|
||||
|
||||
godot_bool GDAPI godot_pool_real_array_empty(const godot_pool_real_array *p_self);
|
||||
|
||||
void GDAPI godot_pool_real_array_destroy(godot_pool_real_array *p_self);
|
||||
|
||||
// string
|
||||
@@ -284,6 +290,8 @@ godot_string GDAPI godot_pool_string_array_get(const godot_pool_string_array *p_
|
||||
|
||||
godot_int GDAPI godot_pool_string_array_size(const godot_pool_string_array *p_self);
|
||||
|
||||
godot_bool GDAPI godot_pool_string_array_empty(const godot_pool_string_array *p_self);
|
||||
|
||||
void GDAPI godot_pool_string_array_destroy(godot_pool_string_array *p_self);
|
||||
|
||||
// vector2
|
||||
@@ -315,6 +323,8 @@ godot_vector2 GDAPI godot_pool_vector2_array_get(const godot_pool_vector2_array
|
||||
|
||||
godot_int GDAPI godot_pool_vector2_array_size(const godot_pool_vector2_array *p_self);
|
||||
|
||||
godot_bool GDAPI godot_pool_vector2_array_empty(const godot_pool_vector2_array *p_self);
|
||||
|
||||
void GDAPI godot_pool_vector2_array_destroy(godot_pool_vector2_array *p_self);
|
||||
|
||||
// vector3
|
||||
@@ -346,6 +356,8 @@ godot_vector3 GDAPI godot_pool_vector3_array_get(const godot_pool_vector3_array
|
||||
|
||||
godot_int GDAPI godot_pool_vector3_array_size(const godot_pool_vector3_array *p_self);
|
||||
|
||||
godot_bool GDAPI godot_pool_vector3_array_empty(const godot_pool_vector3_array *p_self);
|
||||
|
||||
void GDAPI godot_pool_vector3_array_destroy(godot_pool_vector3_array *p_self);
|
||||
|
||||
// color
|
||||
@@ -377,6 +389,8 @@ godot_color GDAPI godot_pool_color_array_get(const godot_pool_color_array *p_sel
|
||||
|
||||
godot_int GDAPI godot_pool_color_array_size(const godot_pool_color_array *p_self);
|
||||
|
||||
godot_bool GDAPI godot_pool_color_array_empty(const godot_pool_color_array *p_self);
|
||||
|
||||
void GDAPI godot_pool_color_array_destroy(godot_pool_color_array *p_self);
|
||||
|
||||
//
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */
|
||||
/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
@@ -60,6 +60,8 @@ extern "C" {
|
||||
|
||||
void GDAPI godot_quat_new(godot_quat *r_dest, const godot_real p_x, const godot_real p_y, const godot_real p_z, const godot_real p_w);
|
||||
void GDAPI godot_quat_new_with_axis_angle(godot_quat *r_dest, const godot_vector3 *p_axis, const godot_real p_angle);
|
||||
void GDAPI godot_quat_new_with_basis(godot_quat *r_dest, const godot_basis *p_basis);
|
||||
void GDAPI godot_quat_new_with_euler(godot_quat *r_dest, const godot_vector3 *p_euler);
|
||||
|
||||
godot_real GDAPI godot_quat_get_x(const godot_quat *p_self);
|
||||
void GDAPI godot_quat_set_x(godot_quat *p_self, const godot_real val);
|
||||
@@ -107,6 +109,8 @@ godot_bool GDAPI godot_quat_operator_equal(const godot_quat *p_self, const godot
|
||||
|
||||
godot_quat GDAPI godot_quat_operator_neg(const godot_quat *p_self);
|
||||
|
||||
void GDAPI godot_quat_set_axis_angle(godot_quat *p_self, const godot_vector3 *p_axis, const godot_real p_angle);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */
|
||||
/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
@@ -77,6 +77,12 @@ godot_bool GDAPI godot_rect2_has_point(const godot_rect2 *p_self, const godot_ve
|
||||
|
||||
godot_rect2 GDAPI godot_rect2_grow(const godot_rect2 *p_self, const godot_real p_by);
|
||||
|
||||
godot_rect2 GDAPI godot_rect2_grow_individual(const godot_rect2 *p_self, const godot_real p_left, const godot_real p_top, const godot_real p_right, const godot_real p_bottom);
|
||||
|
||||
godot_rect2 GDAPI godot_rect2_grow_margin(const godot_rect2 *p_self, const godot_int p_margin, const godot_real p_by);
|
||||
|
||||
godot_rect2 GDAPI godot_rect2_abs(const godot_rect2 *p_self);
|
||||
|
||||
godot_rect2 GDAPI godot_rect2_expand(const godot_rect2 *p_self, const godot_vector2 *p_to);
|
||||
|
||||
godot_bool GDAPI godot_rect2_operator_equal(const godot_rect2 *p_self, const godot_rect2 *p_b);
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */
|
||||
/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */
|
||||
/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
@@ -79,7 +79,7 @@ void GDAPI godot_string_new(godot_string *r_dest);
|
||||
void GDAPI godot_string_new_copy(godot_string *r_dest, const godot_string *p_src);
|
||||
void GDAPI godot_string_new_with_wide_string(godot_string *r_dest, const wchar_t *p_contents, const int p_size);
|
||||
|
||||
wchar_t GDAPI *godot_string_operator_index(godot_string *p_self, const godot_int p_idx);
|
||||
const wchar_t GDAPI *godot_string_operator_index(godot_string *p_self, const godot_int p_idx);
|
||||
wchar_t GDAPI godot_string_operator_index_const(const godot_string *p_self, const godot_int p_idx);
|
||||
const wchar_t GDAPI *godot_string_wide_str(const godot_string *p_self);
|
||||
|
||||
@@ -102,6 +102,8 @@ godot_bool GDAPI godot_string_begins_with_char_array(const godot_string *p_self,
|
||||
godot_array GDAPI godot_string_bigrams(const godot_string *p_self);
|
||||
godot_string GDAPI godot_string_chr(wchar_t p_character);
|
||||
godot_bool GDAPI godot_string_ends_with(const godot_string *p_self, const godot_string *p_string);
|
||||
godot_int GDAPI godot_string_count(const godot_string *p_self, godot_string p_what, godot_int p_from, godot_int p_to);
|
||||
godot_int GDAPI godot_string_countn(const godot_string *p_self, godot_string p_what, godot_int p_from, godot_int p_to);
|
||||
godot_int GDAPI godot_string_find(const godot_string *p_self, godot_string p_what);
|
||||
godot_int GDAPI godot_string_find_from(const godot_string *p_self, godot_string p_what, godot_int p_from);
|
||||
godot_int GDAPI godot_string_findmk(const godot_string *p_self, const godot_array *p_keys);
|
||||
@@ -217,7 +219,7 @@ godot_bool godot_string_empty(const godot_string *p_self);
|
||||
// path functions
|
||||
godot_string GDAPI godot_string_get_base_dir(const godot_string *p_self);
|
||||
godot_string GDAPI godot_string_get_file(const godot_string *p_self);
|
||||
godot_string GDAPI godot_string_humanize_size(size_t p_size);
|
||||
godot_string GDAPI godot_string_humanize_size(uint64_t p_size);
|
||||
godot_bool GDAPI godot_string_is_abs_path(const godot_string *p_self);
|
||||
godot_bool GDAPI godot_string_is_rel_path(const godot_string *p_self);
|
||||
godot_bool GDAPI godot_string_is_resource_file(const godot_string *p_self);
|
||||
@@ -246,6 +248,12 @@ godot_bool GDAPI godot_string_is_valid_identifier(const godot_string *p_self);
|
||||
godot_bool GDAPI godot_string_is_valid_integer(const godot_string *p_self);
|
||||
godot_bool GDAPI godot_string_is_valid_ip_address(const godot_string *p_self);
|
||||
|
||||
godot_string GDAPI godot_string_dedent(const godot_string *p_self);
|
||||
godot_string GDAPI godot_string_trim_prefix(const godot_string *p_self, const godot_string *p_prefix);
|
||||
godot_string GDAPI godot_string_trim_suffix(const godot_string *p_self, const godot_string *p_suffix);
|
||||
godot_string GDAPI godot_string_rstrip(const godot_string *p_self, const godot_string *p_chars);
|
||||
godot_pool_string_array GDAPI godot_string_rsplit(const godot_string *p_self, const godot_string *p_divisor, const godot_bool p_allow_empty, const godot_int p_maxsplit);
|
||||
|
||||
void GDAPI godot_string_destroy(godot_string *p_self);
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */
|
||||
/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */
|
||||
/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
@@ -62,6 +62,7 @@ extern "C" {
|
||||
|
||||
void GDAPI godot_transform_new_with_axis_origin(godot_transform *r_dest, const godot_vector3 *p_x_axis, const godot_vector3 *p_y_axis, const godot_vector3 *p_z_axis, const godot_vector3 *p_origin);
|
||||
void GDAPI godot_transform_new(godot_transform *r_dest, const godot_basis *p_basis, const godot_vector3 *p_origin);
|
||||
void GDAPI godot_transform_new_with_quat(godot_transform *r_dest, const godot_quat *p_quat);
|
||||
|
||||
godot_basis GDAPI godot_transform_get_basis(const godot_transform *p_self);
|
||||
void GDAPI godot_transform_set_basis(godot_transform *p_self, const godot_basis *p_v);
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */
|
||||
/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */
|
||||
/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
@@ -37,7 +37,7 @@ extern "C" {
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#define GODOT_VARIANT_SIZE (16 + sizeof(void *))
|
||||
#define GODOT_VARIANT_SIZE (16 + sizeof(int64_t))
|
||||
|
||||
#ifndef GODOT_CORE_API_GODOT_VARIANT_TYPE_DEFINED
|
||||
#define GODOT_CORE_API_GODOT_VARIANT_TYPE_DEFINED
|
||||
@@ -100,6 +100,45 @@ typedef struct godot_variant_call_error {
|
||||
godot_variant_type expected;
|
||||
} godot_variant_call_error;
|
||||
|
||||
typedef enum godot_variant_operator {
|
||||
// comparison
|
||||
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,
|
||||
|
||||
// mathematic
|
||||
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,
|
||||
|
||||
// bitwise
|
||||
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,
|
||||
|
||||
// logic
|
||||
GODOT_VARIANT_OP_AND,
|
||||
GODOT_VARIANT_OP_OR,
|
||||
GODOT_VARIANT_OP_XOR,
|
||||
GODOT_VARIANT_OP_NOT,
|
||||
|
||||
// containment
|
||||
GODOT_VARIANT_OP_IN,
|
||||
|
||||
GODOT_VARIANT_OP_MAX,
|
||||
} godot_variant_operator;
|
||||
|
||||
// reduce extern "C" nesting for VS2013
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
@@ -204,6 +243,11 @@ godot_bool GDAPI godot_variant_booleanize(const godot_variant *p_self);
|
||||
|
||||
void GDAPI godot_variant_destroy(godot_variant *p_self);
|
||||
|
||||
// GDNative core 1.1
|
||||
|
||||
godot_string GDAPI godot_variant_get_operator_name(godot_variant_operator p_op);
|
||||
void GDAPI godot_variant_evaluate(godot_variant_operator p_op, const godot_variant *p_a, const godot_variant *p_b, godot_variant *r_ret, godot_bool *r_valid);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */
|
||||
/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
@@ -71,6 +71,8 @@ godot_real GDAPI godot_vector2_length_squared(const godot_vector2 *p_self);
|
||||
|
||||
godot_bool GDAPI godot_vector2_is_normalized(const godot_vector2 *p_self);
|
||||
|
||||
godot_vector2 GDAPI godot_vector2_direction_to(const godot_vector2 *p_self, const godot_vector2 *p_b);
|
||||
|
||||
godot_real GDAPI godot_vector2_distance_to(const godot_vector2 *p_self, const godot_vector2 *p_to);
|
||||
|
||||
godot_real GDAPI godot_vector2_distance_squared_to(const godot_vector2 *p_self, const godot_vector2 *p_to);
|
||||
@@ -83,6 +85,8 @@ godot_vector2 GDAPI godot_vector2_linear_interpolate(const godot_vector2 *p_self
|
||||
|
||||
godot_vector2 GDAPI godot_vector2_cubic_interpolate(const godot_vector2 *p_self, const godot_vector2 *p_b, const godot_vector2 *p_pre_a, const godot_vector2 *p_post_b, const godot_real p_t);
|
||||
|
||||
godot_vector2 GDAPI godot_vector2_move_toward(const godot_vector2 *p_self, const godot_vector2 *p_to, const godot_real p_delta);
|
||||
|
||||
godot_vector2 GDAPI godot_vector2_rotated(const godot_vector2 *p_self, const godot_real p_phi);
|
||||
|
||||
godot_vector2 GDAPI godot_vector2_tangent(const godot_vector2 *p_self);
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */
|
||||
/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
@@ -90,6 +90,8 @@ godot_vector3 GDAPI godot_vector3_linear_interpolate(const godot_vector3 *p_self
|
||||
|
||||
godot_vector3 GDAPI godot_vector3_cubic_interpolate(const godot_vector3 *p_self, const godot_vector3 *p_b, const godot_vector3 *p_pre_a, const godot_vector3 *p_post_b, const godot_real p_t);
|
||||
|
||||
godot_vector3 GDAPI godot_vector3_move_toward(const godot_vector3 *p_self, const godot_vector3 *p_to, const godot_real p_delta);
|
||||
|
||||
godot_real GDAPI godot_vector3_dot(const godot_vector3 *p_self, const godot_vector3 *p_b);
|
||||
|
||||
godot_vector3 GDAPI godot_vector3_cross(const godot_vector3 *p_self, const godot_vector3 *p_b);
|
||||
@@ -104,6 +106,8 @@ godot_vector3 GDAPI godot_vector3_floor(const godot_vector3 *p_self);
|
||||
|
||||
godot_vector3 GDAPI godot_vector3_ceil(const godot_vector3 *p_self);
|
||||
|
||||
godot_vector3 GDAPI godot_vector3_direction_to(const godot_vector3 *p_self, const godot_vector3 *p_b);
|
||||
|
||||
godot_real GDAPI godot_vector3_distance_to(const godot_vector3 *p_self, const godot_vector3 *p_b);
|
||||
|
||||
godot_real GDAPI godot_vector3_distance_squared_to(const godot_vector3 *p_self, const godot_vector3 *p_b);
|
||||
|
||||
@@ -5,7 +5,455 @@
|
||||
"major": 1,
|
||||
"minor": 0
|
||||
},
|
||||
"next": null,
|
||||
"next": {
|
||||
"type": "CORE",
|
||||
"version": {
|
||||
"major": 1,
|
||||
"minor": 1
|
||||
},
|
||||
"next": {
|
||||
"type": "CORE",
|
||||
"version": {
|
||||
"major": 1,
|
||||
"minor": 2
|
||||
},
|
||||
"next": null,
|
||||
"api": [
|
||||
{
|
||||
"name": "godot_dictionary_duplicate",
|
||||
"return_type": "godot_dictionary",
|
||||
"arguments": [
|
||||
["const godot_dictionary *", "p_self"],
|
||||
["const godot_bool", "p_deep"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_vector3_move_toward",
|
||||
"return_type": "godot_vector3",
|
||||
"arguments": [
|
||||
["const godot_vector3 *", "p_self"],
|
||||
["const godot_vector3 *", "p_to"],
|
||||
["const godot_real", "p_delta"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_vector2_move_toward",
|
||||
"return_type": "godot_vector2",
|
||||
"arguments": [
|
||||
["const godot_vector2 *", "p_self"],
|
||||
["const godot_vector2 *", "p_to"],
|
||||
["const godot_real", "p_delta"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_string_count",
|
||||
"return_type": "godot_int",
|
||||
"arguments": [
|
||||
["const godot_string *", "p_self"],
|
||||
["godot_string", "p_what"],
|
||||
["godot_int", "p_from"],
|
||||
["godot_int", "p_to"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_string_countn",
|
||||
"return_type": "godot_int",
|
||||
"arguments": [
|
||||
["const godot_string *", "p_self"],
|
||||
["godot_string", "p_what"],
|
||||
["godot_int", "p_from"],
|
||||
["godot_int", "p_to"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_vector3_direction_to",
|
||||
"return_type": "godot_vector3",
|
||||
"arguments": [
|
||||
["const godot_vector3 *", "p_self"],
|
||||
["const godot_vector3 *", "p_to"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_vector2_direction_to",
|
||||
"return_type": "godot_vector2",
|
||||
"arguments": [
|
||||
["const godot_vector2 *", "p_self"],
|
||||
["const godot_vector2 *", "p_to"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_array_slice",
|
||||
"return_type": "godot_array",
|
||||
"arguments": [
|
||||
["const godot_array *", "p_self"],
|
||||
["const godot_int", "p_begin"],
|
||||
["const godot_int", "p_end"],
|
||||
["const godot_int", "p_step"],
|
||||
["const godot_bool", "p_deep"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_pool_byte_array_empty",
|
||||
"return_type": "godot_bool",
|
||||
"arguments": [
|
||||
["const godot_pool_byte_array *", "p_self"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_pool_int_array_empty",
|
||||
"return_type": "godot_bool",
|
||||
"arguments": [
|
||||
["const godot_pool_int_array *", "p_self"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_pool_real_array_empty",
|
||||
"return_type": "godot_bool",
|
||||
"arguments": [
|
||||
["const godot_pool_real_array *", "p_self"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_pool_string_array_empty",
|
||||
"return_type": "godot_bool",
|
||||
"arguments": [
|
||||
["const godot_pool_string_array *", "p_self"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_pool_vector2_array_empty",
|
||||
"return_type": "godot_bool",
|
||||
"arguments": [
|
||||
["const godot_pool_vector2_array *", "p_self"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_pool_vector3_array_empty",
|
||||
"return_type": "godot_bool",
|
||||
"arguments": [
|
||||
["const godot_pool_vector3_array *", "p_self"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_pool_color_array_empty",
|
||||
"return_type": "godot_bool",
|
||||
"arguments": [
|
||||
["const godot_pool_color_array *", "p_self"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_get_class_tag",
|
||||
"return_type": "void *",
|
||||
"arguments": [
|
||||
["const godot_string_name *", "p_class"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_object_cast_to",
|
||||
"return_type": "godot_object *",
|
||||
"arguments": [
|
||||
["const godot_object *", "p_object"],
|
||||
["void *", "p_class_tag"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_instance_from_id",
|
||||
"return_type": "godot_object *",
|
||||
"arguments": [
|
||||
["godot_int", "p_instance_id"]
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"api": [
|
||||
{
|
||||
"name": "godot_color_to_abgr32",
|
||||
"return_type": "godot_int",
|
||||
"arguments": [
|
||||
["const godot_color *", "p_self"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_color_to_abgr64",
|
||||
"return_type": "godot_int",
|
||||
"arguments": [
|
||||
["const godot_color *", "p_self"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_color_to_argb64",
|
||||
"return_type": "godot_int",
|
||||
"arguments": [
|
||||
["const godot_color *", "p_self"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_color_to_rgba64",
|
||||
"return_type": "godot_int",
|
||||
"arguments": [
|
||||
["const godot_color *", "p_self"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_color_darkened",
|
||||
"return_type": "godot_color",
|
||||
"arguments": [
|
||||
["const godot_color *", "p_self"],
|
||||
["const godot_real", "p_amount"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_color_from_hsv",
|
||||
"return_type": "godot_color",
|
||||
"arguments": [
|
||||
["const godot_color *", "p_self"],
|
||||
["const godot_real", "p_h"],
|
||||
["const godot_real", "p_s"],
|
||||
["const godot_real", "p_v"],
|
||||
["const godot_real", "p_a"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_color_lightened",
|
||||
"return_type": "godot_color",
|
||||
"arguments": [
|
||||
["const godot_color *", "p_self"],
|
||||
["const godot_real", "p_amount"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_array_duplicate",
|
||||
"return_type": "godot_array",
|
||||
"arguments": [
|
||||
["const godot_array *", "p_self"],
|
||||
["const godot_bool", "p_deep"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_array_max",
|
||||
"return_type": "godot_variant",
|
||||
"arguments": [
|
||||
["const godot_array *", "p_self"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_array_min",
|
||||
"return_type": "godot_variant",
|
||||
"arguments": [
|
||||
["const godot_array *", "p_self"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_array_shuffle",
|
||||
"return_type": "void",
|
||||
"arguments": [
|
||||
["godot_array *", "p_self"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_basis_slerp",
|
||||
"return_type": "godot_basis",
|
||||
"arguments": [
|
||||
["const godot_basis *", "p_self"],
|
||||
["const godot_basis *", "p_b"],
|
||||
["const godot_real", "p_t"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_dictionary_get_with_default",
|
||||
"return_type": "godot_variant",
|
||||
"arguments": [
|
||||
["const godot_dictionary *", "p_self"],
|
||||
["const godot_variant *", "p_key"],
|
||||
["const godot_variant *", "p_default"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_dictionary_erase_with_return",
|
||||
"return_type": "bool",
|
||||
"arguments": [
|
||||
["godot_dictionary *", "p_self"],
|
||||
["const godot_variant *", "p_key"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_node_path_get_as_property_path",
|
||||
"return_type": "godot_node_path",
|
||||
"arguments": [
|
||||
["const godot_node_path *", "p_self"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_quat_set_axis_angle",
|
||||
"return_type": "void",
|
||||
"arguments": [
|
||||
["godot_quat *", "p_self"],
|
||||
["const godot_vector3 *", "p_axis"],
|
||||
["const godot_real", "p_angle"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_rect2_grow_individual",
|
||||
"return_type": "godot_rect2",
|
||||
"arguments": [
|
||||
["const godot_rect2 *", "p_self"],
|
||||
["const godot_real", "p_left"],
|
||||
["const godot_real", "p_top"],
|
||||
["const godot_real", "p_right"],
|
||||
["const godot_real", "p_bottom"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_rect2_grow_margin",
|
||||
"return_type": "godot_rect2",
|
||||
"arguments": [
|
||||
["const godot_rect2 *", "p_self"],
|
||||
["const godot_int", "p_margin"],
|
||||
["const godot_real", "p_by"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_rect2_abs",
|
||||
"return_type": "godot_rect2",
|
||||
"arguments": [
|
||||
["const godot_rect2 *", "p_self"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_string_dedent",
|
||||
"return_type": "godot_string",
|
||||
"arguments": [
|
||||
["const godot_string *", "p_self"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_string_trim_prefix",
|
||||
"return_type": "godot_string",
|
||||
"arguments": [
|
||||
["const godot_string *", "p_self"],
|
||||
["const godot_string *", "p_prefix"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_string_trim_suffix",
|
||||
"return_type": "godot_string",
|
||||
"arguments": [
|
||||
["const godot_string *", "p_self"],
|
||||
["const godot_string *", "p_suffix"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_string_rstrip",
|
||||
"return_type": "godot_string",
|
||||
"arguments": [
|
||||
["const godot_string *", "p_self"],
|
||||
["const godot_string *", "p_chars"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_string_rsplit",
|
||||
"return_type": "godot_pool_string_array",
|
||||
"arguments": [
|
||||
["const godot_string *", "p_self"],
|
||||
["const godot_string *", "p_divisor"],
|
||||
["const godot_bool", "p_allow_empty"],
|
||||
["const godot_int", "p_maxsplit"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_basis_get_quat",
|
||||
"return_type": "godot_quat",
|
||||
"arguments": [
|
||||
["const godot_basis *", "p_self"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_basis_set_quat",
|
||||
"return_type": "void",
|
||||
"arguments": [
|
||||
["godot_basis *", "p_self"],
|
||||
["const godot_quat *", "p_quat"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_basis_set_axis_angle_scale",
|
||||
"return_type": "void",
|
||||
"arguments": [
|
||||
["godot_basis *", "p_self"],
|
||||
["const godot_vector3 *", "p_axis"],
|
||||
["godot_real", "p_phi"],
|
||||
["const godot_vector3 *", "p_scale"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_basis_set_euler_scale",
|
||||
"return_type": "void",
|
||||
"arguments": [
|
||||
["godot_basis *", "p_self"],
|
||||
["const godot_vector3 *", "p_euler"],
|
||||
["const godot_vector3 *", "p_scale"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_basis_set_quat_scale",
|
||||
"return_type": "void",
|
||||
"arguments": [
|
||||
["godot_basis *", "p_self"],
|
||||
["const godot_quat *", "p_quat"],
|
||||
["const godot_vector3 *", "p_scale"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_is_instance_valid",
|
||||
"return_type": "bool",
|
||||
"arguments": [
|
||||
["const godot_object *", "p_object"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_quat_new_with_basis",
|
||||
"return_type": "void",
|
||||
"arguments": [
|
||||
["godot_quat *", "r_dest"],
|
||||
["const godot_basis *", "p_basis"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_quat_new_with_euler",
|
||||
"return_type": "void",
|
||||
"arguments": [
|
||||
["godot_quat *", "r_dest"],
|
||||
["const godot_vector3 *", "p_euler"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_transform_new_with_quat",
|
||||
"return_type": "void",
|
||||
"arguments": [
|
||||
["godot_transform *", "r_dest"],
|
||||
["const godot_quat *", "p_quat"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_variant_get_operator_name",
|
||||
"return_type": "godot_string",
|
||||
"arguments": [
|
||||
["godot_variant_operator", "p_op"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_variant_evaluate",
|
||||
"return_type": "void",
|
||||
"arguments": [
|
||||
["godot_variant_operator", "p_op"],
|
||||
["const godot_variant *", "p_a"],
|
||||
["const godot_variant *", "p_b"],
|
||||
["godot_variant *", "r_ret"],
|
||||
["godot_bool *", "r_valid"]
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"api": [
|
||||
{
|
||||
"name": "godot_color_new_rgba",
|
||||
@@ -4469,7 +4917,7 @@
|
||||
},
|
||||
{
|
||||
"name": "godot_string_operator_index",
|
||||
"return_type": "wchar_t *",
|
||||
"return_type": "const wchar_t *",
|
||||
"arguments": [
|
||||
["godot_string *", "p_self"],
|
||||
["const godot_int", "p_idx"]
|
||||
@@ -4484,7 +4932,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_string_wide_str",
|
||||
"name": "godot_string_wide_str",
|
||||
"return_type": "const wchar_t *",
|
||||
"arguments": [
|
||||
["const godot_string *", "p_self"]
|
||||
@@ -5253,21 +5701,21 @@
|
||||
"name": "godot_string_ascii",
|
||||
"return_type": "godot_char_string",
|
||||
"arguments": [
|
||||
["const godot_string *", "p_self"]
|
||||
["const godot_string *", "p_self"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_string_ascii_extended",
|
||||
"return_type": "godot_char_string",
|
||||
"arguments": [
|
||||
["const godot_string *", "p_self"]
|
||||
["const godot_string *", "p_self"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_string_utf8",
|
||||
"return_type": "godot_char_string",
|
||||
"arguments": [
|
||||
["const godot_string *", "p_self"]
|
||||
["const godot_string *", "p_self"]
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -5399,7 +5847,7 @@
|
||||
"name": "godot_string_humanize_size",
|
||||
"return_type": "godot_string",
|
||||
"arguments": [
|
||||
["size_t", "p_size"]
|
||||
["uint64_t", "p_size"]
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -5765,15 +6213,15 @@
|
||||
"minor": 0
|
||||
},
|
||||
"next": {
|
||||
"type": "NATIVESCRIPT",
|
||||
"version": {
|
||||
"major": 1,
|
||||
"minor": 1
|
||||
},
|
||||
"next": null,
|
||||
"api": [
|
||||
"type": "NATIVESCRIPT",
|
||||
"version": {
|
||||
"major": 1,
|
||||
"minor": 1
|
||||
},
|
||||
"next": null,
|
||||
"api": [
|
||||
{
|
||||
"name": "godot_nativescript_set_method_argument_information",
|
||||
"name": "godot_nativescript_set_method_argument_information",
|
||||
"return_type": "void",
|
||||
"arguments": [
|
||||
["void *", "p_gdnative_handle"],
|
||||
@@ -5784,7 +6232,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_nativescript_set_class_documentation",
|
||||
"name": "godot_nativescript_set_class_documentation",
|
||||
"return_type": "void",
|
||||
"arguments": [
|
||||
["void *", "p_gdnative_handle"],
|
||||
@@ -5793,7 +6241,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_nativescript_set_method_documentation",
|
||||
"name": "godot_nativescript_set_method_documentation",
|
||||
"return_type": "void",
|
||||
"arguments": [
|
||||
["void *", "p_gdnative_handle"],
|
||||
@@ -5803,7 +6251,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_nativescript_set_property_documentation",
|
||||
"name": "godot_nativescript_set_property_documentation",
|
||||
"return_type": "void",
|
||||
"arguments": [
|
||||
["void *", "p_gdnative_handle"],
|
||||
@@ -5813,7 +6261,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_nativescript_set_signal_documentation",
|
||||
"name": "godot_nativescript_set_signal_documentation",
|
||||
"return_type": "void",
|
||||
"arguments": [
|
||||
["void *", "p_gdnative_handle"],
|
||||
@@ -5874,10 +6322,18 @@
|
||||
"return_type": "void *",
|
||||
"arguments": [
|
||||
["int", "p_idx"],
|
||||
["godot_object *", "p_object"]
|
||||
["godot_object *", "p_object"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_nativescript_profiling_add_data",
|
||||
"return_type": "void",
|
||||
"arguments": [
|
||||
["const char *", "p_signature"],
|
||||
["uint64_t", "p_line"]
|
||||
]
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"api": [
|
||||
{
|
||||
@@ -5961,14 +6417,74 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "android",
|
||||
"type": "ANDROID",
|
||||
"version": {
|
||||
"major": 1,
|
||||
"minor": 1
|
||||
},
|
||||
"next": null,
|
||||
"api": [
|
||||
{
|
||||
"name": "godot_android_get_env",
|
||||
"return_type": "JNIEnv*",
|
||||
"arguments": [
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_android_get_activity",
|
||||
"return_type": "jobject",
|
||||
"arguments": [
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_android_get_surface",
|
||||
"return_type": "jobject",
|
||||
"arguments": [
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_android_is_activity_resumed",
|
||||
"return_type": "bool",
|
||||
"arguments": [
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "arvr",
|
||||
"type": "ARVR",
|
||||
"version": {
|
||||
"major": 1,
|
||||
"minor": 0
|
||||
"minor": 1
|
||||
},
|
||||
"next": {
|
||||
"name": "arvr",
|
||||
"type": "ARVR",
|
||||
"version": {
|
||||
"major": 1,
|
||||
"minor": 2
|
||||
},
|
||||
"next": null,
|
||||
"api": [
|
||||
{
|
||||
"name": "godot_arvr_set_interface",
|
||||
"return_type": "void",
|
||||
"arguments": [
|
||||
["godot_object *", "p_arvr_interface"],
|
||||
["const godot_arvr_interface_gdnative *", "p_gdn_interface"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_arvr_get_depthid",
|
||||
"return_type": "godot_int",
|
||||
"arguments": [
|
||||
["godot_rid *", "p_render_target"]
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"next": null,
|
||||
"api": [
|
||||
{
|
||||
"name": "godot_arvr_register_interface",
|
||||
@@ -6057,6 +6573,109 @@
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "videodecoder",
|
||||
"type": "VIDEODECODER",
|
||||
"version": {
|
||||
"major": 0,
|
||||
"minor": 1
|
||||
},
|
||||
"next": null,
|
||||
"api": [
|
||||
{
|
||||
"name": "godot_videodecoder_file_read",
|
||||
"return_type": "godot_int",
|
||||
"arguments": [
|
||||
["void *", "file_ptr"],
|
||||
["uint8_t *", "buf"],
|
||||
["int", "buf_size"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_videodecoder_file_seek",
|
||||
"return_type": "int64_t",
|
||||
"arguments": [
|
||||
[ "void *", "file_ptr"],
|
||||
["int64_t", "pos"],
|
||||
["int", "whence"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_videodecoder_register_decoder",
|
||||
"return_type": "void",
|
||||
"arguments": [
|
||||
["const godot_videodecoder_interface_gdnative *", "p_interface"]
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "net",
|
||||
"type": "NET",
|
||||
"version": {
|
||||
"major": 3,
|
||||
"minor": 1
|
||||
},
|
||||
"next": {
|
||||
"type": "NET",
|
||||
"version": {
|
||||
"major": 3,
|
||||
"minor": 2
|
||||
},
|
||||
"next": null,
|
||||
"api": [
|
||||
{
|
||||
"name": "godot_net_set_webrtc_library",
|
||||
"return_type": "godot_error",
|
||||
"arguments": [
|
||||
["const godot_net_webrtc_library *", "p_library"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_net_bind_webrtc_peer_connection",
|
||||
"return_type": "void",
|
||||
"arguments": [
|
||||
["godot_object *", "p_obj"],
|
||||
["const godot_net_webrtc_peer_connection *", "p_interface"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_net_bind_webrtc_data_channel",
|
||||
"return_type": "void",
|
||||
"arguments": [
|
||||
["godot_object *", "p_obj"],
|
||||
["const godot_net_webrtc_data_channel *", "p_interface"]
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"api": [
|
||||
{
|
||||
"name": "godot_net_bind_stream_peer",
|
||||
"return_type": "void",
|
||||
"arguments": [
|
||||
["godot_object *", "p_obj"],
|
||||
["const godot_net_stream_peer *", "p_interface"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_net_bind_packet_peer",
|
||||
"return_type": "void",
|
||||
"arguments": [
|
||||
["godot_object *", "p_obj"],
|
||||
["const godot_net_packet_peer *", "p_interface"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "godot_net_bind_multiplayer_peer",
|
||||
"return_type": "void",
|
||||
"arguments": [
|
||||
["godot_object *", "p_obj"],
|
||||
["const godot_net_multiplayer_peer *", "p_interface"]
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -3,15 +3,21 @@
|
||||
#define GODOT_GDNATIVE_API_STRUCT_H
|
||||
|
||||
#include <gdnative/gdnative.h>
|
||||
#include <android/godot_android.h>
|
||||
#include <arvr/godot_arvr.h>
|
||||
#include <nativescript/godot_nativescript.h>
|
||||
#include <net/godot_net.h>
|
||||
#include <pluginscript/godot_pluginscript.h>
|
||||
#include <videodecoder/godot_videodecoder.h>
|
||||
|
||||
#define GDNATIVE_API_INIT(options) do { \
|
||||
extern const godot_gdnative_core_api_struct *_gdnative_wrapper_api_struct; \
|
||||
extern const godot_gdnative_ext_nativescript_api_struct *_gdnative_wrapper_nativescript_api_struct; \
|
||||
extern const godot_gdnative_ext_pluginscript_api_struct *_gdnative_wrapper_pluginscript_api_struct; \
|
||||
extern const godot_gdnative_ext_android_api_struct *_gdnative_wrapper_android_api_struct; \
|
||||
extern const godot_gdnative_ext_arvr_api_struct *_gdnative_wrapper_arvr_api_struct; \
|
||||
extern const godot_gdnative_ext_videodecoder_api_struct *_gdnative_wrapper_videodecoder_api_struct; \
|
||||
extern const godot_gdnative_ext_net_api_struct *_gdnative_wrapper_net_api_struct; \
|
||||
_gdnative_wrapper_api_struct = options->api_struct; \
|
||||
for (unsigned int i = 0; i < _gdnative_wrapper_api_struct->num_extensions; i++) { \
|
||||
switch (_gdnative_wrapper_api_struct->extensions[i]->type) { \
|
||||
@@ -21,9 +27,18 @@
|
||||
case GDNATIVE_EXT_PLUGINSCRIPT: \
|
||||
_gdnative_wrapper_pluginscript_api_struct = (godot_gdnative_ext_pluginscript_api_struct *) _gdnative_wrapper_api_struct->extensions[i]; \
|
||||
break; \
|
||||
case GDNATIVE_EXT_ANDROID: \
|
||||
_gdnative_wrapper_android_api_struct = (godot_gdnative_ext_android_api_struct *) _gdnative_wrapper_api_struct->extensions[i]; \
|
||||
break; \
|
||||
case GDNATIVE_EXT_ARVR: \
|
||||
_gdnative_wrapper_arvr_api_struct = (godot_gdnative_ext_arvr_api_struct *) _gdnative_wrapper_api_struct->extensions[i]; \
|
||||
break; \
|
||||
case GDNATIVE_EXT_VIDEODECODER: \
|
||||
_gdnative_wrapper_videodecoder_api_struct = (godot_gdnative_ext_videodecoder_api_struct *) _gdnative_wrapper_api_struct->extensions[i]; \
|
||||
break; \
|
||||
case GDNATIVE_EXT_NET: \
|
||||
_gdnative_wrapper_net_api_struct = (godot_gdnative_ext_net_api_struct *) _gdnative_wrapper_api_struct->extensions[i]; \
|
||||
break; \
|
||||
} \
|
||||
} \
|
||||
} while (0)
|
||||
@@ -36,7 +51,10 @@ enum GDNATIVE_API_TYPES {
|
||||
GDNATIVE_CORE,
|
||||
GDNATIVE_EXT_NATIVESCRIPT,
|
||||
GDNATIVE_EXT_PLUGINSCRIPT,
|
||||
GDNATIVE_EXT_ANDROID,
|
||||
GDNATIVE_EXT_ARVR,
|
||||
GDNATIVE_EXT_VIDEODECODER,
|
||||
GDNATIVE_EXT_NET,
|
||||
};
|
||||
|
||||
typedef struct godot_gdnative_ext_nativescript_1_1_api_struct {
|
||||
@@ -55,6 +73,7 @@ typedef struct godot_gdnative_ext_nativescript_1_1_api_struct {
|
||||
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)(const char *p_signature, uint64_t p_line);
|
||||
} godot_gdnative_ext_nativescript_1_1_api_struct;
|
||||
|
||||
typedef struct godot_gdnative_ext_nativescript_api_struct {
|
||||
@@ -76,6 +95,24 @@ typedef struct godot_gdnative_ext_pluginscript_api_struct {
|
||||
void (*godot_pluginscript_register_language)(const godot_pluginscript_language_desc *language_desc);
|
||||
} godot_gdnative_ext_pluginscript_api_struct;
|
||||
|
||||
typedef struct godot_gdnative_ext_android_api_struct {
|
||||
unsigned int type;
|
||||
godot_gdnative_api_version version;
|
||||
const godot_gdnative_api_struct *next;
|
||||
JNIEnv*(*godot_android_get_env)();
|
||||
jobject (*godot_android_get_activity)();
|
||||
jobject (*godot_android_get_surface)();
|
||||
bool (*godot_android_is_activity_resumed)();
|
||||
} godot_gdnative_ext_android_api_struct;
|
||||
|
||||
typedef struct godot_gdnative_ext_arvr_1_2_api_struct {
|
||||
unsigned int type;
|
||||
godot_gdnative_api_version version;
|
||||
const godot_gdnative_api_struct *next;
|
||||
void (*godot_arvr_set_interface)(godot_object *p_arvr_interface, const godot_arvr_interface_gdnative *p_gdn_interface);
|
||||
godot_int (*godot_arvr_get_depthid)(godot_rid *p_render_target);
|
||||
} godot_gdnative_ext_arvr_1_2_api_struct;
|
||||
|
||||
typedef struct godot_gdnative_ext_arvr_api_struct {
|
||||
unsigned int type;
|
||||
godot_gdnative_api_version version;
|
||||
@@ -93,6 +130,98 @@ typedef struct godot_gdnative_ext_arvr_api_struct {
|
||||
godot_real (*godot_arvr_get_controller_rumble)(godot_int p_controller_id);
|
||||
} godot_gdnative_ext_arvr_api_struct;
|
||||
|
||||
typedef struct godot_gdnative_ext_videodecoder_api_struct {
|
||||
unsigned int type;
|
||||
godot_gdnative_api_version version;
|
||||
const godot_gdnative_api_struct *next;
|
||||
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)(const godot_videodecoder_interface_gdnative *p_interface);
|
||||
} godot_gdnative_ext_videodecoder_api_struct;
|
||||
|
||||
typedef struct godot_gdnative_ext_net_3_2_api_struct {
|
||||
unsigned int type;
|
||||
godot_gdnative_api_version version;
|
||||
const godot_gdnative_api_struct *next;
|
||||
godot_error (*godot_net_set_webrtc_library)(const godot_net_webrtc_library *p_library);
|
||||
void (*godot_net_bind_webrtc_peer_connection)(godot_object *p_obj, const godot_net_webrtc_peer_connection *p_interface);
|
||||
void (*godot_net_bind_webrtc_data_channel)(godot_object *p_obj, const godot_net_webrtc_data_channel *p_interface);
|
||||
} godot_gdnative_ext_net_3_2_api_struct;
|
||||
|
||||
typedef struct godot_gdnative_ext_net_api_struct {
|
||||
unsigned int type;
|
||||
godot_gdnative_api_version version;
|
||||
const godot_gdnative_api_struct *next;
|
||||
void (*godot_net_bind_stream_peer)(godot_object *p_obj, const godot_net_stream_peer *p_interface);
|
||||
void (*godot_net_bind_packet_peer)(godot_object *p_obj, const godot_net_packet_peer *p_interface);
|
||||
void (*godot_net_bind_multiplayer_peer)(godot_object *p_obj, const godot_net_multiplayer_peer *p_interface);
|
||||
} godot_gdnative_ext_net_api_struct;
|
||||
|
||||
typedef struct godot_gdnative_core_1_2_api_struct {
|
||||
unsigned int type;
|
||||
godot_gdnative_api_version version;
|
||||
const godot_gdnative_api_struct *next;
|
||||
godot_dictionary (*godot_dictionary_duplicate)(const godot_dictionary *p_self, const godot_bool p_deep);
|
||||
godot_vector3 (*godot_vector3_move_toward)(const godot_vector3 *p_self, const godot_vector3 *p_to, const godot_real p_delta);
|
||||
godot_vector2 (*godot_vector2_move_toward)(const godot_vector2 *p_self, const godot_vector2 *p_to, const godot_real p_delta);
|
||||
godot_int (*godot_string_count)(const godot_string *p_self, godot_string p_what, godot_int p_from, godot_int p_to);
|
||||
godot_int (*godot_string_countn)(const godot_string *p_self, godot_string p_what, godot_int p_from, godot_int p_to);
|
||||
godot_vector3 (*godot_vector3_direction_to)(const godot_vector3 *p_self, const godot_vector3 *p_to);
|
||||
godot_vector2 (*godot_vector2_direction_to)(const godot_vector2 *p_self, const godot_vector2 *p_to);
|
||||
godot_array (*godot_array_slice)(const godot_array *p_self, const godot_int p_begin, const godot_int p_end, const godot_int p_step, const godot_bool p_deep);
|
||||
godot_bool (*godot_pool_byte_array_empty)(const godot_pool_byte_array *p_self);
|
||||
godot_bool (*godot_pool_int_array_empty)(const godot_pool_int_array *p_self);
|
||||
godot_bool (*godot_pool_real_array_empty)(const godot_pool_real_array *p_self);
|
||||
godot_bool (*godot_pool_string_array_empty)(const godot_pool_string_array *p_self);
|
||||
godot_bool (*godot_pool_vector2_array_empty)(const godot_pool_vector2_array *p_self);
|
||||
godot_bool (*godot_pool_vector3_array_empty)(const godot_pool_vector3_array *p_self);
|
||||
godot_bool (*godot_pool_color_array_empty)(const godot_pool_color_array *p_self);
|
||||
void *(*godot_get_class_tag)(const godot_string_name *p_class);
|
||||
godot_object *(*godot_object_cast_to)(const godot_object *p_object, void *p_class_tag);
|
||||
godot_object *(*godot_instance_from_id)(godot_int p_instance_id);
|
||||
} godot_gdnative_core_1_2_api_struct;
|
||||
|
||||
typedef struct godot_gdnative_core_1_1_api_struct {
|
||||
unsigned int type;
|
||||
godot_gdnative_api_version version;
|
||||
const godot_gdnative_api_struct *next;
|
||||
godot_int (*godot_color_to_abgr32)(const godot_color *p_self);
|
||||
godot_int (*godot_color_to_abgr64)(const godot_color *p_self);
|
||||
godot_int (*godot_color_to_argb64)(const godot_color *p_self);
|
||||
godot_int (*godot_color_to_rgba64)(const godot_color *p_self);
|
||||
godot_color (*godot_color_darkened)(const godot_color *p_self, const godot_real p_amount);
|
||||
godot_color (*godot_color_from_hsv)(const godot_color *p_self, const godot_real p_h, const godot_real p_s, const godot_real p_v, const godot_real p_a);
|
||||
godot_color (*godot_color_lightened)(const godot_color *p_self, const godot_real p_amount);
|
||||
godot_array (*godot_array_duplicate)(const godot_array *p_self, const godot_bool p_deep);
|
||||
godot_variant (*godot_array_max)(const godot_array *p_self);
|
||||
godot_variant (*godot_array_min)(const godot_array *p_self);
|
||||
void (*godot_array_shuffle)(godot_array *p_self);
|
||||
godot_basis (*godot_basis_slerp)(const godot_basis *p_self, const godot_basis *p_b, const godot_real p_t);
|
||||
godot_variant (*godot_dictionary_get_with_default)(const godot_dictionary *p_self, const godot_variant *p_key, const godot_variant *p_default);
|
||||
bool (*godot_dictionary_erase_with_return)(godot_dictionary *p_self, const godot_variant *p_key);
|
||||
godot_node_path (*godot_node_path_get_as_property_path)(const godot_node_path *p_self);
|
||||
void (*godot_quat_set_axis_angle)(godot_quat *p_self, const godot_vector3 *p_axis, const godot_real p_angle);
|
||||
godot_rect2 (*godot_rect2_grow_individual)(const godot_rect2 *p_self, const godot_real p_left, const godot_real p_top, const godot_real p_right, const godot_real p_bottom);
|
||||
godot_rect2 (*godot_rect2_grow_margin)(const godot_rect2 *p_self, const godot_int p_margin, const godot_real p_by);
|
||||
godot_rect2 (*godot_rect2_abs)(const godot_rect2 *p_self);
|
||||
godot_string (*godot_string_dedent)(const godot_string *p_self);
|
||||
godot_string (*godot_string_trim_prefix)(const godot_string *p_self, const godot_string *p_prefix);
|
||||
godot_string (*godot_string_trim_suffix)(const godot_string *p_self, const godot_string *p_suffix);
|
||||
godot_string (*godot_string_rstrip)(const godot_string *p_self, const godot_string *p_chars);
|
||||
godot_pool_string_array (*godot_string_rsplit)(const godot_string *p_self, const godot_string *p_divisor, const godot_bool p_allow_empty, const godot_int p_maxsplit);
|
||||
godot_quat (*godot_basis_get_quat)(const godot_basis *p_self);
|
||||
void (*godot_basis_set_quat)(godot_basis *p_self, const godot_quat *p_quat);
|
||||
void (*godot_basis_set_axis_angle_scale)(godot_basis *p_self, const godot_vector3 *p_axis, godot_real p_phi, const godot_vector3 *p_scale);
|
||||
void (*godot_basis_set_euler_scale)(godot_basis *p_self, const godot_vector3 *p_euler, const godot_vector3 *p_scale);
|
||||
void (*godot_basis_set_quat_scale)(godot_basis *p_self, const godot_quat *p_quat, const godot_vector3 *p_scale);
|
||||
bool (*godot_is_instance_valid)(const godot_object *p_object);
|
||||
void (*godot_quat_new_with_basis)(godot_quat *r_dest, const godot_basis *p_basis);
|
||||
void (*godot_quat_new_with_euler)(godot_quat *r_dest, const godot_vector3 *p_euler);
|
||||
void (*godot_transform_new_with_quat)(godot_transform *r_dest, const godot_quat *p_quat);
|
||||
godot_string (*godot_variant_get_operator_name)(godot_variant_operator p_op);
|
||||
void (*godot_variant_evaluate)(godot_variant_operator p_op, const godot_variant *p_a, const godot_variant *p_b, godot_variant *r_ret, godot_bool *r_valid);
|
||||
} godot_gdnative_core_1_1_api_struct;
|
||||
|
||||
typedef struct godot_gdnative_core_api_struct {
|
||||
unsigned int type;
|
||||
godot_gdnative_api_version version;
|
||||
@@ -676,7 +805,7 @@ typedef struct godot_gdnative_core_api_struct {
|
||||
void (*godot_string_new)(godot_string *r_dest);
|
||||
void (*godot_string_new_copy)(godot_string *r_dest, const godot_string *p_src);
|
||||
void (*godot_string_new_with_wide_string)(godot_string *r_dest, const wchar_t *p_contents, const int p_size);
|
||||
wchar_t *(*godot_string_operator_index)(godot_string *p_self, const godot_int p_idx);
|
||||
const wchar_t *(*godot_string_operator_index)(godot_string *p_self, const godot_int p_idx);
|
||||
wchar_t (*godot_string_operator_index_const)(const godot_string *p_self, const godot_int p_idx);
|
||||
const wchar_t *(*godot_string_wide_str)(const godot_string *p_self);
|
||||
godot_bool (*godot_string_operator_equal)(const godot_string *p_self, const godot_string *p_b);
|
||||
@@ -795,7 +924,7 @@ typedef struct godot_gdnative_core_api_struct {
|
||||
godot_bool (*godot_string_empty)(const godot_string *p_self);
|
||||
godot_string (*godot_string_get_base_dir)(const godot_string *p_self);
|
||||
godot_string (*godot_string_get_file)(const godot_string *p_self);
|
||||
godot_string (*godot_string_humanize_size)(size_t p_size);
|
||||
godot_string (*godot_string_humanize_size)(uint64_t p_size);
|
||||
godot_bool (*godot_string_is_abs_path)(const godot_string *p_self);
|
||||
godot_bool (*godot_string_is_rel_path)(const godot_string *p_self);
|
||||
godot_bool (*godot_string_is_resource_file)(const godot_string *p_self);
|
||||
|
||||
0
images/.gdignore
Normal file
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 8.2 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 7.8 KiB |
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 9.5 KiB |
@@ -5,8 +5,8 @@
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */
|
||||
/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
@@ -40,9 +40,13 @@ extern "C" {
|
||||
typedef enum {
|
||||
GODOT_METHOD_RPC_MODE_DISABLED,
|
||||
GODOT_METHOD_RPC_MODE_REMOTE,
|
||||
GODOT_METHOD_RPC_MODE_SYNC,
|
||||
GODOT_METHOD_RPC_MODE_MASTER,
|
||||
GODOT_METHOD_RPC_MODE_SLAVE,
|
||||
GODOT_METHOD_RPC_MODE_PUPPET,
|
||||
GODOT_METHOD_RPC_MODE_SLAVE = GODOT_METHOD_RPC_MODE_PUPPET,
|
||||
GODOT_METHOD_RPC_MODE_REMOTESYNC,
|
||||
GODOT_METHOD_RPC_MODE_SYNC = GODOT_METHOD_RPC_MODE_REMOTESYNC,
|
||||
GODOT_METHOD_RPC_MODE_MASTERSYNC,
|
||||
GODOT_METHOD_RPC_MODE_PUPPETSYNC,
|
||||
} godot_method_rpc_mode;
|
||||
|
||||
typedef enum {
|
||||
@@ -52,7 +56,7 @@ typedef enum {
|
||||
GODOT_PROPERTY_HINT_ENUM, ///< hint_text= "val1,val2,val3,etc"
|
||||
GODOT_PROPERTY_HINT_EXP_EASING, /// exponential easing function (Math::ease)
|
||||
GODOT_PROPERTY_HINT_LENGTH, ///< hint_text= "length" (as integer)
|
||||
GODOT_PROPERTY_HINT_SPRITE_FRAME,
|
||||
GODOT_PROPERTY_HINT_SPRITE_FRAME, // FIXME: Obsolete: drop whenever we can break compat
|
||||
GODOT_PROPERTY_HINT_KEY_ACCEL, ///< hint_text= "length" (as integer)
|
||||
GODOT_PROPERTY_HINT_FLAGS, ///< hint_text= "flag1,flag2,etc" (as bit flags)
|
||||
GODOT_PROPERTY_HINT_LAYERS_2D_RENDER,
|
||||
@@ -60,11 +64,12 @@ typedef enum {
|
||||
GODOT_PROPERTY_HINT_LAYERS_3D_RENDER,
|
||||
GODOT_PROPERTY_HINT_LAYERS_3D_PHYSICS,
|
||||
GODOT_PROPERTY_HINT_FILE, ///< a file path must be passed, hint_text (optionally) is a filter "*.png,*.wav,*.doc,"
|
||||
GODOT_PROPERTY_HINT_DIR, ///< a directort path must be passed
|
||||
GODOT_PROPERTY_HINT_DIR, ///< a directory path must be passed
|
||||
GODOT_PROPERTY_HINT_GLOBAL_FILE, ///< a file path must be passed, hint_text (optionally) is a filter "*.png,*.wav,*.doc,"
|
||||
GODOT_PROPERTY_HINT_GLOBAL_DIR, ///< a directort path must be passed
|
||||
GODOT_PROPERTY_HINT_GLOBAL_DIR, ///< a directory path must be passed
|
||||
GODOT_PROPERTY_HINT_RESOURCE_TYPE, ///< a resource object type
|
||||
GODOT_PROPERTY_HINT_MULTILINE_TEXT, ///< used for string properties that can contain multiple lines
|
||||
GODOT_PROPERTY_HINT_PLACEHOLDER_TEXT, ///< used to set a placeholder text for string properties
|
||||
GODOT_PROPERTY_HINT_COLOR_NO_ALPHA, ///< used for ignoring alpha component when editing a color
|
||||
GODOT_PROPERTY_HINT_IMAGE_COMPRESS_LOSSY,
|
||||
GODOT_PROPERTY_HINT_IMAGE_COMPRESS_LOSSLESS,
|
||||
@@ -93,8 +98,8 @@ typedef enum {
|
||||
GODOT_PROPERTY_USAGE_INTERNATIONALIZED = 64, //hint for internationalized strings
|
||||
GODOT_PROPERTY_USAGE_GROUP = 128, //used for grouping props in the editor
|
||||
GODOT_PROPERTY_USAGE_CATEGORY = 256,
|
||||
GODOT_PROPERTY_USAGE_STORE_IF_NONZERO = 512, //only store if nonzero
|
||||
GODOT_PROPERTY_USAGE_STORE_IF_NONONE = 1024, //only store if false
|
||||
GODOT_PROPERTY_USAGE_STORE_IF_NONZERO = 512, // FIXME: Obsolete: drop whenever we can break compat
|
||||
GODOT_PROPERTY_USAGE_STORE_IF_NONONE = 1024, // FIXME: Obsolete: drop whenever we can break compat
|
||||
GODOT_PROPERTY_USAGE_NO_INSTANCE_STATE = 2048,
|
||||
GODOT_PROPERTY_USAGE_RESTART_IF_CHANGED = 4096,
|
||||
GODOT_PROPERTY_USAGE_SCRIPT_VARIABLE = 8192,
|
||||
@@ -225,6 +230,8 @@ const void GDAPI *godot_nativescript_get_type_tag(const godot_object *p_object);
|
||||
typedef struct {
|
||||
GDCALLINGCONV void *(*alloc_instance_binding_data)(void *, const void *, godot_object *);
|
||||
GDCALLINGCONV void (*free_instance_binding_data)(void *, void *);
|
||||
GDCALLINGCONV void (*refcount_incremented_instance_binding)(void *, godot_object *);
|
||||
GDCALLINGCONV bool (*refcount_decremented_instance_binding)(void *, godot_object *);
|
||||
void *data;
|
||||
GDCALLINGCONV void (*free_func)(void *);
|
||||
} godot_instance_binding_functions;
|
||||
@@ -234,6 +241,8 @@ void GDAPI godot_nativescript_unregister_instance_binding_data_functions(int p_i
|
||||
|
||||
void GDAPI *godot_nativescript_get_instance_binding_data(int p_idx, godot_object *p_object);
|
||||
|
||||
void GDAPI godot_nativescript_profiling_add_data(const char *p_signature, uint64_t p_time);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
121
net/godot_net.h
Normal file
@@ -0,0 +1,121 @@
|
||||
/*************************************************************************/
|
||||
/* godot_net.h */
|
||||
/*************************************************************************/
|
||||
/* This file is part of: */
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
/* "Software"), to deal in the Software without restriction, including */
|
||||
/* without limitation the rights to use, copy, modify, merge, publish, */
|
||||
/* distribute, sublicense, and/or sell copies of the Software, and to */
|
||||
/* permit persons to whom the Software is furnished to do so, subject to */
|
||||
/* the following conditions: */
|
||||
/* */
|
||||
/* The above copyright notice and this permission notice shall be */
|
||||
/* included in all copies or substantial portions of the Software. */
|
||||
/* */
|
||||
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
|
||||
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
|
||||
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
|
||||
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
|
||||
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
|
||||
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
|
||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||
/*************************************************************************/
|
||||
|
||||
#ifndef GODOT_NATIVENET_H
|
||||
#define GODOT_NATIVENET_H
|
||||
|
||||
#include <gdnative/gdnative.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// For future versions of the API we should only add new functions at the end of the structure and use the
|
||||
// version info to detect whether a call is available
|
||||
|
||||
// Use these to populate version in your plugin
|
||||
#define GODOT_NET_API_MAJOR 3
|
||||
#define GODOT_NET_API_MINOR 1
|
||||
|
||||
typedef struct {
|
||||
|
||||
godot_gdnative_api_version version; /* version of our API */
|
||||
godot_object *data; /* User reference */
|
||||
|
||||
/* This is StreamPeer */
|
||||
godot_error (*get_data)(void *user, uint8_t *p_buffer, int p_bytes);
|
||||
godot_error (*get_partial_data)(void *user, uint8_t *p_buffer, int p_bytes, int *r_received);
|
||||
godot_error (*put_data)(void *user, const uint8_t *p_data, int p_bytes);
|
||||
godot_error (*put_partial_data)(void *user, const uint8_t *p_data, int p_bytes, int *r_sent);
|
||||
|
||||
int (*get_available_bytes)(const void *user);
|
||||
|
||||
void *next; /* For extension? */
|
||||
} godot_net_stream_peer;
|
||||
|
||||
/* Binds a StreamPeerGDNative to the provided interface */
|
||||
void godot_net_bind_stream_peer(godot_object *p_obj, const godot_net_stream_peer *p_interface);
|
||||
|
||||
typedef struct {
|
||||
godot_gdnative_api_version version; /* version of our API */
|
||||
|
||||
godot_object *data; /* User reference */
|
||||
|
||||
/* This is PacketPeer */
|
||||
godot_error (*get_packet)(void *, const uint8_t **, int *);
|
||||
godot_error (*put_packet)(void *, const uint8_t *, int);
|
||||
godot_int (*get_available_packet_count)(const void *);
|
||||
godot_int (*get_max_packet_size)(const void *);
|
||||
|
||||
void *next; /* For extension? */
|
||||
} godot_net_packet_peer;
|
||||
|
||||
/* Binds a PacketPeerGDNative to the provided interface */
|
||||
void GDAPI godot_net_bind_packet_peer(godot_object *p_obj, const godot_net_packet_peer *);
|
||||
|
||||
typedef struct {
|
||||
godot_gdnative_api_version version; /* version of our API */
|
||||
|
||||
godot_object *data; /* User reference */
|
||||
|
||||
/* This is PacketPeer */
|
||||
godot_error (*get_packet)(void *, const uint8_t **, int *);
|
||||
godot_error (*put_packet)(void *, const uint8_t *, int);
|
||||
godot_int (*get_available_packet_count)(const void *);
|
||||
godot_int (*get_max_packet_size)(const void *);
|
||||
|
||||
/* This is NetworkedMultiplayerPeer */
|
||||
void (*set_transfer_mode)(void *, godot_int);
|
||||
godot_int (*get_transfer_mode)(const void *);
|
||||
// 0 = broadcast, 1 = server, <0 = all but abs(value)
|
||||
void (*set_target_peer)(void *, godot_int);
|
||||
godot_int (*get_packet_peer)(const void *);
|
||||
godot_bool (*is_server)(const void *);
|
||||
void (*poll)(void *);
|
||||
// Must be > 0, 1 is for server
|
||||
int32_t (*get_unique_id)(const void *);
|
||||
void (*set_refuse_new_connections)(void *, godot_bool);
|
||||
godot_bool (*is_refusing_new_connections)(const void *);
|
||||
godot_int (*get_connection_status)(const void *);
|
||||
|
||||
void *next; /* For extension? Or maybe not... */
|
||||
} godot_net_multiplayer_peer;
|
||||
|
||||
/* Binds a MultiplayerPeerGDNative to the provided interface */
|
||||
void GDAPI godot_net_bind_multiplayer_peer(godot_object *p_obj, const godot_net_multiplayer_peer *);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
// WebRTC Bindings
|
||||
#include "net/godot_webrtc.h"
|
||||
|
||||
#endif /* GODOT_NATIVENET_H */
|
||||
122
net/godot_webrtc.h
Normal file
@@ -0,0 +1,122 @@
|
||||
/*************************************************************************/
|
||||
/* godot_webrtc.h */
|
||||
/*************************************************************************/
|
||||
/* This file is part of: */
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
/* "Software"), to deal in the Software without restriction, including */
|
||||
/* without limitation the rights to use, copy, modify, merge, publish, */
|
||||
/* distribute, sublicense, and/or sell copies of the Software, and to */
|
||||
/* permit persons to whom the Software is furnished to do so, subject to */
|
||||
/* the following conditions: */
|
||||
/* */
|
||||
/* The above copyright notice and this permission notice shall be */
|
||||
/* included in all copies or substantial portions of the Software. */
|
||||
/* */
|
||||
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
|
||||
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
|
||||
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
|
||||
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
|
||||
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
|
||||
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
|
||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||
/*************************************************************************/
|
||||
|
||||
#ifndef GODOT_NATIVEWEBRTC_H
|
||||
#define GODOT_NATIVEWEBRTC_H
|
||||
|
||||
#include <gdnative/gdnative.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define GODOT_NET_WEBRTC_API_MAJOR 3
|
||||
#define GODOT_NET_WEBRTC_API_MINOR 2
|
||||
|
||||
/* Library Interface (used to set default GDNative WebRTC implementation */
|
||||
typedef struct {
|
||||
godot_gdnative_api_version version; /* version of our API */
|
||||
|
||||
/* Called when the library is unset as default interface via godot_net_set_webrtc_library */
|
||||
void (*unregistered)();
|
||||
|
||||
/* Used by WebRTCPeerConnection create when GDNative is the default implementation. */
|
||||
/* Takes a pointer to WebRTCPeerConnectionGDNative, should bind and return OK, failure if binding was unsuccessful. */
|
||||
godot_error (*create_peer_connection)(godot_object *);
|
||||
|
||||
void *next; /* For extension */
|
||||
} godot_net_webrtc_library;
|
||||
|
||||
/* WebRTCPeerConnection interface */
|
||||
typedef struct {
|
||||
godot_gdnative_api_version version; /* version of our API */
|
||||
|
||||
godot_object *data; /* User reference */
|
||||
|
||||
/* This is WebRTCPeerConnection */
|
||||
godot_int (*get_connection_state)(const void *);
|
||||
|
||||
godot_error (*initialize)(void *, const godot_dictionary *);
|
||||
godot_object *(*create_data_channel)(void *, const char *p_channel_name, const godot_dictionary *);
|
||||
godot_error (*create_offer)(void *);
|
||||
godot_error (*create_answer)(void *); /* unused for now, should be done automatically on set_local_description */
|
||||
godot_error (*set_remote_description)(void *, const char *, const char *);
|
||||
godot_error (*set_local_description)(void *, const char *, const char *);
|
||||
godot_error (*add_ice_candidate)(void *, const char *, int, const char *);
|
||||
godot_error (*poll)(void *);
|
||||
void (*close)(void *);
|
||||
|
||||
void *next; /* For extension? */
|
||||
} godot_net_webrtc_peer_connection;
|
||||
|
||||
/* WebRTCDataChannel interface */
|
||||
typedef struct {
|
||||
godot_gdnative_api_version version; /* version of our API */
|
||||
|
||||
godot_object *data; /* User reference */
|
||||
|
||||
/* This is PacketPeer */
|
||||
godot_error (*get_packet)(void *, const uint8_t **, int *);
|
||||
godot_error (*put_packet)(void *, const uint8_t *, int);
|
||||
godot_int (*get_available_packet_count)(const void *);
|
||||
godot_int (*get_max_packet_size)(const void *);
|
||||
|
||||
/* This is WebRTCDataChannel */
|
||||
void (*set_write_mode)(void *, godot_int);
|
||||
godot_int (*get_write_mode)(const void *);
|
||||
bool (*was_string_packet)(const void *);
|
||||
|
||||
godot_int (*get_ready_state)(const void *);
|
||||
const char *(*get_label)(const void *);
|
||||
bool (*is_ordered)(const void *);
|
||||
int (*get_id)(const void *);
|
||||
int (*get_max_packet_life_time)(const void *);
|
||||
int (*get_max_retransmits)(const void *);
|
||||
const char *(*get_protocol)(const void *);
|
||||
bool (*is_negotiated)(const void *);
|
||||
|
||||
godot_error (*poll)(void *);
|
||||
void (*close)(void *);
|
||||
|
||||
void *next; /* For extension? */
|
||||
} godot_net_webrtc_data_channel;
|
||||
|
||||
/* Set the default GDNative library */
|
||||
godot_error GDAPI godot_net_set_webrtc_library(const godot_net_webrtc_library *);
|
||||
/* Binds a WebRTCPeerConnectionGDNative to the provided interface */
|
||||
void GDAPI godot_net_bind_webrtc_peer_connection(godot_object *p_obj, const godot_net_webrtc_peer_connection *);
|
||||
/* Binds a WebRTCDataChannelGDNative to the provided interface */
|
||||
void GDAPI godot_net_bind_webrtc_data_channel(godot_object *p_obj, const godot_net_webrtc_data_channel *);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -5,8 +5,8 @@
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */
|
||||
/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
@@ -136,7 +136,7 @@ typedef struct {
|
||||
godot_bool (*validate)(godot_pluginscript_language_data *p_data, const godot_string *p_script, int *r_line_error, int *r_col_error, godot_string *r_test_error, const godot_string *p_path, godot_pool_string_array *r_functions);
|
||||
int (*find_function)(godot_pluginscript_language_data *p_data, const godot_string *p_function, const godot_string *p_code); // Can be NULL
|
||||
godot_string (*make_function)(godot_pluginscript_language_data *p_data, const godot_string *p_class, const godot_string *p_name, const godot_pool_string_array *p_args);
|
||||
godot_error (*complete_code)(godot_pluginscript_language_data *p_data, const godot_string *p_code, const godot_string *p_base_path, godot_object *p_owner, godot_array *r_options, godot_bool *r_force, godot_string *r_call_hint);
|
||||
godot_error (*complete_code)(godot_pluginscript_language_data *p_data, const godot_string *p_code, const godot_string *p_path, godot_object *p_owner, godot_array *r_options, godot_bool *r_force, godot_string *r_call_hint);
|
||||
void (*auto_indent_code)(godot_pluginscript_language_data *p_data, godot_string *p_code, int p_from_line, int p_to_line);
|
||||
|
||||
void (*add_global_constant)(godot_pluginscript_language_data *p_data, const godot_string *p_variable, const godot_variant *p_value);
|
||||
|
||||
75
videodecoder/godot_videodecoder.h
Normal file
@@ -0,0 +1,75 @@
|
||||
/*************************************************************************/
|
||||
/* godot_videodecoder.h */
|
||||
/*************************************************************************/
|
||||
/* This file is part of: */
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
/* "Software"), to deal in the Software without restriction, including */
|
||||
/* without limitation the rights to use, copy, modify, merge, publish, */
|
||||
/* distribute, sublicense, and/or sell copies of the Software, and to */
|
||||
/* permit persons to whom the Software is furnished to do so, subject to */
|
||||
/* the following conditions: */
|
||||
/* */
|
||||
/* The above copyright notice and this permission notice shall be */
|
||||
/* included in all copies or substantial portions of the Software. */
|
||||
/* */
|
||||
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
|
||||
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
|
||||
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
|
||||
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
|
||||
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
|
||||
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
|
||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||
/*************************************************************************/
|
||||
|
||||
#ifndef GODOT_NATIVEVIDEODECODER_H
|
||||
#define GODOT_NATIVEVIDEODECODER_H
|
||||
|
||||
#include <gdnative/gdnative.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define GODOTAV_API_MAJOR 0
|
||||
#define GODOTAV_API_MINOR 1
|
||||
|
||||
typedef struct
|
||||
{
|
||||
godot_gdnative_api_version version;
|
||||
void *next;
|
||||
void *(*constructor)(godot_object *);
|
||||
void (*destructor)(void *);
|
||||
const char *(*get_plugin_name)(void);
|
||||
const char **(*get_supported_extensions)(int *count);
|
||||
godot_bool (*open_file)(void *, void *); // data struct, and a FileAccess pointer
|
||||
godot_real (*get_length)(const void *);
|
||||
godot_real (*get_playback_position)(const void *);
|
||||
void (*seek)(void *, godot_real);
|
||||
void (*set_audio_track)(void *, godot_int);
|
||||
void (*update)(void *, godot_real);
|
||||
godot_pool_byte_array *(*get_videoframe)(void *);
|
||||
godot_int (*get_audioframe)(void *, float *, int);
|
||||
godot_int (*get_channels)(const void *);
|
||||
godot_int (*get_mix_rate)(const void *);
|
||||
godot_vector2 (*get_texture_size)(const void *);
|
||||
} godot_videodecoder_interface_gdnative;
|
||||
|
||||
typedef int (*GDNativeAudioMixCallback)(void *, const float *, int);
|
||||
|
||||
// FileAccess wrappers for custom FFmpeg IO
|
||||
godot_int GDAPI godot_videodecoder_file_read(void *file_ptr, uint8_t *buf, int buf_size);
|
||||
int64_t GDAPI godot_videodecoder_file_seek(void *file_ptr, int64_t pos, int whence);
|
||||
void GDAPI godot_videodecoder_register_decoder(const godot_videodecoder_interface_gdnative *p_interface);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* GODOT_NATIVEVIDEODECODER_H */
|
||||