Commit graph

117 commits

Author SHA1 Message Date
Juan Linietsky
33b5c57199 Variant: Added 64-bit packed arrays, renamed Variant::REAL to FLOAT.
- Renames PackedIntArray to PackedInt32Array.
- Renames PackedFloatArray to PackedFloat32Array.
- Adds PackedInt64Array and PackedFloat64Array.
- Renames Variant::REAL to Variant::FLOAT for consistency.

Packed arrays are for storing large amount of data and creating stuff like
meshes, buffers. textures, etc. Forcing them to be 64 is a huge waste of
memory. That said, many users requested the ability to have 64 bits packed
arrays for their games, so this is just an optional added type.

For Variant, the float datatype is always 64 bits, and exposed as `float`.

We still have `real_t` which is the datatype that can change from 32 to 64
bits depending on a compile flag (not entirely working right now, but that's
the idea). It affects math related datatypes and code only.

Neither Variant nor PackedArray make use of real_t, which is only intended
for math precision, so the term is removed from there to keep only float.
2020-02-25 12:55:53 +01:00
Juan Linietsky
3205a92ad8 PoolVector is gone, replaced by Vector
Typed `PoolTypeArray` types are now renamed `PackedTypeArray` and are
sugar for `Vector<Type>`.
2020-02-18 10:10:36 +01:00
Juan Linietsky
867d073b98 Changed logic and optimized ObjectID in ObjectDB and Variant, removed RefPtr. 2020-02-15 08:36:04 -03:00
Rémi Verschelde
835406cf04
Merge pull request #36163 from akien-mga/gdnative-godot_int-int64_t
GDNative: Make godot_int an int64_t
2020-02-13 12:52:17 +01:00
Rémi Verschelde
1f39a2d3e6 Remove deprecated sync and slave networking keywords
Those keywords were deprecated for 3.1 in #22087.

Also fix token name for `TK_REMOTE`, should be "remote" like the keyword.
2020-02-13 08:59:36 +01:00
Rémi Verschelde
b14bf4bcd0 GDNative: Make godot_int an int64_t
Redo of the change in cf8c679a23
that caused a build issue, with the extra change needed to
'godot_arvr_blit'.
2020-02-12 21:05:05 +01:00
Rémi Verschelde
09534e2922 Fix Mono and GDNative builds after changes to ObjectID
Issues caused by cf8c679a23.

The Mono change is actually a bugfix (used the int instead of ObjectID
by mistake).

The GDNative change is a temporary revert until a more exhaustive approach
is taken to make 'godot_int' 64-bit, is confirmed wanted by GDNative users.
2020-02-12 20:06:30 +01:00
Juan Linietsky
cf8c679a23 ObjectID converted to a structure, fixes many bugs where used incorrectly as 32 bits. 2020-02-12 14:24:54 -03:00
Hanif Bin Ariffin
7bc1dc828f Remove deprecated Color::gray
It was marked to be removed in Godot 3.1.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2020-02-12 11:22:33 +01:00
Rémi Verschelde
10de9978b8 Merge pull request #35812 from touilleMan/gdnative-uses-godot_string_name-where-possible
Use StringName in pluginscript's set/get_prop and add_global_constant
2020-02-10 10:47:22 +01:00
Emmanuel Leblond
af8905fdf3
Use StringName in pluginscript's set/get_prop and add_global_constant 2020-02-01 05:16:48 +01:00
Emmanuel Leblond
491a6411d9
Remove useless pluginscript godot_pluginscript_script_desc.get_rpc/rset_mode fields 2020-02-01 05:04:47 +01:00
toasteater
677e72d2f6 Expose instance_from_id to GDNative
This function is available to GDScript but not to GDNative. When exposed, it
allows building more ergonomic safe abstractions over the GDNative APIs, and
covers the use cases of the original PR.

Close #28478. Supersedes #28791.

Co-authored-by: Markus Ewald <cygon@nuclex.org>
2020-01-10 11:59:37 +00:00
sheepandshepherd
3056c4bd5a Expose cast_to to GDNative for dynamic casts 2020-01-03 04:27:13 +01:00
Rémi Verschelde
a7f49ac9a1 Update copyright statements to 2020
Happy new year to the wonderful Godot community!

We're starting a new decade with a well-established, non-profit, free
and open source game engine, and tons of further improvements in the
pipeline from hundreds of contributors.

