diff --git a/.vscode/settings.json b/.vscode/settings.json index 4b97e7f..6ca2c2f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -86,6 +86,8 @@ "xstddef": "cpp", "xtr1common": "cpp", "xtree": "cpp", - "xutility": "cpp" + "xutility": "cpp", + "queue": "cpp", + "semaphore": "cpp" } } \ No newline at end of file diff --git a/Makefile b/Makefile index 8e73c29..753e99a 100644 --- a/Makefile +++ b/Makefile @@ -9,8 +9,8 @@ endif include $(DEVKITARM)/3ds_rules export renderd7_MAJOR := 0 -export renderd7_MINOR := 8 -export renderd7_PATCH := 5 +export renderd7_MINOR := 9 +export renderd7_PATCH := 0 VERSION := $(renderd7_MAJOR).$(renderd7_MINOR).$(renderd7_PATCH) diff --git a/include/renderd7/renderd7.hpp b/include/renderd7/renderd7.hpp index 25f8e6c..7b265bc 100644 --- a/include/renderd7/renderd7.hpp +++ b/include/renderd7/renderd7.hpp @@ -32,6 +32,7 @@ #include #include #include +#include #include #include #include @@ -42,29 +43,33 @@ #include #include #include -#include extern "C" { #include } -#define RENDERD7VSTRING "0.8.5" +#define RENDERD7VSTRING "0.9.0" #define CHANGELOG \ - "0.8.5: Fix Deltatime 0.8.4: A lot of Fixes and new Features for " \ - "BitmapPrinter! 0.8.3: Addet " \ - "Overlaycount to Info and Addet ResultDecoder for " \ - "errors.0.8.2: Fix a lot of Stuff and add c++17 based filesystem " \ - "class.\n0.8.1: " \ - "Add abillity to Get Stdout as string to render it to the " \ - "screen.\n0.8.0: Implement BitmapPrinter\n0.7.3: Implement Over Render " \ - "Overlay " \ - "Framework\n0.7.2: Implement MT to csv file saving. Add RGB2HEX. \n0.7.1: " \ - "Add the New Overlay Handler. Its Just in code and does nothing yet. " \ - "\n0.7.0: Made Big Progress In the MT Ovl but it still crashes On a Scnd " \ - "C3D_FrameEnd(). Implement 800px but doesn't work that good. \n0.6.2: Fix " \ - "Crash when exiting trouth Home Menu. \n0.6.10: rewrite Threadsystem, " \ - "Improve framerate\n0.6.02: Fix Code in lang.hpp\nadd Draw Text Left " \ - "Function.\nadd changelog\n0.6.01: add Threading system." + "0.9.0: Remove Stupid try of Console\nAdd Services list and Clean up " \ + "Code.\nAlso added Minimal Init for hax2.x\n0.8.5: Fix Deltatime \n0.8.4: " \ + "A lot of Fixes and new\nFeatures for BitmapPrinter! \n0.8.3: Addet " \ + "Overlaycount to Info\nand Addet ResultDecoder for errors.\n0.8.2: Fix a " \ + "lot of Stuff and\nadd c++17 based filesystem class.\n0.8.1: Add abillity " \ + "to Get Stdout as string\nto render it to the screen.\n0.8.0: Implement " \ + "BitmapPrinter\n0.7.3: Implement Over\nRender Overlay Framework\n0.7.2: " \ + "Implement MT to csv file\nsaving.(removed) Add RGB2HEX.\n0.7.1: Add the " \ + "New Overlay Handler. Its\nJust in code and does nothing yet.\n0.7.0: Made " \ + "Big Progress In the MT\nOvl but it still crashes On\na Scnd " \ + "C3D_FrameEnd()." \ + "\nImplement 800px but\ndoesn't work that good. \n0.6.2: Fix Crash when " \ + "exiting\ntrouth Home Menu.\n0.6.10: rewrite Threadsystem,\nImprove " \ + "framerate\n0.6.02: Fix Code in lang.hpp\nadd Draw Text Left " \ + "Function\n(Right since 0.7.0).\nadd changelog\n0.6.01: add Threading " \ + "system.\n0.6.0: Better " \ + "Scene Management\n0.5.0: Fixed some Bugs!\n0.4.0: Trying to fix " \ + "Filesystem and Bugs!\n0.3.0: Recreate D7-Core into RenderD7!\n0.2.0: " \ + "Trying to create Animations of\nImages instead of Sheets!\n0.1.0: Initial " \ + "Release of\nD7-Core sprite animation plugin!" #define DEFAULT_CENTER 0.5f /*extern C3D_RenderTarget* Top; @@ -110,11 +115,12 @@ public: class RSettings : public RenderD7::Scene { private: - enum RState { RSETTINGS, RINFO }; + enum RState { RSETTINGS, RINFO, RSERVICES, RCLOG }; RenderD7::RSettings::RState m_state = RenderD7::RSettings::RState::RSETTINGS; + mutable float txtposy = 30; + std::string rd7srstate = "false"; - std::string csvstate = "false"; std::string mtovlstate = "false"; std::string fpsstate = "60"; std::string mtscreenstate = "Top"; @@ -124,13 +130,13 @@ private: std::vector buttons = { {20, 35, 120, 35, "RD7SR", -11, 10}, - {20, 85, 120, 35, "MT_CSV", -15, 9}, + {20, 85, 120, 35, "Changelog", -27, 9}, {20, 135, 120, 35, "MT_OVL", -19, 10}, {20, 185, 120, 35, "FPS", 6, 10}, {180, 35, 120, 35, "MTSCREEN", -29, 10}, {180, 85, 120, 35, "DSPERR", -13, 10}, {180, 135, 120, 35, "INFO", 2, 10}, - {180, 185, 120, 35, "", -13, 10}}; + {180, 185, 120, 35, "Services", -13, 10}}; public: RSettings(); @@ -165,7 +171,7 @@ Result Main(std::string app_name = "RD7Game"); Result Minimal(std::string app_name = "RD7Game"); Result Reload(); void Graphics(); -void NdspFirm(bool useit = false); +void NdspFirm(); } // namespace Init namespace Exit { void Main(); @@ -259,31 +265,6 @@ struct Checkbox { }; void DrawCheckbox(Checkbox box); -class Console { -public: - Console(); - Console(int x, int y, int w, int h, u8 a = 255); - Console(int x, int y, int w, int h, RenderD7::Color::rgba col); - Console(int x, int y, int w, int h, std::string name, - RenderD7::Color::rgba col = {255, 255, 255, 255}, - RenderD7::Color::rgba barcol = {0, 0, 0, 255}, - RenderD7::Color::rgba outlinecol = {222, 222, 222, 255}); - void On(C3D_RenderTarget *t_cscreen); - bool Update(); - ~Console(); - -private: - std::vector m_lines; - int x, y, w, h; - std::string m_name = ""; - C3D_RenderTarget *cscreen; - bool m_nconsole = false; - bool m_mconsole = false; - RenderD7::Color::rgba color = {255, 255, 255, 255}; - RenderD7::Color::rgba outlinecol = {222, 222, 222, 255}; - RenderD7::Color::rgba barcolor = {0, 0, 0, 255}; -}; - void GetDirContentsExt(std::vector &dircontent, const std::vector &extensions); void GetDirContents(std::vector &dircontent); diff --git a/source/renderd7.cpp b/source/renderd7.cpp index 564d926..19886bc 100644 --- a/source/renderd7.cpp +++ b/source/renderd7.cpp @@ -5,7 +5,8 @@ #define TICKS_PER_MSEC 268111.856 #define D7_NOTHING C2D_Color32(0, 0, 0, 0) -#define CFGVER "3" +#define CFGVER "4" + Log renderd7log; float animtime; bool isndspinit = false; @@ -66,14 +67,6 @@ bool metrikd = false; // double mt_fpsgraph[320]; std::vector mt_fpsgraph(320); -// Metrik-CSV -std::string csvpc; -bool mt_dumpcsv = false; // Logs the Fps and stuff to csv. It saves every second - // to not loose performence. -bool mt_csvloop = false; // Saves In Every Frame but slows down performens. - // mt_dumpcsv must be enabled. -std::ofstream mt_csv; -std::string mt_cname; //------------------------------------------- bool currentScreen = false; @@ -93,6 +86,13 @@ bool fadeout = false, fadein = false, fadeout2 = false, fadein2 = false; int fadealpha = 0; int fadecolor = 0; +// Sercices +int sv_gfx = 0; +int sv_dsp = 0; +int sv_cfgu = 0; +int sv_apt = 0; +int sv_romfs = 0; + std::string _FMT_(const std::string &fmt_str, ...) { va_list ap; char *fp = NULL; @@ -137,17 +137,17 @@ bool RenderD7::DrawImageFromSheet(RenderD7::Sheet *sheet, size_t index, float x, } return false; } -void RenderD7::Init::NdspFirm(bool useit) { - if (useit) { - if (access("sdmc:/3ds/dspfirm.cdc", F_OK) != -1) { - ndspInit(); - isndspinit = true; - dspststus = "Initialisized success!"; - } else { - dspststus = "Not found: dspfirm.cdc"; - renderd7log.Write("RenderD7: SoundEngine Error! ndspfirm not found!"); - RenderD7::AddOvl(std::make_unique()); - } +void RenderD7::Init::NdspFirm() { + if (access("sdmc:/3ds/dspfirm.cdc", F_OK) != -1) { + Result res; + res = ndspInit(); + sv_dsp = R_FAILED(res) ? 1 : 2; + isndspinit = true; + dspststus = "Initialisized success!"; + } else { + dspststus = "Not found: dspfirm.cdc"; + renderd7log.Write("RenderD7: SoundEngine Error! ndspfirm not found!"); + RenderD7::AddOvl(std::make_unique()); } } void RenderD7::Exit::NdspFirm() { @@ -295,9 +295,11 @@ bool RenderD7::MainLoop() { if (!aptMainLoop()) return false; - //Deltatime + // Deltatime uint64_t currentTime = svcGetSystemTick(); - dtm = ((float)(currentTime / (float)TICKS_PER_MSEC) - (float)(last_tm / (float)TICKS_PER_MSEC)) / 1000.f; + dtm = ((float)(currentTime / (float)TICKS_PER_MSEC) - + (float)(last_tm / (float)TICKS_PER_MSEC)) / + 1000.f; last_tm = currentTime; hidScanInput(); @@ -353,6 +355,7 @@ void RenderD7::Exit::Graphics() { Result RenderD7::Init::Main(std::string app_name) { gfxInitDefault(); + sv_gfx = 2; // consoleInit(GFX_TOP, NULL); Result res = cfguInit(); if (R_SUCCEEDED(res)) { @@ -365,9 +368,12 @@ Result RenderD7::Init::Main(std::string app_name) { gfxSetWide(consoleModel != 3); } printf("rd7sr\n"); - aptInit(); - romfsInit(); - cfguInit(); + res = aptInit(); + sv_apt = R_FAILED(res) ? 1 : 2; + res = romfsInit(); + sv_romfs = R_FAILED(res) ? 1 : 2; + res = cfguInit(); + sv_cfgu = R_FAILED(res) ? 1 : 2; printf("stuff\n"); if (cobj___) { maxobj__ = cobj___; @@ -378,13 +384,9 @@ Result RenderD7::Init::Main(std::string app_name) { D_app_name = app_name; cfgpath = "sdmc:/RenderD7/Apps/"; cfgpath += D_app_name; - csvpc = "sdmc:/RenderD7/Apps/"; - csvpc += D_app_name; - csvpc += "/mt"; mkdir("sdmc:/RenderD7/", 0777); mkdir("sdmc:/RenderD7/Apps", 0777); mkdir(cfgpath.c_str(), 0777); - mkdir(csvpc.c_str(), 0777); bool renew = false; printf("folderset\n"); if (FS::FileExist(cfgpath + "/config.ini")) { @@ -420,8 +422,6 @@ Result RenderD7::Init::Main(std::string app_name) { cfgstruct["metrik-settings"]["ColorA"] = "255"; cfgstruct["metrik-settings"]["Color"] = "#000000"; cfgstruct["metrik-settings"]["txtSize"] = "0.7f"; - cfgstruct["metrik-settings"]["dumpcsv"] = "0"; - cfgstruct["metrik-settings"]["dumpcsvloop"] = "0"; cfgfile->write(cfgstruct); } if (renew) @@ -448,10 +448,6 @@ Result RenderD7::Init::Main(std::string app_name) { rd7_superreselution = RenderD7::Convert::FloatToBool(RenderD7::Convert::StringtoFloat( cfgstruct["settings"]["super-reselution"])); - mt_dumpcsv = RenderD7::Convert::FloatToBool(RenderD7::Convert::StringtoFloat( - cfgstruct["metrik-settings"]["dumpcsv"])); - mt_csvloop = RenderD7::Convert::FloatToBool(RenderD7::Convert::StringtoFloat( - cfgstruct["metrik-settings"]["dumpcsvloop"])); printf("read\n"); // Check if citra s64 citracheck = 0; @@ -467,19 +463,6 @@ Result RenderD7::Init::Main(std::string app_name) { } printf("rd7sr\n"); // consoleInit(GFX_BOTTOM, NULL); - if (mt_dumpcsv) { - mt_cname = csvpc; - mt_cname += "/"; - mt_cname += Date(); - mt_cname += ".csv"; - - FILE *logfile = fopen((mt_cname.c_str()), "w"); - fclose(logfile); - - mt_csv.open((mt_cname), std::ofstream::app); - mt_csv << "FPS,CPU,GPU,CMD\n"; - mt_csv.close(); - } printf("csv\n"); C3D_Init(C3D_DEFAULT_CMDBUF_SIZE); C2D_Init(C2D_DEFAULT_MAX_OBJECTS); @@ -496,11 +479,13 @@ Result RenderD7::Init::Main(std::string app_name) { return 0; } -Result RenderD7::Init::Minimal(std::string app_name) -{ +Result RenderD7::Init::Minimal(std::string app_name) { D_app_name = app_name; + Result res_; gfxInitDefault(); - romfsInit(); + sv_gfx = 2; + res_ = romfsInit(); + sv_romfs = R_FAILED(res_) ? 1 : 2; // Check if citra s64 citracheck = 0; svcGetSystemInfo(&citracheck, 0x20000, 0); @@ -514,13 +499,9 @@ Result RenderD7::Init::Minimal(std::string app_name) } cfgpath = "sdmc:/RenderD7/Apps/"; cfgpath += D_app_name; - csvpc = "sdmc:/RenderD7/Apps/"; - csvpc += D_app_name; - csvpc += "/mt"; mkdir("sdmc:/RenderD7/", 0777); mkdir("sdmc:/RenderD7/Apps", 0777); mkdir(cfgpath.c_str(), 0777); - mkdir(csvpc.c_str(), 0777); bool renew = false; printf("folderset\n"); if (FS::FileExist(cfgpath + "/config.ini")) { @@ -556,8 +537,6 @@ Result RenderD7::Init::Minimal(std::string app_name) cfgstruct["metrik-settings"]["ColorA"] = "255"; cfgstruct["metrik-settings"]["Color"] = "#000000"; cfgstruct["metrik-settings"]["txtSize"] = "0.7f"; - cfgstruct["metrik-settings"]["dumpcsv"] = "0"; - cfgstruct["metrik-settings"]["dumpcsvloop"] = "0"; cfgfile->write(cfgstruct); } if (renew) @@ -584,17 +563,12 @@ Result RenderD7::Init::Minimal(std::string app_name) rd7_superreselution = RenderD7::Convert::FloatToBool(RenderD7::Convert::StringtoFloat( cfgstruct["settings"]["super-reselution"])); - mt_dumpcsv = RenderD7::Convert::FloatToBool(RenderD7::Convert::StringtoFloat( - cfgstruct["metrik-settings"]["dumpcsv"])); - mt_csvloop = RenderD7::Convert::FloatToBool(RenderD7::Convert::StringtoFloat( - cfgstruct["metrik-settings"]["dumpcsvloop"])); printf("boost\n"); if (!is_citra && rd7_superreselution) { if (consoleModel != 3) gfxSetWide(true); } - osSetSpeedupEnable(true); C3D_Init(C3D_DEFAULT_CMDBUF_SIZE); C2D_Init(C2D_DEFAULT_MAX_OBJECTS); @@ -934,18 +908,6 @@ void RenderD7::FrameEnd() { { RenderD7::LoadSettings(); }*/ - if (mt_dumpcsv && lp == 60) { - std::string _mt_fps = RenderD7::GetFramerate(); - std::string _mt_cpu = std::to_string(C3D_GetProcessingTime()).substr(0, 4); - std::string _mt_gpu = std::to_string(C3D_GetDrawingTime()).substr(0, 4); - std::string _mt_cmd = std::to_string(C3D_GetCmdBufUsage()).substr(0, 4); - mt_csv.open((mt_cname), std::ofstream::app); - std::string fmt_ = - _mt_fps + "," + _mt_cpu + "," + _mt_gpu + "," + _mt_cmd + "\n"; - mt_csv << fmt_; - mt_csv.close(); - lp = 0; - } lp++; C3D_FrameEnd(0); @@ -959,6 +921,16 @@ RenderD7::RSettings::RSettings() { RenderD7::RSettings::~RSettings() { cfgfile->write(cfgstruct); } +std::vector StrHelper(std::string input) { + std::string ss(input); + std::istringstream in(ss); + std::vector test1; + + std::copy(std::istream_iterator(in), + std::istream_iterator(), std::back_inserter(test1)); + return test1; +} + void RenderD7::RSettings::Draw(void) const { if (m_state == RSETTINGS) { RenderD7::OnScreen(Top); @@ -968,8 +940,6 @@ void RenderD7::RSettings::Draw(void) const { RenderD7::Draw::TextRight(400, 0, 0.7f, RenderD7::Color::Hex("#ffffff"), RENDERD7VSTRING); RenderD7::Draw::Text(0, 30, 0.7f, DSEVENBLACK, "RD7SR: " + rd7srstate); - RenderD7::Draw::Text(0, 50, 0.7f, DSEVENBLACK, - "Metrik to Csv: " + csvstate); RenderD7::Draw::Text(0, 70, 0.7f, DSEVENBLACK, "Metrik Overlay: " + mtovlstate); RenderD7::Draw::Text(0, 90, 0.7f, DSEVENBLACK, "Force FPS: " + fpsstate); @@ -987,6 +957,60 @@ void RenderD7::RSettings::Draw(void) const { RenderD7::DrawTObjects(buttons, RenderD7::Color::Hex("#111111"), RenderD7::Color::Hex("#eeeeee")); + } else if (m_state == RSERVICES) { + RenderD7::OnScreen(Top); + RenderD7::Draw::Rect(0, 0, 400, 21, RenderD7::Color::Hex("#111111")); + RenderD7::Draw::Rect(0, 21, 400, 220, RenderD7::Color::Hex("#eeeeee")); + RenderD7::Draw::Text(0, 0, 0.7f, DSEVENWHITE, "RenderD7->Services"); + RenderD7::Draw::TextRight(400, 0, 0.7f, RenderD7::Color::Hex("#ffffff"), + RENDERD7VSTRING); + RenderD7::Draw::Text(0, 30, 0.7f, DSEVENBLACK, + "gfx: " + std::string(sv_gfx == 0 ? "Not Init" + : sv_gfx == 2 ? "Success" + : "Failed")); + RenderD7::Draw::Text(0, 50, 0.7f, DSEVENBLACK, + "Apt: " + std::string(sv_apt == 0 ? "Not Init" + : sv_apt == 2 ? "Success" + : "Failed")); + RenderD7::Draw::Text(0, 70, 0.7f, DSEVENBLACK, + "Romfs: " + std::string(sv_romfs == 0 ? "Not Init" + : sv_romfs == 2 ? "Success" + : "Failed")); + RenderD7::Draw::Text(0, 90, 0.7f, DSEVENBLACK, + "cfgu: " + std::string(sv_cfgu == 0 ? "Not Init" + : sv_cfgu == 2 ? "Success" + : "Failed")); + RenderD7::Draw::Text(0, 110, 0.7f, DSEVENBLACK, + "NDSP: " + std::string(sv_dsp == 0 ? "Not Init" + : sv_dsp == 2 ? "Success" + : "Failed")); + RenderD7::OnScreen(Bottom); + RenderD7::Draw::Rect(0, 0, 320, 240, RenderD7::Color::Hex("#eeeeee")); + RenderD7::Draw::Text(0, 0, 0.7f, RenderD7::Color::Hex("#111111"), + "Press B to Get back!"); + + } else if (m_state == RCLOG) { + RenderD7::OnScreen(Top); + + RenderD7::Draw::Rect(0, 21, 400, 220, RenderD7::Color::Hex("#eeeeee")); + for(int i = txtposy; i < (int)StrHelper(CHANGELOG).size(); i++) + { + RenderD7::Draw::Text(5, 30+(i*20), 0.7f, DSEVENBLACK, + std::string(StrHelper(CHANGELOG)[i])); + } + + RenderD7::Draw::Rect(0, 0, 400, 21, RenderD7::Color::Hex("#111111")); + txtposy++; + if (txtposy < StrHelper(CHANGELOG).size()) + txtposy = 0; + RenderD7::Draw::Text(0, 0, 0.7f, DSEVENWHITE, "RenderD7->Changelog"); + RenderD7::Draw::TextRight(400, 0, 0.7f, RenderD7::Color::Hex("#ffffff"), + RENDERD7VSTRING); + RenderD7::OnScreen(Bottom); + RenderD7::Draw::Rect(0, 0, 320, 240, RenderD7::Color::Hex("#eeeeee")); + RenderD7::Draw::Text(0, 0, 0.7f, RenderD7::Color::Hex("#111111"), + "Press B to Get back!\ntxty: " + std::to_string(txtposy)); + } else if (m_state == RINFO) { std::string rd7ver = RENDERD7VSTRING; std::string rd7cfgver = CFGVER; @@ -1009,18 +1033,16 @@ void RenderD7::RSettings::Draw(void) const { RenderD7::Draw::Text(0, 150, 0.7f, DSEVENBLACK, "RenderD7-Commit: " + commit); RenderD7::Draw::Text(0, 170, 0.7f, DSEVENBLACK, - "RenderD7-Overlays: " + std::to_string(overlays.size())); + "RenderD7-Overlays: " + + std::to_string(overlays.size())); /*RenderD7::Draw::Text(0, 130, 0.7f, DSEVENBLACK, "Metrik Text RGB: " + mttxtcolstate); RenderD7::Draw::Text(0, 150, 0.7f, DSEVENBLACK, "Metrik Alpha: " + mtcola); RenderD7::Draw::Text(0, 170, 0.7f, DSEVENBLACK, "Metrik Text Alpha: " + mttxtcola);*/ RenderD7::OnScreen(Bottom); - std::string verc = "Config Version: "; - verc += CFGVER; RenderD7::Draw::Rect(0, 0, 320, 240, RenderD7::Color::Hex("#eeeeee")); - RenderD7::Draw::Text(0, 0, 0.7f, RenderD7::Color::Hex("#111111"), verc); - RenderD7::DrawTObjects(buttons, RenderD7::Color::Hex("#111111"), - RenderD7::Color::Hex("#eeeeee")); + RenderD7::Draw::Text(0, 0, 0.7f, RenderD7::Color::Hex("#111111"), + "Press B to Get back!"); } } std::string RenderD7::Kbd(int lenght, SwkbdType tp) { @@ -1040,7 +1062,6 @@ void RenderD7::RSettings::Logic(u32 hDown, u32 hHeld, u32 hUp, touchPosition touch) { if (m_state == RSETTINGS) { rd7srstate = rd7_superreselution ? "true" : "false"; - csvstate = mt_dumpcsv ? "true" : "false"; mtovlstate = metrikd ? "true" : "false"; fpsstate = cfgstruct["settings"]["forceFrameRate"]; mtscreenstate = mt_screen ? "Bottom" : "Top"; @@ -1051,19 +1072,8 @@ void RenderD7::RSettings::Logic(u32 hDown, u32 hHeld, u32 hUp, rd7_superreselution ? "1" : "0"; } if (d7_hDown & KEY_TOUCH && RenderD7::touchTObj(d7_touch, buttons[1])) { - mt_dumpcsv = mt_dumpcsv ? false : true; - cfgstruct["metrik-settings"]["dumpcsv"] = mt_dumpcsv ? "1" : "0"; - if (mt_dumpcsv) { - mt_cname = csvpc; - mt_cname += "/"; - mt_cname += Date(); - mt_cname += ".csv"; - FILE *logfile = fopen((mt_cname.c_str()), "w"); - fclose(logfile); - mt_csv.open((mt_cname), std::ofstream::app); - mt_csv << "FPS,CPU,GPU,CMD\n"; - mt_csv.close(); - } + m_state = RCLOG; + txtposy = 0; } if (d7_hDown & KEY_TOUCH && RenderD7::touchTObj(d7_touch, buttons[2])) { metrikd = metrikd ? false : true; @@ -1085,6 +1095,9 @@ void RenderD7::RSettings::Logic(u32 hDown, u32 hHeld, u32 hUp, if (d7_hDown & KEY_TOUCH && RenderD7::touchTObj(d7_touch, buttons[6])) { m_state = RINFO; } + if (d7_hDown & KEY_TOUCH && RenderD7::touchTObj(d7_touch, buttons[7])) { + m_state = RSERVICES; + } if (d7_hDown & KEY_B) { cfgfile->write(cfgstruct); rd7settings = false; @@ -1096,6 +1109,16 @@ void RenderD7::RSettings::Logic(u32 hDown, u32 hHeld, u32 hUp, m_state = RSETTINGS; } } + if (m_state == RSERVICES) { + if (d7_hDown & KEY_B) { + m_state = RSETTINGS; + } + } + if (m_state == RCLOG) { + if (d7_hDown & KEY_B) { + m_state = RSETTINGS; + } + } } void RenderD7::LoadSettings() { @@ -1104,48 +1127,4 @@ void RenderD7::LoadSettings() { void RenderD7::AddOvl(std::unique_ptr overlay) { overlays.push(std::move(overlay)); -} - -RenderD7::Console::Console() { - this->x = 0; - this->y = 0; - this->w = 320; - this->h = 240; - this->color = {0, 0, 0, 255}; -} -RenderD7::Console::Console(int x, int y, int w, int h, u8 a) { - this->x = x; - this->y = y; - this->w = w; - this->h = h; - this->color = {0, 0, 0, a}; -} -RenderD7::Console::Console(int x, int y, int w, int h, - RenderD7::Color::rgba col) { - this->x = x; - this->y = y; - this->w = w; - this->h = h; - this->color = col; -} -RenderD7::Console::Console(int x, int y, int w, int h, std::string name, - RenderD7::Color::rgba col, - RenderD7::Color::rgba barcol, - RenderD7::Color::rgba outlinecol) { - this->x = x; - this->y = y; - this->w = w; - this->h = h; - this->color = col; - this->outlinecol = outlinecol; - this->barcolor = barcol; - this->m_name = name; -} -RenderD7::Console::~Console() {} -void RenderD7::Console::On(C3D_RenderTarget *t_cscreen) { - this->cscreen = t_cscreen; -} -bool RenderD7::Console::Update() { - bool dr_sc = true; - return dr_sc; -} +} \ No newline at end of file