diff options
Diffstat (limited to 'src/crepe')
-rw-r--r-- | src/crepe/facade/SDLContext.cpp | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/src/crepe/facade/SDLContext.cpp b/src/crepe/facade/SDLContext.cpp index 31b0a0b..dc3f362 100644 --- a/src/crepe/facade/SDLContext.cpp +++ b/src/crepe/facade/SDLContext.cpp @@ -12,6 +12,7 @@ #include <cmath> #include <cstddef> #include <functional> +#include <iostream> #include <memory> #include <stdexcept> @@ -152,16 +153,23 @@ SDL_FRect SDLContext::get_dst_rect(const DestinationRectangleData & ctx) const { size *= cam_aux_data.render_scale * ctx.img_scale * data.scale_offset; if (ctx.sprite.data.world_space) { - vec2 multiplier = cam_aux_data.cam_pos - + (cam_aux_data.zoomed_viewport / 2) * cam_aux_data.render_scale - - size / 2 + cam_aux_data.bar_size; - screen_pos += multiplier; + screen_pos = (screen_pos - cam_aux_data.cam_pos + + cam_aux_data.zoomed_viewport / 2) + * cam_aux_data.render_scale + - size / 2 + cam_aux_data.bar_size; } else { - vec2 multiplier = (cam_aux_data.zoomed_viewport / 2) * cam_aux_data.render_scale + screen_pos = (screen_pos + cam_aux_data.zoomed_viewport / 2) * cam_aux_data.render_scale - size / 2 + cam_aux_data.bar_size; - screen_pos += multiplier; } + cout << "HALLO" << endl; + cout << screen_pos.x << " " << screen_pos.y << endl; + cout << data.position_offset.x << " " << data.position_offset.y << endl; + cout << ctx.pos.x << " " << ctx.pos.y << endl; + cout << size.x << " " << size.y << endl; + cout << cam_aux_data.render_scale.x << " " << cam_aux_data.render_scale.y << endl; + cout << cam_aux_data.bar_size.x << " " << cam_aux_data.bar_size.y << endl; + return SDL_FRect{ .x = screen_pos.x, .y = screen_pos.y, @@ -195,6 +203,8 @@ void SDLContext::draw(const RenderContext & ctx) { double angle = ctx.angle + data.angle_offset; + cout << dstrect.x << " " << dstrect.y << " " << dstrect.w << " " << dstrect.h << endl; + this->set_color_texture(ctx.texture, ctx.sprite.data.color); SDL_RenderCopyExF(this->game_renderer.get(), ctx.texture.get_img(), srcrect_ptr, &dstrect, angle, NULL, render_flip); |