diff options
Diffstat (limited to 'src/sprite.cpp')
-rw-r--r-- | src/sprite.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/sprite.cpp b/src/sprite.cpp index 8f25f03..dba9e22 100644 --- a/src/sprite.cpp +++ b/src/sprite.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2022 Frederico de Oliveira Linhares + * Copyright 2022-2023 Frederico de Oliveira Linhares * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -63,17 +63,17 @@ cg_cSprite_draw(mrb_state *mrb, mrb_value self) { mrb_value view_value; VK::View2D *view_2d; - mrb_float x, y, w, h; + mrb_float x, y, w, h, z_index{0.0}; auto ptr = (std::shared_ptr<VK::Sprite>*)DATA_PTR(self); - mrb_get_args(mrb, "offff", &view_value, &x, &y, &w, &h); + mrb_get_args(mrb, "offff|f", &view_value, &x, &y, &w, &h, &z_index); view_2d = cg_cView_to_view_2d(mrb, view_value); glm::vec4 rect(x, y, x + w, y + h); - auto &positions = view_2d->sprites_to_draw[ - cg_core.vk_swapchain->current_frame][*ptr]; - positions.push_back(rect); + auto &sprites_to_draw = view_2d->sprites_to_draw[ + cg_core.vk_swapchain->current_frame]; + sprites_to_draw.emplace_back(*ptr, rect, z_index); return self; } @@ -88,5 +88,6 @@ cg_sprite_init(mrb_state *mrb) MRB_SET_INSTANCE_TT(cg_cSprite, MRB_TT_DATA); mrb_define_method( mrb, cg_cSprite, "initialize", cg_cSprite_initialize, MRB_ARGS_REQ(5)); - mrb_define_method(mrb, cg_cSprite, "draw", cg_cSprite_draw, MRB_ARGS_REQ(5)); + mrb_define_method(mrb, cg_cSprite, "draw", cg_cSprite_draw, MRB_ARGS_REQ(5)| + MRB_ARGS_OPT(1)); } |