Replace BIND_VMETHOD by new GDVIRTUAL syntax

* New syntax is type safe.
* New syntax allows for type safe virtuals in native extensions.
* New syntax permits extremely fast calling.

Note: Everything was replaced where possible except for `_gui_input` `_input` and `_unhandled_input`.
These will require API rework on a separate PR as they work different than the rest of the functions.

Added a new method flag METHOD_FLAG_OBJECT_CORE, used internally. Allows to not dump the core virtuals like `_notification` to the json API, since each language will implement those as it is best fits.
This commit is contained in:
reduz
2021-08-21 22:52:44 -03:00
parent 2a5c64f2a1
commit 3682978aee
104 changed files with 1389 additions and 1227 deletions
@@ -9,41 +9,41 @@
<tutorials>
</tutorials>
<methods>
<method name="_can_generate_small_preview" qualifiers="virtual">
<method name="_can_generate_small_preview" qualifiers="virtual const">
<return type="bool" />
<description>
If this function returns [code]true[/code], the generator will call [method _generate] or [method _generate_from_path] for small previews as well.
By default, it returns [code]false[/code].
</description>
</method>
<method name="_generate" qualifiers="virtual">
<method name="_generate" qualifiers="virtual const">
<return type="Texture2D" />
<argument index="0" name="from" type="Resource" />
<argument index="1" name="size" type="Vector2" />
<argument index="0" name="resource" type="Resource" />
<argument index="1" name="size" type="Vector2i" />
<description>
Generate a preview from a given resource with the specified size. This must always be implemented.
Returning an empty texture is an OK way to fail and let another generator take care.
Care must be taken because this function is always called from a thread (not the main thread).
</description>
</method>
<method name="_generate_from_path" qualifiers="virtual">
<method name="_generate_from_path" qualifiers="virtual const">
<return type="Texture2D" />
<argument index="0" name="path" type="String" />
<argument index="1" name="size" type="Vector2" />
<argument index="1" name="size" type="Vector2i" />
<description>
Generate a preview directly from a path with the specified size. Implementing this is optional, as default code will load and call [method _generate].
Returning an empty texture is an OK way to fail and let another generator take care.
Care must be taken because this function is always called from a thread (not the main thread).
</description>
</method>
<method name="_generate_small_preview_automatically" qualifiers="virtual">
<method name="_generate_small_preview_automatically" qualifiers="virtual const">
<return type="bool" />
<description>
If this function returns [code]true[/code], the generator will automatically generate the small previews from the normal preview texture generated by the methods [method _generate] or [method _generate_from_path].
By default, it returns [code]false[/code].
</description>
</method>
<method name="_handles" qualifiers="virtual">
<method name="_handles" qualifiers="virtual const">
<return type="bool" />
<argument index="0" name="type" type="String" />
<description>