diff options
| author | realtradam <[email protected]> | 2022-02-03 22:41:18 -0500 |
|---|---|---|
| committer | realtradam <[email protected]> | 2022-02-03 22:41:18 -0500 |
| commit | c2984380a21ed10aeb7eb030b5b88431a7dad204 (patch) | |
| tree | 4607d3a3bf148963b9cb747256f1c96429f28f4f /src/core.c | |
| parent | 6cd1e5c0d9f4a72ed52bc9843b15cf5c722c5e41 (diff) | |
| download | mruby-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.c | 51 |
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)); +} |
