#pragma once #include "Type/types.hpp" namespace JabyEngine { class FontWriter { private: FontBufferInfo prim_buffer; GPU::TexPage::Linked tex_page; FontPrimitive* cur_primitive; void setup(const FontBufferInfo& buffer_info, const SimpleTIM& vram_dst, const GPU::SizeI16& font_size); public: static constexpr FontWriter empty() { FontWriter instance; instance.prim_buffer = FontBufferInfo::empty(); instance.tex_page = {0}; instance.cur_primitive = nullptr; return instance; } void setup(const FontBufferInfo& buffer_info, const SimpleTIM& vram_dst, const FontInfo& font_info) { FontWriter::setup(buffer_info, vram_dst, Make::SizeI16(font_info.FontSize.width, font_info.FontSize.height)); } GPU::PositionI16 write(GPU::PositionI16 pos, const char* str); void render(); }; }