From fccccbf1cdd2ff9c55c483824a6c06302122e74c Mon Sep 17 00:00:00 2001 From: realtradam Date: Sat, 15 Jan 2022 04:13:17 -0500 Subject: added multiple bindings --- src/raylib.c | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 52 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/raylib.c b/src/raylib.c index 263231f..fa7fa14 100644 --- a/src/raylib.c +++ b/src/raylib.c @@ -5,7 +5,7 @@ #endif static mrb_value -mrb_init_window(mrb_state, *mrb, mrb_value self) +mrb_init_window(mrb_state *mrb, mrb_value self) { mrb_int screenWidth = 800; mrb_int screenHeight = 600; @@ -17,10 +17,59 @@ mrb_init_window(mrb_state, *mrb, mrb_value self) return mrb_nil_value(); } + static mrb_value +mrb_platform(mrb_state *mrb, mrb_value self) +{ +#ifdef defined(PLATFORM_WEB) + return mrb_str_new_lit(mrb, "web"); +#else + return mrb_str_new_lit(mrb, "desktop"); +#endif +} + +//void DrawText(const char *text, int posX, int posY, int fontSize, Color color); + static mrb_value +mrb_draw_text(mrb_state *mrb, mrb_value self) +{ + char* text = "Default Text"; + int x = 0; + int y = 0; + int fontSize = 16; + mrb_get_args(mrb, "|ziii", &text, &x, &y, &fontSize); + DrawText(text, x, y, fontSize, LIGHTGRAY); + return mrb_nil_value(); +} + + static mrb_value +mrb_begin_drawing(mrb_state *mrb, mrb_value self) +{ + BeginDrawing(); + return mrb_nil_value(); +} + + static mrb_value +mrb_end_drawing(mrb_state *mrb, mrb_value self) +{ + EndDrawing(); + return mrb_nil_value(); +} + + static mrb_value +mrb_clear_background(mrb_state *mrb, mrb_value self) +{ + ClearBackground(RAYWHITE); + return mrb_nil_value(); +} + void mrb_mruby_raylib_gem_init(mrb_state* mrb) { - struct RClass *class_cextension = mrb_define_module(mrb, "Raylib"); - mrb_define_class_method(mrb, class_cextension, "init_window", mrb_init_window, MRB_ARGS_REQ(3)); + struct RClass *raylib = mrb_define_module(mrb, "Raylib"); + mrb_define_class_method(mrb, raylib, "init_window", mrb_init_window, MRB_ARGS_REQ(3)); + mrb_define_class_method(mrb, raylib, "platform", mrb_platform, MRB_ARGS_NONE()); + mrb_define_class_method(mrb, raylib, "draw_text", mrb_draw_text, MRB_ARGS_REQ(4)); + mrb_define_class_method(mrb, raylib, "begin_drawing", mrb_begin_drawing, MRB_ARGS_NONE()); + mrb_define_class_method(mrb, raylib, "end_drawing", mrb_end_drawing, MRB_ARGS_NONE()); + mrb_define_class_method(mrb, raylib, "clear_background", mrb_clear_background, MRB_ARGS_NONE()); } void -- cgit v1.2.3