summaryrefslogtreecommitdiff
path: root/modules/dlscript/godot/godot_rid.cpp
diff options
context:
space:
mode:
authorKarroffel <therzog@mail.de>2017-04-03 16:11:38 +0200
committerKarroffel <therzog@mail.de>2017-04-03 17:20:11 +0200
commitfd553087867187220d4f6b8217854dd8e9be2667 (patch)
treeba4c8b2611b1a574056e2f4ae694f18b737ee0e6 /modules/dlscript/godot/godot_rid.cpp
parent67f59bc2d9e2ce5faa9507017d49827753981e1e (diff)
added dlscript module
This module was written by bojidar-bg and me, with the help of ClikCode and touilleMan. This adds a module to Godot that enables the use of dynamic libraries as a source for scripts. That also allows third party libraries to be linked to Godot more easily and without creating modules. For a readme see https://github.com/GodotNativeTools/godot_headers/blob/master/README.md
Diffstat (limited to 'modules/dlscript/godot/godot_rid.cpp')
-rw-r--r--modules/dlscript/godot/godot_rid.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/modules/dlscript/godot/godot_rid.cpp b/modules/dlscript/godot/godot_rid.cpp
new file mode 100644
index 0000000000..a36a2e64a3
--- /dev/null
+++ b/modules/dlscript/godot/godot_rid.cpp
@@ -0,0 +1,36 @@
+#include "godot_rid.h"
+
+#include "object.h"
+#include "resource.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void _rid_api_anchor() {
+}
+
+void GDAPI godot_rid_new(godot_rid *p_rid, godot_object *p_from) {
+
+ Resource *res_from = ((Object *)p_from)->cast_to<Resource>();
+
+ RID *rid = (RID *)p_rid;
+ memnew_placement(rid, RID);
+
+ if (res_from) {
+ *rid = 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();
+}
+
+void GDAPI godot_rid_destroy(godot_rid *p_rid) {
+ ((RID *)p_rid)->~RID();
+}
+
+#ifdef __cplusplus
+}
+#endif