diff --git a/.travis.yml b/.travis.yml index baddf363..824c132d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -96,14 +96,14 @@ matrix: osx_image: xcode10 stage: macosx name: debug, xcode10 - addons: { homebrew: { packages: ["git-lfs"] } } + addons: { homebrew: { packages: ["git-lfs"], update: true } } script: ./scripts/build_debug.sh - os: osx osx_image: xcode10 stage: macosx name: release, xcode10 - addons: { homebrew: { packages: ["git-lfs"] } } + addons: { homebrew: { packages: ["git-lfs"], update: true } } script: ./scripts/build_release.sh # @@ -114,14 +114,14 @@ matrix: osx_image: xcode11 stage: macosx name: debug, xcode11 - addons: { homebrew: { packages: ["git-lfs"] } } + addons: { homebrew: { packages: ["git-lfs"], update: true } } script: ./scripts/build_debug.sh - os: osx osx_image: xcode11 stage: macosx name: release, xcode11 - addons: { homebrew: { packages: ["git-lfs"] } } + addons: { homebrew: { packages: ["git-lfs"], update: true } } script: ./scripts/build_release.sh # @@ -132,7 +132,7 @@ matrix: osx_image: xcode10 stage: coverage name: coverage, xcode10 - addons: { homebrew: { packages: ["git-lfs", "lcov"] } } + addons: { homebrew: { packages: ["git-lfs", "lcov"], update: true } } script: ./scripts/upload_coverage.sh before_install: diff --git a/headers/enduro2d/core/_core.hpp b/headers/enduro2d/core/_core.hpp index 5001417c..74381773 100644 --- a/headers/enduro2d/core/_core.hpp +++ b/headers/enduro2d/core/_core.hpp @@ -73,6 +73,7 @@ namespace e2d (x1) (x2) (unknown)) + ENUM_HPP_REGISTER_TRAITS(mouse_button) ENUM_HPP_CLASS_DECL(keyboard_key, u16, (_0) (_1) (_2) (_3) (_4) (_5) (_6) (_7) (_8) (_9) @@ -110,20 +111,18 @@ namespace e2d (kp_add) (kp_enter) (kp_equal) (kp_decimal) (unknown)) + ENUM_HPP_REGISTER_TRAITS(keyboard_key) ENUM_HPP_CLASS_DECL(mouse_button_action, u8, (press) (release) (unknown)) + ENUM_HPP_REGISTER_TRAITS(mouse_button_action) ENUM_HPP_CLASS_DECL(keyboard_key_action, u8, (press) (repeat) (release) (unknown)) + ENUM_HPP_REGISTER_TRAITS(keyboard_key_action) } - -ENUM_HPP_REGISTER_TRAITS(e2d::mouse_button) -ENUM_HPP_REGISTER_TRAITS(e2d::keyboard_key) -ENUM_HPP_REGISTER_TRAITS(e2d::mouse_button_action) -ENUM_HPP_REGISTER_TRAITS(e2d::keyboard_key_action) diff --git a/headers/enduro2d/core/debug.hpp b/headers/enduro2d/core/debug.hpp index 6a16b7d8..3cf7a9a0 100644 --- a/headers/enduro2d/core/debug.hpp +++ b/headers/enduro2d/core/debug.hpp @@ -60,6 +60,8 @@ namespace e2d level min_level_ = level::trace; }; + ENUM_HPP_REGISTER_TRAITS(debug::level) + class debug_stream_sink final : public debug::sink { public: debug_stream_sink(output_stream_uptr stream); @@ -76,8 +78,6 @@ namespace e2d }; } -ENUM_HPP_REGISTER_TRAITS(e2d::debug::level) - namespace e2d { template < typename T, typename... Args > diff --git a/headers/enduro2d/core/render.hpp b/headers/enduro2d/core/render.hpp index a6e2b36c..9f103237 100644 --- a/headers/enduro2d/core/render.hpp +++ b/headers/enduro2d/core/render.hpp @@ -98,6 +98,8 @@ namespace e2d pixel_type type_ = pixel_type::rgba8; }; + ENUM_HPP_REGISTER_TRAITS(pixel_declaration::pixel_type) + bool operator==( const pixel_declaration& l, const pixel_declaration& r) noexcept; @@ -129,6 +131,8 @@ namespace e2d index_type type_ = index_type::unsigned_short; }; + ENUM_HPP_REGISTER_TRAITS(index_declaration::index_type) + bool operator==( const index_declaration& l, const index_declaration& r) noexcept; @@ -205,6 +209,8 @@ namespace e2d std::size_t bytes_per_vertex_ = 0; }; + ENUM_HPP_REGISTER_TRAITS(vertex_declaration::attribute_type) + bool operator==( const vertex_declaration& l, const vertex_declaration& r) noexcept; @@ -278,6 +284,8 @@ namespace e2d internal_state_uptr state_; }; + ENUM_HPP_REGISTER_TRAITS(index_buffer::usage) + // // vertex buffer // @@ -303,6 +311,8 @@ namespace e2d internal_state_uptr state_; }; + ENUM_HPP_REGISTER_TRAITS(vertex_buffer::usage) + // // render target // @@ -328,6 +338,8 @@ namespace e2d internal_state_uptr state_; }; + ENUM_HPP_REGISTER_TRAITS(render_target::external_texture) + // // render // @@ -971,27 +983,21 @@ namespace e2d class internal_state; std::unique_ptr state_; }; -} -ENUM_HPP_REGISTER_TRAITS(e2d::pixel_declaration::pixel_type) -ENUM_HPP_REGISTER_TRAITS(e2d::index_declaration::index_type) -ENUM_HPP_REGISTER_TRAITS(e2d::vertex_declaration::attribute_type) -ENUM_HPP_REGISTER_TRAITS(e2d::index_buffer::usage) -ENUM_HPP_REGISTER_TRAITS(e2d::vertex_buffer::usage) -ENUM_HPP_REGISTER_TRAITS(e2d::render_target::external_texture) -ENUM_HPP_REGISTER_TRAITS(e2d::render::topology) -ENUM_HPP_REGISTER_TRAITS(e2d::render::stencil_op) -ENUM_HPP_REGISTER_TRAITS(e2d::render::compare_func) -ENUM_HPP_REGISTER_TRAITS(e2d::render::culling_mode) -ENUM_HPP_REGISTER_TRAITS(e2d::render::culling_face) -ENUM_HPP_REGISTER_TRAITS(e2d::render::blending_factor) -ENUM_HPP_REGISTER_TRAITS(e2d::render::blending_equation) -ENUM_HPP_REGISTER_TRAITS(e2d::render::blending_color_mask) -ENUM_HPP_REGISTER_TRAITS(e2d::render::sampler_wrap) -ENUM_HPP_REGISTER_TRAITS(e2d::render::sampler_min_filter) -ENUM_HPP_REGISTER_TRAITS(e2d::render::sampler_mag_filter) -ENUM_HPP_REGISTER_TRAITS(e2d::render::clear_command::buffer) -ENUM_HPP_REGISTER_TRAITS(e2d::render::api_profile) + ENUM_HPP_REGISTER_TRAITS(render::topology) + ENUM_HPP_REGISTER_TRAITS(render::stencil_op) + ENUM_HPP_REGISTER_TRAITS(render::compare_func) + ENUM_HPP_REGISTER_TRAITS(render::culling_mode) + ENUM_HPP_REGISTER_TRAITS(render::culling_face) + ENUM_HPP_REGISTER_TRAITS(render::blending_factor) + ENUM_HPP_REGISTER_TRAITS(render::blending_equation) + ENUM_HPP_REGISTER_TRAITS(render::blending_color_mask) + ENUM_HPP_REGISTER_TRAITS(render::sampler_wrap) + ENUM_HPP_REGISTER_TRAITS(render::sampler_min_filter) + ENUM_HPP_REGISTER_TRAITS(render::sampler_mag_filter) + ENUM_HPP_REGISTER_TRAITS(render::clear_command::buffer) + ENUM_HPP_REGISTER_TRAITS(render::api_profile) +} namespace e2d { diff --git a/headers/enduro2d/core/window.hpp b/headers/enduro2d/core/window.hpp index abfbc00d..41379d75 100644 --- a/headers/enduro2d/core/window.hpp +++ b/headers/enduro2d/core/window.hpp @@ -91,6 +91,8 @@ namespace e2d std::unique_ptr state_; }; + ENUM_HPP_REGISTER_TRAITS(window::cursor_shapes) + class window_event_tracer final : public window::event_listener { public: window_event_tracer(debug& debug) noexcept; @@ -122,8 +124,6 @@ namespace e2d }; } -ENUM_HPP_REGISTER_TRAITS(e2d::window::cursor_shapes) - namespace e2d { template < typename T, typename... Args > diff --git a/headers/enduro2d/high/components/behaviour.hpp b/headers/enduro2d/high/components/behaviour.hpp index ed8fda9f..45185ce2 100644 --- a/headers/enduro2d/high/components/behaviour.hpp +++ b/headers/enduro2d/high/components/behaviour.hpp @@ -87,6 +87,7 @@ namespace e2d::behaviours ENUM_HPP_CLASS_DECL(fill_result, u8, (failed) (success)) + ENUM_HPP_REGISTER_TRAITS(fill_result) inline fill_result fill_meta_table(behaviour& behaviour) { if ( !behaviour.script() ) { @@ -116,6 +117,7 @@ namespace e2d::behaviours (failed) (success) (method_not_found)) + ENUM_HPP_REGISTER_TRAITS(call_result) template < typename... Args > call_result call_meta_method(behaviour& behaviour, str_view method, Args&&... args) { @@ -145,6 +147,3 @@ namespace e2d::behaviours return call_result::success; } } - -ENUM_HPP_REGISTER_TRAITS(e2d::behaviours::fill_result) -ENUM_HPP_REGISTER_TRAITS(e2d::behaviours::call_result) diff --git a/headers/enduro2d/high/components/camera.hpp b/headers/enduro2d/high/components/camera.hpp index 8d08aca1..3138de2e 100644 --- a/headers/enduro2d/high/components/camera.hpp +++ b/headers/enduro2d/high/components/camera.hpp @@ -54,9 +54,9 @@ namespace e2d render_target_ptr target_ = nullptr; color background_ = color::clear(); }; -} -ENUM_HPP_REGISTER_TRAITS(e2d::camera::modes) + ENUM_HPP_REGISTER_TRAITS(camera::modes) +} namespace e2d { diff --git a/headers/enduro2d/high/components/label.hpp b/headers/enduro2d/high/components/label.hpp index 52243eb6..2cffdaef 100644 --- a/headers/enduro2d/high/components/label.hpp +++ b/headers/enduro2d/high/components/label.hpp @@ -75,10 +75,10 @@ namespace e2d f32 outline_width_ = 0.f; color32 outline_color_ = color32::white(); }; -} -ENUM_HPP_REGISTER_TRAITS(e2d::label::haligns) -ENUM_HPP_REGISTER_TRAITS(e2d::label::valigns) + ENUM_HPP_REGISTER_TRAITS(label::haligns) + ENUM_HPP_REGISTER_TRAITS(label::valigns) +} namespace e2d { diff --git a/headers/enduro2d/high/components/layout.hpp b/headers/enduro2d/high/components/layout.hpp index 36ecaef1..0515d79f 100644 --- a/headers/enduro2d/high/components/layout.hpp +++ b/headers/enduro2d/high/components/layout.hpp @@ -71,13 +71,13 @@ namespace e2d flex_wraps flex_wrap_ = flex_wraps::no_wrap; flex_directions flex_direction_ = flex_directions::row; }; -} -ENUM_HPP_REGISTER_TRAITS(e2d::layout::directions) -ENUM_HPP_REGISTER_TRAITS(e2d::layout::align_modes) -ENUM_HPP_REGISTER_TRAITS(e2d::layout::justify_modes) -ENUM_HPP_REGISTER_TRAITS(e2d::layout::flex_wraps) -ENUM_HPP_REGISTER_TRAITS(e2d::layout::flex_directions) + ENUM_HPP_REGISTER_TRAITS(layout::directions) + ENUM_HPP_REGISTER_TRAITS(layout::align_modes) + ENUM_HPP_REGISTER_TRAITS(layout::justify_modes) + ENUM_HPP_REGISTER_TRAITS(layout::flex_wraps) + ENUM_HPP_REGISTER_TRAITS(layout::flex_directions) +} namespace e2d { diff --git a/headers/enduro2d/high/components/sprite_renderer.hpp b/headers/enduro2d/high/components/sprite_renderer.hpp index ff0b1b30..0653e0ba 100644 --- a/headers/enduro2d/high/components/sprite_renderer.hpp +++ b/headers/enduro2d/high/components/sprite_renderer.hpp @@ -59,10 +59,10 @@ namespace e2d sprite_asset::ptr sprite_; flat_map materials_; }; -} -ENUM_HPP_REGISTER_TRAITS(e2d::sprite_renderer::modes) -ENUM_HPP_REGISTER_TRAITS(e2d::sprite_renderer::blendings) + ENUM_HPP_REGISTER_TRAITS(sprite_renderer::modes) + ENUM_HPP_REGISTER_TRAITS(sprite_renderer::blendings) +} namespace e2d { diff --git a/headers/enduro2d/high/components/touchable.hpp b/headers/enduro2d/high/components/touchable.hpp index 0411cd29..c83de1f2 100644 --- a/headers/enduro2d/high/components/touchable.hpp +++ b/headers/enduro2d/high/components/touchable.hpp @@ -137,6 +137,8 @@ namespace e2d::touchable_events mouse_button button_ = mouse_button::left; }; + ENUM_HPP_REGISTER_TRAITS(touchable_events::mouse_evt::types) + class touch_evt final : public impl::base_evt { public: ENUM_HPP_CLASS_DECL(types, u8, @@ -159,10 +161,9 @@ namespace e2d::touchable_events types type_ = types::pressed; u32 finger_ = 0u; }; -} -ENUM_HPP_REGISTER_TRAITS(e2d::touchable_events::mouse_evt::types) -ENUM_HPP_REGISTER_TRAITS(e2d::touchable_events::touch_evt::types) + ENUM_HPP_REGISTER_TRAITS(touchable_events::touch_evt::types) +} namespace e2d { diff --git a/headers/enduro2d/utils/filesystem.hpp b/headers/enduro2d/utils/filesystem.hpp index ae603f18..ffeb3e8b 100644 --- a/headers/enduro2d/utils/filesystem.hpp +++ b/headers/enduro2d/utils/filesystem.hpp @@ -87,10 +87,9 @@ namespace e2d::filesystem (documents) (resources) (executable)) + ENUM_HPP_REGISTER_TRAITS(predef_path) bool extract_predef_path(str& dst, predef_path path_type); } -ENUM_HPP_REGISTER_TRAITS(e2d::filesystem::predef_path) - #include "filesystem.inl" diff --git a/headers/enduro2d/utils/image.hpp b/headers/enduro2d/utils/image.hpp index 3d232a01..c1087223 100644 --- a/headers/enduro2d/utils/image.hpp +++ b/headers/enduro2d/utils/image.hpp @@ -21,6 +21,7 @@ namespace e2d (png) (pvr) (tga)) + ENUM_HPP_REGISTER_TRAITS(image_file_format) ENUM_HPP_CLASS_DECL(image_data_format, u8, (a8) @@ -52,6 +53,7 @@ namespace e2d (rgba_pvrtc2_v2) (rgba_pvrtc4_v2)) + ENUM_HPP_REGISTER_TRAITS(image_data_format) class bad_image_access final : public exception { public: @@ -100,9 +102,6 @@ namespace e2d bool operator!=(const image& l, const image& r) noexcept; } -ENUM_HPP_REGISTER_TRAITS(e2d::image_file_format) -ENUM_HPP_REGISTER_TRAITS(e2d::image_data_format) - namespace e2d::images { bool try_load_image( diff --git a/sources/enduro2d/core/render_impl/render_opengl_base.hpp b/sources/enduro2d/core/render_impl/render_opengl_base.hpp index 11e040e1..46aed210 100644 --- a/sources/enduro2d/core/render_impl/render_opengl_base.hpp +++ b/sources/enduro2d/core/render_impl/render_opengl_base.hpp @@ -228,6 +228,7 @@ namespace e2d::opengl (sampler_cube) (unknown)) + ENUM_HPP_REGISTER_TRAITS(uniform_type) ENUM_HPP_CLASS_DECL(attribute_type, u8, (floating_point) @@ -241,11 +242,9 @@ namespace e2d::opengl (m4f) (unknown)) + ENUM_HPP_REGISTER_TRAITS(attribute_type) } -ENUM_HPP_REGISTER_TRAITS(e2d::opengl::uniform_type) -ENUM_HPP_REGISTER_TRAITS(e2d::opengl::attribute_type) - namespace e2d::opengl { GLenum convert_image_data_format_to_external_format(image_data_format f) noexcept;