Move ScreenCenter code to FontCycler
This commit is contained in:
parent
f78d29c763
commit
60aa84ef28
|
@ -6,6 +6,9 @@
|
||||||
"gpu_tests": {
|
"gpu_tests": {
|
||||||
"pattern": "bin/*/src/Overlay/GPUTest/*.o"
|
"pattern": "bin/*/src/Overlay/GPUTest/*.o"
|
||||||
},
|
},
|
||||||
|
"font_cycler": {
|
||||||
|
"pattern": "bin/*/src/Overlay/FontCycler/*.o"
|
||||||
|
},
|
||||||
"screen_center": {
|
"screen_center": {
|
||||||
"pattern": "bin/*/src/Overlay/ScreenCenter/*.o"
|
"pattern": "bin/*/src/Overlay/ScreenCenter/*.o"
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@ namespace Assets {
|
||||||
namespace Overlay {
|
namespace Overlay {
|
||||||
void load_controller_test();
|
void load_controller_test();
|
||||||
void load_gpu_test();
|
void load_gpu_test();
|
||||||
|
void load_font_cycler();
|
||||||
void load_screen_center();
|
void load_screen_center();
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,79 @@
|
||||||
|
#include "../../../include/shared.hpp"
|
||||||
|
#include <PSX/GPU/gpu.hpp>
|
||||||
|
#include <PSX/Periphery/periphery.hpp>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
namespace FontCycler {
|
||||||
|
using namespace JabyEngine;
|
||||||
|
|
||||||
|
static const char*const ASCII = "!\"#$%&'()*+,-./0\n123456789:;<=>?@\nABCDEFGHIJKLMNOP\nQRSTUVWXYZ[\\]^_`\nabcdefghijklmnop\nqrstuvwxyz{|}~\n";
|
||||||
|
|
||||||
|
static JabyEngine::FontWriter*const FontWriters[] = {
|
||||||
|
&FontWriter::bios_font_writer,
|
||||||
|
&FontWriter::new_font_writer,
|
||||||
|
};
|
||||||
|
static constexpr auto MaxFontSelector = (sizeof(FontWriters)/sizeof(FontWriters[0])) - 1;
|
||||||
|
static uint8_t font_selector = 0;
|
||||||
|
|
||||||
|
static void increment_font_selector() {
|
||||||
|
if(font_selector == MaxFontSelector) {
|
||||||
|
font_selector = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
else {
|
||||||
|
font_selector++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void decrement_font_selector() {
|
||||||
|
if(font_selector == 0) {
|
||||||
|
font_selector = MaxFontSelector;
|
||||||
|
}
|
||||||
|
|
||||||
|
else {
|
||||||
|
font_selector--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void setup() {
|
||||||
|
Shared::back_menu.reset();
|
||||||
|
font_selector = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool update_or_exit() {
|
||||||
|
Periphery::query_controller();
|
||||||
|
if(Shared::back_menu.update(Make::PositionI16(0, GPU::Display::Height - 32))) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
const auto& controller = Periphery::get_primary_controller_as<Periphery::GenericController>();
|
||||||
|
if(controller.button.went_up(Periphery::GenericController::Button::L1)) {
|
||||||
|
decrement_font_selector();
|
||||||
|
}
|
||||||
|
if(controller.button.went_up(Periphery::GenericController::Button::R1)) {
|
||||||
|
increment_font_selector();
|
||||||
|
}
|
||||||
|
|
||||||
|
auto cursor = FontWriter::update(Make::PositionI16(8, 8));
|
||||||
|
FontWriters[font_selector]->write(cursor, ASCII);
|
||||||
|
FontWriters[font_selector]->write(cursor, "\nPress L1 or R1 to cycle\nthrough fonts");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void render() {
|
||||||
|
FontWriters[font_selector]->render();
|
||||||
|
Shared::back_menu.render();
|
||||||
|
}
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
setup();
|
||||||
|
|
||||||
|
while(true) {
|
||||||
|
if(update_or_exit()) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
GPU::swap_buffers_vsync(1);
|
||||||
|
render();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -15,6 +15,10 @@ namespace GPUTest {
|
||||||
void main();
|
void main();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
namespace FontCycler {
|
||||||
|
void main();
|
||||||
|
}
|
||||||
|
|
||||||
namespace ScreenCenter {
|
namespace ScreenCenter {
|
||||||
void main();
|
void main();
|
||||||
}
|
}
|
|
@ -6,38 +6,8 @@
|
||||||
namespace ScreenCenter {
|
namespace ScreenCenter {
|
||||||
using namespace JabyEngine;
|
using namespace JabyEngine;
|
||||||
|
|
||||||
static const char*const ASCII = "!\"#$%&'()*+,-./0\n123456789:;<=>?@\nABCDEFGHIJKLMNOP\nQRSTUVWXYZ[\\]^_`\nabcdefghijklmnop\nqrstuvwxyz{|}~\n";
|
|
||||||
|
|
||||||
static JabyEngine::FontWriter*const FontWriters[] = {
|
|
||||||
&FontWriter::bios_font_writer,
|
|
||||||
&FontWriter::new_font_writer,
|
|
||||||
};
|
|
||||||
static constexpr auto MaxFontSelector = (sizeof(FontWriters)/sizeof(FontWriters[0])) - 1;
|
|
||||||
static uint8_t font_selector = 0;
|
|
||||||
|
|
||||||
static void increment_font_selector() {
|
|
||||||
if(font_selector == MaxFontSelector) {
|
|
||||||
font_selector = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
else {
|
|
||||||
font_selector++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void decrement_font_selector() {
|
|
||||||
if(font_selector == 0) {
|
|
||||||
font_selector = MaxFontSelector;
|
|
||||||
}
|
|
||||||
|
|
||||||
else {
|
|
||||||
font_selector--;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void setup() {
|
static void setup() {
|
||||||
Shared::back_menu.reset();
|
Shared::back_menu.reset();
|
||||||
font_selector = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool update_or_exit() {
|
static bool update_or_exit() {
|
||||||
|
@ -46,26 +16,17 @@ namespace ScreenCenter {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto& controller = Periphery::get_primary_controller_as<Periphery::GenericController>();
|
|
||||||
if(controller.button.went_up(Periphery::GenericController::Button::L1)) {
|
|
||||||
decrement_font_selector();
|
|
||||||
}
|
|
||||||
if(controller.button.went_up(Periphery::GenericController::Button::R1)) {
|
|
||||||
increment_font_selector();
|
|
||||||
}
|
|
||||||
|
|
||||||
auto cursor = FontWriter::update(Make::PositionI16(8, 8));
|
auto cursor = FontWriter::update(Make::PositionI16(8, 8));
|
||||||
FontWriters[font_selector]->write(cursor, ASCII);
|
FontWriter::bios_font_writer.write(cursor, "NOTHING HERE TO SEE", GPU::Color24::Red());
|
||||||
FontWriters[font_selector]->write(cursor, "\nPress L1 or R1 to cycle\nthrough fonts");
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void render() {
|
static void render() {
|
||||||
FontWriters[font_selector]->render();
|
|
||||||
Shared::back_menu.render();
|
Shared::back_menu.render();
|
||||||
}
|
}
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
|
printf("BlubbBlubbBlubbBlubb\n");
|
||||||
setup();
|
setup();
|
||||||
|
|
||||||
while(true) {
|
while(true) {
|
||||||
|
|
|
@ -33,8 +33,8 @@ struct StateChange {
|
||||||
static const Menu::SimpleMenu::Entry MenuEntries[] = {
|
static const Menu::SimpleMenu::Entry MenuEntries[] = {
|
||||||
{"Controller Test"},
|
{"Controller Test"},
|
||||||
{"GPU Test"},
|
{"GPU Test"},
|
||||||
|
{"Font Cycler"},
|
||||||
{"Screen Center"},
|
{"Screen Center"},
|
||||||
{"Menu 4"},
|
|
||||||
{"Menu 5"}
|
{"Menu 5"}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -72,8 +72,14 @@ static void setup() {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
|
state_changer.asset_load = Assets::Overlay::load_font_cycler;
|
||||||
|
state_changer.main = FontCycler::main;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 3:
|
||||||
state_changer.asset_load = Assets::Overlay::load_screen_center;
|
state_changer.asset_load = Assets::Overlay::load_screen_center;
|
||||||
state_changer.main = ScreenCenter::main;
|
state_changer.main = ScreenCenter::main;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
},MenuEntries);
|
},MenuEntries);
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,8 @@ namespace Assets {
|
||||||
__jabyengine_request_lba_for(PACO, "ASSETS/MAIN/PACO.BIN"),
|
__jabyengine_request_lba_for(PACO, "ASSETS/MAIN/PACO.BIN"),
|
||||||
__jabyengine_request_lba_for(GPU_TEST_OVL, "GTO.BIN"),
|
__jabyengine_request_lba_for(GPU_TEST_OVL, "GTO.BIN"),
|
||||||
__jabyengine_request_lba_for(CONT_TEST_OVL, "CTO.BIN"),
|
__jabyengine_request_lba_for(CONT_TEST_OVL, "CTO.BIN"),
|
||||||
__jabyengine_request_lba_for(SC_OVL, "SCO.BIN"),
|
__jabyengine_request_lba_for(FONT_CYC_OVL, "FCO.BIN"),
|
||||||
|
__jabyengine_request_lba_for(SCREEN_CENT_OVL, "SCO.BIN"),
|
||||||
__jabyengine_end_lba_request
|
__jabyengine_end_lba_request
|
||||||
};
|
};
|
||||||
__declare_lba_header(LBA);
|
__declare_lba_header(LBA);
|
||||||
|
@ -78,9 +79,17 @@ namespace Assets {
|
||||||
::Assets::load(GPUTest::lba, GPUTest::Assets);
|
::Assets::load(GPUTest::lba, GPUTest::Assets);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void load_font_cycler() {
|
||||||
|
const CDFile Files[] = {
|
||||||
|
CDFileBuilder::overlay(LBA::FONT_CYC_OVL, &__screen_center_start)
|
||||||
|
};
|
||||||
|
|
||||||
|
::Assets::load(lba, Files);
|
||||||
|
}
|
||||||
|
|
||||||
void load_screen_center() {
|
void load_screen_center() {
|
||||||
const CDFile Files[] = {
|
const CDFile Files[] = {
|
||||||
CDFileBuilder::overlay(LBA::SC_OVL, &__screen_center_start)
|
CDFileBuilder::overlay(LBA::SCREEN_CENT_OVL, &__screen_center_start)
|
||||||
};
|
};
|
||||||
|
|
||||||
::Assets::load(lba, Files);
|
::Assets::load(lba, Files);
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
<Main name = "XXXX_AAA.AA" lba_source = "../application/src/asset_mgr.cpp">../application/bin/PSX-release/PoolBox.psexe</Main>
|
<Main name = "XXXX_AAA.AA" lba_source = "../application/src/asset_mgr.cpp">../application/bin/PSX-release/PoolBox.psexe</Main>
|
||||||
<Overlay name = "CTO.BIN" lba_source = "../application/src/Overlay/ControllerTest/controller_test_assets.cpp">../application/bin/PSX-release/Overlay.controller_tests</Overlay>
|
<Overlay name = "CTO.BIN" lba_source = "../application/src/Overlay/ControllerTest/controller_test_assets.cpp">../application/bin/PSX-release/Overlay.controller_tests</Overlay>
|
||||||
<Overlay name = "GTO.BIN" lba_source = "../application/src/Overlay/GPUTest/gpu_test_assets.cpp">../application/bin/PSX-release/Overlay.gpu_tests</Overlay>
|
<Overlay name = "GTO.BIN" lba_source = "../application/src/Overlay/GPUTest/gpu_test_assets.cpp">../application/bin/PSX-release/Overlay.gpu_tests</Overlay>
|
||||||
|
<Overlay name = "FCO.BIN">../application/bin/PSX-release/Overlay.font_cycler</Overlay>
|
||||||
<Overlay name = "SCO.BIN">../application/bin/PSX-release/Overlay.screen_center</Overlay>
|
<Overlay name = "SCO.BIN">../application/bin/PSX-release/Overlay.screen_center</Overlay>
|
||||||
|
|
||||||
<Directory name="ASSETS" hidden = "true">
|
<Directory name="ASSETS" hidden = "true">
|
||||||
|
|
Loading…
Reference in New Issue