diff options
author | reduz <reduzio@gmail.com> | 2021-06-19 12:58:49 -0300 |
---|---|---|
committer | reduz <reduzio@gmail.com> | 2021-06-25 17:32:45 -0300 |
commit | b1d15c51bc1ded928b266ffc06459dd8b2046eb4 (patch) | |
tree | 176b9bb1217200cafec3613df6cf8369dcd73dd4 /core/config | |
parent | c8444c3ee078e33c33287cf879aa5daecb962a80 (diff) |
Implement native extension system
* Deprecates GDNative in favor of a simpler, lower level interface.
* New extension system allows registering core engine classes.
* Simple header interface in gdnative_interace.h
Diffstat (limited to 'core/config')
-rw-r--r-- | core/config/engine.cpp | 5 | ||||
-rw-r--r-- | core/config/engine.h | 3 |
2 files changed, 5 insertions, 3 deletions
diff --git a/core/config/engine.cpp b/core/config/engine.cpp index 13cfd51570..ad31966a65 100644 --- a/core/config/engine.cpp +++ b/core/config/engine.cpp @@ -236,9 +236,10 @@ Engine::Engine() { singleton = this; } -Engine::Singleton::Singleton(const StringName &p_name, Object *p_ptr) : +Engine::Singleton::Singleton(const StringName &p_name, Object *p_ptr, const StringName &p_class_name) : name(p_name), - ptr(p_ptr) { + ptr(p_ptr), + class_name(p_class_name) { #ifdef DEBUG_ENABLED RefCounted *rc = Object::cast_to<RefCounted>(p_ptr); if (rc && !rc->is_referenced()) { diff --git a/core/config/engine.h b/core/config/engine.h index ecf07952ab..970cfb03e8 100644 --- a/core/config/engine.h +++ b/core/config/engine.h @@ -41,7 +41,8 @@ public: struct Singleton { StringName name; Object *ptr; - Singleton(const StringName &p_name = StringName(), Object *p_ptr = nullptr); + StringName class_name; //used for binding generation hinting + Singleton(const StringName &p_name = StringName(), Object *p_ptr = nullptr, const StringName &p_class_name = StringName()); }; private: |