Compare commits

...

47 Commits

Author SHA1 Message Date
Rémi Verschelde
1049927a59 Sync API with upstream 3.x commit a1c0be731
a1c0be731d
2022-08-03 10:12:30 +02:00
Rémi Verschelde
e8d27f9452 Sync API with upstream 3.x commit 38b95cc2f
38b95cc2fd
2022-07-22 10:58:57 +02:00
Rémi Verschelde
e7f1ef2b05 Sync API with upstream 3.x commit 3f6dd3352
3f6dd33526
2022-07-18 14:45:04 +02:00
Rémi Verschelde
219afc98f7 Sync API with upstream 3.x commit 28d387f72
28d387f721
2022-06-28 21:50:14 +02:00
Rémi Verschelde
1d792d19f2 Sync API with upstream 3.x commit f33899d
f33899d5bf
2022-05-18 12:55:19 +02:00
Rémi Verschelde
0cd4170caa Sync API with upstream 3.x commit 21827a7
21827a75a8
2022-05-05 00:18:52 +02:00
Rémi Verschelde
dc52823013 Sync API with upstream 3.x commit 21c3048
21c3048397
2022-04-04 13:44:36 +02:00
Rémi Verschelde
26b49b9ac6 Update copyright year
(cherry picked from commit e00386d464)
2022-04-04 11:58:13 +02:00
Rémi Verschelde
137dc07d87 Sync API with upstream 3.x commit 17de611
17de61170b
2021-12-02 12:10:22 +01:00
Rémi Verschelde
d1596b939d Merge pull request #101 from akien-mga/3.x 2021-11-04 15:21:32 +01:00
Rémi Verschelde
f7e545a294 Update files to Godot 3.4-stable (3.x branch) 2021-11-04 15:14:35 +01:00
Rémi Verschelde
0f91de28a5 Merge pull request #96 from akien-mga/godot-3.4-beta4 2021-09-27 11:00:23 +02:00
Rémi Verschelde
400eca2c6b Update files to Godot 3.4-beta5 (3.x branch) 2021-09-27 11:00:13 +02:00
Rémi Verschelde
cd457bda8c Merge pull request #97 from akien-mga/readme-versioning-manual-updates 2021-09-27 10:58:24 +02:00
Rémi Verschelde
30298009f5 README: Cleanup, add Versioning and Update sections
This clarifies the correspondance between this repo's branches and the upstream
ones, as well as documents the update workflow used by maintainers to sync the
headers, which can be used by anyone for their own builds (or if they're
running cutting edge Godot snapshots before this repo gets updated).
2021-09-27 10:45:31 +02:00
Rémi Verschelde
68174528c9 Update files to Godot 3.3.3-stable
Some additions in api.json due to necessary bugfixes.
No removals.
2021-08-19 22:27:09 +02:00
Rémi Verschelde
134212db03 Revert "Add get_buffered_amount() to WebRTCDataChannel"
This reverts commit ec43f875e5.
2021-08-19 22:24:10 +02:00
Rémi Verschelde
2840b31344 Merge pull request #94 from dsnopek/webrtc-get-buffered-amount
Add get_buffered_amount() to WebRTCDataChannel (godot-headers)
2021-07-22 12:48:05 +02:00
David Snopek
ec43f875e5 Add get_buffered_amount() to WebRTCDataChannel 2021-07-21 10:36:40 -05:00
Rémi Verschelde
bd863357de Update files to Godot 3.3.1-stable and 3.3.2-stable
No change between the two.
2021-05-25 14:55:03 +02:00
Rémi Verschelde
a8ab6802c3 Merge pull request #92 from vonagam/gdnative_json_3_3
Update gdnative_api.json to Godot 3.3-stable
2021-04-30 09:46:58 +02:00
Dmitrii Maganov
bab3c758d5 Update gdnative_api.json to Godot 3.3-stable 2021-04-30 07:51:00 +03:00
George Marques
4bae481fc3 Update files to Godot 3.3-stable 2021-04-20 11:21:51 -03:00
George Marques
8a52bd0701 Merge pull request #71 from wg-romank/master
Update README.md example to comply with latest API
2021-03-01 08:55:44 -03:00
Rémi Verschelde
226e67be05 Merge pull request #86 from akien-mga/rename-and-copyright
Rename godot_headers to godot-headers
2021-02-26 10:48:24 +01:00
Rémi Verschelde
cec9b8ebb2 Update copyright statement to 'Godot Engine contributors'
And bump year to cover 2021.
2021-02-26 10:17:31 +01:00
Rémi Verschelde
38cfba79bb Rename godot_headers to godot-headers
And fix references to old GodotNativeTools org.
2021-02-26 10:15:49 +01:00
Rémi Verschelde
34401939f3 Merge pull request #76 from akien-mga/gdignore-images
Add .gdignore file to `images` folder
2020-07-28 13:16:37 +02:00
Rémi Verschelde
e03903ac70 Add .gdignore file to images folder
This prevents Godot from importing those images if `godot_headers` is
in the project folder (and especially if used as a submodule, where the
added `.import` files would mark the submodule as dirty).
2020-06-18 13:18:47 +02:00
Roman Kotelnikov
afd4b26c1b Update README.md example to comply with latest API 2020-04-18 18:09:33 +08:00
Rémi Verschelde
d93984d820 Merge pull request #69 from Calinou/optimize-images
Optimize images losslessly using `optipng -o6 -zm1-9 -strip all`
2020-04-10 11:19:50 +02:00
Hugo Locurcio
2f20022adf Optimize images losslessly using optipng -o6 -zm1-9 -strip all
This also removes an unused image.
2020-04-10 10:49:47 +02:00
Bastiaan Olij
ddf67cc7b8 Merge pull request #66 from BastiaanOlij/sync_godot_3_2_stable
Updated files to Godot 3.2-stable
2020-01-30 20:45:30 +11:00
Bastiaan Olij
4b73c5445e Updated files to Godot 3.2-stable 2020-01-30 20:43:33 +11:00
Thomas Herzog
57138143b5 Merge pull request #59 from Calinou/readme-remove-godot-3.0-question
Remove question about NativeScripts being in Godot 3.0
2019-11-29 16:05:38 +01:00
Hugo Locurcio
83c651ada4 Remove question about NativeScripts being in Godot 3.0
Godot 3.0 has been out for a while, no need to include it
in the FAQ anymore :)
2019-11-03 17:06:52 +01:00
Bastiaan Olij
4fa11f8c2a Merge pull request #50 from BastiaanOlij/godot_20190616
Sync with Godot master 20190616
2019-06-16 20:27:37 +10:00
Bastiaan Olij
3cde668e84 Sync with Godot master 20190616 2019-06-16 20:25:59 +10:00
Bastiaan Olij
efea911ad5 Merge pull request #49 from BastiaanOlij/godot_20190615
Sync with Godot master 20190615
2019-06-15 20:17:02 +10:00
Bastiaan Olij
6d4b930ba3 Sync with Godot master 20190615 2019-06-15 20:08:30 +10:00
Bastiaan Olij
fb3010491b Sync with Godot master 20190502 2019-05-02 22:26:04 +10:00
Bastiaan Olij
f1229c6077 Merge pull request #48 from BastiaanOlij/godot_20190430
Godot master 20190430
2019-04-30 21:37:21 +10:00
Bastiaan Olij
1d9327bed5 Godot master 20190430 2019-04-30 21:34:09 +10:00
Bastiaan Olij
f1e459d0f7 Merge pull request #46 from BastiaanOlij/sync_3.2
Update files from upstream
2019-04-30 19:30:38 +10:00
Bastiaan Olij
7f65d4d9f2 Update files from upstream 2019-04-30 19:30:11 +10:00
Bastiaan Olij
66f7af84ce Merge pull request #43 from BastiaanOlij/fix_empty_types
Fixed empty types
2019-04-07 16:54:16 +10:00
Bastiaan Olij
ad61229a5a Fixed empty types 2019-04-07 17:52:02 +10:00
38 changed files with 207426 additions and 164235 deletions

