diff --git a/headers/enduro2d/high/components/sprite_renderer.hpp b/headers/enduro2d/high/components/sprite_renderer.hpp index c1766925..dcd448b0 100644 --- a/headers/enduro2d/high/components/sprite_renderer.hpp +++ b/headers/enduro2d/high/components/sprite_renderer.hpp @@ -80,6 +80,7 @@ namespace e2d static const char* title; void operator()(gcomponent& c) const; + void operator()(gcomponent& c, gizmos_context& ctx) const; }; } diff --git a/sources/enduro2d/high/components/sprite_renderer.cpp b/sources/enduro2d/high/components/sprite_renderer.cpp index 2ff0fc93..9a1b57f6 100644 --- a/sources/enduro2d/high/components/sprite_renderer.cpp +++ b/sources/enduro2d/high/components/sprite_renderer.cpp @@ -149,7 +149,7 @@ namespace e2d dependencies.add_dependency( path::combine(ctx.parent_address, ctx.root["atlas"].GetString())); } - + if ( ctx.root.HasMember("sprite") ) { dependencies.add_dependency( path::combine(ctx.parent_address, ctx.root["sprite"].GetString())); @@ -196,4 +196,21 @@ namespace e2d ///TODO(BlackMat): add 'sprite' inspector ///TODO(BlackMat): add 'materials' inspector } + + void component_inspector::operator()( + gcomponent& c, + gizmos_context& ctx) const + { + if ( const sprite_asset::ptr& spr_a = c->sprite() ) { + const sprite& spr = spr_a->content(); + const v2f& s = spr.texrect().size; + const v2f& p = spr.texrect().position - spr.pivot(); + ctx.draw_wire_rect( + {p.x + 0.f, p.y + 0.f}, + {p.x + s.x, p.y + 0.f}, + {p.x + s.x, p.y + s.y}, + {p.x + 0.f, p.y + s.y}, + color32::magenta()); + } + } }