Compare commits

...

67 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
Bastiaan Olij
4ed3534d8f Merge pull request #42 from BastiaanOlij/update_3.1_stable
Synced with Godot 3.1 stable
2019-04-07 15:30:40 +10:00
Bastiaan Olij
34c73d78b3 Synced with Godot 3.1 stable 2019-04-07 16:28:28 +10:00
Thomas Herzog
196f1e973b Merge pull request #40 from Calinou/use-markdown-license
Use Markdown format for the license
2019-02-24 15:34:46 +01:00
Hugo Locurcio
a557a2e76f Use Markdown format for the license 2019-02-24 14:45:39 +01:00
Bastiaan Olij
b98ac387a1 Merge pull request #37 from BastiaanOlij/oops_forgot_gen_headers
Oops, forgot to copy the latest generated header file
2018-11-24 07:53:06 +11:00
Bastiaan Olij
0180db5bd3 Oops, forgot to copy the latest generated header file 2018-11-24 07:46:28 +11:00
Bastiaan Olij
6b74abd615 Merge pull request #35 from BastiaanOlij/headers_3.1_20181119
Updated to Godot 3.1 master 5738c92b3971c85e396f9f27608083588539f9fc
2018-11-22 20:25:21 +11:00
Bastiaan Olij
808b007bf8 Updated to Godot 3.1 master 5738c92b3971c85e396f9f27608083588539f9fc 2018-11-19 20:56:25 +11:00
Bastiaan Olij
b296f465d4 Merge pull request #29 from BastiaanOlij/branch_info
Just added the readme change explaining the branch split
2018-11-19 20:35:20 +11:00
Thomas Herzog
a51d905c5a Merge pull request #34 from lupoDharkael/update-api
Update headers and gdnative_api.json
2018-10-29 13:06:47 +01:00
lupoDharkael
2279783d45 Update headers and gdnative_api.json 2018-10-29 11:01:34 +01:00
Thomas Herzog
efac77fa4f Merge pull request #32 from Laaas/master
Update gdnative_api.json too
2018-09-19 10:29:05 +02:00
Las
22af213d25 Update gdnative_api.json to commit c52a3646f1055f30b11b0c3fe5d2233a693bd498 of Godot too
I forgot to do this, since it's not the include folder of modules/gdnative
2018-09-19 09:49:38 +02:00
Thomas Herzog
a0df1393b4 Merge pull request #31 from Laaas/master
Update headers to commit c52a3646f1055f30b11b0c3fe5d2233a693bd498 (2018-09-14)
2018-09-14 22:17:31 +02:00
Las
55d7cd4bf3 Update headers to commit c52a3646f1055f30b11b0c3fe5d2233a693bd498 of Godot 2018-09-14 19:17:04 +02:00
Bastiaan Olij
40cd3d1bda Just added the readme change explaining the branch split 2018-08-04 22:59:08 +10:00
Bastiaan Olij
32aa216bab Merge pull request #26 from BastiaanOlij/add_net
New folder net was missing and added a gitattributes file
2018-07-26 20:19:07 +10:00
Bastiaan Olij
20e86b4422 New folder net was missing, updated all the other subfolders, new api
files and added a gitattributes file
2018-07-26 20:05:04 +10:00
Thomas Herzog
2d221de20c Merge pull request #25 from marcelofg55/update_headers2
Updated headers
2018-07-20 11:06:20 +02:00
Marcelo Fernandez
a67b968a0b Updated headers 2018-07-18 13:12:15 -03:00
39 changed files with 208811 additions and 134672 deletions

13
.gitattributes vendored Normal file
View 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

View File

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

189
README.md
View File

