Reimplement list sorting and Fix UI7 Layers

This commit is contained in:
2026-01-22 16:34:46 +01:00
parent 2b7d25cf06
commit 0db4953125
8 changed files with 30 additions and 17 deletions

View File

@@ -90,7 +90,6 @@ PD_LITHIUM_API void DrawList::Optimize() {
PD_LITHIUM_API Command::Ref DrawList::GetNewCmd() {
Command::Ref cmd = pPool.NewCmd();
cmd->Layer = pLayer;
cmd->Index = pPool.Size() - 1;
cmd->Tex = CurrentTex;
pClipCmd(cmd);

View File

@@ -51,10 +51,10 @@ PD_UI7_API void Button::Draw() {
// io->Ren->OnScreen(screen);
list->PathRect(FinalPos(), FinalPos() + size, io->FrameRounding);
list->PathFill(io->Theme->Get(color));
list->pLayer++;
list->LayerUp();
list->DrawText(FinalPos() + size * 0.5 - tdim * 0.5, label,
io->Theme->Get(UI7Color_Text));
list->pLayer--;
list->LayerDown();
}
PD_UI7_API void Button::Update() {

View File

@@ -84,11 +84,11 @@ PD_UI7_API void DragData<T>::Draw() {
list->PathRect(FinalPos() + fvec2(off_x, 0),
FinalPos() + td + io->FramePadding, io->FrameRounding);
list->PathFill(io->Theme->Get(UI7Color_Button));
list->pLayer++;
list->LayerUp();
list->DrawTextEx(FinalPos() + fvec2(off_x, 0), p,
io->Theme->Get(UI7Color_Text), LiTextFlags_AlignMid,
td + io->FramePadding);
list->pLayer--;
list->LayerDown();
off_x += td.x + io->ItemSpace.x + io->FramePadding.x;
}
list->DrawText(FinalPos() + fvec2(off_x, io->FramePadding.y * 0.5), label,

View File

@@ -29,11 +29,11 @@ PD_UI7_API void Image::Draw() {
// Assert(io.get() && list.get(), "Did you run Container::Init correctly?");
// Assert(img.get(), "Image is nullptr!");
// io->Ren->OnScreen(screen);
list->pLayer++;
list->LayerUp();
list->DrawTexture(img);
list->DrawRectFilled(FinalPos(), newsize, 0xffffffff);
list->DrawSolid();
list->pLayer--;
list->LayerDown();
}
} // namespace UI7
} // namespace PD

View File

@@ -242,7 +242,7 @@ PD_UI7_API void Menu::DrawBaseLayout() {
if (!(Flags & UI7MenuFlags_NoResize)) {
Container::Ref r = DynObj::New(
[](IO::Ref io, Li::DrawList::Ref l, UI7::Container* self) {
l->pLayer = 1;
l->Layer(1);
l->PathAdd(self->FinalPos() + self->GetSize() - fvec2(0, 20));
l->PathAdd(self->FinalPos() + self->GetSize());
l->PathAdd(self->FinalPos() + self->GetSize() - fvec2(20, 0));
@@ -258,7 +258,7 @@ PD_UI7_API void Menu::DrawBaseLayout() {
/** Background */
Container::Ref r = DynObj::New([](IO::Ref io, Li::DrawList::Ref l,
UI7::Container* self) {
l->pLayer = 0;
l->Layer(0);
l->PathRectEx(self->FinalPos(), self->FinalPos() + self->GetSize(), 10.f,
LiPathRectFlags_KeepTop | LiPathRectFlags_KeepBot);
l->PathFill(io->Theme->Get(UI7Color_Background));
@@ -275,11 +275,11 @@ PD_UI7_API void Menu::DrawBaseLayout() {
if (!(Flags & UI7MenuFlags_NoTitlebar)) {
Container::Ref r = DynObj::New(
[=, this](UI7::IO::Ref io, Li::DrawList::Ref l, UI7::Container* self) {
l->pLayer = 20;
l->Layer(20);
/** Header Bar */
l->DrawRectFilled(self->FinalPos(), self->GetSize(),
io->Theme->Get(UI7Color_Header));
l->pLayer = 21;
l->Layer(21);
/** Inline if statement to shift the Text if collapse sym is shown */
/** What the hell is this code btw (didn't found a better way) */
l->DrawText(self->FinalPos() + fvec2((Flags & UI7MenuFlags_NoCollapse)
@@ -300,7 +300,7 @@ PD_UI7_API void Menu::DrawBaseLayout() {
r = DynObj::New([=, this](UI7::IO::Ref io, Li::DrawList::Ref l,
UI7::Container* self) {
/** This sym actually requires layer 21 (i dont know why) */
l->pLayer = 21;
l->Layer(21);
/**
* Symbol (Position Swapping set by pIsOpen ? openpos : closepos;)
*/