1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-08 12:40:44 +00:00

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

View File

@@ -31,6 +31,8 @@
#ifndef VISUAL_SCRIPT_NODES_H
#define VISUAL_SCRIPT_NODES_H
#include "core/object/gdvirtual.gen.inc"
#include "core/object/script_language.h"
#include "visual_script.h"
class VisualScriptFunction : public VisualScriptNode {
@@ -757,6 +759,30 @@ class VisualScriptCustomNode : public VisualScriptNode {
protected:
static void _bind_methods();
friend class VisualScriptNodeInstanceCustomNode;
GDVIRTUAL0RC(int, _get_output_sequence_port_count)
GDVIRTUAL0RC(bool, _has_input_sequence_port)
GDVIRTUAL1RC(String, _get_output_sequence_port_text, int)
GDVIRTUAL0RC(int, _get_input_value_port_count)
GDVIRTUAL1RC(int, _get_input_value_port_type, int)
GDVIRTUAL1RC(String, _get_input_value_port_name, int)
GDVIRTUAL1RC(int, _get_input_value_port_hint, int)
GDVIRTUAL1RC(String, _get_input_value_port_hint_string, int)
GDVIRTUAL0RC(int, _get_output_value_port_count)
GDVIRTUAL1RC(int, _get_output_value_port_type, int)
GDVIRTUAL1RC(String, _get_output_value_port_name, int)
GDVIRTUAL1RC(int, _get_output_value_port_hint, int)
GDVIRTUAL1RC(String, _get_output_value_port_hint_string, int)
GDVIRTUAL0RC(String, _get_caption)
GDVIRTUAL0RC(String, _get_text)
GDVIRTUAL0RC(String, _get_category)
GDVIRTUAL0RC(int, _get_working_memory_size)
GDVIRTUAL4RC(Variant, _step, Array, Array, int, Array)
public:
enum StartMode { //replicated for step