rework FontPixelSizeConfig struct
This commit is contained in:
@@ -33,15 +33,7 @@ namespace OpenVulkano::Scene
|
||||
|
||||
m_atlasData = std::make_shared<AtlasData>();
|
||||
const auto& [lib, face] = FontAtlasGeneratorBase::InitFreetype(source);
|
||||
if (m_pixelSizeConfig.isPixelSize)
|
||||
{
|
||||
FT_Set_Pixel_Sizes(face.get(), 0, m_pixelSizeConfig.size);
|
||||
}
|
||||
else
|
||||
{
|
||||
const float pixelSize = (m_pixelSizeConfig.size * m_pixelSizeConfig.dpi) / 72.0f;
|
||||
FT_Set_Pixel_Sizes(face.get(), 0, pixelSize);
|
||||
}
|
||||
FT_Set_Pixel_Sizes(face.get(), 0, m_pixelSizeConfig.CalculatePixelSize());
|
||||
|
||||
auto [allGlyphs, area] = InitGlyphsForPacking(chset, face);
|
||||
const double atlasWidth = ceil(sqrt(area));
|
||||
|
||||
@@ -11,11 +11,24 @@
|
||||
|
||||
namespace OpenVulkano::Scene
|
||||
{
|
||||
struct FontPixelSizeConfig
|
||||
class FontPixelSizeConfig
|
||||
{
|
||||
float size = 24.f;
|
||||
float dpi = 72.f;
|
||||
bool isPixelSize = true;
|
||||
public:
|
||||
FontPixelSizeConfig(float size = 24.f, float dpi = 72.f, bool isPixelSize = true)
|
||||
: m_size(size), m_dpi(dpi), m_isPixelSize(isPixelSize)
|
||||
{
|
||||
}
|
||||
void SetSize(float size) { m_size = size; }
|
||||
void SetDpi(float dpi) { m_dpi = dpi; }
|
||||
void SetIsPixelSize(bool isPixelSize) { m_isPixelSize = isPixelSize; }
|
||||
[[nodiscard]] float GetSize() const { return m_size; }
|
||||
[[nodiscard]] float GetDpi() const { return m_dpi; }
|
||||
[[nodiscard]] bool GetIsPixelSize() const { return m_isPixelSize; }
|
||||
[[nodiscard]] unsigned CalculatePixelSize() const { return m_isPixelSize ? m_size : (m_size * m_dpi) / 72.0f; }
|
||||
private:
|
||||
float m_size;
|
||||
float m_dpi;
|
||||
bool m_isPixelSize;
|
||||
};
|
||||
|
||||
class BitmapFontAtlasGenerator : public FontAtlasGeneratorBase
|
||||
|
||||
Reference in New Issue
Block a user