summaryrefslogtreecommitdiffhomepage
path: root/src/core.c
diff options
context:
space:
mode:
authorrealtradam <[email protected]>2022-02-03 22:41:18 -0500
committerrealtradam <[email protected]>2022-02-03 22:41:18 -0500
commitc2984380a21ed10aeb7eb030b5b88431a7dad204 (patch)
tree4607d3a3bf148963b9cb747256f1c96429f28f4f /src/core.c
parent6cd1e5c0d9f4a72ed52bc9843b15cf5c722c5e41 (diff)
downloadmruby-raylib-c2984380a21ed10aeb7eb030b5b88431a7dad204.tar.gz
mruby-raylib-c2984380a21ed10aeb7eb030b5b88431a7dad204.zip
seperated init window into core files
Diffstat (limited to 'src/core.c')
-rw-r--r--src/core.c51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/core.c b/src/core.c
new file mode 100644
index 0000000..a301ed0
--- /dev/null
+++ b/src/core.c
@@ -0,0 +1,51 @@
+#include "raylib/core.h"
+
+/*
+ * @overload init_window(screen_width, screen_height, title)
+ *
+ * Initialize window and OpenGL context.
+ *
+ * *Parameters:*
+ *
+ * * *screen_width* (+Integer+)
+ *
+ * * *screen_height* (+Integer+)
+ *
+ * * *title* (+String+)
+ */
+static mrb_value
+mrb_init_window(mrb_state* mrb, mrb_value self) {
+ mrb_int screenWidth = 800;
+ mrb_int screenHeight = 600;
+ char* title = "Hello World from FelFlame!";
+
+ uint32_t kw_num = 3;
+ const mrb_sym kw_names[] = {
+ mrb_intern_lit(mrb, "width"),
+ mrb_intern_lit(mrb, "height"),
+ mrb_intern_lit(mrb, "title"),
+ };
+ mrb_value kw_values[kw_num];
+ const mrb_kwargs kwargs = { kw_num, 0, kw_names, kw_values, NULL };
+ mrb_get_args(mrb, "|iiz:", &screenWidth, &screenHeight, &title, &kwargs);
+
+ if (mrb_undef_p(kw_values[0])) {
+ kw_values[0] = mrb_fixnum_value(screenWidth);
+ }
+ if (mrb_undef_p(kw_values[1])) {
+ kw_values[1] = mrb_fixnum_value(screenHeight);
+ }
+ if (mrb_undef_p(kw_values[2])) {
+ kw_values[2] = mrb_str_new_cstr(mrb, title);
+ }
+
+ InitWindow(mrb_fixnum(kw_values[0]), mrb_fixnum(kw_values[1]), mrb_str_to_cstr(mrb, kw_values[2]));
+
+ return mrb_nil_value();
+}
+
+void
+mrb_raylib_core_init(mrb_state* mrb) {
+ struct RClass *raylib = mrb_define_module(mrb, "Raylib");
+ mrb_define_module_function(mrb, raylib, "init_window", mrb_init_window, MRB_ARGS_OPT(3));
+}