From 62dc080a22c2666ff8ca9eaeac825518346b5a9f Mon Sep 17 00:00:00 2001 From: Jaby Date: Fri, 24 Nov 2023 23:05:18 -0500 Subject: [PATCH] Load Font texture to VRAM --- Support/include/FontWriter/Type/types.hpp | 1 + Support/include/FontWriter/default_font.hpp | 2 +- Support/include/FontWriter/font_writer.hpp | 2 +- Support/src/FontWriter/src/default_font.cpp | 19 +++++++++++++++++-- Support/src/FontWriter/src/font_writer.cpp | 2 +- examples/PoolBox/application/src/main.cpp | 6 +++--- 6 files changed, 24 insertions(+), 8 deletions(-) diff --git a/Support/include/FontWriter/Type/types.hpp b/Support/include/FontWriter/Type/types.hpp index d3453350..90e7b1fb 100644 --- a/Support/include/FontWriter/Type/types.hpp +++ b/Support/include/FontWriter/Type/types.hpp @@ -1,4 +1,5 @@ #pragma once +#include #include namespace JabyEngine { diff --git a/Support/include/FontWriter/default_font.hpp b/Support/include/FontWriter/default_font.hpp index 1f1bbd15..a3b978ed 100644 --- a/Support/include/FontWriter/default_font.hpp +++ b/Support/include/FontWriter/default_font.hpp @@ -8,6 +8,6 @@ namespace JabyEngine { .FontSize = {12, 16} }; - static void load(GPU::PositionU16 vram_dst); + static void load(uint32_t* work_area, SimpleTIM vram_dst); }; } \ No newline at end of file diff --git a/Support/include/FontWriter/font_writer.hpp b/Support/include/FontWriter/font_writer.hpp index 74d6f80f..352cee29 100644 --- a/Support/include/FontWriter/font_writer.hpp +++ b/Support/include/FontWriter/font_writer.hpp @@ -3,6 +3,6 @@ namespace JabyEngine { struct FontWriter { - static void setup(GPU::PositionU16 vram_pos, const FontInfo& font_info); + static void setup(SimpleTIM vram_dst, const FontInfo& font_info); }; } \ No newline at end of file diff --git a/Support/src/FontWriter/src/default_font.cpp b/Support/src/FontWriter/src/default_font.cpp index 19814531..12eac516 100644 --- a/Support/src/FontWriter/src/default_font.cpp +++ b/Support/src/FontWriter/src/default_font.cpp @@ -1,9 +1,24 @@ #include "default_font_data.hpp" #include +#include +#include #include namespace JabyEngine { - void DefaultFont :: load(GPU::PositionU16 vram_dst) { - printf("Loading DefaultFont @0x%p -> %lu\n", default_font_data, sizeof(default_font_data)); + static size_t decompress_font(uint32_t* work_area) { + LZ4Decompressor lz4_decomp(reinterpret_cast(work_area)); + + const auto [progress, bytes_ready] = lz4_decomp.process(ArrayRange(default_font_data, sizeof(default_font_data)), true); + if(progress == Progress::Error) { + return 0; + } + return bytes_ready; + } + + void DefaultFont :: load(uint32_t* work_area, SimpleTIM vram_dst) { + const auto bytes_ready = decompress_font(work_area); + + auto processor = FileProcessor::create(work_area, vram_dst); + processor.process(bytes_ready); } } \ No newline at end of file diff --git a/Support/src/FontWriter/src/font_writer.cpp b/Support/src/FontWriter/src/font_writer.cpp index 5a77a50c..10e583bc 100644 --- a/Support/src/FontWriter/src/font_writer.cpp +++ b/Support/src/FontWriter/src/font_writer.cpp @@ -2,7 +2,7 @@ #include namespace JabyEngine { - void FontWriter :: setup(GPU::PositionU16 vram_pos, const FontInfo& font_info) { + void FontWriter :: setup(SimpleTIM vram_dst, const FontInfo& font_info) { printf("Hello Planschi c:\n"); } } \ No newline at end of file diff --git a/examples/PoolBox/application/src/main.cpp b/examples/PoolBox/application/src/main.cpp index 0b08e380..1aee0ce0 100644 --- a/examples/PoolBox/application/src/main.cpp +++ b/examples/PoolBox/application/src/main.cpp @@ -15,10 +15,10 @@ using NewFontWriter = ::JabyEngine::FontWriter; static object::Paco paco; static void setup() { - static constexpr auto VRAMFontDst = GPU::PositionU16::create(320, 0); + static constexpr auto FontTIM = SimpleTIM(320, 0, 320, DefaultFont::Info.VRAMSize.height); - DefaultFont::load(VRAMFontDst); - NewFontWriter::setup(VRAMFontDst, DefaultFont::Info); + DefaultFont::load(&__heap_start, FontTIM); + NewFontWriter::setup(FontTIM, DefaultFont::Info); Assets::load_for_main(); FontWriter::FontWriter::setup();