Add scale for label

This commit is contained in:
Georg Hagen
2025-02-04 23:21:13 +01:00
parent 4a15c06c6f
commit 0d2bcbbdf6
5 changed files with 22 additions and 21 deletions

View File

@@ -84,9 +84,9 @@ namespace OpenVulkano::Scene
m_labelData.color = settings.backgroundColor;
m_labelData.hasRoundedCorners = settings.hasRoundedCorners;
m_labelData.hasArrow = settings.hasArrow;
m_labelData.cornerRadius = settings.cornerRadius * settings.cornerRadius;
m_labelData.arrowLength = settings.arrowLength;
m_labelData.arrowWidth = settings.arrowWidth;
m_labelData.cornerRadius = settings.cornerRadius * settings.cornerRadius * settings.scale;
m_labelData.arrowLength = settings.arrowLength * settings.scale;
m_labelData.arrowWidth = settings.arrowWidth * settings.scale;
}
void LabelDrawable::AddText(const std::string& text, const TextConfig& config)
@@ -96,18 +96,18 @@ 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->GetLineHeight();
textDrawable.GenerateText(text, m_position);
textDrawable.GenerateText(text, m_position, m_settings.scale);
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;
m_position.y = m_bbox.GetMin().y - lineHeight * m_settings.scale;
Math::Vector2f padding = m_settings.padding * 2;
if (m_settings.hasArrow) padding.y += m_settings.arrowLength;
Math::Vector2f padding = m_settings.padding * 2 * m_settings.scale;
if (m_settings.hasArrow) padding.y += m_settings.arrowLength * m_settings.scale;
m_labelData.textSize = m_bbox.GetSize() + padding;
m_labelData.bboxCenter = m_bbox.GetCenter();
if (m_settings.hasArrow) m_labelData.bboxCenter.y -= m_settings.arrowLength * 0.5f;
if (m_settings.hasArrow) m_labelData.bboxCenter.y -= m_settings.arrowLength * 0.5f * m_settings.scale;
}
std::optional<RayHit> LabelDrawable::Intersect(const Ray& ray) const