Add FOntRestore and Make Settings use default font

This commit is contained in:
tobid7 2024-05-19 15:55:32 +02:00
parent 62d37d227d
commit 17c36bb05e
8 changed files with 93 additions and 35 deletions

View File

@ -49,6 +49,7 @@ std::string TextShort(const std::string& in, int max_len);
void TextMaxBox(R7Vec2 size); void TextMaxBox(R7Vec2 size);
void TextDefaultBox(); void TextDefaultBox();
void TextFont(Font::Ref fnt); void TextFont(Font::Ref fnt);
void TextFontRestore();
void TextDefaultFont(); void TextDefaultFont();
namespace Draw2 { namespace Draw2 {
void Rect(R7Vec2 pos, R7Vec2 size, unsigned int color, int t = 1); void Rect(R7Vec2 pos, R7Vec2 size, unsigned int color, int t = 1);

View File

@ -21,6 +21,14 @@
#include <renderd7/external/json.hpp> #include <renderd7/external/json.hpp>
#include <renderd7/renderd7.hpp> #include <renderd7/renderd7.hpp>
namespace RenderD7 {
namespace IDB {
void Start();
void Stop();
void Restart();
} // namespace IDB
} // namespace RenderD7
// Outdated HidApi (HidV2Patched) // Outdated HidApi (HidV2Patched)
extern u32 d7_hDown; extern u32 d7_hDown;
extern u32 d7_hHeld; extern u32 d7_hHeld;

View File

@ -97,13 +97,13 @@ class RSettings : public RenderD7::Scene {
private: private:
/// @brief State (Define for Menus) /// @brief State (Define for Menus)
enum RState { enum RState {
RSETTINGS, RSETTINGS, // Main Settings Menu
RINFO, RINFO,
RSERVICES, RIDB, // Internal Debugger
RMCONFIG, ROVERLAYS,
RFTRACE, RFTRACE, // FTRace Menu
RUI7, RUI7, // UI7 Menu
RCREDITS RCREDITS // Unused?
}; };
/// @param shared_request Defines requests from Draw to Logic /// @param shared_request Defines requests from Draw to Logic

View File

@ -18,8 +18,6 @@
#include "scene.hpp" #include "scene.hpp"
extern void IdbServer();
int main() { int main() {
rd7_enable_memtrack = true; rd7_enable_memtrack = true;
rd7_do_splash = true; rd7_do_splash = true;
@ -28,7 +26,6 @@ int main() {
RD7::FadeIn(); RD7::FadeIn();
auto fnt = RD7::Font::New("romfs:/roboto_bold.bcfnt"); auto fnt = RD7::Font::New("romfs:/roboto_bold.bcfnt");
RD7::TextFont(fnt); RD7::TextFont(fnt);
// IdbServer();
// RD7::Init::NdspFirm(); // RD7::Init::NdspFirm();
RD7::Scene::Load(std::make_unique<Sample>()); RD7::Scene::Load(std::make_unique<Sample>());
RD7::Ftrace::End("app", "app_init"); RD7::Ftrace::End("app", "app_init");

View File

@ -107,10 +107,6 @@ void Sample::Draw() const {
RD7TextFlags_AlignRight); RD7TextFlags_AlignRight);
RD7::UndoColorEdit(RD7Color_Text);*/ RD7::UndoColorEdit(RD7Color_Text);*/
if (UI7::BeginMenu("RenderD7 Test Framework")) { if (UI7::BeginMenu("RenderD7 Test Framework")) {
UI7::SetCursorPos(R7Vec2(395, 2));
UI7::Label(RD7::FormatBytes(RD7::Memory::GetCurrent()),
RD7TextFlags_AlignRight);
UI7::RestoreCursor();
if (state == State_Menu) { if (state == State_Menu) {
UI7::Label("SZS: " + std::to_string(img.size())); UI7::Label("SZS: " + std::to_string(img.size()));
UI7::Grid("Images", R7Vec2(390, 180), testv2, display_icon, UI7::Grid("Images", R7Vec2(390, 180), testv2, display_icon,

View File

@ -25,6 +25,7 @@
const float rd7i_d7_dts = 0.5f; const float rd7i_d7_dts = 0.5f;
float rd7i_d2_txt_size = rd7i_d7_dts; float rd7i_d2_txt_size = rd7i_d7_dts;
C2D_Font rd7i_d2_fnt = nullptr; C2D_Font rd7i_d2_fnt = nullptr;
C2D_Font rd7i_d2_fntb = nullptr;
R7Vec2 rd7i_d7_mwh = R7Vec2(0, 0); R7Vec2 rd7i_d7_mwh = R7Vec2(0, 0);
std::map<std::string, float> rd7i_d2_ts; std::map<std::string, float> rd7i_d2_ts;
std::map<std::string, int> rd7i_d2_mln; std::map<std::string, int> rd7i_d2_mln;
@ -123,9 +124,24 @@ void TextMaxBox(R7Vec2 size) { rd7i_d7_mwh = size; }
void TextDefaultBox() { rd7i_d7_mwh = R7Vec2(0, 0); } void TextDefaultBox() { rd7i_d7_mwh = R7Vec2(0, 0); }
void TextFont(Font::Ref fnt) { rd7i_d2_fnt = fnt->Ptr(); } void TextFont(Font::Ref fnt) {
rd7i_d2_fntb = rd7i_d2_fnt;
rd7i_d2_fnt = fnt->Ptr();
}
void TextDefaultFont() { rd7i_d2_fnt = rd7i_base_font; } void TextFontRestore() {
// Create temp copy
// Restore other font
// Set other to temp
auto tmp = rd7i_d2_fnt;
rd7i_d2_fnt = rd7i_d2_fntb;
rd7i_d2_fntb = tmp;
}
void TextDefaultFont() {
rd7i_d2_fntb = rd7i_d2_fnt;
rd7i_d2_fnt = rd7i_base_font;
}
float TextGetSize() { return rd7i_d2_txt_size; } float TextGetSize() { return rd7i_d2_txt_size; }

View File

@ -230,10 +230,11 @@ void ServerThread(RenderD7::Parameter param) {
return; return;
} }
rd7i_idb_running = true; rd7i_idb_running = true;
rd7i_idb_fp = false;
atexit(KillIdbServer); atexit(KillIdbServer);
tcp_server server("0.0.0.0", 4727); tcp_server server("0.0.0.0", 4727);
int cmd = 0; int cmd = 0;
while (true && !rd7i_idb_fp) { while (!rd7i_idb_fp) {
size_t r = server.rec(&cmd, sizeof(int)); size_t r = server.rec(&cmd, sizeof(int));
if (r == 0) { if (r == 0) {
server.reconnect(); server.reconnect();
@ -259,6 +260,7 @@ void ServerThread(RenderD7::Parameter param) {
} else if (cmd == 3) { } else if (cmd == 3) {
rd7i_reacttion(3); rd7i_reacttion(3);
RenderD7::ExitApp(); RenderD7::ExitApp();
rd7i_idb_fp = true;
} else { } else {
rd7i_reacttion(1234); rd7i_reacttion(1234);
} }
@ -266,7 +268,21 @@ void ServerThread(RenderD7::Parameter param) {
rd7i_idb_running = false; rd7i_idb_running = false;
} }
void IdbServer() { namespace RenderD7 {
namespace IDB {
void Start() {
if (rd7i_idb_running) return;
rd7i_idb_server.initialize(ServerThread); rd7i_idb_server.initialize(ServerThread);
rd7i_idb_server.start(true); rd7i_idb_server.start(true);
} }
void Stop() {
if (!rd7i_idb_running) return;
rd7i_idb_fp = true;
KillIdbServer();
}
void Restart() {
Stop();
Start();
}
} // namespace IDB
} // namespace RenderD7

View File

@ -315,7 +315,6 @@ bool RenderD7::MainLoop() {
RenderD7::Ftrace::End("rd7sm", f2s(RenderD7::Scene::doLogic)); RenderD7::Ftrace::End("rd7sm", f2s(RenderD7::Scene::doLogic));
} }
// Disably Overlays For one Frame
RenderD7::Ftrace::End("rd7-core", f2s(RenderD7::MainLoop)); RenderD7::Ftrace::End("rd7-core", f2s(RenderD7::MainLoop));
return rd7i_running; return rd7i_running;
} }
@ -485,6 +484,9 @@ void RenderD7::FrameEnd() {
} }
RenderD7::RSettings::RSettings() { RenderD7::RSettings::RSettings() {
// RenderD7 Settings is designed for
// System Font
RenderD7::TextDefaultFont();
tmp_txt = RenderD7::TextGetSize(); tmp_txt = RenderD7::TextGetSize();
RenderD7::TextDefaultSize(); RenderD7::TextDefaultSize();
RenderD7::FadeIn(); RenderD7::FadeIn();
@ -496,7 +498,10 @@ RenderD7::RSettings::RSettings() {
stateftold = rd7i_ftraced; stateftold = rd7i_ftraced;
} }
RenderD7::RSettings::~RSettings() { RenderD7::CustomTextSize(tmp_txt); } RenderD7::RSettings::~RSettings() {
RenderD7::TextFontRestore();
RenderD7::CustomTextSize(tmp_txt);
}
std::vector<std::string> StrHelper(std::string input) { std::vector<std::string> StrHelper(std::string input) {
std::string ss(input); std::string ss(input);
@ -538,7 +543,10 @@ void RenderD7::RSettings::Draw(void) const {
shared_request[0x00000001] = RUI7; shared_request[0x00000001] = RUI7;
} }
if (UI7::Button("Overlays")) { if (UI7::Button("Overlays")) {
shared_request[0x00000001] = RMCONFIG; shared_request[0x00000001] = ROVERLAYS;
}
if (UI7::Button("IDB")) {
shared_request[0x00000001] = RIDB;
} }
if (UI7::Button("Back")) { if (UI7::Button("Back")) {
shared_request[0x00000002] = 1U; shared_request[0x00000002] = 1U;
@ -549,21 +557,32 @@ void RenderD7::RSettings::Draw(void) const {
UI7::EndMenu(); UI7::EndMenu();
} }
} else if (m_state == RSERVICES) { } else if (m_state == RIDB) {
RenderD7::OnScreen(Top); RenderD7::OnScreen(Top);
RenderD7::Draw2::RFS(R7Vec2(0, 0), R7Vec2(400, 240), if (UI7::BeginMenu("RenderD7 -> Debugger")) {
RenderD7::StyleColor(RD7Color_Background)); UI7::SetCursorPos(R7Vec2(395, 2));
RenderD7::Draw2::RFS(R7Vec2(0, 0), R7Vec2(400, 20), UI7::Label(RENDERD7VSTRING, RD7TextFlags_AlignRight);
RenderD7::StyleColor(RD7Color_Header)); UI7::RestoreCursor();
RenderD7::TextColorByBg(RD7Color_Header); UI7::Label("Server Running: " +
RenderD7::Draw2::Text(R7Vec2(5, 2), "RenderD7 -> Security"); std::string(rd7i_idb_running ? "true" : "false"));
RenderD7::Draw2::Text(R7Vec2(395, 2), RENDERD7VSTRING, UI7::EndMenu();
RD7TextFlags_AlignRight); }
RenderD7::UndoColorEdit(RD7Color_Text);
RenderD7::OnScreen(Bottom); RenderD7::OnScreen(Bottom);
RenderD7::Draw2::RFS(R7Vec2(0, 0), R7Vec2(320, 240), if (UI7::BeginMenu("Press \uE001 to go back!")) {
RenderD7::StyleColor(RD7Color_Background)); if (UI7::Button("Start Server")) {
RenderD7::Draw2::Text(R7Vec2(5, 2), "Press \uE001 to go back!"); RenderD7::IDB::Start();
}
UI7::SameLine();
if (UI7::Button("Stop Server")) {
RenderD7::IDB::Stop();
}
UI7::SameLine();
if (UI7::Button("Restart Server")) {
RenderD7::IDB::Restart();
}
UI7::EndMenu();
}
} else if (m_state == RINFO) { } else if (m_state == RINFO) {
std::string rd7ver = RENDERD7VSTRING; std::string rd7ver = RENDERD7VSTRING;
@ -711,7 +730,7 @@ void RenderD7::RSettings::Draw(void) const {
UI7::Checkbox("Debug", UI7::IsDebugging()); UI7::Checkbox("Debug", UI7::IsDebugging());
UI7::EndMenu(); UI7::EndMenu();
} }
} else if (m_state == RMCONFIG) { } else if (m_state == ROVERLAYS) {
RenderD7::OnScreen(Top); RenderD7::OnScreen(Top);
if (UI7::BeginMenu("RenderD7 -> Metrik")) { if (UI7::BeginMenu("RenderD7 -> Metrik")) {
UI7::SetCursorPos(R7Vec2(395, 2)); UI7::SetCursorPos(R7Vec2(395, 2));
@ -796,7 +815,12 @@ void RenderD7::RSettings::Logic() {
m_state = RSETTINGS; m_state = RSETTINGS;
} }
} }
if (m_state == RSERVICES) { if (m_state == ROVERLAYS) {
if (d7_hDown & KEY_B) {
m_state = RSETTINGS;
}
}
if (m_state == RIDB) {
if (d7_hDown & KEY_B) { if (d7_hDown & KEY_B) {
m_state = RSETTINGS; m_state = RSETTINGS;
} }