mirror of
https://github.com/godotengine/godot.git
synced 2024-11-21 11:32:13 +00:00
Force RID::id to be always uint64_t
On Vulkan, some handles are meant to always be u64, even on 32-bit architectures such as arm32. Fixes #98654
This commit is contained in:
parent
ef8d981267
commit
e69a0c7d60
@ -120,9 +120,9 @@ struct VersatileResourceTemplate {
|
||||
class RenderingDeviceDriver : public RenderingDeviceCommons {
|
||||
public:
|
||||
struct ID {
|
||||
size_t id = 0;
|
||||
uint64_t id = 0;
|
||||
_ALWAYS_INLINE_ ID() = default;
|
||||
_ALWAYS_INLINE_ ID(size_t p_id) :
|
||||
_ALWAYS_INLINE_ ID(uint64_t p_id) :
|
||||
id(p_id) {}
|
||||
};
|
||||
|
||||
@ -138,11 +138,9 @@ public:
|
||||
_ALWAYS_INLINE_ bool operator!=(const m_name##ID &p_other) const { return id != p_other.id; } \
|
||||
_ALWAYS_INLINE_ m_name##ID(const m_name##ID &p_other) : ID(p_other.id) {} \
|
||||
_ALWAYS_INLINE_ explicit m_name##ID(uint64_t p_int) : ID(p_int) {} \
|
||||
_ALWAYS_INLINE_ explicit m_name##ID(void *p_ptr) : ID((size_t)p_ptr) {} \
|
||||
_ALWAYS_INLINE_ explicit m_name##ID(void *p_ptr) : ID((uint64_t)p_ptr) {} \
|
||||
_ALWAYS_INLINE_ m_name##ID() = default; \
|
||||
}; \
|
||||
/* Ensure type-punnable to pointer. Makes some things easier.*/ \
|
||||
static_assert(sizeof(m_name##ID) == sizeof(void *));
|
||||
};
|
||||
|
||||
// Id types declared before anything else to prevent cyclic dependencies between the different concerns.
|
||||
DEFINE_ID(Buffer);
|
||||
|
Loading…
Reference in New Issue
Block a user