summaryrefslogtreecommitdiffhomepage
path: root/samples/13_rust_extensions/01_basics/app
diff options
context:
space:
mode:
authorMike Martin <[email protected]>2020-11-26 23:14:52 -0600
committerAmir Rajan <[email protected]>2020-12-06 09:49:41 -0600
commit01b16c4244de5232a76713bfd196e34328504021 (patch)
treecc80c22b17cb890da0fe869d79547b647c069596 /samples/13_rust_extensions/01_basics/app
parentee69d1ef44889a8e22752c6d466b10765b3461ca (diff)
downloaddragonruby-game-toolkit-contrib-01b16c4244de5232a76713bfd196e34328504021.tar.gz
dragonruby-game-toolkit-contrib-01b16c4244de5232a76713bfd196e34328504021.zip
Adds basic sample app that utilizes Rust extensions
Diffstat (limited to 'samples/13_rust_extensions/01_basics/app')
-rw-r--r--samples/13_rust_extensions/01_basics/app/ext.h6
-rw-r--r--samples/13_rust_extensions/01_basics/app/main.rb10
2 files changed, 16 insertions, 0 deletions
diff --git a/samples/13_rust_extensions/01_basics/app/ext.h b/samples/13_rust_extensions/01_basics/app/ext.h
new file mode 100644
index 0000000..6f7b750
--- /dev/null
+++ b/samples/13_rust_extensions/01_basics/app/ext.h
@@ -0,0 +1,6 @@
+#include <stdarg.h>
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdlib.h>
+
+int64_t square(int64_t x);
diff --git a/samples/13_rust_extensions/01_basics/app/main.rb b/samples/13_rust_extensions/01_basics/app/main.rb
new file mode 100644
index 0000000..2d61fa3
--- /dev/null
+++ b/samples/13_rust_extensions/01_basics/app/main.rb
@@ -0,0 +1,10 @@
+$gtk.ffi_misc.gtk_dlopen("ext")
+include FFI::CExt
+
+def tick args
+ args.outputs.labels << [640, 500, "mouse.x = #{args.mouse.x.to_i}", 5, 1]
+ args.outputs.labels << [640, 460, "square(mouse.x) = #{square(args.mouse.x.to_i)}", 5, 1]
+ args.outputs.labels << [640, 420, "mouse.y = #{args.mouse.y.to_i}", 5, 1]
+ args.outputs.labels << [640, 380, "square(mouse.y) = #{square(args.mouse.y.to_i)}", 5, 1]
+end
+