# Changes
- Remove () from vec formatter -Add Merge function to DrawList to Move Data into the Current DrawList - Fix stupid bug in Rect.hpp which caused some problems in line rendering - Remove some unused UI7 Flags - io: Allocate FinalDrawList and add GetViewPort func - Readd TreeNodes to Menu - Add ABout/Style and Metrics Menu to Context - Add some Variables for cliprects in ui7 container.hpp - Add InputHandler functionality to DynObj - Fix Menu Layout Render Order - Add Better Menu Sorting to Context # ppam - Use stringview instead of hardcoded const char* # Todos - Work on the Lithium 3D System - Fix UI7 Menu Order to Pop new Menus into the front instead of the background - Add Scrolling support to menu (or integrate it into layout maybe)
This commit is contained in:
@ -17,6 +17,8 @@ void RoundedRect(PD::Li::DrawList::Ref l, PD::fvec2 p, PD::fvec2 s, PD::u32 clr,
|
||||
}
|
||||
|
||||
int v = 20;
|
||||
int TheScale = 1;
|
||||
bool AboutOderSo = true;
|
||||
|
||||
int main() {
|
||||
void *PD_INIT_DATA = nullptr;
|
||||
@ -63,9 +65,6 @@ int main() {
|
||||
ui7->AddViewPort(VpTop, PD::ivec4(0, 0, 400, 240));
|
||||
ui7->UseViewPort(VpTop);
|
||||
ui7->pIO->Font = font;
|
||||
PD::UI7::Menu::Ref menu = PD::UI7::Menu::New("Test", ui7->pIO);
|
||||
bool open_haxx = true;
|
||||
menu->pIsShown = &open_haxx;
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/** MainLoop */
|
||||
#ifndef __3DS__
|
||||
@ -81,6 +80,7 @@ int main() {
|
||||
int wx, wy;
|
||||
glfwGetWindowSize(win, &wx, &wy);
|
||||
PD::Li::Gfx::pGfx->ViewPort = PD::ivec2(wx, wy);
|
||||
// ui7->pIO->GetViewPort(VpTop)->pSize = PD::ivec4(0, 0, wx, wy);
|
||||
#endif
|
||||
/** Rendering some stuff */
|
||||
List->DrawSolid();
|
||||
@ -90,7 +90,10 @@ int main() {
|
||||
RoundedRect(List, PD::fvec2(200, 50), 100, 0xffffffff,
|
||||
((1 + std::sin(PD::OS::GetTime() / 1000.f)) * 0.5f) * 100.f);
|
||||
List->DrawText(PD::fvec2(50, 190), "OK", 0xffffffff);
|
||||
List->DrawLine(PD::fvec2(0), PD::fvec2(1000, 600), 0xffffffff);
|
||||
// List->DrawLine(PD::fvec2(0), PD::fvec2(1000, 600), 0xffffffff);
|
||||
List->PathAdd(500);
|
||||
List->PathAdd(550);
|
||||
List->PathStroke(0xff00ffff, TheScale);
|
||||
// List->DrawRectFilled(PD::fvec2(10, 10), PD::fvec2(1260, 700),
|
||||
// 0xffffffff);
|
||||
/** Draw text */
|
||||
@ -103,10 +106,12 @@ int main() {
|
||||
PD::Hid::MousePos()) +
|
||||
"\nUI7 Version: " + PD::UI7::GetVersion(),
|
||||
0xff000000);
|
||||
ui7->pIO->InputHandler->CurrentMenu = menu->pID;
|
||||
if (menu->pIsOpen) {
|
||||
if (ui7->BeginMenu("Test")) {
|
||||
auto menu = ui7->pCurrent;
|
||||
menu->Label("Hello");
|
||||
menu->Label("World!");
|
||||
menu->Checkbox("About Menu", AboutOderSo);
|
||||
menu->DragData("Line", &TheScale);
|
||||
if (menu->Button("Test")) {
|
||||
break;
|
||||
}
|
||||
@ -117,9 +122,50 @@ int main() {
|
||||
menu->Label(
|
||||
std::format("Left: {}", PD::Hid::IsHeld(PD::Hid::Key::Touch)));
|
||||
menu->DragData("Value", &v, 1);
|
||||
ui7->EndMenu();
|
||||
}
|
||||
menu->Update();
|
||||
if (ui7->BeginMenu("Yet another Window")) {
|
||||
auto menu = ui7->pCurrent;
|
||||
menu->Label(std::format("this->Pos: {}", menu->pLayout->GetPosition()));
|
||||
menu->Label(
|
||||
std::format("Vertices: {}", PD::Li::Gfx::pGfx->VertexCounter));
|
||||
menu->Label(std::format("Indices: {}", PD::Li::Gfx::pGfx->IndexCounter));
|
||||
ui7->EndMenu();
|
||||
}
|
||||
if (ui7->BeginMenu("#Debug (UI7)")) {
|
||||
auto menu = ui7->pCurrent;
|
||||
menu->Label(std::format("Framerate: {:.1f} [{:.2f}]", ui7->pIO->Framerate,
|
||||
ui7->pIO->Delta));
|
||||
menu->SeparatorText("Input");
|
||||
menu->Label(std::format("FocusedMenu: #{:08X}",
|
||||
ui7->pIO->InputHandler->FocusedMenu));
|
||||
menu->Label(std::format("FocusedMenuRect: {}",
|
||||
ui7->pIO->InputHandler->FocusedMenuRect));
|
||||
menu->SeparatorText("Menu Order");
|
||||
for (auto &it : ui7->pDFO) {
|
||||
menu->Label(std::format("{}", ui7->pMenus[it]->pID.GetName()));
|
||||
}
|
||||
ui7->EndMenu();
|
||||
}
|
||||
if (ui7->BeginMenu("NoDebug")) {
|
||||
auto m = ui7->pCurrent;
|
||||
if (m->BeginTreeNode("Test")) {
|
||||
m->Label("Hello World!");
|
||||
if (m->BeginTreeNode("AnotherNode")) {
|
||||
m->Label("Another Label!");
|
||||
m->EndTreeNode();
|
||||
}
|
||||
m->EndTreeNode();
|
||||
}
|
||||
m->Label("Yes another Label!");
|
||||
ui7->EndMenu();
|
||||
}
|
||||
ui7->AboutMenu(&AboutOderSo);
|
||||
ui7->MetricsMenu();
|
||||
ui7->StyleEditor();
|
||||
PD::TT::Beg("ui7->Update");
|
||||
ui7->Update();
|
||||
PD::TT::End("ui7->Update");
|
||||
/** Render DrawData */
|
||||
#ifdef __3DS__
|
||||
C3D_FrameBegin(C3D_FRAME_SYNCDRAW);
|
||||
@ -129,10 +175,9 @@ int main() {
|
||||
PD::TT::Beg("REN");
|
||||
PD::Li::Gfx::NewFrame();
|
||||
PD::Li::Gfx::RenderDrawData(List->pDrawList);
|
||||
PD::Li::Gfx::RenderDrawData(menu->pLayout->GetDrawList()->pDrawList);
|
||||
PD::Li::Gfx::RenderDrawData(ui7->GetDrawData()->pDrawList);
|
||||
/** Clear The List */
|
||||
List->Clear();
|
||||
menu->pLayout->GetDrawList()->pDrawList.clear();
|
||||
PD::TT::End("REN");
|
||||
#ifndef __3DS__
|
||||
/** Do OS Specifc Stuff (swapp buffers / window buttan events) */
|
||||
|
Reference in New Issue
Block a user