Make UI7::IO::CurrentViewPort a Reference (finally)

This commit is contained in:
2026-03-18 21:33:35 +01:00
parent 3d8b57ead6
commit 0501a4f87c
6 changed files with 18 additions and 15 deletions

View File

@@ -55,7 +55,7 @@ class PD_API Slider : public Container {
this->min = min; this->min = min;
this->max = max; this->max = max;
this->precision = precision; this->precision = precision;
this->width = io->CurrentViewPort.z * 0.3f; this->width = io->CurrentViewPort->pSize.z * 0.3f;
this->tdim = io->Font->GetTextBounds(label, io->FontScale); this->tdim = io->Font->GetTextBounds(label, io->FontScale);
} }
~Slider() = default; ~Slider() = default;

View File

@@ -43,8 +43,8 @@ class PD_API IO {
FDL = Li::DrawList::New(pCtx); FDL = Li::DrawList::New(pCtx);
DeltaStats = TimeStats::New(60); DeltaStats = TimeStats::New(60);
/** Probably not the best solution i guess */ /** Probably not the best solution i guess */
CurrentViewPort.z = pCtx.Gfx()->ViewPort.x; CurrentViewPort =
CurrentViewPort.w = pCtx.Gfx()->ViewPort.y; ViewPort::New("Default", ivec4(ivec2(0, 0), pCtx.Gfx()->ViewPort));
} }
~IO() {} ~IO() {}
@@ -61,7 +61,8 @@ class PD_API IO {
* Possible thanks to the DrawList::Merge Feature * Possible thanks to the DrawList::Merge Feature
*/ */
Li::DrawList::Ref FDL = nullptr; Li::DrawList::Ref FDL = nullptr;
ivec4 CurrentViewPort = ivec4(0, 0, 0, 0); ViewPort::Ref CurrentViewPort;
// ivec4 CurrentViewPort = ivec4(0, 0, 0, 0);
std::unordered_map<u32, ViewPort::Ref> ViewPorts; std::unordered_map<u32, ViewPort::Ref> ViewPorts;
float Framerate = 0.f; float Framerate = 0.f;
float Delta = 0.f; float Delta = 0.f;

View File

@@ -45,7 +45,7 @@ class PD_API Layout {
Scrolling[0] = false; Scrolling[0] = false;
Scrolling[1] = false; Scrolling[1] = false;
CursorInit(); CursorInit();
Pos = fvec2(io->CurrentViewPort.x, io->CurrentViewPort.y); Pos = fvec2(io->CurrentViewPort->pSize.x, io->CurrentViewPort->pSize.y);
Size = 0; Size = 0;
WorkRect = fvec4(IO->MenuPadding, Size - (fvec2(2) * IO->MenuPadding)); WorkRect = fvec4(IO->MenuPadding, Size - (fvec2(2) * IO->MenuPadding));
} }

View File

@@ -29,7 +29,8 @@ PD_API void Label::Draw() {
// Assert(io.get() && list.get(), "Did you run Container::Init correctly?"); // Assert(io.get() && list.get(), "Did you run Container::Init correctly?");
// io->Ren->OnScreen(screen); // io->Ren->OnScreen(screen);
list->DrawTextEx(FinalPos(), label, io->Theme->Get(UI7Color_Text), list->DrawTextEx(FinalPos(), label, io->Theme->Get(UI7Color_Text),
LiTextFlags_NoOOS, PD::fvec2(0, io->CurrentViewPort.w)); LiTextFlags_NoOOS,
PD::fvec2(0, io->CurrentViewPort->pSize.w));
} }
PD_API void Label::Update() { PD_API void Label::Update() {
@@ -39,11 +40,11 @@ PD_API void Label::Update() {
* Needs a max size (to support sligning dynaically by the window size) * Needs a max size (to support sligning dynaically by the window size)
*/ */
if (io->WrapLabels) { if (io->WrapLabels) {
this->label = this->label = io->Font->pWrapText(
io->Font->pWrapText(this->label, io->FontScale, this->label, io->FontScale,
PD::fvec2(io->CurrentViewPort.z - FinalPos().x * 4, PD::fvec2(io->CurrentViewPort->pSize.z - FinalPos().x * 4,
io->CurrentViewPort.w), io->CurrentViewPort->pSize.w),
this->tdim); this->tdim);
SetSize(tdim); SetSize(tdim);
} }
} }

View File

@@ -239,9 +239,10 @@ PD_API void Menu::HandleTitlebarActions() {
// Keep Window In Viewport // Keep Window In Viewport
// Maybe i need to add some operators to vec // Maybe i need to add some operators to vec
pLayout->Pos.x = std::clamp<float>(pLayout->Pos.x, -pLayout->Size.x + 10, pLayout->Pos.x = std::clamp<float>(pLayout->Pos.x, -pLayout->Size.x + 10,
pIO->CurrentViewPort.z - 10); pIO->CurrentViewPort->pSize.z - 10);
pLayout->Pos.y = std::clamp<float>(pLayout->Pos.y, pIO->CurrentViewPort.y, pLayout->Pos.y =
pIO->CurrentViewPort.w - 10); std::clamp<float>(pLayout->Pos.y, pIO->CurrentViewPort->pSize.y,
pIO->CurrentViewPort->pSize.w - 10);
} }
} }
} }

View File

@@ -48,7 +48,7 @@ PD_API void Context::UseViewPort(const ID& id) {
if (!pIO->ViewPorts.count(id)) { if (!pIO->ViewPorts.count(id)) {
return; return;
} }
pIO->CurrentViewPort = pIO->ViewPorts[id]->GetSize(); pIO->CurrentViewPort = pIO->ViewPorts[id];
} }
PD_API Menu::Ref Context::BeginMenu(const ID& id, UI7MenuFlags flags, PD_API Menu::Ref Context::BeginMenu(const ID& id, UI7MenuFlags flags,