Support BIOS Font

This commit is contained in:
2024-01-02 15:42:57 -06:00
parent f96b55a548
commit a67a634fd8
7 changed files with 68 additions and 46 deletions

View File

@@ -1,24 +1,30 @@
#include "../include/font_writer.hpp"
#include <PSX/File/Processor/cd_file_processor.hpp>
#include <PSX/GPU/gpu_auto_load_font.hpp>
#include <PSX/GPU/make_gpu_primitives.hpp>
#include <PSX/Timer/frame_timer.hpp>
#include <FontWriter/default_font.hpp>
using JabyEngine::Make::PositionI8;
static constexpr auto FontWriterTIM = JabyEngine::SimpleTIM(320, 0, 320, JabyEngine::DefaultFont::Info.texture_size.height);
static constexpr auto LibraryFontTIM = JabyEngine::SimpleTIM(320, 0, 320, JabyEngine::DefaultFont::Info.texture_size.height);
static JabyEngine::FontPrimitive font_buffer[2*256];
static JabyEngine::Wiggle wiggle = {PositionI8(0, 0), PositionI8(1, -2), PositionI8(0, -4), PositionI8(-1, -2), PositionI8(0, 0), PositionI8(1, 2), PositionI8(0, 4), PositionI8(-1, 2)};
static JabyEngine::FontWriter new_font_writer = JabyEngine::FontWriter::empty();
static JabyEngine::Wiggle wiggle = {PositionI8(0, 0), PositionI8(1, -2), PositionI8(0, -4), PositionI8(-1, -2), PositionI8(0, 0), PositionI8(1, 2), PositionI8(0, 4), PositionI8(-1, 2)};
static JabyEngine::FontWriter new_font_writer = JabyEngine::FontWriter::empty();
static JabyEngine::FontWriter bios_font_writer = JabyEngine::FontWriter::empty();
static JabyEngine::SimpleTimer<uint8_t> timer;
static uint8_t wiggle_count = 0;
static uint8_t wiggle_count = 0;
void font_writer_setup() {
JabyEngine::DefaultFont::load(&__heap_start, FontWriterTIM);
JabyEngine::DefaultFont::load(&__heap_start, LibraryFontTIM);
JabyEngine::GlobalFontPrimitivePool::setup(font_buffer);
new_font_writer.setup(FontWriterTIM, JabyEngine::DefaultFont::Info);
new_font_writer.setup(LibraryFontTIM, JabyEngine::DefaultFont::Info);
bios_font_writer.setup(JabyEngine::GPU::BIOS_Font::as_simple_tim(), {
.texture_size = {64, 80},
.font_size = {16, 16}
});
timer.reset();
}
@@ -27,7 +33,8 @@ void font_writer_update() {
auto state = JabyEngine::State::create(JabyEngine::Make::PositionI16(8, 8), wiggle_count);
new_font_writer.write(state, "012345 ABCDEFGHIJKL\nabcedfghijkl\n", JabyEngine::GPU::Color24::Blue(), &wiggle);
new_font_writer.write(state, "%i (0x%p)\nWiggle (%s)", JabyEngine::GPU::Color24::Green(), &wiggle, wiggle_count, 0xAABBCCDD, Text[wiggle_count&0x1]);
new_font_writer.write(state, "%i (0x%p)\nWiggle (%s)\n", JabyEngine::GPU::Color24::Green(), &wiggle, wiggle_count, 0xAABBCCDD, Text[wiggle_count&0x1]);
bios_font_writer.write(state, "!!PLANSCHBECKEN!!");
if(timer.is_expired_for(50_ms)) {
timer.reset();
@@ -37,4 +44,5 @@ void font_writer_update() {
void font_writer_render() {
new_font_writer.render();
bios_font_writer.render();
}