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));  }  | 
