diff --git a/examples/12_floating_pixel.cpp b/examples/12_floating_pixel.cpp index 6f44a782f88ce7e79f0369390621e93f276b685e..2832295b45f763af548d76fa722ae16931543bbd 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 e63fe9e401b13b2e5a8c2fd795bccf1bd159b712..b6f26d000773721ff52481bcb00545639410c25f 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 39002d279298cd300265c56ee2d8ae9028a1e444..b044fc59f4dc3e29af30421a281b623f60288c6c 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 50c0260bd0d51c83472f856365b29d5c034d80ff..08081ccf54b7a738922466b1bc8440c19fda9fd3 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 f74c78dc3f402733e6f9df3eae6aeb32f906e7f1..5e1492ec765222c5dbbad24669cfe1c3ab2fb3b8 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;