From 0092edf54f423e2f7454c1c8a1a76c60808ad623 Mon Sep 17 00:00:00 2001 From: tobid7 Date: Wed, 21 Feb 2024 20:17:12 +0100 Subject: [PATCH] -> Implement Debug Colors - Debug Colors - Debug Menus - Formatting --- include/renderd7/Color.hpp | 2 +- source/UI7.cpp | 42 ++++++++++++++++++++++++-------------- source/nimg.cpp | 6 +++--- source/renderd7.cpp | 4 ++-- 4 files changed, 33 insertions(+), 21 deletions(-) diff --git a/include/renderd7/Color.hpp b/include/renderd7/Color.hpp index 5677225..104e685 100644 --- a/include/renderd7/Color.hpp +++ b/include/renderd7/Color.hpp @@ -12,7 +12,7 @@ #define UNPACK_BGRA(col) (uint8_t)(col >> 8), (col >> 16), (col >> 24), (col) inline uint32_t RGBA8(uint8_t r, uint8_t g, uint8_t b, uint8_t a = 255) { -#define ISIMPLEPAK(x, y) (((x) & 0xff) << y) +#define ISIMPLEPAK(x, y) (((x)&0xff) << y) return (ISIMPLEPAK(r, 0) | ISIMPLEPAK(g, 8) | ISIMPLEPAK(b, 16) | ISIMPLEPAK(a, 24)); } diff --git a/source/UI7.cpp b/source/UI7.cpp index 99f69db..ffa9095 100644 --- a/source/UI7.cpp +++ b/source/UI7.cpp @@ -65,6 +65,19 @@ struct UI7ID { int lt; }; +std::vector ui7i_debug_colors{ + 0xff0000ff, // lvl 0 + 0xff3344ff, // lvl 1 + 0xffff44ff, // lvl 2 + 0xffff4422, // lvl 3 +}; + +unsigned int UI7CtxDebugCol(int lvl) { + if (lvl < 0) return 0; + if (lvl >= (int)ui7i_debug_colors.size()) return 0; + return ui7i_debug_colors[lvl]; +} + struct UI7OBJ { UI7OBJ() {} UI7OBJ(const R7Vec4 &i0, const int &i1) { @@ -74,22 +87,19 @@ struct UI7OBJ { } void Debug() { RenderD7::OnScreen(s ? Top : Bottom); + auto clr = UI7CtxDebugCol(type); RenderD7::Draw2::TriangleLined(R7Vec2(box.x, box.y), R7Vec2(box.x + box.z, box.y), - R7Vec2(box.x, box.y + box.w), 0xff0000ff); - RenderD7::Draw2::TriangleLined( - R7Vec2(box.x, box.y + box.w), R7Vec2(box.x + box.z, box.y), - R7Vec2(box.x + box.z, box.y + box.w), 0xff0000ff); + R7Vec2(box.x, box.y + box.w), clr); + RenderD7::Draw2::TriangleLined(R7Vec2(box.x, box.y + box.w), + R7Vec2(box.x + box.z, box.y), + R7Vec2(box.x + box.z, box.y + box.w), clr); } R7Vec4 box; int type; bool s = false; }; -std::vector ui7i_debug_colors{ - 0x00000000, -}; - struct UI7_Ctx { UI7_Ctx() { delta = 0.0f; @@ -254,7 +264,7 @@ bool Button(const std::string &label, R7Vec2 size) { } RD7Color btn = RD7Color_Button; R7Vec2 pos = GetCursorPos(); - UI7CtxRegObj(UI7OBJ(R7Vec4(pos, size), 0)); + UI7CtxRegObj(UI7OBJ(R7Vec4(pos, size), 1)); if (RenderD7::Hid::IsEvent("touch", RenderD7::Hid::Up) && InBox(RenderD7::Hid::GetLastTouchPosition(), pos, size)) { @@ -300,11 +310,11 @@ void Checkbox(const std::string &label, bool &c) { if (c == true) { RenderD7::Draw2::RFS(pos + R7Vec2(2, 2), cbs - R7Vec2(4, 4), RenderD7::StyleColor(RD7Color_Checkmark)); - UI7CtxRegObj(UI7OBJ(R7Vec4(pos + R7Vec2(2, 2), cbs - R7Vec2(4, 4)), 2)); + UI7CtxRegObj(UI7OBJ(R7Vec4(pos + R7Vec2(2, 2), cbs - R7Vec2(4, 4)), 3)); } RenderD7::Draw2::Text(pos + R7Vec2(cbs.x + 5, 1), label); - UI7CtxRegObj(UI7OBJ(R7Vec4(pos, cbs + R7Vec2(txtdim.x + 5, 0)), 0)); - UI7CtxRegObj(UI7OBJ(R7Vec4(pos, cbs), 1)); + UI7CtxRegObj(UI7OBJ(R7Vec4(pos, cbs + R7Vec2(txtdim.x + 5, 0)), 1)); + UI7CtxRegObj(UI7OBJ(R7Vec4(pos, cbs), 2)); } void Label(const std::string &label, RD7TextFlags flags) { @@ -313,9 +323,9 @@ void Label(const std::string &label, RD7TextFlags flags) { R7Vec2 pos = GetCursorPos(); float tbh = RenderD7::TextGetSize() * 40; if (flags & RD7TextFlags_AlignRight) { - UI7CtxRegObj(UI7OBJ(R7Vec4(pos - R7Vec2(textdim.x, 0), textdim), 0)); + UI7CtxRegObj(UI7OBJ(R7Vec4(pos - R7Vec2(textdim.x, 0), textdim), 1)); } else { - UI7CtxRegObj(UI7OBJ(R7Vec4(pos, textdim), 0)); + UI7CtxRegObj(UI7OBJ(R7Vec4(pos, textdim), 1)); } // Remove some y offset cause texts have some offset UI7CtxCursorMove(textdim - R7Vec2(0, 4)); @@ -344,7 +354,7 @@ void Image(RenderD7::Image *img) { if (!UI7CtxValidate()) return; R7Vec2 pos = GetCursorPos(); UI7CtxCursorMove(R7Vec2(img->get_size().x, img->get_size().y)); - UI7CtxRegObj(UI7OBJ(R7Vec4(pos, img->get_size()), 0)); + UI7CtxRegObj(UI7OBJ(R7Vec4(pos, img->get_size()), 1)); RenderD7::Draw2::Image(img, pos); } @@ -458,6 +468,8 @@ bool BeginMenu(const std::string &title, R7Vec2 size, UI7MenuFlags flags) { } SetCursorPos(R7Vec2(5, tbh + 5)); + UI7CtxRegObj(UI7OBJ(R7Vec4(R7Vec2(), size), 0)); + if (titlebar) UI7CtxRegObj(UI7OBJ(R7Vec4(R7Vec2(), R7Vec2(size.x, tbh)), 1)); return UI7CtxBeginMenu(title); } diff --git a/source/nimg.cpp b/source/nimg.cpp index 2bdfdc1..fd46b72 100644 --- a/source/nimg.cpp +++ b/source/nimg.cpp @@ -7,9 +7,9 @@ // Use an Npi simplifier cause I am lazy #define reca_cc(x) reinterpret_cast(x) #define reca_c(x) reinterpret_cast(x) -#define pak32(q, w, e, r) \ - ((((q) & 0xff) << 0) | (((w) & 0xff) << 8) | (((e) & 0xff) << 16) | \ - (((r) & 0xff) << 24)) +#define pak32(q, w, e, r) \ + ((((q)&0xff) << 0) | (((w)&0xff) << 8) | (((e)&0xff) << 16) | \ + (((r)&0xff) << 24)) // Stupid RLE Algorithm void npi_compress(std::vector& ret, diff --git a/source/renderd7.cpp b/source/renderd7.cpp index 0c59ccd..8ae0d29 100644 --- a/source/renderd7.cpp +++ b/source/renderd7.cpp @@ -594,10 +594,10 @@ void RenderD7::RSettings::Draw(void) const { // List Bg for (int i = 0; i < 12; i++) { if ((i % 2 == 0)) - RenderD7::Draw2::RFS(R7Vec2(0, 40 + (i) * 15), R7Vec2(400, 15), + RenderD7::Draw2::RFS(R7Vec2(0, 40 + (i)*15), R7Vec2(400, 15), RenderD7::StyleColor(RD7Color_List0)); else - RenderD7::Draw2::RFS(R7Vec2(0, 40 + (i) * 15), R7Vec2(400, 15), + RenderD7::Draw2::RFS(R7Vec2(0, 40 + (i)*15), R7Vec2(400, 15), RenderD7::StyleColor(RD7Color_List1)); }