rework FontPixelSizeConfig struct
This commit is contained in:
@@ -33,15 +33,7 @@ namespace OpenVulkano::Scene
|
|||||||
|
|
||||||
m_atlasData = std::make_shared<AtlasData>();
|
m_atlasData = std::make_shared<AtlasData>();
|
||||||
const auto& [lib, face] = FontAtlasGeneratorBase::InitFreetype(source);
|
const auto& [lib, face] = FontAtlasGeneratorBase::InitFreetype(source);
|
||||||
if (m_pixelSizeConfig.isPixelSize)
|
FT_Set_Pixel_Sizes(face.get(), 0, m_pixelSizeConfig.CalculatePixelSize());
|
||||||
{
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
auto [allGlyphs, area] = InitGlyphsForPacking(chset, face);
|
auto [allGlyphs, area] = InitGlyphsForPacking(chset, face);
|
||||||
const double atlasWidth = ceil(sqrt(area));
|
const double atlasWidth = ceil(sqrt(area));
|
||||||
|
|||||||
@@ -11,11 +11,24 @@
|
|||||||
|
|
||||||
namespace OpenVulkano::Scene
|
namespace OpenVulkano::Scene
|
||||||
{
|
{
|
||||||
struct FontPixelSizeConfig
|
class FontPixelSizeConfig
|
||||||
{
|
{
|
||||||
float size = 24.f;
|
public:
|
||||||
float dpi = 72.f;
|
FontPixelSizeConfig(float size = 24.f, float dpi = 72.f, bool isPixelSize = true)
|
||||||
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
|
class BitmapFontAtlasGenerator : public FontAtlasGeneratorBase
|
||||||
|
|||||||
Reference in New Issue
Block a user