mirror of
https://github.com/godotengine/godot.git
synced 2025-01-18 20:40:57 +08:00
Merge pull request #52045 from reduz/expose-rid-creation-utilities
Expose RID creation utilities.
This commit is contained in:
commit
13bd020a23
@ -53,14 +53,16 @@ protected:
|
||||
return rid;
|
||||
}
|
||||
|
||||
static uint64_t _gen_id() {
|
||||
return base_id.increment();
|
||||
}
|
||||
|
||||
static RID _gen_rid() {
|
||||
return _make_from_id(_gen_id());
|
||||
}
|
||||
|
||||
friend struct VariantUtilityFunctions;
|
||||
|
||||
static uint64_t _gen_id() {
|
||||
return base_id.increment();
|
||||
}
|
||||
|
||||
public:
|
||||
virtual ~RID_AllocBase() {}
|
||||
};
|
||||
|
@ -35,6 +35,8 @@
|
||||
#include "core/object/ref_counted.h"
|
||||
#include "core/os/os.h"
|
||||
#include "core/templates/oa_hash_map.h"
|
||||
#include "core/templates/rid.h"
|
||||
#include "core/templates/rid_owner.h"
|
||||
#include "core/variant/binder_common.h"
|
||||
#include "core/variant/variant_parser.h"
|
||||
|
||||
@ -728,6 +730,13 @@ struct VariantUtilityFunctions {
|
||||
}
|
||||
return p_instance.get_validated_object() != nullptr;
|
||||
}
|
||||
|
||||
static inline uint64_t rid_allocate_id() {
|
||||
return RID_AllocBase::_gen_id();
|
||||
}
|
||||
static inline RID rid_from_int64(uint64_t p_base) {
|
||||
return RID::from_uint64(p_base);
|
||||
}
|
||||
};
|
||||
|
||||
#ifdef DEBUG_METHODS_ENABLED
|
||||
@ -1265,6 +1274,9 @@ void Variant::_register_variant_utility_functions() {
|
||||
FUNCBINDR(instance_from_id, sarray("instance_id"), Variant::UTILITY_FUNC_TYPE_GENERAL);
|
||||
FUNCBINDR(is_instance_id_valid, sarray("id"), Variant::UTILITY_FUNC_TYPE_GENERAL);
|
||||
FUNCBINDR(is_instance_valid, sarray("instance"), Variant::UTILITY_FUNC_TYPE_GENERAL);
|
||||
|
||||
FUNCBINDR(rid_allocate_id, Vector<String>(), Variant::UTILITY_FUNC_TYPE_GENERAL);
|
||||
FUNCBINDR(rid_from_int64, sarray("base"), Variant::UTILITY_FUNC_TYPE_GENERAL);
|
||||
}
|
||||
|
||||
void Variant::_unregister_variant_utility_functions() {
|
||||
|
@ -711,6 +711,19 @@
|
||||
<description>
|
||||
</description>
|
||||
</method>
|
||||
<method name="rid_allocate_id">
|
||||
<return type="int" />
|
||||
<description>
|
||||
Allocate a unique ID which can be used by the implementation to construct a RID. This is used mainly from native extensions to implement servers.
|
||||
</description>
|
||||
</method>
|
||||
<method name="rid_from_int64">
|
||||
<return type="RID" />
|
||||
<argument index="0" name="base" type="int" />
|
||||
<description>
|
||||
Create a RID from an int64. This is used mainly from native extensions to build servers.
|
||||
</description>
|
||||
</method>
|
||||
<method name="round">
|
||||
<return type="float" />
|
||||
<argument index="0" name="x" type="float" />
|
||||
|
Loading…
Reference in New Issue
Block a user