Godot will keep getting better, and we're looking forward to all the
games that the community will keep developing and releasing with it.
2020-01-01 11:16:22 +01:00
PouleyKetchoupp
475115c0c3 Added empty() function to pool array types 2019-10-31 16:27:32 +01:00
Rafał Mikrut
e53e1c566a Fix some crashes and using null pointers 2019-10-28 08:07:29 +01:00
Rémi Verschelde
2114898cb5
Merge pull request #31172 from creikey/add-array-slicing
Add array slice method
2019-09-23 15:26:27 +02:00
luz.paz
91ecd7b6a6 Fix misc. source comment typos
Found using `codespell -q 3 -S ./thirdparty,*.po -L ang,ba,cas,dof,doubleclick,fave,hist,leapyear,lod,nd,numer,ois,paket,seeked,sinc,switchs,te,uint -D ~/Projects/codespell/codespell_lib/data/dictionary.txt `
2019-09-19 14:36:52 -04:00
Cameron Reikes
757c509437 Add array slice method 2019-09-14 13:08:28 -07:00
Rémi Verschelde
140e7e5edf
Merge pull request #30788 from Chaosus/direction_to_gdnative
Added Vector2/3.direction_to methods to GDNative
2019-07-26 18:58:25 +02:00
Rémi Verschelde
336846e547 Inspector: Fix PROPERTY_HINT_SPRITE_FRAME not behaving as RANGE
This was a regression in 3.1 and later from the new inspector, where
PROPERTY_HINT_SPRITE_FRAME was not fully re-implemented. It's meant to
be a normal PROPERTY_HINT_RANGE which also automatically increments its
value when keyed in the animation player.

To avoid code duplication, I made the frames properties use the actual
PROPERTY_HINT_RANGE and introduced a PROPERTY_USAGE_KEYING_INCREMENTS
usage flag instead.
2019-07-25 09:29:51 +02:00
Chaosus
bf237f651c Added direction_to to GDNative 2019-07-24 11:16:20 +03:00
Chaosus
080c0bb7fe Added count method to String 2019-07-23 18:55:54 +03:00
Rémi Verschelde
1bf448dd87 Properly expose all Error constants to scripting languages 2019-06-27 12:48:26 +02:00
Rémi Verschelde
f6f9f89078
Merge pull request #29325 from m4gr3d/setup_godot_for_ovr_support
Setup Godot to support the Oculus Mobile SDK.
2019-06-16 10:37:57 +02:00
BastiaanOlij
02ea99129e Adding a new Camera Server implementation to Godot.
This is a new singleton where camera sources such as webcams or cameras on a mobile phone can register themselves with the Server.
Other parts of Godot can interact with this to obtain images from the camera as textures.
This work includes additions to the Visual Server to use this functionality to present the camera image in the background. This is specifically targetted at AR applications.
2019-06-15 21:30:32 +10:00
Rémi Verschelde
b9dc2e7e4d
Merge pull request #28099 from lupoDharkael/fix-completion
Fix code completion not working with class_name
2019-06-03 14:01:07 +02:00
fhuya
2c3536810a Setup Godot to support the Oculus Mobile SDK. 2019-05-30 16:35:50 -07:00
Giacom
c00427add3 Added move_toward functions for float, Vector2 and Vector3 2019-05-28 11:39:35 +01:00
Rémi Verschelde
1deb41226d
Merge pull request #28738 from 2shady4u/master
Added native binding for dictionary duplication
2019-05-23 13:47:36 +02:00
shaderbeast
48bd2e459f Added native binding for dictionary duplication
Added entry in gdnative_api.json


Added function to header as well


Fixed versioning
2019-05-23 10:23:47 +02:00
Fabio Alessandrelli
729b1e9941 WebRTC refactor. Data channels, STUN/TURN support.
A big refactor to the WebRTC module. API is now considered quite stable.

Highlights:

