Implement font upscaling hack for similar looking web/PC font rendering.

This commit is contained in:
sigonasr2 2023-11-29 06:16:56 -06:00
parent f9b00a8931
commit 5331a3d443
7 changed files with 9 additions and 9 deletions

View File

@ -39,7 +39,7 @@ All rights reserved.
#define VERSION_MAJOR 0
#define VERSION_MINOR 2
#define VERSION_PATCH 1
#define VERSION_BUILD 3283
#define VERSION_BUILD 3285
#define stringify(a) stringify_(a)
#define stringify_(a) #a

View File

@ -61,7 +61,7 @@ story_background_image_location = backgrounds/
story_player_name = You
# Dialog font and size.
dialog_font_size = LessRoundBox,24
dialog_font_size = LessRoundBox,12
# Whether or not to show individual data accesses from config data structure.
debug_access_options = 0

View File

@ -73,7 +73,7 @@ namespace olc {
Font(std::string path, int fontSize) : fontSize(fontSize) {
FT_Error error = FT_New_Face(library, path.c_str(), 0, &fontFace);
error = FT_Set_Pixel_Sizes(fontFace, 0, fontSize);
error = FT_Set_Pixel_Sizes(fontFace, 0, fontSize*4);
}
Font(const Font &other) = delete;
@ -114,7 +114,7 @@ namespace olc {
for (size_t i = 0; i < string.size(); i++) {
char32_t chr = string[i];
if(chr=='\r')continue;
Font *toUse = this;
FT_UInt chrIndex = GetCharIndex(chr);
@ -261,7 +261,7 @@ namespace olc {
public:
FontRect GetStringBounds(std::u32string string, float angle = 0.0f) {
FontRect temp=_GetStringBounds(string,angle);
return {temp.offset/2,{temp.size/2}};
return {temp.offset/4,{temp.size/4}};
}
olc::Sprite *RenderStringToSprite(std::u32string string,

View File

@ -3345,7 +3345,7 @@ namespace olc
delete temp;
}
temp=font.RenderStringToDecal(sText,col);
DrawDecal(pos,temp,scale/2,col);
DrawDecal(pos,temp,scale/4,col);
}
void PixelGameEngine::DrawShadowStringDecal(Font&font, const olc::vf2d& pos, const std::u32string& sText, const Pixel col, const Pixel shadowCol, const olc::vf2d& scale,const float shadowSizeFactor){
@ -3358,11 +3358,11 @@ namespace olc
for(float y=-shadowSizeFactor;y<=shadowSizeFactor+0.1;y+=shadowSizeFactor/2){
for(float x=-shadowSizeFactor;x<=shadowSizeFactor+0.1;x+=shadowSizeFactor/2){
if(x!=0||y!=0){
DrawDecal(pos+vf2d{x,y},temp,scale/2,shadowCol);
DrawDecal(pos+vf2d{x,y},temp,scale/4,shadowCol);
}
}
}
DrawDecal(pos,temp,scale/2,col);
DrawDecal(pos,temp,scale/4,col);
}
void PixelGameEngine::DrawShadowStringPropDecal(const olc::vf2d& pos, const std::string& sText, const Pixel col, const Pixel shadowCol, const olc::vf2d& scale,const float shadowSizeFactor){

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 MiB

After

Width:  |  Height:  |  Size: 9.3 MiB

File diff suppressed because one or more lines are too long

Binary file not shown.