Refactor FontAtlas class
This commit is contained in:
@@ -10,9 +10,10 @@
|
||||
#include "Scene/Vertex.hpp"
|
||||
#include "Scene/Shader/Shader.hpp"
|
||||
#include "Scene/IFontAtlasGenerator.hpp"
|
||||
#include "Base/Logger.hpp"
|
||||
#include "Scene/Text/FontAtlasType.hpp"
|
||||
#include <optional>
|
||||
|
||||
|
||||
namespace OpenVulkano::Scene
|
||||
{
|
||||
namespace
|
||||
@@ -68,14 +69,11 @@ namespace OpenVulkano::Scene
|
||||
}
|
||||
}
|
||||
|
||||
LabelDrawable::LabelDrawable(const std::shared_ptr<AtlasData>& atlasData, const LabelDrawableSettings& settings)
|
||||
LabelDrawable::LabelDrawable(const std::shared_ptr<FontAtlas>& atlasData, const LabelDrawableSettings& settings)
|
||||
: Drawable(DrawEncoder::GetDrawEncoder<LabelDrawable>(), DrawPhase::MAIN), m_atlasData(atlasData)
|
||||
, m_labelBuffer(sizeof(LabelUniformData), &m_labelData, 4)
|
||||
{
|
||||
if (atlasData->glyphs.empty() || !atlasData->texture.size)
|
||||
{
|
||||
throw std::runtime_error("Can't create label drawable. Either glyphs or texture is empty");
|
||||
}
|
||||
if (!atlasData || !*atlasData) throw std::runtime_error("Can't create label drawable. Either glyphs or texture is empty");
|
||||
SetLabelSettings(settings);
|
||||
SetShader(IsBillboard() ? &BACKGROUND_BILLBOARD_SHADER : &BACKGROUND_SHADER);
|
||||
}
|
||||
@@ -97,9 +95,9 @@ namespace OpenVulkano::Scene
|
||||
|
||||
TextDrawable& textDrawable = m_texts.emplace_back(m_atlasData, config);
|
||||
textDrawable.GetConfig().backgroundColor.a = 0; // do not render glyph's background
|
||||
double lineHeight = m_atlasData->meta.lineHeight;
|
||||
double lineHeight = m_atlasData->GetLineHeight();
|
||||
textDrawable.GenerateText(text, m_position);
|
||||
textDrawable.SetShader(GetTextShader(m_atlasData->meta.atlasType, IsBillboard()));
|
||||
textDrawable.SetShader(GetTextShader(m_atlasData->GetAtlasType(), IsBillboard()));
|
||||
m_bbox.Grow(textDrawable.GetBoundingBox());
|
||||
// update position for next text entry
|
||||
m_position.y = m_bbox.GetMin().y - lineHeight;
|
||||
|
||||
Reference in New Issue
Block a user