- Renamed `WebRTCPeer` to `WebRTCPeerConnection`.
- `WebRTCPeerConnection` no longer act as `PacketPeer`, it only handle the connection itself (a bit like `TCP_Server`)
- Added new `WebRTCDataChannel` class which inherits from `PacketPeer` to handle data transfer.
- Add `WebRTCPeerConnection.initialize` method to create a new connection with the desired configuration provided as dictionary ([see MDN docs](https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/RTCPeerConnection#RTCConfiguration_dictionary)).
- Add `WebRTCPeerConnection.create_data_channel` method to create a data channel for the given connection. The connection must be in `STATE_NEW` as specified by the standard ([see MDN docs for options](https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/createDataChannel#RTCDataChannelInit_dictionary)).
- Add a `data_channel_received` signal to `WebRTCPeerConnection` for in-band (not negotiated) channels.
- Renamed `WebRTCPeerConnection` `offer_created` signal to `session_description_created`.
- Renamed `WebRTCPeerConnection` `new_ice_candidate` signal to `ice_candidate_created`
2019-05-16 11:21:20 +02:00
Bastiaan Olij
a8114b9936 Forgot a parameter in the ARVR gdnative bindings for notifications 2019-04-30 21:47:14 +10:00
Bastiaan Olij
1a1b35721a Send notifications to ARVRInterfaces 2019-04-27 08:39:21 +10:00
lupoDharkael
145a45fd3f Fix code completion not working with class_name 2019-04-16 22:27:13 +02:00
Fabio Alessandrelli
320960cd32 Add WebRTC GDNative interface 2019-04-12 18:51:24 +02:00
Bastiaan Olij
8349d4fbd9 Add option to have viewport render into supplied texture 2019-04-06 08:24:58 +11:00
Fabio Alessandrelli
f112f5785b Fixing C compatiblity for GDNative NET module
Also add net interfaces to gdnative_api.json
2019-02-24 21:23:23 +01:00
karroffel
56bb22c988 added godot_dictionary_get_with_default to GDNative
Recently, Dictionary::get() was introduced, which acts like a index
operator but allows the caller to specify a default value to return
instead of issuing an error.

This commit adds a new GDNative function that includes the default value.
2019-02-21 20:12:57 +01:00
Rémi Verschelde
322fad70bd Fix copyright year in VideoStreamGDNative 2019-02-12 23:05:30 +01:00
Rémi Verschelde
fe8cdafbf4
Merge pull request #20552 from KidRigger/gsoc-peer
Added interface for GDNative Videodecoder.
2019-01-09 17:30:09 +01:00
Rémi Verschelde
b16c309f82 Update copyright statements to 2019
Happy new year to the wonderful Godot community!
2019-01-01 12:58:10 +01:00
Hein-Pieter van Braam
4e25e5066b Reduce String CoW
By introducing an intermediate proxy class for the array subscript
operator for String and CharString we can control better when CowData
will actually CoW.

This should improve performance of String usage for most cases.
2018-12-16 16:51:38 +01:00
Anish
7199b7b5dd Added interface for GDNative Videodecoder.
Interface and callback api added for Videodecoder support.
Should be able to construct any format videodecoder using
only the given interface.

GSoC 2018 project.
2018-12-13 15:19:09 +01:00
lupoDharkael
2380f320e0 Update GDNantive API
Add missing Rect2 methods to GDNative API
Add missing Quat methods to GDNative API
Add missing NodePath methods to GDNative API
Add missing String methods to GDNative API
Add missing Array methods to GDNative API
Add missing Basis methods to GDNative API
Add missing Color methods to GDNative API
Update gdnative_api.json
2018-10-26 17:25:57 +02:00
Rémi Verschelde
60688c3fe7 Fix GDNative build warning on Android [-Wignored-attributes]
Fixes the following kind of warning spam:
```
modules/gdnative/include/gdnative/color.h:61:6: warning: calling convention 'sysv_abi' ignored for this target [-Wignored-attributes]
void GDAPI godot_color_new_rgba(godot_color *r_dest, const godot_real p_r, const godot_real p_g, const godot_real p_b, const godot_real p_a);
     ^
modules/gdnative/include/gdnative/gdnative.h:52:15: note: expanded from macro 'GDAPI'
              ^
modules/gdnative/include/gdnative/gdnative.h:51:38: note: expanded from macro 'GDCALLINGCONV'
                                     ^
```
2018-10-03 14:23:04 +02:00
Fabio Alessandrelli
1e9b46d687 Clearly deprecate sync too in favor of remotesync.
NOTE: This changes the RPC_MODE_* enum values.
Games should be re-exported. GDNative rebuilt.
2018-09-15 00:06:03 +02:00
Fabio Alessandrelli
d6b31daec6 Rename slave keyword to puppet
The slave keyword will still be available as deprecated in 3.1 but will
be dropped from future releases.
2018-09-15 00:06:03 +02:00
Thomas Herzog
e0f763f1c9 [GDNative] add Variant::Operator 2018-09-13 17:23:38 +02:00