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

@ -32,20 +32,8 @@
#define RICH_TEXT_EFFECT_H
#include "core/io/resource.h"
class RichTextEffect : public Resource {
GDCLASS(RichTextEffect, Resource);
OBJ_SAVE_TYPE(RichTextEffect);
protected:
static void _bind_methods();
public:
Variant get_bbcode() const;
bool _process_effect_impl(Ref<class CharFXTransform> p_cfx);
RichTextEffect();
};
#include "core/object/gdvirtual.gen.inc"
#include "core/object/script_language.h"
class CharFXTransform : public RefCounted {
GDCLASS(CharFXTransform, RefCounted);
@ -89,4 +77,20 @@ public:
void set_environment(Dictionary p_environment) { environment = p_environment; }
};
class RichTextEffect : public Resource {
GDCLASS(RichTextEffect, Resource);
OBJ_SAVE_TYPE(RichTextEffect);
protected:
static void _bind_methods();
GDVIRTUAL1RC(bool, _process_custom_fx, Ref<CharFXTransform>)
public:
Variant get_bbcode() const;
bool _process_effect_impl(Ref<class CharFXTransform> p_cfx);
RichTextEffect();
};
#endif // RICH_TEXT_EFFECT_H