diff options
author | Frederico Linhares <fred@linhares.blue> | 2022-09-16 12:03:04 -0300 |
---|---|---|
committer | Frederico Linhares <fred@linhares.blue> | 2022-09-16 12:03:04 -0300 |
commit | 3d6ca447a7104c499e92fc954affdaf4bf011388 (patch) | |
tree | d759fbd39d3d66a2457ea92fc4eeb2c31b2cbe4f /src/sprite.cpp | |
parent | 0d0868611389b8dded0c1dfef7a530a4b6e1f148 (diff) |
feat Create View
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 7c1f109..96a702a 100644 --- a/src/sprite.cpp +++ b/src/sprite.cpp @@ -17,8 +17,9 @@ #include "sprite.hpp" #include "texture.hpp" -#include "vk/sprite.hpp" #include "vector_4d.hpp" +#include "view.hpp" +#include "vk/sprite.hpp" void cg_free_sprite(mrb_state *mrb, void* obj) @@ -55,13 +56,13 @@ cg_cSprite_initialize(mrb_state *mrb, mrb_value self) static mrb_value cg_cSprite_draw(mrb_state *mrb, mrb_value self) { - auto *ptr = (std::shared_ptr<VK::Sprite>*)DATA_PTR(self); - + std::shared_ptr<VK::View> *view; std::shared_ptr<glm::vec4> *position; + auto *ptr = (std::shared_ptr<VK::Sprite>*)DATA_PTR(self); - mrb_get_args(mrb, "d", &position, &cg_vector_4d_type); - auto &positions = cg_core.vk_graphics_pipeline_2d->sprites_to_draw[ - cg_core.vk_renderer->current_frame][*ptr]; + mrb_get_args(mrb, "dd", &view, &cg_view_type, &position, &cg_vector_4d_type); + auto &positions = (*view)->sprites_to_draw[ + cg_core.vk_swapchain->current_frame][*ptr]; positions.push_back(*position->get()); return self; @@ -77,5 +78,5 @@ 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(2)); - mrb_define_method(mrb, cg_cSprite, "draw", cg_cSprite_draw, MRB_ARGS_REQ(1)); + mrb_define_method(mrb, cg_cSprite, "draw", cg_cSprite_draw, MRB_ARGS_REQ(2)); } |