#pragma once #include #include namespace XCEngine { namespace Editor { namespace UI { inline ImVec2 ComputeFittedIconSize( int textureWidth, int textureHeight, const ImVec2& min, const ImVec2& max) { const float availableWidth = max.x - min.x; const float availableHeight = max.y - min.y; if (availableWidth <= 0.0f || availableHeight <= 0.0f || textureWidth <= 0 || textureHeight <= 0) { return ImVec2(0.0f, 0.0f); } const float scale = (std::min)( availableWidth / static_cast(textureWidth), availableHeight / static_cast(textureHeight)); return ImVec2( static_cast(textureWidth) * scale, static_cast(textureHeight) * scale); } } // namespace UI } // namespace Editor } // namespace XCEngine