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 TextDefaultBox();
void TextFont(Font::Ref fnt);
void TextFontRestore();
void TextDefaultFont();
namespace Draw2 {
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/renderd7.hpp>
namespace RenderD7 {
namespace IDB {
void Start();
void Stop();
void Restart();
} // namespace IDB
} // namespace RenderD7
// Outdated HidApi (HidV2Patched)
extern u32 d7_hDown;
extern u32 d7_hHeld;

View File

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

View File

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

View File

@ -107,10 +107,6 @@ void Sample::Draw() const {
RD7TextFlags_AlignRight);
RD7::UndoColorEdit(RD7Color_Text);*/
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) {
UI7::Label("SZS: " + std::to_string(img.size()));
UI7::Grid("Images", R7Vec2(390, 180), testv2, display_icon,

View File

@ -25,6 +25,7 @@
const float rd7i_d7_dts = 0.5f;
float rd7i_d2_txt_size = rd7i_d7_dts;
C2D_Font rd7i_d2_fnt = nullptr;
C2D_Font rd7i_d2_fntb = nullptr;
R7Vec2 rd7i_d7_mwh = R7Vec2(0, 0);
std::map<std::string, float> rd7i_d2_ts;
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 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; }

View File

@ -230,10 +230,11 @@ void ServerThread(RenderD7::Parameter param) {
return;
}
rd7i_idb_running = true;
rd7i_idb_fp = false;
atexit(KillIdbServer);
tcp_server server("0.0.0.0", 4727);
int cmd = 0;
while (true && !rd7i_idb_fp) {
while (!rd7i_idb_fp) {
size_t r = server.rec(&cmd, sizeof(int));
if (r == 0) {
server.reconnect();
@ -259,6 +260,7 @@ void ServerThread(RenderD7::Parameter param) {
} else if (cmd == 3) {
rd7i_reacttion(3);
RenderD7::ExitApp();
rd7i_idb_fp = true;
} else {
rd7i_reacttion(1234);
}
@ -266,7 +268,21 @@ void ServerThread(RenderD7::Parameter param) {
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.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));
}
// Disably Overlays For one Frame
RenderD7::Ftrace::End("rd7-core", f2s(RenderD7::MainLoop));
return rd7i_running;
}
@ -485,6 +484,9 @@ void RenderD7::FrameEnd() {
}
RenderD7::RSettings::RSettings() {
// RenderD7 Settings is designed for
// System Font
RenderD7::TextDefaultFont();
tmp_txt = RenderD7::TextGetSize();
RenderD7::TextDefaultSize();
RenderD7::FadeIn();
@ -496,7 +498,10 @@ RenderD7::RSettings::RSettings() {
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::string ss(input);
@ -538,7 +543,10 @@ void RenderD7::RSettings::Draw(void) const {
shared_request[0x00000001] = RUI7;
}
if (UI7::Button("Overlays")) {
shared_request[0x00000001] = RMCONFIG;
shared_request[0x00000001] = ROVERLAYS;
}
if (UI7::Button("IDB")) {
shared_request[0x00000001] = RIDB;
}
if (UI7::Button("Back")) {
shared_request[0x00000002] = 1U;
@ -549,21 +557,32 @@ void RenderD7::RSettings::Draw(void) const {
UI7::EndMenu();
}
} else if (m_state == RSERVICES) {
} else if (m_state == RIDB) {
RenderD7::OnScreen(Top);
RenderD7::Draw2::RFS(R7Vec2(0, 0), R7Vec2(400, 240),
RenderD7::StyleColor(RD7Color_Background));
RenderD7::Draw2::RFS(R7Vec2(0, 0), R7Vec2(400, 20),
RenderD7::StyleColor(RD7Color_Header));
RenderD7::TextColorByBg(RD7Color_Header);
RenderD7::Draw2::Text(R7Vec2(5, 2), "RenderD7 -> Security");
RenderD7::Draw2::Text(R7Vec2(395, 2), RENDERD7VSTRING,
RD7TextFlags_AlignRight);
RenderD7::UndoColorEdit(RD7Color_Text);
if (UI7::BeginMenu("RenderD7 -> Debugger")) {
UI7::SetCursorPos(R7Vec2(395, 2));
UI7::Label(RENDERD7VSTRING, RD7TextFlags_AlignRight);
UI7::RestoreCursor();
UI7::Label("Server Running: " +
std::string(rd7i_idb_running ? "true" : "false"));
UI7::EndMenu();
}
RenderD7::OnScreen(Bottom);
RenderD7::Draw2::RFS(R7Vec2(0, 0), R7Vec2(320, 240),
RenderD7::StyleColor(RD7Color_Background));
RenderD7::Draw2::Text(R7Vec2(5, 2), "Press \uE001 to go back!");
if (UI7::BeginMenu("Press \uE001 to go back!")) {
if (UI7::Button("Start Server")) {
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) {
std::string rd7ver = RENDERD7VSTRING;
@ -711,7 +730,7 @@ void RenderD7::RSettings::Draw(void) const {
UI7::Checkbox("Debug", UI7::IsDebugging());
UI7::EndMenu();
}
} else if (m_state == RMCONFIG) {
} else if (m_state == ROVERLAYS) {
RenderD7::OnScreen(Top);
if (UI7::BeginMenu("RenderD7 -> Metrik")) {
UI7::SetCursorPos(R7Vec2(395, 2));
@ -796,7 +815,12 @@ void RenderD7::RSettings::Logic() {
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) {
m_state = RSETTINGS;
}