Files

39 lines
1.1 KiB
C++
Raw Permalink Normal View History

2019-12-22 15:04:07 -05:00
#include "Runtime/GuiSys/CFontImageDef.hpp"
#include <algorithm>
2019-12-22 15:04:07 -05:00
#include "Runtime/Graphics/CTexture.hpp"
2016-03-19 14:32:30 -10:00
2021-04-10 01:42:06 -07:00
namespace metaforce {
2016-03-19 14:32:30 -10:00
2018-12-07 19:30:43 -10:00
CFontImageDef::CFontImageDef(const std::vector<TToken<CTexture>>& texs, float interval,
const zeus::CVector2f& cropFactor)
: x0_fps(interval), x14_cropFactor(cropFactor) {
x4_texs.reserve(texs.size());
for (const TToken<CTexture>& tok : texs) {
x4_texs.emplace_back(tok);
}
2016-03-19 14:32:30 -10:00
}
2017-01-29 20:58:59 -10:00
CFontImageDef::CFontImageDef(const TToken<CTexture>& tex, const zeus::CVector2f& cropFactor)
2018-12-07 19:30:43 -10:00
: x0_fps(0.f), x14_cropFactor(cropFactor) {
x4_texs.emplace_back(tex);
2016-03-19 14:32:30 -10:00
}
2018-12-07 19:30:43 -10:00
bool CFontImageDef::IsLoaded() const {
return std::all_of(x4_texs.cbegin(), x4_texs.cend(), [](const auto& token) { return token.IsLoaded(); });
2016-03-19 14:32:30 -10:00
}
2018-12-07 19:30:43 -10:00
s32 CFontImageDef::CalculateBaseline() const {
const CTexture* tex = x4_texs.front().GetObj();
return s32(tex->GetHeight() * x14_cropFactor.y()) * 2.5f / 3.f;
2017-01-29 18:16:20 -10:00
}
2018-12-07 19:30:43 -10:00
s32 CFontImageDef::CalculateHeight() const {
const CTexture* tex = x4_texs.front().GetObj();
s32 scaledH = tex->GetHeight() * x14_cropFactor.y();
return scaledH - (scaledH - CalculateBaseline());
2017-01-29 18:16:20 -10:00
}
2021-04-10 01:42:06 -07:00
} // namespace metaforce