From 167997c9f257e008f96760d603a36a5ab867946a Mon Sep 17 00:00:00 2001 From: namark <namark@disroot.org> Date: Tue, 20 Jul 2021 01:40:56 +0400 Subject: [PATCH] Aftermath of latest geom::vector changes, is it better? is it worse? dunno... feel like vector should be more permissive with conversion now, for consistency, but too afraid to tackle that now. --- examples/12_floating_pixel.cpp | 4 +++- examples/13_draw_line.cpp | 4 +++- examples/bonus_02_floating_trixels.cpp | 5 ++++- source/simple/graphical/color_vector.hpp | 2 +- source/simple/graphical/window.h | 4 ++-- 5 files changed, 13 insertions(+), 6 deletions(-) diff --git a/examples/12_floating_pixel.cpp b/examples/12_floating_pixel.cpp index 6f44a78..2832295 100644 --- a/examples/12_floating_pixel.cpp +++ b/examples/12_floating_pixel.cpp @@ -19,7 +19,9 @@ int main(int argc, char const* argv[]) try software_window win("Floating pixel", int2::one(400), window::flags::borderless); - const unsigned zoom = argc > 1 ? simple::support::ston<unsigned>(argv[1]) : 16; + const int zoom = argc > 1 ? simple::support::ston<int>(argv[1]) : 16; + if(zoom <= 0) + throw std::logic_error("zoom is not positive!"); const unsigned waypoint_count = argc > 2 ? simple::support::ston<unsigned>(argv[2]) : 5; const float fastity = argc > 3 ? simple::support::ston<float>(argv[3]) : 0.1; diff --git a/examples/13_draw_line.cpp b/examples/13_draw_line.cpp index e63fe9e..b6f26d0 100644 --- a/examples/13_draw_line.cpp +++ b/examples/13_draw_line.cpp @@ -38,7 +38,9 @@ int main(int argc, char const* argv[]) try software_window win("Line drawing", int2::one(400), window::flags::borderless); - const unsigned zoom = argc > 1 ? simple::support::ston<unsigned>(argv[1]) : 1; + const int zoom = argc > 1 ? simple::support::ston<int>(argv[1]) : 1; + if(zoom <= 0) + throw std::logic_error("zoom is not positive!"); const auto logical_size = win.surface().size() / zoom; surface canvas (logical_size, pixel_format(pixel_format::type::rgb24)); diff --git a/examples/bonus_02_floating_trixels.cpp b/examples/bonus_02_floating_trixels.cpp index 39002d2..b044fc5 100644 --- a/examples/bonus_02_floating_trixels.cpp +++ b/examples/bonus_02_floating_trixels.cpp @@ -34,7 +34,10 @@ struct floating_pixel int main(int argc, char const* argv[]) try { - const unsigned zoom = argc > 1 ? simple::support::ston<unsigned>(argv[1]) : 16; + const int zoom = argc > 1 ? simple::support::ston<int>(argv[1]) : 16; + if(zoom <= 0) + throw std::logic_error("zoom is not positive!"); + const unsigned waypoint_count = argc > 2 ? simple::support::ston<unsigned>(argv[2]) : 5; const float fastity = argc > 3 ? simple::support::ston<float>(argv[3]) : 0.1; const unsigned pixel_count = argc > 4 ? simple::support::ston<unsigned>(argv[4]) : 10000; diff --git a/source/simple/graphical/color_vector.hpp b/source/simple/graphical/color_vector.hpp index 50c0260..08081cc 100644 --- a/source/simple/graphical/color_vector.hpp +++ b/source/simple/graphical/color_vector.hpp @@ -215,7 +215,7 @@ namespace simple public support::define_array_operators<geom::vector<C,D,O>> { // revert these to default beahvior, in this context means no type promotion - template <typename, support::array_operator, typename> + template <typename, support::array_operator, typename, bool> using result = graphical::color_vector<C,D,O>; using compatibility_tag = graphical::color_vector<C,D,O>; }; diff --git a/source/simple/graphical/window.h b/source/simple/graphical/window.h index f74c78d..5e1492e 100644 --- a/source/simple/graphical/window.h +++ b/source/simple/graphical/window.h @@ -56,8 +56,8 @@ namespace simple::graphical }; - constexpr static const int2 undefined_position = int2::one() * SDL_WINDOWPOS_UNDEFINED; - constexpr static const int2 center_position = int2::one() * SDL_WINDOWPOS_CENTERED; + constexpr static const int2 undefined_position = int2::one() * int(SDL_WINDOWPOS_UNDEFINED); + constexpr static const int2 center_position = int2::one() * int(SDL_WINDOWPOS_CENTERED); int2 size() const noexcept; void size(int2 value) const noexcept; -- GitLab