From be8803fb03e3729fa809b41076870abfd50bb84e Mon Sep 17 00:00:00 2001 From: J-D-K Date: Mon, 18 Jun 2018 17:11:34 -0400 Subject: [PATCH] Render text on load --- inc/gfx.h | 5 ++++- inc/util.h | 4 ++-- romfs/img/topbar.data | Bin 348168 -> 280 bytes src/gfx.cpp | 32 +++++++++++++++++++++----------- src/main.cpp | 5 ++++- src/ui.cpp | 2 +- 6 files changed, 32 insertions(+), 16 deletions(-) diff --git a/inc/gfx.h b/inc/gfx.h index 2c8b3cd..d14910a 100644 --- a/inc/gfx.h +++ b/inc/gfx.h @@ -6,7 +6,7 @@ namespace gfx { //Inits graphics and shared font. Code for shared font is from switch-portlibs examples - bool init(const uint32_t& _fontSize); + bool init(); bool fini(); //Changes gfx mode to linear double @@ -48,6 +48,9 @@ namespace gfx ~tex(); void draw(uint32_t x, uint32_t y); + //This is specifically for the topbar. + void drawRepeatHori(uint32_t x, uint32_t y, uint32_t w); + private: uint32_t sz; uint16_t width, height; diff --git a/inc/util.h b/inc/util.h index 44aef1f..e49f335 100644 --- a/inc/util.h +++ b/inc/util.h @@ -8,10 +8,10 @@ namespace util //Returns string with date + time std::string getDateTime(); - //Creates Dir 'JKSV/[user]/[title] + //Creates Dir 'JKSV/[title] void makeTitleDir(data::user& u, data::titledata& t); - //Returns 'JKSV/[user]/[title]/' + //Returns 'JKSV/[title]/' std::string getTitleDir(data::user& u, data::titledata& t); //Just returns string with '\n' inserted. diff --git a/romfs/img/topbar.data b/romfs/img/topbar.data index 9bfe955f47d61a9626f92a363045cc991b6a083d..b0de73fed381ac54d5694b89ecbaf0e37987e838 100644 GIT binary patch literal 280 zcmbuw$rS=25CuRc1M?saZ^OPc(1c>T=JD;uX9OPV)#EbeGEcMj#t$=tc?-r`3oLXs z=RC$77-I^3fQUey(5a*Muhu$RYe%gWM=7YKqR9Ek$XO(nkfKQO979A50U-)KczETN TgHz7ozSaE~Yc0fEyoCJ#>3D&& literal 348168 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ÐO}P;`}+*oYuz6Cx9-d` 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, FT_RENDER_MODE_NORMAL); - } + ret = FT_Load_Glyph(face, glyphIndex, FT_LOAD_RENDER); if(ret) return; @@ -187,11 +183,7 @@ namespace gfx i += unitCount; glyphIndex = FT_Get_Char_Index(face, tmpChr); - ret = FT_Load_Glyph(face, glyphIndex, FT_LOAD_DEFAULT); - if(ret == 0) - { - ret = FT_Render_Glyph(face->glyph, FT_RENDER_MODE_NORMAL); - } + ret = FT_Load_Glyph(face, glyphIndex, FT_LOAD_RENDER); if(ret) return 0; @@ -304,4 +296,22 @@ namespace gfx } } } + + void tex::drawRepeatHori(uint32_t x, uint32_t y, uint32_t w) + { + if(data != NULL) + { + uint32_t tY, tX, i = 0; + uint32_t *fb = (uint32_t *)gfxGetFramebuffer(NULL, NULL); + + for(tY = y; tY < y + height; tY++, i++) + { + for(tX = x; tX < x + w; tX++) + { + uint32_t fbPx = fb[tY * frameBufWidth + tX]; + fb[tY * frameBufWidth + tX] = blend(data[i], fbPx); + } + } + } + } } diff --git a/src/main.cpp b/src/main.cpp index 79a520a..4f582ea 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -12,7 +12,7 @@ int main(int argc, const char *argv[]) { bool init = false; - init = gfx::init(64); + init = gfx::init(); if(init) init = sys::init(); if(init) @@ -39,7 +39,10 @@ int main(int argc, const char *argv[]) gfx::clearBufferColor(0xFF3B3B3B); ui::drawTitleBar("JKSV - 06/17/2018"); gfx::drawRectangle(448, 64, 1, 592, 0xFF7B7B7B); + gfx::drawRectangle(449, 64, 2, 592, 0xFF2B2B2B); + gfx::drawRectangle(16, 656, 1248, 1, 0xFF7B7B7B); + gfx::drawRectangle(16, 657, 1248, 2, 0xFF2B2B2B); ui::runApp(down, held); diff --git a/src/ui.cpp b/src/ui.cpp index f8f00b5..8cb458a 100644 --- a/src/ui.cpp +++ b/src/ui.cpp @@ -567,7 +567,7 @@ namespace ui void drawTitleBar(const std::string& txt) { - titleBar.draw(0, 0); + titleBar.drawRepeatHori(0, 0, 1280); gfx::drawText(txt, 16, 16, 64, 0xFFFFFFFF); }