diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/core.c | 53 | ||||
| -rw-r--r-- | src/raylib.c | 12 |
2 files changed, 37 insertions, 28 deletions
@@ -1,27 +1,17 @@ #include "raylib/core.h" + /* - * @overload init_window(screen_width: 800, screen_height: 600, title: "Hello World from FelFlame!") - * @param [Integer] width ye - * @overload init_window(screen_width, screen_height, title) - * - * Initialize window and OpenGL context. - * - * *Parameters:* - * - * * *width* (+Integer+) - * - * * *height* (+Integer+) - * - * * *title* (+String+) - * - * @return (Nil) + * @overload init_window(width: 800, height: 600, title: "Hello World from Raylib!") + * @param width [Integer] + * @param height [Integer] + * @param 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!"; + char* title = "Hello World from Raylib!"; uint32_t kw_num = 3; const mrb_sym kw_names[] = { @@ -49,15 +39,46 @@ mrb_init_window(mrb_state* mrb, mrb_value self) { } +/* + * Check if KEY_ESCAPE pressed or Close icon pressed + * @overload should_window_close?() + */ static mrb_value mrb_window_should_close(mrb_state* mrb, mrb_value self) { return mrb_bool_value(WindowShouldClose()); } +/* + * Set background color *(framebuffer clear color)* + * @overload clear_background(color: Rl:Color.raywhite) + * @param color [Rl::Color] + * @return [Nil] + */ +static mrb_value +mrb_clear_background(mrb_state* mrb, mrb_value self) { + struct RClass *raylib = mrb_module_get(mrb, "Raylib"); + struct RClass *color = mrb_class_get_under(mrb, raylib, Color_type.struct_name); + mrb_value color_obj = mrb_funcall(mrb, mrb_obj_value(color), "raywhite", 0); + + uint32_t kw_num = 1; + const mrb_sym kw_names[] = { + mrb_intern_lit(mrb, "color"), + }; + mrb_value kw_values[kw_num]; + const mrb_kwargs kwargs = { kw_num, 0, kw_names, kw_values, NULL }; + mrb_get_args(mrb, "|o:", &color_obj, &kwargs); + + + Color *color_data = DATA_GET_PTR(mrb, color_obj, &Color_type, Color); + ClearBackground(*color_data); + return mrb_nil_value(); +} + void mrb_init_raylib_core(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)); mrb_define_module_function(mrb, raylib, "window_should_close?", mrb_window_should_close, MRB_ARGS_NONE()); + mrb_define_module_function(mrb, raylib, "clear_background", mrb_clear_background, MRB_ARGS_REQ(1)); } diff --git a/src/raylib.c b/src/raylib.c index 36b4550..120802c 100644 --- a/src/raylib.c +++ b/src/raylib.c @@ -20,9 +20,6 @@ void helper_music_free(mrb_state*, void*); bool check_collision_circle_rec(mrb_state* mrb, mrb_value circle_obj, mrb_value rec_obj); -static const struct mrb_data_type Color_type = { - "Color", mrb_free -}; static const struct mrb_data_type Texture_type = { "Texture", helper_texture_free @@ -850,14 +847,6 @@ mrb_end_drawing(mrb_state* mrb, mrb_value self) { return mrb_nil_value(); } -static mrb_value -mrb_clear_background(mrb_state* mrb, mrb_value self) { - mrb_value color_obj; - mrb_get_args(mrb, "o", &color_obj); - Color *color_data = DATA_GET_PTR(mrb, color_obj, &Color_type, Color); - ClearBackground(*color_data); - return mrb_nil_value(); -} static mrb_value mrb_call_main_loop(mrb_state* mrb, mrb_value self) { @@ -1014,7 +1003,6 @@ mrb_mruby_raylib_gem_init(mrb_state* mrb) { mrb_define_module_function(mrb, raylib, "_draw_text", mrb_draw_text, MRB_ARGS_OPT(5)); mrb_define_module_function(mrb, raylib, "begin_drawing", mrb_begin_drawing, MRB_ARGS_NONE()); mrb_define_module_function(mrb, raylib, "end_drawing", mrb_end_drawing, MRB_ARGS_NONE()); - mrb_define_module_function(mrb, raylib, "clear_background", mrb_clear_background, MRB_ARGS_REQ(1)); mrb_define_module_function(mrb, raylib, "call_main_loop", mrb_call_main_loop, MRB_ARGS_NONE()); mrb_define_module_function(mrb, raylib, "target_fps=", mrb_target_fps, MRB_ARGS_REQ(1)); mrb_define_module_function(mrb, raylib, "fps", mrb_fps, MRB_ARGS_NONE()); |
