Implement VCanvas and Update TextElem

- Text now requires a font and is able to take an individual scale
- Container requires &ref for Elements to make sure they always exist
- SetViewport now sets the canvas as well
- SetBaseViewport Sets the Virtual Canvas Size
- Layout Now requires a Drawlist reference in Render function
- main.cpp: updated the template
This commit is contained in:
2026-04-03 12:43:49 +02:00
parent 1cf3b6f8e6
commit a776addf11
8 changed files with 97 additions and 60 deletions
+7 -8
View File
@@ -3,17 +3,16 @@
namespace PD {
namespace Ultra {
PD_API void Layout::SetFont(PD::Li::Font& font) { pList.SetFont(&font); }
PD_API void Layout::Render() {
pList.Clear();
PD_API void Layout::Render(PD::Li::Drawlist& list) {
float fc = list.GetFontScale();
list.SetFontscale(GetCanvas().VTranslateFontscale(fc));
for (auto& it : GetElements()) {
it->Update();
it->Draw(pList);
it->Draw(list);
}
pList.DrawText(PD::fvec2(5, GetBotLeft().y - 40),
std::format("Lyt: [{}]", GetRenderspace()).c_str(),
0xffff00ff);
list.DrawText(PD::fvec2(5, GetBotLeft().y - 40),
std::format("Lyt: [{}]", GetRenderspace()).c_str(), 0xffff00ff);
list.SetFontscale(fc);
}
} // namespace Ultra
} // namespace PD