@@ -1,26 +1,59 @@
# 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 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]
├── lib/
@@ -29,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>
@@ -40,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 **/
@@ -72,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
```
@@ -140,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>
@@ -156,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
@@ -164,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.
@@ -195,7 +228,7 @@ The GDNativeLibrary field in a NativeScript is empty by default.
</details>
`Expand details for screenshots.`
Expand *Details* for screenshots.
## FAQ
@@ -209,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?**
@@ -218,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! ✨
@@ -229,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.

56
android/godot_android.h Normal file
View File

@@ -0,0 +1,56 @@
/*************************************************************************/
/* godot_android.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_ANDROID_H
#define GODOT_ANDROID_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_H

341456
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-2018 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 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>
@@ -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,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-2018 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 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-2018 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 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" {
@@ -130,8 +130,18 @@ 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
#endif // GODOT_ARRAY_H
#endif // GDNATIVE_ARRAY_H

View File

@@ -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-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" {
@@ -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,8 +127,10 @@ 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
#endif // GODOT_BASIS_H
#endif // GDNATIVE_BASIS_H

View File

@@ -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-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" {
@@ -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);
@@ -103,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-2018 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 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);
@@ -94,8 +96,18 @@ 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);
// 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-2018 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 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,14 +28,14 @@
/* 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" {
#endif
#ifdef _WIN32
#if defined(_WIN32) || defined(__ANDROID__)
#define GDCALLINGCONV
#define GDAPI GDCALLINGCONV
#elif defined(__APPLE__)
@@ -47,17 +47,21 @@ 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
#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,
@@ -282,8 +286,19 @@ 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
#endif // GODOT_C_H
#endif // GDNATIVE_GDNATIVE_H

View File

@@ -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-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" {
@@ -80,8 +80,10 @@ 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
#endif // GODOT_NODE_PATH_H
#endif // GDNATIVE_NODE_PATH_H

View File

@@ -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-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-2018 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 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-2018 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 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" {
@@ -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,8 +109,10 @@ 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
#endif // GODOT_QUAT_H
#endif // GDNATIVE_QUAT_H

View File

@@ -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-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" {
@@ -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);
@@ -93,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-2018 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 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-2018 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 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" {
@@ -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);
@@ -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);
@@ -246,10 +252,16 @@ 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
}
#endif
#endif // GODOT_STRING_H
#endif // GDNATIVE_STRING_H

View File

@@ -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-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-2018 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 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" {
@@ -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);
@@ -107,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-2018 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 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-2018 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 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
@@ -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,8 +243,13 @@ 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
#endif
#endif // GDNATIVE_VARIANT_H

View File

@@ -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-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-2018 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 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

@@ -5,7 +5,611 @@
"major": 1,
"minor": 0
},
"next": null,
"next": {
"type": "CORE",
"version": {
"major": 1,
"minor": 1
},
"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",
"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 +5073,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 +5088,7 @@
]
},
{
"name": "godot_string_wide_str",
"name": "godot_string_wide_str",
"return_type": "const wchar_t *",
"arguments": [
["const godot_string *", "p_self"]
@@ -5253,21 +5857,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 +6003,7 @@
"name": "godot_string_humanize_size",
"return_type": "godot_string",
"arguments": [
["size_t", "p_size"]
["uint64_t", "p_size"]
]
},
{
@@ -5765,15 +6369,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 +6388,7 @@
]
},
{
"name": "godot_nativescript_set_class_documentation",
"name": "godot_nativescript_set_class_documentation",
"return_type": "void",
"arguments": [
["void *", "p_gdnative_handle"],
@@ -5793,7 +6397,7 @@
]
},
{
"name": "godot_nativescript_set_method_documentation",
"name": "godot_nativescript_set_method_documentation",
"return_type": "void",
"arguments": [
["void *", "p_gdnative_handle"],
@@ -5803,7 +6407,7 @@
]
},
{
"name": "godot_nativescript_set_property_documentation",
"name": "godot_nativescript_set_property_documentation",
"return_type": "void",
"arguments": [
["void *", "p_gdnative_handle"],
@@ -5813,7 +6417,7 @@
]
},
{
"name": "godot_nativescript_set_signal_documentation",
"name": "godot_nativescript_set_signal_documentation",
"return_type": "void",
"arguments": [
["void *", "p_gdnative_handle"],
@@ -5874,10 +6478,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 +6573,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 +6729,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"]
]
}
]
}
]
}

View File

@@ -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,123 @@ 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_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;
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 +830,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 +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-2018 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 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 */
@@ -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,19 +56,22 @@ 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
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 +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,
@@ -140,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 *);
@@ -225,6 +232,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,8 +243,10 @@ 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
#endif
#endif // GODOT_NATIVESCRIPT_H

120
net/godot_net.h Normal file
View File

@@ -0,0 +1,120 @@
/*************************************************************************/
/* godot_net.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_NET_H
#define GODOT_NET_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_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-2018 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 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

@@ -0,0 +1,75 @@
/*************************************************************************/
/* godot_videodecoder.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_VIDEODECODER_H
#define GODOT_VIDEODECODER_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)();
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_VIDEODECODER_H