Make UI7::IO::CurrentViewPort a Reference (finally)
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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,10 +40,10 @@ 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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user