diff --git a/headers/enduro2d/core/render.hpp b/headers/enduro2d/core/render.hpp index adf88318..49774c6b 100644 --- a/headers/enduro2d/core/render.hpp +++ b/headers/enduro2d/core/render.hpp @@ -816,23 +816,23 @@ namespace e2d class viewport_command final { public: viewport_command() = delete; - viewport_command(const b2u& viewport_rect) noexcept; - viewport_command(const b2u& viewport_rect, const b2u& scissor_rect) noexcept; + viewport_command(const b2i& viewport_rect) noexcept; + viewport_command(const b2i& viewport_rect, const b2i& scissor_rect) noexcept; - viewport_command& viewport_rect(const b2u& value) noexcept; - viewport_command& scissor_rect(const b2u& value) noexcept; + viewport_command& viewport_rect(const b2i& value) noexcept; + viewport_command& scissor_rect(const b2i& value) noexcept; viewport_command& scissoring(bool value) noexcept; - b2u& viewport_rect() noexcept; - b2u& scissor_rect() noexcept; + b2i& viewport_rect() noexcept; + b2i& scissor_rect() noexcept; bool& scissoring() noexcept; - const b2u& viewport_rect() const noexcept; - const b2u& scissor_rect() const noexcept; + const b2i& viewport_rect() const noexcept; + const b2i& scissor_rect() const noexcept; bool scissoring() const noexcept; private: - b2u viewport_rect_ = b2u::zero(); - b2u scissor_rect_ = b2u::zero(); + b2i viewport_rect_ = b2i::zero(); + b2i scissor_rect_ = b2i::zero(); bool scissoring_ = false; }; diff --git a/samples/sources/sample_00/sample_00.cpp b/samples/sources/sample_00/sample_00.cpp index e9e74212..d3471c52 100644 --- a/samples/sources/sample_00/sample_00.cpp +++ b/samples/sources/sample_00/sample_00.cpp @@ -193,7 +193,7 @@ namespace the().execute(render::command_block<64>() .add_command(render::viewport_command( - the().framebuffer_size())) + the().framebuffer_size().cast_to())) .add_command(render::clear_command() .color_value({1.f, 0.4f, 0.f, 1.f})) .add_command(render::draw_command(material_, geometry_))); diff --git a/samples/sources/sample_01/sample_01.cpp b/samples/sources/sample_01/sample_01.cpp index 1c825d0c..d3287d47 100644 --- a/samples/sources/sample_01/sample_01.cpp +++ b/samples/sources/sample_01/sample_01.cpp @@ -254,7 +254,7 @@ namespace the().execute(render::command_block<64>() .add_command(render::viewport_command( - the().framebuffer_size())) + the().framebuffer_size().cast_to())) .add_command(render::clear_command() .color_value({1.f, 0.4f, 0.f, 1.f})) .add_command(render::draw_command(material_, geometry_))); diff --git a/samples/sources/sample_02/sample_02.cpp b/samples/sources/sample_02/sample_02.cpp index 62bccd06..65604ff0 100644 --- a/samples/sources/sample_02/sample_02.cpp +++ b/samples/sources/sample_02/sample_02.cpp @@ -224,7 +224,7 @@ namespace the().execute(render::command_block<64>() .add_command(render::target_command(render_target_)) - .add_command(render::viewport_command(render_target_->size())) + .add_command(render::viewport_command(render_target_->size().cast_to())) .add_command(render::clear_command() .color_value({0.f, 0.4f, 0.f, 1.f})) .add_command(render::draw_command(material_, geometry_, tex_props_))); @@ -233,8 +233,8 @@ namespace .add_command(render::target_command(nullptr)) .add_command(render::clear_command() .color_value(color::blue())) - .add_command(render::viewport_command(the().framebuffer_size()) - .scissor_rect(make_rect(v2u{100u}, the().framebuffer_size() - 200u))) + .add_command(render::viewport_command(the().framebuffer_size().cast_to()) + .scissor_rect(make_rect(v2i{100}, the().framebuffer_size().cast_to() - 200))) .add_command(render::clear_command() .color_value({1.f, 0.4f, 0.f, 1.f})) .add_command(render::draw_command(material_, geometry_, rt_props_))); diff --git a/samples/sources/sample_03/sample_03.cpp b/samples/sources/sample_03/sample_03.cpp index 23d41c4d..9dc4e046 100644 --- a/samples/sources/sample_03/sample_03.cpp +++ b/samples/sources/sample_03/sample_03.cpp @@ -49,8 +49,6 @@ namespace owner.for_joined_components( [](const ecs::const_entity&, camera& cam){ if ( !cam.target() ) { - cam.viewport( - the().framebuffer_size()); cam.projection(math::make_orthogonal_lh_matrix4( the().real_size().cast_to(), 0.f, 1000.f)); } diff --git a/samples/sources/sample_04/sample_04.cpp b/samples/sources/sample_04/sample_04.cpp index 6c07a3dd..2de24d79 100644 --- a/samples/sources/sample_04/sample_04.cpp +++ b/samples/sources/sample_04/sample_04.cpp @@ -42,8 +42,6 @@ namespace owner.for_joined_components( [](const ecs::const_entity&, camera& cam){ if ( !cam.target() ) { - cam.viewport( - the().framebuffer_size()); cam.projection(math::make_orthogonal_lh_matrix4( the().real_size().cast_to(), 0.f, 1000.f)); } diff --git a/samples/sources/sample_05/sample_05.cpp b/samples/sources/sample_05/sample_05.cpp index 5740be19..b3911ab8 100644 --- a/samples/sources/sample_05/sample_05.cpp +++ b/samples/sources/sample_05/sample_05.cpp @@ -67,7 +67,7 @@ namespace void frame_render() final { the().execute(render::command_block<64>() .add_command(render::viewport_command( - the().framebuffer_size())) + the().framebuffer_size().cast_to())) .add_command(render::clear_command() .color_value({1.f, 0.4f, 0.f, 1.f}))); } diff --git a/samples/sources/sample_06/sample_06.cpp b/samples/sources/sample_06/sample_06.cpp index 5e9579a9..5ec4aae6 100644 --- a/samples/sources/sample_06/sample_06.cpp +++ b/samples/sources/sample_06/sample_06.cpp @@ -80,8 +80,6 @@ namespace owner.for_joined_components( [](const ecs::const_entity&, camera& cam){ if ( !cam.target() ) { - cam.viewport( - the().framebuffer_size()); cam.projection(math::make_orthogonal_lh_matrix4( the().real_size().cast_to(), 0.f, 1000.f)); } diff --git a/samples/sources/sample_07/sample_07.cpp b/samples/sources/sample_07/sample_07.cpp index dce8351c..d246d4be 100644 --- a/samples/sources/sample_07/sample_07.cpp +++ b/samples/sources/sample_07/sample_07.cpp @@ -42,8 +42,6 @@ namespace owner.for_joined_components( [](const ecs::const_entity&, camera& cam){ if ( !cam.target() ) { - cam.viewport( - the().framebuffer_size()); cam.projection(math::make_orthogonal_lh_matrix4( the().real_size().cast_to(), 0.f, 1000.f)); } diff --git a/sources/enduro2d/core/dbgui.cpp b/sources/enduro2d/core/dbgui.cpp index 6fa21d35..ec93c67e 100644 --- a/sources/enduro2d/core/dbgui.cpp +++ b/sources/enduro2d/core/dbgui.cpp @@ -174,8 +174,8 @@ namespace e2d render_.execute(render::command_block<8>() .add_command(render::viewport_command( - framebuffer_size.cast_to(), - clip_r.cast_to())) + framebuffer_size.cast_to(), + clip_r.cast_to())) .add_command(render::draw_command(material_, geometry, mprops_) .index_range(first_index, pcmd.ElemCount))); } diff --git a/sources/enduro2d/core/render.cpp b/sources/enduro2d/core/render.cpp index 9e9a7c9c..c534a2aa 100644 --- a/sources/enduro2d/core/render.cpp +++ b/sources/enduro2d/core/render.cpp @@ -1076,20 +1076,20 @@ namespace e2d // viewport_command // - render::viewport_command::viewport_command(const b2u& viewport_rect) noexcept + render::viewport_command::viewport_command(const b2i& viewport_rect) noexcept : viewport_rect_(viewport_rect) {} - render::viewport_command::viewport_command(const b2u& viewport_rect, const b2u& scissor_rect) noexcept + render::viewport_command::viewport_command(const b2i& viewport_rect, const b2i& scissor_rect) noexcept : viewport_rect_(viewport_rect) , scissor_rect_(scissor_rect) , scissoring_(true) {} - render::viewport_command& render::viewport_command::viewport_rect(const b2u& value) noexcept { + render::viewport_command& render::viewport_command::viewport_rect(const b2i& value) noexcept { viewport_rect_ = value; return *this; } - render::viewport_command& render::viewport_command::scissor_rect(const b2u& value) noexcept { + render::viewport_command& render::viewport_command::scissor_rect(const b2i& value) noexcept { scissor_rect_ = value; scissoring_ = true; return *this; @@ -1100,11 +1100,11 @@ namespace e2d return *this; } - b2u& render::viewport_command::viewport_rect() noexcept { + b2i& render::viewport_command::viewport_rect() noexcept { return viewport_rect_; } - b2u& render::viewport_command::scissor_rect() noexcept { + b2i& render::viewport_command::scissor_rect() noexcept { return scissor_rect_; } @@ -1112,11 +1112,11 @@ namespace e2d return scissoring_; } - const b2u& render::viewport_command::viewport_rect() const noexcept { + const b2i& render::viewport_command::viewport_rect() const noexcept { return viewport_rect_; } - const b2u& render::viewport_command::scissor_rect() const noexcept { + const b2i& render::viewport_command::scissor_rect() const noexcept { return scissor_rect_; } diff --git a/sources/enduro2d/core/render_impl/render_opengl.cpp b/sources/enduro2d/core/render_impl/render_opengl.cpp index bbd191e5..3ea19bea 100644 --- a/sources/enduro2d/core/render_impl/render_opengl.cpp +++ b/sources/enduro2d/core/render_impl/render_opengl.cpp @@ -1032,7 +1032,7 @@ namespace e2d render& render::execute(const viewport_command& command) { E2D_ASSERT(is_in_main_thread()); - const b2u viewport = math::make_minmax_rect(command.viewport_rect()); + const b2i viewport = math::make_minmax_rect(command.viewport_rect()); GL_CHECK_CODE(state_->dbg(), glViewport( math::numeric_cast(viewport.position.x), math::numeric_cast(viewport.position.y), @@ -1040,7 +1040,7 @@ namespace e2d math::numeric_cast(viewport.size.y))); if ( command.scissoring() ) { - const b2u scissor = math::make_minmax_rect(command.scissor_rect()); + const b2i scissor = math::make_minmax_rect(command.scissor_rect()); GL_CHECK_CODE(state_->dbg(), glScissor( math::numeric_cast(scissor.position.x), math::numeric_cast(scissor.position.y),