diff options
| author | arngo <[email protected]> | 2022-01-20 21:57:29 -0500 |
|---|---|---|
| committer | arngo <[email protected]> | 2022-01-20 21:57:29 -0500 |
| commit | 903461780d64927f0d7fad5209df3ac11ea17ae4 (patch) | |
| tree | 6fd2b9ca2b8e41fc6390760e149a032e9092df26 /src/raylib.c | |
| parent | 5928706912d852619bc1f68b0caa01ef3630d564 (diff) | |
| download | mruby-raylib-903461780d64927f0d7fad5209df3ac11ea17ae4.tar.gz mruby-raylib-903461780d64927f0d7fad5209df3ac11ea17ae4.zip | |
complete texture methods
Diffstat (limited to 'src/raylib.c')
| -rw-r--r-- | src/raylib.c | 68 |
1 files changed, 66 insertions, 2 deletions
diff --git a/src/raylib.c b/src/raylib.c index ae076ec..f5a94bd 100644 --- a/src/raylib.c +++ b/src/raylib.c @@ -37,6 +37,61 @@ mrb_Texture_initialize(mrb_state* mrb, mrb_value self) { } static mrb_value +mrb_Texture_get_width(mrb_state* mrb, mrb_value self) { + Texture *texture = NULL; + texture = DATA_GET_PTR(mrb, self, &Texture_type, Texture); + return mrb_fixnum_value(texture->width); +} + +static mrb_value +mrb_Texture_set_width(mrb_state* mrb, mrb_value self) { + Texture *texture = NULL; + texture = DATA_GET_PTR(mrb, self, &Texture_type, Texture); + mrb_int width; + mrb_get_args(mrb, "i", &width); + texture->width = width; + return mrb_fixnum_value(texture->width); +} + +static mrb_value +mrb_Texture_get_height(mrb_state* mrb, mrb_value self) { + Texture *texture = NULL; + texture = DATA_GET_PTR(mrb, self, &Texture_type, Texture); + return mrb_fixnum_value(texture->height); +} + +static mrb_value +mrb_Texture_set_height(mrb_state* mrb, mrb_value self) { + Texture *texture = NULL; + texture = DATA_GET_PTR(mrb, self, &Texture_type, Texture); + mrb_int height; + mrb_get_args(mrb, "i", &height); + texture->height = height; + return mrb_fixnum_value(texture->height); +} + +static mrb_value +mrb_Texture_get_id(mrb_state* mrb, mrb_value self) { + Texture *texture = NULL; + texture = DATA_GET_PTR(mrb, self, &Texture_type, Texture); + return mrb_fixnum_value(texture->id); +} + +static mrb_value +mrb_Texture_get_mipmaps(mrb_state* mrb, mrb_value self) { + Texture *texture = NULL; + texture = DATA_GET_PTR(mrb, self, &Texture_type, Texture); + return mrb_fixnum_value(texture->mipmaps); +} + +static mrb_value +mrb_Texture_get_format(mrb_state* mrb, mrb_value self) { + Texture *texture = NULL; + texture = DATA_GET_PTR(mrb, self, &Texture_type, Texture); + return mrb_fixnum_value(texture->format); +} + +static mrb_value mrb_draw_texture(mrb_state* mrb, mrb_value self) { mrb_value texture; mrb_int x; @@ -53,8 +108,6 @@ mrb_draw_texture(mrb_state* mrb, mrb_value self) { return mrb_nil_value(); } - - static mrb_value mrb_Color_initialize(mrb_state* mrb, mrb_value self) { mrb_int r = 255; @@ -348,6 +401,17 @@ mrb_mruby_raylib_gem_init(mrb_state* mrb) { struct RClass *texture_class = mrb_define_class_under(mrb, raylib, "Texture", mrb->object_class); MRB_SET_INSTANCE_TT(texture_class, MRB_TT_DATA); mrb_define_method(mrb, texture_class, "initialize", mrb_Texture_initialize, MRB_ARGS_REQ(1)); + mrb_define_method(mrb, texture_class, "width", mrb_Texture_get_width, MRB_ARGS_NONE()); + mrb_define_method(mrb, texture_class, "width=", mrb_Texture_set_width, MRB_ARGS_REQ(1)); + mrb_define_method(mrb, texture_class, "w", mrb_Texture_get_width, MRB_ARGS_NONE()); + mrb_define_method(mrb, texture_class, "w=", mrb_Texture_set_width, MRB_ARGS_REQ(1)); + mrb_define_method(mrb, texture_class, "height", mrb_Texture_get_height, MRB_ARGS_NONE()); + mrb_define_method(mrb, texture_class, "height=", mrb_Texture_set_height, MRB_ARGS_REQ(1)); + mrb_define_method(mrb, texture_class, "h", mrb_Texture_get_height, MRB_ARGS_NONE()); + mrb_define_method(mrb, texture_class, "h=", mrb_Texture_set_height, MRB_ARGS_REQ(1)); + mrb_define_method(mrb, texture_class, "id", mrb_Texture_get_id, MRB_ARGS_NONE()); + mrb_define_method(mrb, texture_class, "mipmaps", mrb_Texture_get_mipmaps, MRB_ARGS_NONE()); + mrb_define_method(mrb, texture_class, "format", mrb_Texture_get_format, MRB_ARGS_NONE()); #if defined(PLATFORM_WEB) mrb_define_class_method(mrb, raylib, "emscripten_set_main_loop", mrb_emscripten_set_main_loop, MRB_ARGS_NONE()); |
