mirror of
https://github.com/zetaPRIME/libstarlight.git
synced 2025-06-25 21:22:46 +00:00
fix debug console on hardware (also fix gitignore)
This commit is contained in:
parent
a3d3a0efcd
commit
53712cd94c
1
.gitignore
vendored
1
.gitignore
vendored
@ -32,6 +32,7 @@
|
|||||||
*.app
|
*.app
|
||||||
*.elf
|
*.elf
|
||||||
*.3dsx
|
*.3dsx
|
||||||
|
*.cia
|
||||||
# ...and icons
|
# ...and icons
|
||||||
*.smdh
|
*.smdh
|
||||||
|
|
||||||
|
@ -17,7 +17,6 @@ namespace {
|
|||||||
//std::weak_ptr<DebugConsole> curDC = std::shared_ptr<DebugConsole>(nullptr);
|
//std::weak_ptr<DebugConsole> curDC = std::shared_ptr<DebugConsole>(nullptr);
|
||||||
DebugConsole* cs = nullptr;
|
DebugConsole* cs = nullptr;
|
||||||
|
|
||||||
// TODO: figure out how the fuck to make this not svcBreak on hardware!?
|
|
||||||
ssize_t consoleWrite(struct _reent* r, void* fd, const char* ptr, size_t len) {
|
ssize_t consoleWrite(struct _reent* r, void* fd, const char* ptr, size_t len) {
|
||||||
if (!ptr) return -1;
|
if (!ptr) return -1;
|
||||||
|
|
||||||
@ -25,8 +24,8 @@ namespace {
|
|||||||
|
|
||||||
//auto cs = curDC.lock();
|
//auto cs = curDC.lock();
|
||||||
if (cs == nullptr) return -1; // nullref but not expired???
|
if (cs == nullptr) return -1; // nullref but not expired???
|
||||||
cs->text.append("buh");//(ptr, len);
|
cs->text.append(ptr, len);
|
||||||
cs->buffer.reset();
|
cs->dirty = true;
|
||||||
|
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
@ -64,7 +63,6 @@ void DebugConsole::Start() {
|
|||||||
setvbuf(stderr, NULL , _IONBF, 0);
|
setvbuf(stderr, NULL , _IONBF, 0);
|
||||||
|
|
||||||
}
|
}
|
||||||
text = "foop?\n";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DebugConsole::PreDrawOffscreen() {
|
void DebugConsole::PreDrawOffscreen() {
|
||||||
@ -72,7 +70,9 @@ void DebugConsole::PreDrawOffscreen() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void DebugConsole::PreDraw() {
|
void DebugConsole::PreDraw() {
|
||||||
if (!buffer) {
|
if (dirty || !buffer) {
|
||||||
|
dirty = false;
|
||||||
|
|
||||||
static TextConfig textConfig = ThemeManager::GetMetric<TextConfig>("/textPresets/normal.12", TextConfig());
|
static TextConfig textConfig = ThemeManager::GetMetric<TextConfig>("/textPresets/normal.12", TextConfig());
|
||||||
textConfig.font = ThemeManager::GetFont("mono.12");
|
textConfig.font = ThemeManager::GetFont("mono.12");
|
||||||
textConfig.justification = Vector2(0, 1);
|
textConfig.justification = Vector2(0, 1);
|
||||||
@ -85,7 +85,7 @@ void DebugConsole::PreDraw() {
|
|||||||
text = text.substr(cfp);
|
text = text.substr(cfp);
|
||||||
}
|
}
|
||||||
|
|
||||||
buffer = std::make_unique<gfx::DrawContextCanvas>(rect.size + Vector2(0, 8));
|
if (!buffer) buffer = std::make_unique<gfx::DrawContextCanvas>(rect.size + Vector2(0, 8));
|
||||||
buffer->Clear();
|
buffer->Clear();
|
||||||
GFXManager::PushContext(buffer.get());
|
GFXManager::PushContext(buffer.get());
|
||||||
textConfig.Print(buffer->rect, text);
|
textConfig.Print(buffer->rect, text);
|
||||||
|
@ -23,6 +23,7 @@ namespace starlight {
|
|||||||
std::string text = "";
|
std::string text = "";
|
||||||
|
|
||||||
std::unique_ptr<gfx::DrawContextCanvas> buffer;
|
std::unique_ptr<gfx::DrawContextCanvas> buffer;
|
||||||
|
bool dirty = false;
|
||||||
|
|
||||||
DebugConsole(VRect rect);
|
DebugConsole(VRect rect);
|
||||||
~DebugConsole() override;
|
~DebugConsole() override;
|
||||||
|
@ -73,8 +73,8 @@ void Core::Init() {
|
|||||||
label->SetText("This is a form, coming in and nuking the non-form UI elements. Whoops.");
|
label->SetText("This is a form, coming in and nuking the non-form UI elements. Whoops.");
|
||||||
form->touchScreen->Add(label);*/
|
form->touchScreen->Add(label);*/
|
||||||
|
|
||||||
//auto console = form->topScreen->AddNew<sl::ui::DebugConsole>(VRect::topScreen);
|
auto console = form->topScreen->AddNew<sl::ui::DebugConsole>(VRect::topScreen);
|
||||||
//console->Start();
|
console->Start();
|
||||||
|
|
||||||
auto xbtn = std::make_shared<sl::ui::Button>(VRect(320-96,28,32,24));
|
auto xbtn = std::make_shared<sl::ui::Button>(VRect(320-96,28,32,24));
|
||||||
xbtn->eOnTap = [](auto& btn){
|
xbtn->eOnTap = [](auto& btn){
|
||||||
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user