Changes:
New Logger Add NTCtrl Base to UI7
This commit is contained in:
parent
ddf06eb18e
commit
1271b9fa9a
@ -28,7 +28,6 @@
|
|||||||
#include <renderd7/Net.hpp>
|
#include <renderd7/Net.hpp>
|
||||||
#include <renderd7/Overlays.hpp>
|
#include <renderd7/Overlays.hpp>
|
||||||
#include <renderd7/Sound.hpp>
|
#include <renderd7/Sound.hpp>
|
||||||
#include <renderd7/StealConsole.hpp>
|
|
||||||
#include <renderd7/Timer.hpp>
|
#include <renderd7/Timer.hpp>
|
||||||
#include <renderd7/UI7.hpp>
|
#include <renderd7/UI7.hpp>
|
||||||
#include <renderd7/global_db.hpp>
|
#include <renderd7/global_db.hpp>
|
||||||
|
@ -35,15 +35,19 @@ class LoggerBase {
|
|||||||
/// @brief Init the Logger
|
/// @brief Init the Logger
|
||||||
/// @param filename name[_date_time.txt]
|
/// @param filename name[_date_time.txt]
|
||||||
void Init(const std::string& name, bool fileless = false);
|
void Init(const std::string& name, bool fileless = false);
|
||||||
/// @brief Write a String to the File
|
/// @brief Write a String
|
||||||
/// @param debug_text string
|
/// @param debug_text string
|
||||||
void Write(const std::string& debug_text);
|
/// @param lvl Logger LVL 0 = ERR, 1 =WARNING, >=2= Default
|
||||||
|
void Write(const std::string& debug_text, int lvl = 2);
|
||||||
|
void SetLvl(int lvl) { writelvl = lvl; }
|
||||||
|
const std::vector<std::string>& Lines();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/// \param filename the name of the logfile
|
/// \param filename the name of the logfile
|
||||||
std::string filename;
|
std::string filename;
|
||||||
std::string log_path;
|
std::string log_path;
|
||||||
std::ofstream _log;
|
std::ofstream _log;
|
||||||
|
int writelvl = 1; // Only log errors/Warnings
|
||||||
std::vector<std::string> lines;
|
std::vector<std::string> lines;
|
||||||
};
|
};
|
||||||
} // namespace RenderD7
|
} // namespace RenderD7
|
@ -30,9 +30,9 @@ namespace RenderD7 {
|
|||||||
class SpriteSheetAnimation : public RenderD7::Sprite {
|
class SpriteSheetAnimation : public RenderD7::Sprite {
|
||||||
public:
|
public:
|
||||||
/// @brief Constructor
|
/// @brief Constructor
|
||||||
SpriteSheetAnimation();
|
SpriteSheetAnimation() = default;
|
||||||
/// @brief Deconstructor
|
/// @brief Deconstructor
|
||||||
~SpriteSheetAnimation();
|
~SpriteSheetAnimation() = default;
|
||||||
RD7_SMART_CTOR(SpriteSheetAnimation);
|
RD7_SMART_CTOR(SpriteSheetAnimation);
|
||||||
/// @brief Setup an Animation
|
/// @brief Setup an Animation
|
||||||
/// @param sheet Input Spritesheet
|
/// @param sheet Input Spritesheet
|
||||||
|
@ -1,39 +0,0 @@
|
|||||||
/**
|
|
||||||
* This file is part of RenderD7
|
|
||||||
* Copyright (C) 2021-2024 NPI-D7, tobid7
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
#include <sstream>
|
|
||||||
#include <string>
|
|
||||||
|
|
||||||
namespace RenderD7 {
|
|
||||||
/// @brief StealConsole Class
|
|
||||||
class StealConsole {
|
|
||||||
public:
|
|
||||||
/// @brief Constructor
|
|
||||||
StealConsole();
|
|
||||||
/// @brief Deconstructor
|
|
||||||
~StealConsole();
|
|
||||||
/// @brief The Stolen Stdout
|
|
||||||
/// @return Stdout as string
|
|
||||||
std::string GetStdout();
|
|
||||||
|
|
||||||
private:
|
|
||||||
/// @param stolen_stdout Stolen Stdout
|
|
||||||
std::stringstream stolen_stdout;
|
|
||||||
};
|
|
||||||
} // namespace RenderD7
|
|
@ -22,7 +22,7 @@
|
|||||||
#include <renderd7/global_db.hpp>
|
#include <renderd7/global_db.hpp>
|
||||||
#include <renderd7/renderd7.hpp>
|
#include <renderd7/renderd7.hpp>
|
||||||
|
|
||||||
#define CFGVER "0"
|
#define CFGVER "1"
|
||||||
#define THEMEVER "0"
|
#define THEMEVER "0"
|
||||||
|
|
||||||
#ifndef V_RD7BTIME
|
#ifndef V_RD7BTIME
|
||||||
@ -76,6 +76,9 @@ extern bool rd7i_amdt;
|
|||||||
extern void* rd7i_soc_buf;
|
extern void* rd7i_soc_buf;
|
||||||
extern bool rd7i_is_am_init;
|
extern bool rd7i_is_am_init;
|
||||||
extern RenderD7::Theme::Ref rd7i_active_theme;
|
extern RenderD7::Theme::Ref rd7i_active_theme;
|
||||||
|
extern bool rd7i_lggrf;
|
||||||
|
|
||||||
|
// Use function for protection
|
||||||
|
RenderD7::LoggerBase::Ref _rd7i_logger();
|
||||||
RenderD7::Net::Error rd7i_soc_init();
|
RenderD7::Net::Error rd7i_soc_init();
|
||||||
void rd7i_soc_deinit();
|
void rd7i_soc_deinit();
|
@ -37,7 +37,7 @@
|
|||||||
#include <renderd7/Color.hpp>
|
#include <renderd7/Color.hpp>
|
||||||
#include <renderd7/FunctionTrace.hpp>
|
#include <renderd7/FunctionTrace.hpp>
|
||||||
#include <renderd7/Hardware.hpp>
|
#include <renderd7/Hardware.hpp>
|
||||||
#include <renderd7/Log2.hpp>
|
#include <renderd7/Logger.hpp>
|
||||||
#include <renderd7/Memory.hpp>
|
#include <renderd7/Memory.hpp>
|
||||||
#include <renderd7/Overlays.hpp>
|
#include <renderd7/Overlays.hpp>
|
||||||
#include <renderd7/Ovl.hpp>
|
#include <renderd7/Ovl.hpp>
|
||||||
@ -107,6 +107,7 @@ class RSettings : public RenderD7::Scene {
|
|||||||
ROVERLAYS, // Overlay Settings
|
ROVERLAYS, // Overlay Settings
|
||||||
RFTRACE, // FTRace Menu
|
RFTRACE, // FTRace Menu
|
||||||
RUI7, // UI7 Menu
|
RUI7, // UI7 Menu
|
||||||
|
RLOGS, // Logs
|
||||||
};
|
};
|
||||||
|
|
||||||
/// @param shared_request Defines requests from Draw to Logic
|
/// @param shared_request Defines requests from Draw to Logic
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#include <filesystem>
|
#include <filesystem>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <renderd7/Log2.hpp>
|
#include <renderd7/Logger.hpp>
|
||||||
#include <renderd7/Time.hpp>
|
#include <renderd7/Time.hpp>
|
||||||
#include <renderd7/renderd7.hpp>
|
#include <renderd7/renderd7.hpp>
|
||||||
|
|
||||||
@ -46,9 +46,9 @@ void LoggerBase::Init(const std::string& name, bool fileless) {
|
|||||||
this->Write("RenderD7 Log\n\n");
|
this->Write("RenderD7 Log\n\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void LoggerBase::Write(const std::string& debug_text) {
|
void LoggerBase::Write(const std::string& debug_text, int lvl) {
|
||||||
std::string msg = "[" + RenderD7::GetTimeStr() + "]: " + debug_text;
|
std::string msg = "[" + RenderD7::GetTimeStr() + "]: " + debug_text;
|
||||||
if (this->_log.is_open()) {
|
if (this->_log.is_open() && lvl <= writelvl) {
|
||||||
this->_log << msg << std::endl;
|
this->_log << msg << std::endl;
|
||||||
}
|
}
|
||||||
while (msg.find_first_of('\n') != 0) {
|
while (msg.find_first_of('\n') != 0) {
|
||||||
@ -57,4 +57,6 @@ void LoggerBase::Write(const std::string& debug_text) {
|
|||||||
}
|
}
|
||||||
lines.push_back(msg);
|
lines.push_back(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const std::vector<std::string>& LoggerBase::Lines() { return this->lines; }
|
||||||
} // namespace RenderD7
|
} // namespace RenderD7
|
@ -17,13 +17,18 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <renderd7/Sheet.hpp>
|
#include <renderd7/Sheet.hpp>
|
||||||
|
#include <renderd7/internal_db.hpp>
|
||||||
|
|
||||||
Result RenderD7::Sheet::Load(const std::string& path) {
|
Result RenderD7::Sheet::Load(const std::string& path) {
|
||||||
this->spritesheet = C2D_SpriteSheetLoad(path.c_str());
|
this->spritesheet = C2D_SpriteSheetLoad(path.c_str());
|
||||||
|
if (!this->spritesheet) {
|
||||||
|
_rd7i_logger()->Write("Failed to Load Spritesheet from: " + path, 0);
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RenderD7::Sheet::Free() {
|
void RenderD7::Sheet::Free() {
|
||||||
|
if (!this->spritesheet) return;
|
||||||
C2D_SpriteSheetFree(this->spritesheet);
|
C2D_SpriteSheetFree(this->spritesheet);
|
||||||
this->spritesheet = nullptr;
|
this->spritesheet = nullptr;
|
||||||
}
|
}
|
||||||
|
@ -50,7 +50,7 @@ Sound::Sound(const string &path, int channel, bool toloop) {
|
|||||||
std::fstream fp(path, std::ios::in | std::ios::binary);
|
std::fstream fp(path, std::ios::in | std::ios::binary);
|
||||||
|
|
||||||
if (!fp.is_open()) {
|
if (!fp.is_open()) {
|
||||||
printf("Could not open the WAV file: %s\n", path.c_str());
|
_rd7i_logger()->Write("Could not open WAV: " + path, 0);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -59,7 +59,7 @@ Sound::Sound(const string &path, int channel, bool toloop) {
|
|||||||
size_t read = fp.tellg();
|
size_t read = fp.tellg();
|
||||||
if (read != sizeof(wavHeader)) {
|
if (read != sizeof(wavHeader)) {
|
||||||
// Short read.
|
// Short read.
|
||||||
printf("WAV file header is too short: %s\n", path.c_str());
|
_rd7i_logger()->Write("WAV Header is too short", 0);
|
||||||
fp.close();
|
fp.close();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -68,7 +68,7 @@ Sound::Sound(const string &path, int channel, bool toloop) {
|
|||||||
static const char RIFF_magic[4] = {'R', 'I', 'F', 'F'};
|
static const char RIFF_magic[4] = {'R', 'I', 'F', 'F'};
|
||||||
if (memcmp(wavHeader.magic, RIFF_magic, sizeof(wavHeader.magic)) != 0) {
|
if (memcmp(wavHeader.magic, RIFF_magic, sizeof(wavHeader.magic)) != 0) {
|
||||||
// Incorrect magic number.
|
// Incorrect magic number.
|
||||||
printf("Wrong file format.\n");
|
_rd7i_logger()->Write("Wrong Fileformat", 0);
|
||||||
fp.close();
|
fp.close();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -77,7 +77,7 @@ Sound::Sound(const string &path, int channel, bool toloop) {
|
|||||||
(wavHeader.channels != 1 && wavHeader.channels != 2) ||
|
(wavHeader.channels != 1 && wavHeader.channels != 2) ||
|
||||||
(wavHeader.bits_per_sample != 8 && wavHeader.bits_per_sample != 16)) {
|
(wavHeader.bits_per_sample != 8 && wavHeader.bits_per_sample != 16)) {
|
||||||
// Unsupported WAV file.
|
// Unsupported WAV file.
|
||||||
printf("Corrupted wav file.\n");
|
_rd7i_logger()->Write("File is invalid", 0);
|
||||||
fp.close();
|
fp.close();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -18,13 +18,6 @@
|
|||||||
|
|
||||||
#include <renderd7/SpriteAnimation.hpp>
|
#include <renderd7/SpriteAnimation.hpp>
|
||||||
|
|
||||||
RenderD7::SpriteSheetAnimation::SpriteSheetAnimation() {
|
|
||||||
//
|
|
||||||
}
|
|
||||||
RenderD7::SpriteSheetAnimation::~SpriteSheetAnimation() {
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
void RenderD7::SpriteSheetAnimation::Setup(RenderD7::Sheet::Ref sheet,
|
void RenderD7::SpriteSheetAnimation::Setup(RenderD7::Sheet::Ref sheet,
|
||||||
size_t imagecount, size_t startimage,
|
size_t imagecount, size_t startimage,
|
||||||
float frame_begin,
|
float frame_begin,
|
||||||
|
@ -1,42 +0,0 @@
|
|||||||
/**
|
|
||||||
* This file is part of RenderD7
|
|
||||||
* Copyright (C) 2021-2024 NPI-D7, tobid7
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <iostream>
|
|
||||||
#include <renderd7/StealConsole.hpp>
|
|
||||||
|
|
||||||
namespace RenderD7 {
|
|
||||||
StealConsole::StealConsole() {
|
|
||||||
std::streambuf *old = std::cout.rdbuf(this->stolen_stdout.rdbuf());
|
|
||||||
if (old) {
|
|
||||||
// To prevent from unused error
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
StealConsole::~StealConsole() {
|
|
||||||
// Do Nothing Here
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string StealConsole::GetStdout() {
|
|
||||||
if (this->stolen_stdout.str().length() < 400) {
|
|
||||||
return this->stolen_stdout.str();
|
|
||||||
} else {
|
|
||||||
return this->stolen_stdout.str().substr(stolen_stdout.str().length() - 400);
|
|
||||||
}
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
} // namespace RenderD7
|
|
@ -83,6 +83,33 @@ struct UI7ID {
|
|||||||
bool has_title;
|
bool has_title;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Non Touch Control
|
||||||
|
struct NTCtrl {
|
||||||
|
// 0x0 = Obj
|
||||||
|
// 0x1 = Selector
|
||||||
|
// 0x2 = fill obj
|
||||||
|
std::vector<unsigned char> grid;
|
||||||
|
std::vector<unsigned char> cgrid;
|
||||||
|
int hz = 0; // Horizontal maximum obj
|
||||||
|
int vt = 0; // Vertical maximum Obj
|
||||||
|
int chz = 0; // current hz
|
||||||
|
int selection = 0;
|
||||||
|
void AddObj() {
|
||||||
|
chz++;
|
||||||
|
if (chz > hz) hz = chz;
|
||||||
|
grid.push_back(0x0);
|
||||||
|
}
|
||||||
|
void NewRow() {
|
||||||
|
chz = 0;
|
||||||
|
vt++;
|
||||||
|
}
|
||||||
|
void Clear() {
|
||||||
|
cgrid = grid;
|
||||||
|
grid.clear();
|
||||||
|
}
|
||||||
|
RD7_SMART_CTOR(NTCtrl)
|
||||||
|
};
|
||||||
|
|
||||||
using DrawCmdType = int;
|
using DrawCmdType = int;
|
||||||
enum DrawCmdType_ {
|
enum DrawCmdType_ {
|
||||||
DrawCmdType_Skip,
|
DrawCmdType_Skip,
|
||||||
@ -314,6 +341,7 @@ struct UI7Menu {
|
|||||||
float tbh; // TabBar Height
|
float tbh; // TabBar Height
|
||||||
bool show_scroolbar = true; // Show Scrollbar
|
bool show_scroolbar = true; // Show Scrollbar
|
||||||
bool has_touch = false; // To Disable touch on Top Screen
|
bool has_touch = false; // To Disable touch on Top Screen
|
||||||
|
NTCtrl::Ref ctrl; // NonTouchControl
|
||||||
|
|
||||||
// SubMenu
|
// SubMenu
|
||||||
std::string submenu;
|
std::string submenu;
|
||||||
@ -378,6 +406,7 @@ bool UI7CtxBeginMenu(const std::string &lb) {
|
|||||||
if (ui7_ctx->menus.find(id.ID()) == ui7_ctx->menus.end())
|
if (ui7_ctx->menus.find(id.ID()) == ui7_ctx->menus.end())
|
||||||
ui7_ctx->menus.insert(std::make_pair(id.ID(), UI7Menu::New()));
|
ui7_ctx->menus.insert(std::make_pair(id.ID(), UI7Menu::New()));
|
||||||
ui7_ctx->cm = ui7_ctx->menus[id.ID()];
|
ui7_ctx->cm = ui7_ctx->menus[id.ID()];
|
||||||
|
if (!ui7_ctx->cm->ctrl) ui7_ctx->cm->ctrl = NTCtrl::New();
|
||||||
ui7_ctx->cm->menuid = id;
|
ui7_ctx->cm->menuid = id;
|
||||||
ui7_ctx->cm->cursor = R7Vec2(0, 0);
|
ui7_ctx->cm->cursor = R7Vec2(0, 0);
|
||||||
ui7_ctx->cm->has_touch = !RenderD7::R2()->GetCurrentScreen();
|
ui7_ctx->cm->has_touch = !RenderD7::R2()->GetCurrentScreen();
|
||||||
@ -394,27 +423,31 @@ void UI7CtxEndMenu() {
|
|||||||
RenderD7::Ftrace::ScopedTrace tr("ui7", "EndMenu");
|
RenderD7::Ftrace::ScopedTrace tr("ui7", "EndMenu");
|
||||||
// Draw Scrollbar
|
// Draw Scrollbar
|
||||||
if (ui7_ctx->cm->enable_scrolling) {
|
if (ui7_ctx->cm->enable_scrolling) {
|
||||||
int sw = (RenderD7::R2()->GetCurrentScreen() ? 400 : 320);
|
ui7_ctx->cm->show_scroolbar = (ui7_ctx->cm->ms.y < 235 ? false : true);
|
||||||
int tsp = 5 + ui7_ctx->cm->tbh;
|
|
||||||
int szs = 240 - tsp - 5;
|
if (ui7_ctx->cm->show_scroolbar) {
|
||||||
int lszs = 20; // Lowest Slider size
|
int sw = (RenderD7::R2()->GetCurrentScreen() ? 400 : 320);
|
||||||
float slider_h = (szs - 4) * (static_cast<float>(szs - 4) /
|
int tsp = 5 + ui7_ctx->cm->tbh;
|
||||||
static_cast<float>(ui7_ctx->cm->msr.y));
|
int szs = 240 - tsp - 5;
|
||||||
int slider_rh = d7min(d7max(slider_h, (float)lszs), (float)(szs - 4));
|
int lszs = 20; // Lowest Slider size
|
||||||
int slider_pos = d7min(
|
float slider_h = (szs - 4) * (static_cast<float>(szs - 4) /
|
||||||
static_cast<float>(tsp + szs - slider_rh - 4),
|
static_cast<float>(ui7_ctx->cm->msr.y));
|
||||||
d7max(
|
int slider_rh = d7min(d7max(slider_h, (float)lszs), (float)(szs - 4));
|
||||||
static_cast<float>(tsp),
|
int slider_pos = d7min(
|
||||||
static_cast<float>(tsp) +
|
static_cast<float>(tsp + szs - slider_rh - 4),
|
||||||
static_cast<float>(
|
d7max(static_cast<float>(tsp),
|
||||||
(szs) * (static_cast<float>(ui7_ctx->cm->scrolling_offset) /
|
static_cast<float>(tsp) +
|
||||||
static_cast<float>(ui7_ctx->cm->msr.y)))));
|
static_cast<float>(
|
||||||
int slider_w = 4;
|
(szs) *
|
||||||
ui7_ctx->cm->front->AddRectangle(R7Vec2(sw - 12, tsp),
|
(static_cast<float>(ui7_ctx->cm->scrolling_offset) /
|
||||||
R7Vec2(slider_w * 2, szs), RD7Color_List0);
|
static_cast<float>(ui7_ctx->cm->msr.y)))));
|
||||||
ui7_ctx->cm->front->AddRectangle(R7Vec2(sw - 10, slider_pos + 2),
|
int slider_w = 4;
|
||||||
R7Vec2(slider_w, slider_h),
|
ui7_ctx->cm->front->AddRectangle(
|
||||||
RD7Color_Selector);
|
R7Vec2(sw - 12, tsp), R7Vec2(slider_w * 2, szs), RD7Color_List0);
|
||||||
|
ui7_ctx->cm->front->AddRectangle(R7Vec2(sw - 10, slider_pos + 2),
|
||||||
|
R7Vec2(slider_w, slider_h),
|
||||||
|
RD7Color_Selector);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ui7_ctx->active_menus.push_back(ui7_ctx->cm);
|
ui7_ctx->active_menus.push_back(ui7_ctx->cm);
|
||||||
ui7_ctx->cm = nullptr;
|
ui7_ctx->cm = nullptr;
|
||||||
@ -469,6 +502,7 @@ void Update() {
|
|||||||
it->background->Process();
|
it->background->Process();
|
||||||
it->main->Process();
|
it->main->Process();
|
||||||
it->front->Process();
|
it->front->Process();
|
||||||
|
it->ctrl->Clear();
|
||||||
}
|
}
|
||||||
ui7_ctx->fdl->Process();
|
ui7_ctx->fdl->Process();
|
||||||
ui7_ctx->active_menus.clear();
|
ui7_ctx->active_menus.clear();
|
||||||
@ -502,6 +536,7 @@ bool Button(const std::string &label, R7Vec2 size) {
|
|||||||
R7Vec2 pos = GetCursorPos();
|
R7Vec2 pos = GetCursorPos();
|
||||||
|
|
||||||
UI7CtxCursorMove(size);
|
UI7CtxCursorMove(size);
|
||||||
|
ui7_ctx->cm->ctrl->AddObj();
|
||||||
|
|
||||||
if (ui7_ctx->cm->enable_scrolling) {
|
if (ui7_ctx->cm->enable_scrolling) {
|
||||||
R7Vec2 pb = pos;
|
R7Vec2 pb = pos;
|
||||||
@ -540,6 +575,7 @@ void Checkbox(const std::string &label, bool &c) {
|
|||||||
R7Vec2 pos = GetCursorPos();
|
R7Vec2 pos = GetCursorPos();
|
||||||
|
|
||||||
UI7CtxCursorMove(inp);
|
UI7CtxCursorMove(inp);
|
||||||
|
ui7_ctx->cm->ctrl->AddObj();
|
||||||
|
|
||||||
if (ui7_ctx->cm->enable_scrolling) {
|
if (ui7_ctx->cm->enable_scrolling) {
|
||||||
R7Vec2 pb = pos;
|
R7Vec2 pb = pos;
|
||||||
@ -577,6 +613,7 @@ void Label(const std::string &label, RD7TextFlags flags) {
|
|||||||
auto upos = pos;
|
auto upos = pos;
|
||||||
// Remove some y offset cause texts have some offset
|
// Remove some y offset cause texts have some offset
|
||||||
UI7CtxCursorMove(textdim - R7Vec2(0, 4));
|
UI7CtxCursorMove(textdim - R7Vec2(0, 4));
|
||||||
|
ui7_ctx->cm->ctrl->AddObj();
|
||||||
|
|
||||||
if (ui7_ctx->cm->enable_scrolling) {
|
if (ui7_ctx->cm->enable_scrolling) {
|
||||||
R7Vec2 pb = pos;
|
R7Vec2 pb = pos;
|
||||||
@ -605,6 +642,7 @@ void Progressbar(float value) {
|
|||||||
if (ui7_ctx->cm->show_scroolbar && ui7_ctx->cm->enable_scrolling)
|
if (ui7_ctx->cm->show_scroolbar && ui7_ctx->cm->enable_scrolling)
|
||||||
size.x -= 16;
|
size.x -= 16;
|
||||||
UI7CtxCursorMove(size);
|
UI7CtxCursorMove(size);
|
||||||
|
ui7_ctx->cm->ctrl->AddObj();
|
||||||
|
|
||||||
if (ui7_ctx->cm->enable_scrolling) {
|
if (ui7_ctx->cm->enable_scrolling) {
|
||||||
R7Vec2 pb = pos;
|
R7Vec2 pb = pos;
|
||||||
@ -628,6 +666,7 @@ void Image(RenderD7::Image::Ref img) {
|
|||||||
if (!UI7CtxValidate()) return;
|
if (!UI7CtxValidate()) return;
|
||||||
R7Vec2 pos = GetCursorPos();
|
R7Vec2 pos = GetCursorPos();
|
||||||
UI7CtxCursorMove(R7Vec2(img->GetSize().x, img->GetSize().y));
|
UI7CtxCursorMove(R7Vec2(img->GetSize().x, img->GetSize().y));
|
||||||
|
ui7_ctx->cm->ctrl->AddObj();
|
||||||
|
|
||||||
if (ui7_ctx->cm->enable_scrolling) {
|
if (ui7_ctx->cm->enable_scrolling) {
|
||||||
R7Vec2 pb = pos;
|
R7Vec2 pb = pos;
|
||||||
@ -652,6 +691,7 @@ void BrowserList(const std::vector<std::string> &entrys, int &selection,
|
|||||||
size.x = (RenderD7::R2()->GetCurrentScreen() ? 400 : 320) - (pos.x * 2);
|
size.x = (RenderD7::R2()->GetCurrentScreen() ? 400 : 320) - (pos.x * 2);
|
||||||
if (size.y == 0) size.y = (max_entrys * 15);
|
if (size.y == 0) size.y = (max_entrys * 15);
|
||||||
UI7CtxCursorMove(size);
|
UI7CtxCursorMove(size);
|
||||||
|
ui7_ctx->cm->ctrl->AddObj();
|
||||||
int selindex = (selection < max_entrys ? selection : (max_entrys - 1));
|
int selindex = (selection < max_entrys ? selection : (max_entrys - 1));
|
||||||
|
|
||||||
for (int i = 0; i < max_entrys; i++) {
|
for (int i = 0; i < max_entrys; i++) {
|
||||||
@ -696,6 +736,7 @@ void InputText(const std::string &label, std::string &text,
|
|||||||
|
|
||||||
R7Vec2 pos = GetCursorPos();
|
R7Vec2 pos = GetCursorPos();
|
||||||
UI7CtxCursorMove(inp);
|
UI7CtxCursorMove(inp);
|
||||||
|
ui7_ctx->cm->ctrl->AddObj();
|
||||||
|
|
||||||
if (ui7_ctx->cm->enable_scrolling) {
|
if (ui7_ctx->cm->enable_scrolling) {
|
||||||
R7Vec2 pb = pos;
|
R7Vec2 pb = pos;
|
||||||
@ -892,6 +933,7 @@ void ColorSelector(const std::string &label, unsigned int &color) {
|
|||||||
|
|
||||||
R7Vec2 pos = GetCursorPos();
|
R7Vec2 pos = GetCursorPos();
|
||||||
UI7CtxCursorMove(inp);
|
UI7CtxCursorMove(inp);
|
||||||
|
ui7_ctx->cm->ctrl->AddObj();
|
||||||
|
|
||||||
if (ui7_ctx->cm->enable_scrolling) {
|
if (ui7_ctx->cm->enable_scrolling) {
|
||||||
R7Vec2 pb = pos;
|
R7Vec2 pb = pos;
|
||||||
@ -1103,6 +1145,7 @@ void RestoreCursor() {
|
|||||||
void SameLine() {
|
void SameLine() {
|
||||||
if (!UI7CtxValidate()) return;
|
if (!UI7CtxValidate()) return;
|
||||||
if (!UI7CtxInMenu()) return;
|
if (!UI7CtxInMenu()) return;
|
||||||
|
ui7_ctx->cm->ctrl->NewRow();
|
||||||
ui7_ctx->cm->cursor = ui7_ctx->cm->slc;
|
ui7_ctx->cm->cursor = ui7_ctx->cm->slc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#include <renderd7/Error.hpp>
|
||||||
#include <renderd7/FileSystem.hpp>
|
#include <renderd7/FileSystem.hpp>
|
||||||
#include <renderd7/external/json.hpp>
|
#include <renderd7/external/json.hpp>
|
||||||
#include <renderd7/internal_db.hpp>
|
#include <renderd7/internal_db.hpp>
|
||||||
@ -74,6 +75,16 @@ bool rd7i_amdt = false;
|
|||||||
void *rd7i_soc_buf = nullptr;
|
void *rd7i_soc_buf = nullptr;
|
||||||
bool rd7i_is_am_init = false;
|
bool rd7i_is_am_init = false;
|
||||||
RenderD7::Theme::Ref rd7i_active_theme;
|
RenderD7::Theme::Ref rd7i_active_theme;
|
||||||
|
RenderD7::LoggerBase::Ref rd7i_logger;
|
||||||
|
bool rd7i_lggrf = false;
|
||||||
|
|
||||||
|
RenderD7::LoggerBase::Ref _rd7i_logger() {
|
||||||
|
if (!rd7i_logger) {
|
||||||
|
RenderD7::Error(
|
||||||
|
"You're trying to use a RenderD7 Func without Init RenderD7!");
|
||||||
|
}
|
||||||
|
return rd7i_logger;
|
||||||
|
}
|
||||||
|
|
||||||
/// Global ///
|
/// Global ///
|
||||||
// Outdated HidApi (HidV2Patched)
|
// Outdated HidApi (HidV2Patched)
|
||||||
|
@ -33,8 +33,8 @@
|
|||||||
#include <random>
|
#include <random>
|
||||||
|
|
||||||
RenderD7::R2Base::Ref rd7i_render2;
|
RenderD7::R2Base::Ref rd7i_render2;
|
||||||
RenderD7::LoggerBase::Ref rd7i_logger;
|
|
||||||
RenderD7::LoggerBase::Ref rd7i_glogger;
|
RenderD7::LoggerBase::Ref rd7i_glogger;
|
||||||
|
extern RenderD7::LoggerBase::Ref rd7i_logger;
|
||||||
|
|
||||||
static void RD7i_ExitHook() {
|
static void RD7i_ExitHook() {
|
||||||
C2D_TextBufDelete(rd7i_text_buffer);
|
C2D_TextBufDelete(rd7i_text_buffer);
|
||||||
@ -182,14 +182,12 @@ void rd7i_init_config() {
|
|||||||
rd7i_config.clear();
|
rd7i_config.clear();
|
||||||
rd7i_config["info"]["version"] = CFGVER;
|
rd7i_config["info"]["version"] = CFGVER;
|
||||||
rd7i_config["info"]["renderd7ver"] = RENDERD7VSTRING;
|
rd7i_config["info"]["renderd7ver"] = RENDERD7VSTRING;
|
||||||
rd7i_config["settings"]["doscreentimeout"] = 0;
|
rd7i_config["metrik-settings"]["show"] = false;
|
||||||
rd7i_config["settings"]["forcetimeoutLB"] = true;
|
|
||||||
rd7i_config["settings"]["renderer"] = "c3d_c2d";
|
|
||||||
rd7i_config["metrik-settings"]["enableoverlay"] = false;
|
|
||||||
rd7i_config["metrik-settings"]["Screen"] = true;
|
rd7i_config["metrik-settings"]["Screen"] = true;
|
||||||
rd7i_config["metrik-settings"]["txtColor"] = "#ffffffff";
|
rd7i_config["metrik-settings"]["Text"] = "#ffffffff";
|
||||||
rd7i_config["metrik-settings"]["Color"] = "#aa000000";
|
rd7i_config["metrik-settings"]["Bg"] = "#aa000000";
|
||||||
rd7i_config["metrik-settings"]["txtSize"] = 0.7f;
|
rd7i_config["metrik-settings"]["Size"] = 0.7f;
|
||||||
|
rd7i_config["internal_logger"]["nowritetxt"] = true;
|
||||||
std::fstream cfg_wrt(rd7i_config_path + "/config.rc7", std::ios::out);
|
std::fstream cfg_wrt(rd7i_config_path + "/config.rc7", std::ios::out);
|
||||||
cfg_wrt << rd7i_config.dump(4);
|
cfg_wrt << rd7i_config.dump(4);
|
||||||
cfg_wrt.close();
|
cfg_wrt.close();
|
||||||
@ -198,9 +196,10 @@ void rd7i_init_config() {
|
|||||||
cfg_ldr >> rd7i_config;
|
cfg_ldr >> rd7i_config;
|
||||||
cfg_ldr.close();
|
cfg_ldr.close();
|
||||||
|
|
||||||
rd7i_metrikd = rd7i_config["metrik-settings"]["enableoverlay"].get<bool>();
|
rd7i_metrikd = rd7i_config["metrik-settings"]["show"].get<bool>();
|
||||||
rd7i_mt_txtSize = rd7i_config["metrik-settings"]["txtSize"].get<float>();
|
rd7i_mt_txtSize = rd7i_config["metrik-settings"]["Size"].get<float>();
|
||||||
rd7i_mt_screen = rd7i_config["metrik-settings"]["Screen"].get<bool>();
|
rd7i_mt_screen = rd7i_config["metrik-settings"]["Screen"].get<bool>();
|
||||||
|
rd7i_lggrf = rd7i_config["internal_logger"]["nowritetxt"].get<bool>();
|
||||||
|
|
||||||
if (rd7i_metrikd)
|
if (rd7i_metrikd)
|
||||||
RenderD7::AddOvl(std::make_unique<RenderD7::Ovl_Metrik>(
|
RenderD7::AddOvl(std::make_unique<RenderD7::Ovl_Metrik>(
|
||||||
@ -363,7 +362,6 @@ Result RenderD7::Init::Main(std::string app_name) {
|
|||||||
RenderD7::Ftrace::ScopedTrace st("rd7-core", f2s(Init::Main));
|
RenderD7::Ftrace::ScopedTrace st("rd7-core", f2s(Init::Main));
|
||||||
rd7i_app_name = app_name;
|
rd7i_app_name = app_name;
|
||||||
rd7i_logger = LoggerBase::New();
|
rd7i_logger = LoggerBase::New();
|
||||||
rd7i_logger->Init("renderd7", true);
|
|
||||||
rd7i_glogger = LoggerBase::New();
|
rd7i_glogger = LoggerBase::New();
|
||||||
|
|
||||||
gfxInitDefault();
|
gfxInitDefault();
|
||||||
@ -380,6 +378,9 @@ Result RenderD7::Init::Main(std::string app_name) {
|
|||||||
atexit(aptExit);
|
atexit(aptExit);
|
||||||
romfsInit();
|
romfsInit();
|
||||||
|
|
||||||
|
rd7i_init_config();
|
||||||
|
_rd7i_logger()->Init("renderd7", rd7i_lggrf);
|
||||||
|
|
||||||
rd7i_active_theme = Theme::New();
|
rd7i_active_theme = Theme::New();
|
||||||
rd7i_active_theme->Default();
|
rd7i_active_theme->Default();
|
||||||
|
|
||||||
@ -414,7 +415,6 @@ Result RenderD7::Init::Main(std::string app_name) {
|
|||||||
rd7i_last_tm = svcGetSystemTick();
|
rd7i_last_tm = svcGetSystemTick();
|
||||||
if (rd7_do_splash) PushSplash();
|
if (rd7_do_splash) PushSplash();
|
||||||
|
|
||||||
rd7i_init_config();
|
|
||||||
rd7i_init_input();
|
rd7i_init_input();
|
||||||
rd7i_init_theme();
|
rd7i_init_theme();
|
||||||
UI7::Init();
|
UI7::Init();
|
||||||
@ -427,13 +427,15 @@ Result RenderD7::Init::Minimal(std::string app_name) {
|
|||||||
RenderD7::Ftrace::ScopedTrace st("rd7-core", f2s(Init::Minimal));
|
RenderD7::Ftrace::ScopedTrace st("rd7-core", f2s(Init::Minimal));
|
||||||
rd7i_app_name = app_name;
|
rd7i_app_name = app_name;
|
||||||
rd7i_logger = LoggerBase::New();
|
rd7i_logger = LoggerBase::New();
|
||||||
rd7i_logger->Init("renderd7", true);
|
|
||||||
rd7i_glogger = LoggerBase::New();
|
rd7i_glogger = LoggerBase::New();
|
||||||
|
|
||||||
gfxInitDefault();
|
gfxInitDefault();
|
||||||
atexit(gfxExit);
|
atexit(gfxExit);
|
||||||
romfsInit();
|
romfsInit();
|
||||||
|
|
||||||
|
rd7i_init_config();
|
||||||
|
_rd7i_logger()->Init("renderd7", rd7i_lggrf);
|
||||||
|
|
||||||
rd7i_active_theme = Theme::New();
|
rd7i_active_theme = Theme::New();
|
||||||
rd7i_active_theme->Default();
|
rd7i_active_theme->Default();
|
||||||
|
|
||||||
@ -473,7 +475,6 @@ Result RenderD7::Init::Minimal(std::string app_name) {
|
|||||||
svcGetSystemInfo(&citracheck, 0x20000, 0);
|
svcGetSystemInfo(&citracheck, 0x20000, 0);
|
||||||
rd7i_is_citra = citracheck ? true : false;
|
rd7i_is_citra = citracheck ? true : false;
|
||||||
|
|
||||||
rd7i_init_config();
|
|
||||||
rd7i_init_input();
|
rd7i_init_input();
|
||||||
rd7i_init_theme();
|
rd7i_init_theme();
|
||||||
UI7::Init();
|
UI7::Init();
|
||||||
@ -612,6 +613,11 @@ void RenderD7::RSettings::Draw(void) const {
|
|||||||
if (UI7::Button("ThemeEditor")) {
|
if (UI7::Button("ThemeEditor")) {
|
||||||
RenderD7::LoadThemeEditor();
|
RenderD7::LoadThemeEditor();
|
||||||
}
|
}
|
||||||
|
if (UI7::Button("Logs")) {
|
||||||
|
shared_request[0x00000001] = RLOGS;
|
||||||
|
}
|
||||||
|
UI7::SameLine();
|
||||||
|
UI7::Checkbox("No File", rd7i_lggrf);
|
||||||
if (UI7::Button("Back")) {
|
if (UI7::Button("Back")) {
|
||||||
shared_request[0x00000002] = 1U;
|
shared_request[0x00000002] = 1U;
|
||||||
}
|
}
|
||||||
@ -800,6 +806,21 @@ void RenderD7::RSettings::Draw(void) const {
|
|||||||
}
|
}
|
||||||
UI7::EndMenu();
|
UI7::EndMenu();
|
||||||
}
|
}
|
||||||
|
} else if (m_state == RLOGS) {
|
||||||
|
RenderD7::R2()->OnScreen(R2Screen_Top);
|
||||||
|
if (UI7::BeginMenu("RenderD7 -> Logs")) {
|
||||||
|
UI7::SetCursorPos(R7Vec2(395, 2));
|
||||||
|
UI7::Label(RENDERD7VSTRING, RD7TextFlags_AlignRight);
|
||||||
|
UI7::RestoreCursor();
|
||||||
|
UI7::EndMenu();
|
||||||
|
}
|
||||||
|
|
||||||
|
RenderD7::R2()->OnScreen(R2Screen_Bottom);
|
||||||
|
if (UI7::BeginMenu("Press \uE001 to go back!", R7Vec2(),
|
||||||
|
UI7MenuFlags_Scrolling)) {
|
||||||
|
for (auto &it : rd7i_logger->Lines()) UI7::Label(it);
|
||||||
|
UI7::EndMenu();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -813,6 +834,7 @@ void RenderD7::RSettings::Logic() {
|
|||||||
std::fstream cfg_wrt(rd7i_config_path + "/config.rc7", std::ios::out);
|
std::fstream cfg_wrt(rd7i_config_path + "/config.rc7", std::ios::out);
|
||||||
rd7i_config["metrik-settings"]["enableoverlay"] = rd7i_metrikd;
|
rd7i_config["metrik-settings"]["enableoverlay"] = rd7i_metrikd;
|
||||||
rd7i_config["metrik-settings"]["Screen"] = rd7i_mt_screen;
|
rd7i_config["metrik-settings"]["Screen"] = rd7i_mt_screen;
|
||||||
|
rd7i_config["internal_logger"]["nowritetxt"] = rd7i_lggrf;
|
||||||
cfg_wrt << rd7i_config.dump(4);
|
cfg_wrt << rd7i_config.dump(4);
|
||||||
cfg_wrt.close();
|
cfg_wrt.close();
|
||||||
rd7i_settings = false;
|
rd7i_settings = false;
|
||||||
@ -843,6 +865,7 @@ void RenderD7::RSettings::Logic() {
|
|||||||
std::fstream cfg_wrt(rd7i_config_path + "/config.rc7", std::ios::out);
|
std::fstream cfg_wrt(rd7i_config_path + "/config.rc7", std::ios::out);
|
||||||
rd7i_config["metrik-settings"]["enableoverlay"] = rd7i_metrikd;
|
rd7i_config["metrik-settings"]["enableoverlay"] = rd7i_metrikd;
|
||||||
rd7i_config["metrik-settings"]["Screen"] = rd7i_mt_screen;
|
rd7i_config["metrik-settings"]["Screen"] = rd7i_mt_screen;
|
||||||
|
rd7i_config["internal_logger"]["nowritetxt"] = rd7i_lggrf;
|
||||||
cfg_wrt << rd7i_config.dump(4);
|
cfg_wrt << rd7i_config.dump(4);
|
||||||
cfg_wrt.close();
|
cfg_wrt.close();
|
||||||
rd7i_settings = false;
|
rd7i_settings = false;
|
||||||
@ -862,7 +885,7 @@ void RenderD7::RSettings::Logic() {
|
|||||||
m_state = RSETTINGS;
|
m_state = RSETTINGS;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (m_state == RIDB) {
|
if (m_state == RIDB || m_state == RLOGS) {
|
||||||
if (d7_hDown & KEY_B) {
|
if (d7_hDown & KEY_B) {
|
||||||
m_state = RSETTINGS;
|
m_state = RSETTINGS;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user