diff options
Diffstat (limited to 'modules/gdnative/godot/godot_rid.cpp')
| -rw-r--r-- | modules/gdnative/godot/godot_rid.cpp | 40 | 
1 files changed, 25 insertions, 15 deletions
diff --git a/modules/gdnative/godot/godot_rid.cpp b/modules/gdnative/godot/godot_rid.cpp index fff31e3992..343c004bff 100644 --- a/modules/gdnative/godot/godot_rid.cpp +++ b/modules/gdnative/godot/godot_rid.cpp @@ -28,36 +28,46 @@  /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */  /*************************************************************************/  #include "godot_rid.h" +#include "core/variant.h" -#include "object.h" -#include "resource.h" +#include "core/resource.h" +#include "core/rid.h"  #ifdef __cplusplus  extern "C" {  #endif -void _rid_api_anchor() { -} - -void GDAPI godot_rid_new(godot_rid *p_rid, godot_object *p_from) { +void _rid_api_anchor() {} -	Resource *res_from = ((Object *)p_from)->cast_to<Resource>(); +void GDAPI godot_rid_new(godot_rid *r_dest) { +	RID *dest = (RID *)r_dest; +	memnew_placement(dest, RID); +} -	RID *rid = (RID *)p_rid; -	memnew_placement(rid, RID); +godot_int GDAPI godot_rid_get_id(const godot_rid *p_self) { +	const RID *self = (const RID *)p_self; +	return self->get_id(); +} +void GDAPI godot_rid_new_with_resource(godot_rid *r_dest, const godot_object *p_from) { +	const Resource *res_from = ((const Object *)p_from)->cast_to<Resource>(); +	godot_rid_new(r_dest);  	if (res_from) { -		*rid = RID(res_from->get_rid()); +		RID *dest = (RID *)r_dest; +		*dest = RID(res_from->get_rid());  	}  } -uint32_t GDAPI godot_rid_get_rid(const godot_rid *p_rid) { -	RID *rid = (RID *)p_rid; -	return rid->get_id(); +godot_bool GDAPI godot_rid_operator_equal(const godot_rid *p_self, const godot_rid *p_b) { +	const RID *self = (const RID *)p_self; +	const RID *b = (const RID *)p_b; +	return *self == *b;  } -void GDAPI godot_rid_destroy(godot_rid *p_rid) { -	((RID *)p_rid)->~RID(); +godot_bool GDAPI godot_rid_operator_less(const godot_rid *p_self, const godot_rid *p_b) { +	const RID *self = (const RID *)p_self; +	const RID *b = (const RID *)p_b; +	return *self < *b;  }  #ifdef __cplusplus  |