summaryrefslogtreecommitdiff
path: root/src/sprite.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/sprite.cpp')
-rw-r--r--src/sprite.cpp15
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));
}