View File

@@ -1,6 +1,6 @@
# MIT License
Copyright (c) 2017-2019 GodotNativeTools
Copyright (c) 2017-2022 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

190
README.md
View File

@@ -1,30 +1,58 @@
# godot_headers
#### `GDNative / NativeScript`
# godot-headers
> `GDNative` enables the use of dynamically linked libraries inside of [**Godot**](https://github.com/godotengine/godot).
This repository contains C headers for
[**Godot Engine**](https://github.com/godotengine/godot)'s *GDNative* API,
which can be used to write *NativeScripts*.
> `GDNative` enables the use of dynamically linked libraries inside of
> [**Godot**](https://github.com/godotengine/godot).
> `NativeScript` uses GDNative to implement scripts backed by native code.
- [**Getting Started**](#getting-started)
- [**FAQ**](#faq)
- [**Versioning**](#versioning)
- [**Getting Started**](#getting-started)
- [**FAQ**](#faq)
- [**Updating Headers**](#updating-headers)
## Versioning
This repositories follows the same branch versioning as the main [Godot Engine
repository](https://github.com/godotengine/godot):
- `master` tracks the current development branch. As this is a moving target,
the headers in this repository may not always be fully in sync with upstream.
See [**Updating Headers**](#updating-headers) if you need to bring
them up to date.
- `3.x` tracks the development of the next 3.x minor release. Like `master`, it
might not always be fully up-to-date with upstream.
- Other versioned branches (e.g. `3.3`, `3.2`) track the latest stable release
in the corresponding branch.
Stable releases are also tagged on this repository:
[**Tags**](https://github.com/godotengine/godot-headers/tags).
**For any project built against a stable release of Godot, we recommend using
this repository as a Git submodule, checking out the specific tag matching your
Godot version.**
## Getting Started
| **Build latest version of Godot** | [**GitHub**](https://github.com/godotengine/godot) | [**Docs**](https://godot.readthedocs.io/en/latest/development/compiling/index.html) |
| **Build latest version of Godot** | [**GitHub**](https://github.com/godotengine/godot) | [**Docs**](https://docs.godotengine.org/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/GodotNativeTools/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.
Note that the master branch of this repository contains the headers for the
latest Godot `master` branch. See [**Versioning**](#versioning) for details.
You can use `-b <version>` to the above Git clone command to retrieve a specific
branch or tag (e.g. `-b 3.x` or `-b godot-3.3.3-stable`).
```bash
[SimpleLibrary]
@@ -34,7 +62,7 @@ git clone https://github.com/GodotNativeTools/godot_headers
### Create Script
Create `test.c` under `SimpleLibrary/src/`
Create `test.c` under `SimpleLibrary/src/`.
<details>
@@ -45,22 +73,22 @@ Create `test.c` under `SimpleLibrary/src/`
#include <stdio.h>
void *test_constructor(godot_object *obj, void *method_data) {
printf("test.constructor()\n");
return 0;
printf("test.constructor()\n");
return 0;
}
void test_destructor(godot_object *obj, void *method_data, void *user_data) {
printf("test.destructor()\n");
printf("test.destructor()\n");
}
/** func _ready() **/
godot_variant test_ready(godot_object *obj, void *method_data, void *user_data, int num_args, godot_variant **args) {
godot_variant ret;
godot_variant_new_nil(&ret);
godot_variant ret;
godot_variant_new_nil(&ret);
printf("_ready()\n");
printf("_ready()\n");
return ret;
return ret;
}
/** Library entry point **/
@@ -77,64 +105,64 @@ void GDN_EXPORT godot_nativescript_init(void *desc) {
godot_instance_create_func create_func = {
.create_func = &test_constructor,
.method_data = 0,
.free_func = 0
};
.method_data = 0,
.free_func = 0
};
godot_instance_destroy_func destroy_func = {
.destroy_func = &test_destructor,
.method_data = 0,
.free_func = 0
};
godot_instance_destroy_func destroy_func = {
.destroy_func = &test_destructor,
.method_data = 0,
.free_func = 0
};
godot_nativescript_register_class(desc, "SimpleClass", "Node", create_func, destroy_func);
godot_nativescript_register_class(desc, "SimpleClass", "Node", create_func, destroy_func);
{
godot_instance_method method = {
.method = &test_ready,
.method_data = 0,
.free_func = 0
};
{
godot_instance_method method = {
.method = &test_ready,
.method_data = 0,
.free_func = 0
};
godot_method_attributes attr = {
.rpc_type = GODOT_METHOD_RPC_MODE_DISABLED
};
godot_method_attributes attr = {
.rpc_type = GODOT_METHOD_RPC_MODE_DISABLED
};
godot_nativescript_register_method(desc, "SimpleClass", "_ready", attr, method);
}
godot_nativescript_register_method(desc, "SimpleClass", "_ready", attr, method);
}
}
godot_variant GDN_EXPORT some_test_procedure(void *data, godot_array *args) {
godot_variant ret;
godot_variant_new_int(&ret, 42);
godot_variant ret;
godot_variant_new_int(&ret, 42);
godot_string s;
godot_string_new_unicode_data(&s, L"Hello World", 11);
godot_print(&s);
godot_string s;
godot_string_new_with_wide_string(&s, L"Hello World", 11);
godot_print(&s);
godot_string_destroy(&s);
godot_string_destroy(&s);
return ret;
return ret;
}
```
</details>
`Expand details for example code.`
Expand *Details* for example code.
### Compile Library
On Linux:
```bash
clang -g -fPIC -std=c99 -c src/test.c -I/path/to/godot/headers/ -o src/test.os
clang -g -fPIC -c src/test.c -I/path/to/godot/headers/ -o src/test.os
clang -g -shared src/test.os -o lib/test.so
```
On MacOS:
```bash
clang -g -fPIC -std=c99 -c src/test.c -I/path/to/godot/headers/ -o src/test.os
clang -g -fPIC -c src/test.c -I/path/to/godot/headers/ -o src/test.os
clang -g -shared -framework Cocoa -Wl,-undefined,dynamic_lookup src/test.os -o lib/test.dylib
```
@@ -145,9 +173,9 @@ clang -g -shared -framework Cocoa -Wl,-undefined,dynamic_lookup src/test.os -o l
The GDNativeLibrary resource contains links to the libraries for each platform.
1. Create a new resource in memory and edit it.
1. Select `Resource > GDNativeLibrary`.
1. Set the library file for your platform inside the inspector.
1. Save the edited resource as a `.tres`
2. Select `Resource > GDNativeLibrary`.
3. Set the library file for your platform inside the inspector.
4. Save the edited resource as a `.tres`
<details>
@@ -161,7 +189,7 @@ The GDNativeLibrary resource contains links to the libraries for each platform.
</details>
`Expand details for screenshots.`
Expand *Details* for screenshots.
### Using GDNativeLibrary in GDScript
@@ -169,25 +197,25 @@ The GDNativeLibrary resource contains links to the libraries for each platform.
extends Node
func _ready():
var gdn = GDNative.new()
gdn.library = load("res://lib/libtest.tres")
var gdn = GDNative.new()
gdn.library = load("res://lib/libtest.tres")
gdn.initialize()
gdn.initialize()
var res = gdn.call_native("standard_varcall", "some_test_procedure", [])
var res = gdn.call_native("standard_varcall", "some_test_procedure", [])
print("result: ", res)
print("result: ", res)
gdn.terminate()
gdn.terminate()
```
### Attaching GDNativeLibrary to a Node
1. Attach a new script to a node.
1. In the pop-up dialog, choose NativeScript in the `Language` menu.
1. Enable built-in script, or create a `.gdn` file, which only contains a name.
1. Specify the `Class Name`.
1. Press `Create`.
2. In the pop-up dialog, choose NativeScript in the `Language` menu.
3. Enable built-in script, or create a `.gdn` file, which only contains a name.
4. Specify the `Class Name`.
5. Press `Create`.
The GDNativeLibrary field in a NativeScript is empty by default.
@@ -200,7 +228,7 @@ The GDNativeLibrary field in a NativeScript is empty by default.
</details>
`Expand details for screenshots.`
Expand *Details* for screenshots.
## FAQ
@@ -214,8 +242,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?**
@@ -223,10 +251,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! ✨
@@ -234,5 +258,25 @@ You can! ✨
**What is the reason behind the name "GDNative"?**
GDNative was originally named "cscript" because it exposes a C API, but people
mistook a relation to C#, which is sometimes abbreviated as "cs". Then named "DLScript", but that brought up some confusion, so we settled with
GDNative. 📖
mistook a relation to C#, which is sometimes abbreviated as "cs". Then named
"DLScript", but that brought up some confusion, so we settled with GDNative. 📖
## Updating Headers
See [**Versioning**](#versioning) for details on the Godot versions tracked by
each branch of this repository.
If the relevant branch is not up-to-date for your needs, or if you want to sync
the headers with your own modified version of Godot, here is the update
procedure used to sync this repository with upstream releases:
- Compile [Godot Engine](https://github.com/godotengine/godot) at the specific
version/commit which you are using.
- Use the compiled executable to generate the `api.json` file with:
`godot --gdnative-generate-json-api api.json`
- Copy the file `modules/gdnative/gdnative_api.json` to this repository.
- Copy the files and folders from `modules/gdnative/include` to this repository,
overwriting existing content. (To be sure to be in sync, you can delete the
folders of this repository first, then copy the upstream folders in place.)
Make sure that you compiled the correct Godot version so that the generated
`gdnative_api_struct.gen.h` is up-to-date.

View File

@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
/* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2022 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 */
@@ -28,8 +28,8 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#ifndef GODOT_ANDROID_GDN_H
#define GODOT_ANDROID_GDN_H
#ifndef GODOT_ANDROID_H
#define GODOT_ANDROID_H
#include <gdnative/gdnative.h>
@@ -46,9 +46,11 @@ extern "C" {
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 */
#endif // GODOT_ANDROID_H

370505
api.json

File diff suppressed because it is too large Load Diff

View File

@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
/* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2022 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 */
@@ -28,8 +28,8 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#ifndef GODOT_NATIVEARVR_H
#define GODOT_NATIVEARVR_H
#ifndef GODOT_ARVR_H
#define GODOT_ARVR_H
#include <gdnative/gdnative.h>
@@ -42,7 +42,7 @@ extern "C" {
// Use these to populate version in your plugin
#define GODOTVR_API_MAJOR 1
#define GODOTVR_API_MINOR 0
#define GODOTVR_API_MINOR 2
typedef struct {
godot_gdnative_api_version version; /* version of our API */
@@ -61,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);
@@ -81,8 +87,12 @@ 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
#endif /* !GODOT_NATIVEARVR_H */
#endif // GODOT_ARVR_H

View File

@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
/* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2022 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 */
@@ -28,8 +28,8 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#ifndef GODOT_AABB_H
#define GODOT_AABB_H
#ifndef GDNATIVE_AABB_H
#define GDNATIVE_AABB_H
#ifdef __cplusplus
extern "C" {
@@ -115,4 +115,4 @@ godot_bool GDAPI godot_aabb_operator_equal(const godot_aabb *p_self, const godot
}
#endif
#endif // GODOT_AABB_H
#endif // GDNATIVE_AABB_H

View File

@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
/* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2022 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 */
@@ -28,8 +28,8 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#ifndef GODOT_ARRAY_H
#define GODOT_ARRAY_H
#ifndef GDNATIVE_ARRAY_H
#define GDNATIVE_ARRAY_H
#ifdef __cplusplus
extern "C" {
@@ -132,6 +132,8 @@ 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);
@@ -142,4 +144,4 @@ void GDAPI godot_array_shuffle(godot_array *p_self);
}
#endif
#endif // GODOT_ARRAY_H
#endif // GDNATIVE_ARRAY_H

View File

@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
/* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2022 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 */
@@ -28,8 +28,8 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#ifndef GODOT_BASIS_H
#define GODOT_BASIS_H
#ifndef GDNATIVE_BASIS_H
#define GDNATIVE_BASIS_H
#ifdef __cplusplus
extern "C" {
@@ -133,4 +133,4 @@ godot_basis GDAPI godot_basis_slerp(const godot_basis *p_self, const godot_basis
}
#endif
#endif // GODOT_BASIS_H
#endif // GDNATIVE_BASIS_H

View File

@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
/* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2022 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 */
@@ -28,8 +28,8 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#ifndef GODOT_COLOR_H
#define GODOT_COLOR_H
#ifndef GDNATIVE_COLOR_H
#define GDNATIVE_COLOR_H
#ifdef __cplusplus
extern "C" {
@@ -117,4 +117,4 @@ godot_bool GDAPI godot_color_operator_less(const godot_color *p_self, const godo
}
#endif
#endif // GODOT_COLOR_H
#endif // GDNATIVE_COLOR_H

View File

@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
/* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2022 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 */
@@ -28,8 +28,8 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#ifndef GODOT_DICTIONARY_H
#define GODOT_DICTIONARY_H
#ifndef GDNATIVE_DICTIONARY_H
#define GDNATIVE_DICTIONARY_H
#ifdef __cplusplus
extern "C" {
@@ -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);
@@ -100,8 +102,12 @@ godot_bool GDAPI godot_dictionary_erase_with_return(godot_dictionary *p_self, co
godot_variant GDAPI godot_dictionary_get_with_default(const godot_dictionary *p_self, const godot_variant *p_key, const godot_variant *p_default);
// GDNative core 1.3
void GDAPI godot_dictionary_merge(godot_dictionary *p_self, const godot_dictionary *p_dictionary, const godot_bool p_overwrite);
#ifdef __cplusplus
}
#endif
#endif // GODOT_DICTIONARY_H
#endif // GDNATIVE_DICTIONARY_H

View File

@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
/* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2022 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 */
@@ -28,8 +28,8 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#ifndef GODOT_GDNATIVE_H
#define GODOT_GDNATIVE_H
#ifndef GDNATIVE_GDNATIVE_H
#define GDNATIVE_GDNATIVE_H
#ifdef __cplusplus
extern "C" {
@@ -53,11 +53,15 @@ extern "C" {
#endif
// This is for libraries *using* the header, NOT GODOT EXPOSING STUFF!!
#ifdef _WIN32
#if !defined(GDN_EXPORT)
#if defined(_WIN32)
#define GDN_EXPORT __declspec(dllexport)
#elif defined(__GNUC__)
#define GDN_EXPORT __attribute__((visibility("default")))
#else
#define GDN_EXPORT
#endif
#endif
#include <stdbool.h>
#include <stdint.h>
@@ -67,7 +71,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 +101,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,
@@ -286,8 +290,15 @@ void GDAPI godot_print(const godot_string *p_message);
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
#endif // GODOT_C_H
#endif // GDNATIVE_GDNATIVE_H

View File

@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
/* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2022 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 */
@@ -28,8 +28,8 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#ifndef GODOT_NODE_PATH_H
#define GODOT_NODE_PATH_H
#ifndef GDNATIVE_NODE_PATH_H
#define GDNATIVE_NODE_PATH_H
#ifdef __cplusplus
extern "C" {
@@ -86,4 +86,4 @@ godot_node_path godot_node_path_get_as_property_path(const godot_node_path *p_se
}
#endif
#endif // GODOT_NODE_PATH_H
#endif // GDNATIVE_NODE_PATH_H

View File

@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
/* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2022 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 */
@@ -28,8 +28,8 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#ifndef GODOT_PLANE_H
#define GODOT_PLANE_H
#ifndef GDNATIVE_PLANE_H
#define GDNATIVE_PLANE_H
#ifdef __cplusplus
extern "C" {
@@ -100,4 +100,4 @@ void GDAPI godot_plane_set_d(godot_plane *p_self, const godot_real p_d);
}
#endif
#endif // GODOT_PLANE_H
#endif // GDNATIVE_PLANE_H

View File

@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
/* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2022 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 */
@@ -28,8 +28,8 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#ifndef GODOT_POOL_ARRAYS_H
#define GODOT_POOL_ARRAYS_H
#ifndef GDNATIVE_POOL_ARRAYS_H
#define GDNATIVE_POOL_ARRAYS_H
#ifdef __cplusplus
extern "C" {
@@ -182,6 +182,8 @@ void GDAPI godot_pool_byte_array_remove(godot_pool_byte_array *p_self, const god
void GDAPI godot_pool_byte_array_resize(godot_pool_byte_array *p_self, const godot_int p_size);
void GDAPI godot_pool_byte_array_sort(godot_pool_byte_array *p_self);
godot_pool_byte_array_read_access GDAPI *godot_pool_byte_array_read(const godot_pool_byte_array *p_self);
godot_pool_byte_array_write_access GDAPI *godot_pool_byte_array_write(godot_pool_byte_array *p_self);
@@ -191,6 +193,10 @@ 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);
godot_bool GDAPI godot_pool_byte_array_has(const godot_pool_byte_array *p_self, const uint8_t p_data);
void GDAPI godot_pool_byte_array_destroy(godot_pool_byte_array *p_self);
// int
@@ -213,6 +219,8 @@ void GDAPI godot_pool_int_array_remove(godot_pool_int_array *p_self, const godot
void GDAPI godot_pool_int_array_resize(godot_pool_int_array *p_self, const godot_int p_size);
void GDAPI godot_pool_int_array_sort(godot_pool_int_array *p_self);
godot_pool_int_array_read_access GDAPI *godot_pool_int_array_read(const godot_pool_int_array *p_self);
godot_pool_int_array_write_access GDAPI *godot_pool_int_array_write(godot_pool_int_array *p_self);
@@ -222,6 +230,10 @@ 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);
godot_bool GDAPI godot_pool_int_array_has(const godot_pool_int_array *p_self, const godot_int p_data);
void GDAPI godot_pool_int_array_destroy(godot_pool_int_array *p_self);
// real
@@ -244,6 +256,8 @@ void GDAPI godot_pool_real_array_remove(godot_pool_real_array *p_self, const god
void GDAPI godot_pool_real_array_resize(godot_pool_real_array *p_self, const godot_int p_size);
void GDAPI godot_pool_real_array_sort(godot_pool_real_array *p_self);
godot_pool_real_array_read_access GDAPI *godot_pool_real_array_read(const godot_pool_real_array *p_self);
godot_pool_real_array_write_access GDAPI *godot_pool_real_array_write(godot_pool_real_array *p_self);
@@ -253,6 +267,10 @@ 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);
godot_bool GDAPI godot_pool_real_array_has(const godot_pool_real_array *p_self, const godot_real p_data);
void GDAPI godot_pool_real_array_destroy(godot_pool_real_array *p_self);
// string
@@ -269,12 +287,16 @@ godot_error GDAPI godot_pool_string_array_insert(godot_pool_string_array *p_self
void GDAPI godot_pool_string_array_invert(godot_pool_string_array *p_self);
godot_string GDAPI godot_pool_string_array_join(const godot_pool_string_array *p_self, const godot_string *p_delimiter);
void GDAPI godot_pool_string_array_push_back(godot_pool_string_array *p_self, const godot_string *p_data);
void GDAPI godot_pool_string_array_remove(godot_pool_string_array *p_self, const godot_int p_idx);
void GDAPI godot_pool_string_array_resize(godot_pool_string_array *p_self, const godot_int p_size);
void GDAPI godot_pool_string_array_sort(godot_pool_string_array *p_self);
godot_pool_string_array_read_access GDAPI *godot_pool_string_array_read(const godot_pool_string_array *p_self);
godot_pool_string_array_write_access GDAPI *godot_pool_string_array_write(godot_pool_string_array *p_self);
@@ -284,6 +306,10 @@ 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);
godot_bool GDAPI godot_pool_string_array_has(const godot_pool_string_array *p_self, const godot_string *p_data);
void GDAPI godot_pool_string_array_destroy(godot_pool_string_array *p_self);
// vector2
@@ -306,6 +332,8 @@ void GDAPI godot_pool_vector2_array_remove(godot_pool_vector2_array *p_self, con
void GDAPI godot_pool_vector2_array_resize(godot_pool_vector2_array *p_self, const godot_int p_size);
void GDAPI godot_pool_vector2_array_sort(godot_pool_vector2_array *p_self);
godot_pool_vector2_array_read_access GDAPI *godot_pool_vector2_array_read(const godot_pool_vector2_array *p_self);
godot_pool_vector2_array_write_access GDAPI *godot_pool_vector2_array_write(godot_pool_vector2_array *p_self);
@@ -315,6 +343,10 @@ 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);
godot_bool GDAPI godot_pool_vector2_array_has(const godot_pool_vector2_array *p_self, const godot_vector2 *p_data);
void GDAPI godot_pool_vector2_array_destroy(godot_pool_vector2_array *p_self);
// vector3
@@ -337,6 +369,8 @@ void GDAPI godot_pool_vector3_array_remove(godot_pool_vector3_array *p_self, con
void GDAPI godot_pool_vector3_array_resize(godot_pool_vector3_array *p_self, const godot_int p_size);
void GDAPI godot_pool_vector3_array_sort(godot_pool_vector3_array *p_self);
godot_pool_vector3_array_read_access GDAPI *godot_pool_vector3_array_read(const godot_pool_vector3_array *p_self);
godot_pool_vector3_array_write_access GDAPI *godot_pool_vector3_array_write(godot_pool_vector3_array *p_self);
@@ -346,6 +380,10 @@ 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);
godot_bool GDAPI godot_pool_vector3_array_has(const godot_pool_vector3_array *p_self, const godot_vector3 *p_data);
void GDAPI godot_pool_vector3_array_destroy(godot_pool_vector3_array *p_self);
// color
@@ -368,6 +406,8 @@ void GDAPI godot_pool_color_array_remove(godot_pool_color_array *p_self, const g
void GDAPI godot_pool_color_array_resize(godot_pool_color_array *p_self, const godot_int p_size);
void GDAPI godot_pool_color_array_sort(godot_pool_color_array *p_self);
godot_pool_color_array_read_access GDAPI *godot_pool_color_array_read(const godot_pool_color_array *p_self);
godot_pool_color_array_write_access GDAPI *godot_pool_color_array_write(godot_pool_color_array *p_self);
@@ -377,6 +417,10 @@ 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);
godot_bool GDAPI godot_pool_color_array_has(const godot_pool_color_array *p_self, const godot_color *p_data);
void GDAPI godot_pool_color_array_destroy(godot_pool_color_array *p_self);
//
@@ -461,4 +505,4 @@ void GDAPI godot_pool_color_array_write_access_destroy(godot_pool_color_array_wr
}
#endif
#endif // GODOT_POOL_ARRAYS_H
#endif // GDNATIVE_POOL_ARRAYS_H

View File

@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
/* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2022 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 */
@@ -28,8 +28,8 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#ifndef GODOT_QUAT_H
#define GODOT_QUAT_H
#ifndef GDNATIVE_QUAT_H
#define GDNATIVE_QUAT_H
#ifdef __cplusplus
extern "C" {
@@ -115,4 +115,4 @@ void GDAPI godot_quat_set_axis_angle(godot_quat *p_self, const godot_vector3 *p_
}
#endif
#endif // GODOT_QUAT_H
#endif // GDNATIVE_QUAT_H

View File

@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
/* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2022 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 */
@@ -28,8 +28,8 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#ifndef GODOT_RECT2_H
#define GODOT_RECT2_H
#ifndef GDNATIVE_RECT2_H
#define GDNATIVE_RECT2_H
#ifdef __cplusplus
extern "C" {
@@ -99,4 +99,4 @@ void GDAPI godot_rect2_set_size(godot_rect2 *p_self, const godot_vector2 *p_size
}
#endif
#endif // GODOT_RECT2_H
#endif // GDNATIVE_RECT2_H

View File

@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
/* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2022 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 */
@@ -28,8 +28,8 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#ifndef GODOT_RID_H
#define GODOT_RID_H
#ifndef GDNATIVE_RID_H
#define GDNATIVE_RID_H
#ifdef __cplusplus
extern "C" {
@@ -71,4 +71,4 @@ godot_bool GDAPI godot_rid_operator_less(const godot_rid *p_self, const godot_ri
}
#endif
#endif // GODOT_RID_H
#endif // GDNATIVE_RID_H

View File

@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
/* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2022 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 */
@@ -28,8 +28,8 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#ifndef GODOT_STRING_H
#define GODOT_STRING_H
#ifndef GDNATIVE_STRING_H
#define GDNATIVE_STRING_H
#ifdef __cplusplus
extern "C" {
@@ -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);
@@ -127,6 +129,8 @@ godot_string GDAPI godot_string_md5(const uint8_t *p_md5);
godot_string GDAPI godot_string_num(double p_num);
godot_string GDAPI godot_string_num_int64(int64_t p_num, godot_int p_base);
godot_string GDAPI godot_string_num_int64_capitalized(int64_t p_num, godot_int p_base, godot_bool p_capitalize_hex);
godot_string GDAPI godot_string_num_uint64(uint64_t p_num, godot_int p_base);
godot_string GDAPI godot_string_num_uint64_capitalized(uint64_t p_num, godot_int p_base, godot_bool p_capitalize_hex);
godot_string GDAPI godot_string_num_real(double p_num);
godot_string GDAPI godot_string_num_scientific(double p_num);
godot_string GDAPI godot_string_num_with_decimals(double p_num, godot_int p_decimals);
@@ -177,6 +181,8 @@ godot_array GDAPI godot_string_split_ints_mk(const godot_string *p_self, const g
godot_array GDAPI godot_string_split_ints_mk_allows_empty(const godot_string *p_self, const godot_array *p_splitters);
godot_array GDAPI godot_string_split_spaces(const godot_string *p_self);
godot_string GDAPI godot_string_join(const godot_string *p_self, const godot_array *p_parts);
wchar_t GDAPI godot_string_char_lowercase(wchar_t p_char);
wchar_t GDAPI godot_string_char_uppercase(wchar_t p_char);
godot_string GDAPI godot_string_to_lower(const godot_string *p_self);
@@ -217,7 +223,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);
@@ -258,4 +264,4 @@ void GDAPI godot_string_destroy(godot_string *p_self);
}
#endif
#endif // GODOT_STRING_H
#endif // GDNATIVE_STRING_H

View File

@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
/* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2022 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 */
@@ -28,8 +28,8 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#ifndef GODOT_STRING_NAME_H
#define GODOT_STRING_NAME_H
#ifndef GDNATIVE_STRING_NAME_H
#define GDNATIVE_STRING_NAME_H
#ifdef __cplusplus
extern "C" {
@@ -75,4 +75,4 @@ void GDAPI godot_string_name_destroy(godot_string_name *p_self);
}
#endif
#endif // GODOT_STRING_NAME_H
#endif // GDNATIVE_STRING_NAME_H

View File

@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
/* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2022 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 */
@@ -28,8 +28,8 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#ifndef GODOT_TRANSFORM_H
#define GODOT_TRANSFORM_H
#ifndef GDNATIVE_TRANSFORM_H
#define GDNATIVE_TRANSFORM_H
#ifdef __cplusplus
extern "C" {
@@ -108,4 +108,4 @@ godot_aabb GDAPI godot_transform_xform_inv_aabb(const godot_transform *p_self, c
}
#endif
#endif // GODOT_TRANSFORM_H
#endif // GDNATIVE_TRANSFORM_H

View File

@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
/* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2022 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 */
@@ -28,8 +28,8 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#ifndef GODOT_TRANSFORM2D_H
#define GODOT_TRANSFORM2D_H
#ifndef GDNATIVE_TRANSFORM2D_H
#define GDNATIVE_TRANSFORM2D_H
#ifdef __cplusplus
extern "C" {
@@ -106,4 +106,4 @@ godot_rect2 GDAPI godot_transform2d_xform_inv_rect2(const godot_transform2d *p_s
}
#endif
#endif // GODOT_TRANSFORM2D_H
#endif // GDNATIVE_TRANSFORM2D_H

View File

@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
/* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2022 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 */
@@ -28,8 +28,8 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#ifndef GODOT_VARIANT_H
#define GODOT_VARIANT_H
#ifndef GDNATIVE_VARIANT_H
#define GDNATIVE_VARIANT_H
#ifdef __cplusplus
extern "C" {
@@ -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
@@ -252,4 +252,4 @@ void GDAPI godot_variant_evaluate(godot_variant_operator p_op, const godot_varia
}
#endif
#endif
#endif // GDNATIVE_VARIANT_H

View File

@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
/* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2022 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 */
@@ -28,8 +28,8 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#ifndef GODOT_VECTOR2_H
#define GODOT_VECTOR2_H
#ifndef GDNATIVE_VECTOR2_H
#define GDNATIVE_VECTOR2_H
#ifdef __cplusplus
extern "C" {
@@ -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);
@@ -135,4 +139,4 @@ godot_real GDAPI godot_vector2_get_y(const godot_vector2 *p_self);
}
#endif
#endif // GODOT_VECTOR2_H
#endif // GDNATIVE_VECTOR2_H

View File

@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
/* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2022 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 */
@@ -28,8 +28,8 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#ifndef GODOT_VECTOR3_H
#define GODOT_VECTOR3_H
#ifndef GDNATIVE_VECTOR3_H
#define GDNATIVE_VECTOR3_H
#ifdef __cplusplus
extern "C" {
@@ -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);
@@ -142,4 +146,4 @@ godot_real GDAPI godot_vector3_get_axis(const godot_vector3 *p_self, const godot
}
#endif
#endif // GODOT_VECTOR3_H
#endif // GDNATIVE_VECTOR3_H

View File

@@ -11,7 +11,316 @@
"major": 1,
"minor": 1
},
"next": null,
"next": {
"type": "CORE",
"version": {
"major": 1,
"minor": 2
},
"next": {
"type": "CORE",
"version": {
"major": 1,
"minor": 3
},
"next": null,
"api": [
{
"name": "godot_dictionary_merge",
"return_type": "void",
"arguments": [
["godot_dictionary *", "p_self"],
["const godot_dictionary *", "p_dictionary"],
["const godot_bool", "p_overwrite"]
]
},
{
"name": "godot_pool_byte_array_has",
"return_type": "godot_bool",
"arguments": [
["const godot_pool_byte_array *", "p_self"],
["const uint8_t", "p_data"]
]
},
{
"name": "godot_pool_byte_array_sort",
"return_type": "void",
"arguments": [
["godot_pool_byte_array *", "p_self"]
]
},
{
"name": "godot_pool_int_array_has",
"return_type": "godot_bool",
"arguments": [
["const godot_pool_int_array *", "p_self"],
["const godot_int", "p_data"]
]
},
{
"name": "godot_pool_int_array_sort",
"return_type": "void",
"arguments": [
["godot_pool_int_array *", "p_self"]
]
},
{
"name": "godot_pool_real_array_has",
"return_type": "godot_bool",
"arguments": [
["const godot_pool_real_array *", "p_self"],
["const godot_real", "p_data"]
]
},
{
"name": "godot_pool_real_array_sort",
"return_type": "void",
"arguments": [
["godot_pool_real_array *", "p_self"]
]
},
{
"name": "godot_pool_string_array_has",
"return_type": "godot_bool",
"arguments": [
["const godot_pool_string_array *", "p_self"],
["const godot_string *", "p_data"]
]
},
{
"name": "godot_pool_string_array_join",
"return_type": "godot_string",
"arguments": [
["const godot_pool_string_array *", "p_self"],
["const godot_string *", "p_delimiter"]
]
},
{
"name": "godot_pool_string_array_sort",
"return_type": "void",
"arguments": [
["godot_pool_string_array *", "p_self"]
]
},
{
"name": "godot_pool_vector2_array_has",
"return_type": "godot_bool",
"arguments": [
["const godot_pool_vector2_array *", "p_self"],
["const godot_vector2 *", "p_data"]
]
},
{
"name": "godot_pool_vector2_array_sort",
"return_type": "void",
"arguments": [
["godot_pool_vector2_array *", "p_self"]
]
},
{
"name": "godot_pool_vector3_array_has",
"return_type": "godot_bool",
"arguments": [
["const godot_pool_vector3_array *", "p_self"],
["const godot_vector3 *", "p_data"]
]
},
{
"name": "godot_pool_vector3_array_sort",
"return_type": "void",
"arguments": [
["godot_pool_vector3_array *", "p_self"]
]
},
{
"name": "godot_pool_color_array_has",
"return_type": "godot_bool",
"arguments": [
["const godot_pool_color_array *", "p_self"],
["const godot_color *", "p_data"]
]
},
{
"name": "godot_pool_color_array_sort",
"return_type": "void",
"arguments": [
["godot_pool_color_array *", "p_self"]
]
},
{
"name": "godot_string_join",
"return_type": "godot_string",
"arguments": [
["const godot_string *", "p_self"],
["const godot_array *", "p_parts"]
]
},
{
"name": "godot_string_num_uint64",
"return_type": "godot_string",
"arguments": [
["uint64_t", "p_num"],
["godot_int", "p_base"]
]
},
{
"name": "godot_string_num_uint64_capitalized",
"return_type": "godot_string",
"arguments": [
["uint64_t", "p_num"],
["godot_int", "p_base"],
["godot_bool", "p_capitalize_hex"]
]
}
]
},
"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",
@@ -5694,7 +6003,7 @@
"name": "godot_string_humanize_size",
"return_type": "godot_string",
"arguments": [
["size_t", "p_size"]
["uint64_t", "p_size"]
]
},
{
@@ -6269,7 +6578,7 @@
"type": "ANDROID",
"version": {
"major": 1,
"minor": 0
"minor": 1
},
"next": null,
"api": [
@@ -6284,6 +6593,18 @@
"return_type": "jobject",
"arguments": [
]
},
{
"name": "godot_android_get_surface",
"return_type": "jobject",
"arguments": [
]
},
{
"name": "godot_android_is_activity_resumed",
"return_type": "bool",
"arguments": [
]
}
]
},
@@ -6294,7 +6615,32 @@
"major": 1,
"minor": 1
},
"next": null,
"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"]
]
}
]
},
"api": [
{
"name": "godot_arvr_register_interface",
@@ -6427,30 +6773,62 @@
"major": 3,
"minor": 1
},
"next": null,
"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"]
["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"]
["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"]
["godot_object *", "p_obj"],
["const godot_net_multiplayer_peer *", "p_interface"]
]
}
]

View File

@@ -101,8 +101,18 @@ typedef struct godot_gdnative_ext_android_api_struct {
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;
@@ -129,6 +139,15 @@ typedef struct godot_gdnative_ext_videodecoder_api_struct {
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;
@@ -138,6 +157,55 @@ typedef struct godot_gdnative_ext_net_api_struct {
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_3_api_struct {
unsigned int type;
godot_gdnative_api_version version;
const godot_gdnative_api_struct *next;
void (*godot_dictionary_merge)(godot_dictionary *p_self, const godot_dictionary *p_dictionary, const godot_bool p_overwrite);
godot_bool (*godot_pool_byte_array_has)(const godot_pool_byte_array *p_self, const uint8_t p_data);
void (*godot_pool_byte_array_sort)(godot_pool_byte_array *p_self);
godot_bool (*godot_pool_int_array_has)(const godot_pool_int_array *p_self, const godot_int p_data);
void (*godot_pool_int_array_sort)(godot_pool_int_array *p_self);
godot_bool (*godot_pool_real_array_has)(const godot_pool_real_array *p_self, const godot_real p_data);
void (*godot_pool_real_array_sort)(godot_pool_real_array *p_self);
godot_bool (*godot_pool_string_array_has)(const godot_pool_string_array *p_self, const godot_string *p_data);
godot_string (*godot_pool_string_array_join)(const godot_pool_string_array *p_self, const godot_string *p_delimiter);
void (*godot_pool_string_array_sort)(godot_pool_string_array *p_self);
godot_bool (*godot_pool_vector2_array_has)(const godot_pool_vector2_array *p_self, const godot_vector2 *p_data);
void (*godot_pool_vector2_array_sort)(godot_pool_vector2_array *p_self);
godot_bool (*godot_pool_vector3_array_has)(const godot_pool_vector3_array *p_self, const godot_vector3 *p_data);
void (*godot_pool_vector3_array_sort)(godot_pool_vector3_array *p_self);
godot_bool (*godot_pool_color_array_has)(const godot_pool_color_array *p_self, const godot_color *p_data);
void (*godot_pool_color_array_sort)(godot_pool_color_array *p_self);
godot_string (*godot_string_join)(const godot_string *p_self, const godot_array *p_parts);
godot_string (*godot_string_num_uint64)(uint64_t p_num, godot_int p_base);
godot_string (*godot_string_num_uint64_capitalized)(uint64_t p_num, godot_int p_base, godot_bool p_capitalize_hex);
} godot_gdnative_core_1_3_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;
@@ -881,7 +949,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
View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 9.5 KiB

View File

@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
/* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2022 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 */
@@ -56,17 +56,19 @@ 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,
GODOT_PROPERTY_HINT_LAYERS_2D_PHYSICS,
GODOT_PROPERTY_HINT_LAYERS_2D_NAVIGATION,
GODOT_PROPERTY_HINT_LAYERS_3D_RENDER,
GODOT_PROPERTY_HINT_LAYERS_3D_PHYSICS,
GODOT_PROPERTY_HINT_LAYERS_3D_NAVIGATION,
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
@@ -98,8 +100,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,
@@ -145,7 +147,7 @@ typedef struct {
} godot_method_attributes;
typedef struct {
// instance pointer, method data, user data, num args, args - return result as varaint
// instance pointer, method data, user data, num args, args - return result as variant
GDCALLINGCONV godot_variant (*method)(godot_object *, void *, void *, int, godot_variant **);
void *method_data;
GDCALLINGCONV void (*free_func)(void *);
@@ -247,4 +249,4 @@ void GDAPI godot_nativescript_profiling_add_data(const char *p_signature, uint64
}
#endif
#endif
#endif // GODOT_NATIVESCRIPT_H

View File

@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
/* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2022 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 */
@@ -28,8 +28,8 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#ifndef GODOT_NATIVENET_H
#define GODOT_NATIVENET_H
#ifndef GODOT_NET_H
#define GODOT_NET_H
#include <gdnative/gdnative.h>
@@ -45,7 +45,6 @@ extern "C" {
#define GODOT_NET_API_MINOR 1
typedef struct {
godot_gdnative_api_version version; /* version of our API */
godot_object *data; /* User reference */
@@ -115,4 +114,7 @@ void GDAPI godot_net_bind_multiplayer_peer(godot_object *p_obj, const godot_net_
}
#endif
#endif /* GODOT_NATIVENET_H */
// WebRTC Bindings
#include "net/godot_webrtc.h"
#endif // GODOT_NET_H

129
net/godot_webrtc.h Normal file
View File

@@ -0,0 +1,129 @@
/*************************************************************************/
/* godot_webrtc.h */
/*************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2022 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_WEBRTC_H
#define GODOT_WEBRTC_H
#include <gdnative/gdnative.h>
#ifdef __cplusplus
extern "C" {
#endif
#define GODOT_NET_WEBRTC_API_MAJOR 3
#define GODOT_NET_WEBRTC_API_MINOR 4
/* 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;
/* Extensions to WebRTCDataChannel */
typedef struct {
int (*get_buffered_amount)(const void *);
void *next; /* For extension? */
} godot_net_webrtc_data_channel_ext;
/* 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 // GODOT_WEBRTC_H

View File

@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
/* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2022 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);

View File

@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
/* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2022 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 */
@@ -28,8 +28,8 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#ifndef GODOT_NATIVEVIDEODECODER_H
#define GODOT_NATIVEVIDEODECODER_H
#ifndef GODOT_VIDEODECODER_H
#define GODOT_VIDEODECODER_H
#include <gdnative/gdnative.h>
@@ -46,7 +46,7 @@ typedef struct
void *next;
void *(*constructor)(godot_object *);
void (*destructor)(void *);
const char *(*get_plugin_name)(void);
const char *(*get_plugin_name)();
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 *);
@@ -72,4 +72,4 @@ void GDAPI godot_videodecoder_register_decoder(const godot_videodecoder_interfac
}
#endif
#endif /* GODOT_NATIVEVIDEODECODER_H */
#endif // GODOT_VIDEODECODER_H