#include "../include/font_writer.hpp" #include #include #include #include #include #include using JabyEngine::Make::PositionI8; 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::FontWriter bios_font_writer = JabyEngine::FontWriter::empty(); static JabyEngine::SimpleTimer timer; static uint8_t wiggle_count = 0; void font_writer_setup() { JabyEngine::DefaultFont::load(&__heap_start, LibraryFontTIM); JabyEngine::GlobalFontPrimitivePool::setup(font_buffer); new_font_writer.setup(LibraryFontTIM, JabyEngine::DefaultFont::Info); bios_font_writer.setup(JabyEngine::BIOSFont::TIM, JabyEngine::BIOSFont::Info); timer.reset(); } void font_writer_update() { static const char*const Text[2] = {"Planschi", "Becken"}; auto& controller = JabyEngine::Periphery::get_primary_controller_as(); auto cur_rumble = controller.get_large_rumble(); if(controller.button.is_down(JabyEngine::Periphery::GenericController::Button::R1) && cur_rumble < 0xFF) { cur_rumble += 1; } if(controller.button.is_down(JabyEngine::Periphery::GenericController::Button::L1) && cur_rumble > 0x0) { cur_rumble -= 1; } controller.set_analog_rumble(cur_rumble, controller.button.is_down(JabyEngine::Periphery::GenericController::Button::Circle)); 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)\n", JabyEngine::GPU::Color24::Green(), &wiggle, wiggle_count, 0xAABBCCDD, Text[wiggle_count&0x1]); bios_font_writer.write(state, "!!PLANSCHBECKEN\n(%i)!!", controller.button.is_down(JabyEngine::Periphery::GenericController::Button::Square) ? JabyEngine::GPU::Color24::Blue() : JabyEngine::GPU::Color24::White(), static_cast(cur_rumble)); if(timer.is_expired_for(50_ms)) { timer.reset(); wiggle_count++; } } void font_writer_render() { new_font_writer.render(); bios_font_writer.render(); }