diff --git a/sdlpp/sdlpp_textrenderer.cpp b/sdlpp/sdlpp_textrenderer.cpp index 101d881..30abd31 100644 --- a/sdlpp/sdlpp_textrenderer.cpp +++ b/sdlpp/sdlpp_textrenderer.cpp @@ -7,7 +7,7 @@ TextRenderer::TextRenderer( double x, double y, double w, double h, TextRenderer::TextRenderer( double x, double y, double w, double h, std::shared_ptr< Renderer > &r, Font &font, const std::string &text, const std::string &color, - const std::string &outline_color, int outline_size, + const std::string &outline_color, double outline_size, int flags ) : RectangleRender( x, y, w, h, r ) { position_flags = flags; @@ -16,14 +16,21 @@ TextRenderer::TextRenderer( double x, double y, double w, double h, void TextRenderer::setText( Font &font, const std::string &text, const std::string &color, const std::string &outline_color, - int outline_size ) { + double outline_size ) { _text = text; setTextColor( font, color, outline_color, outline_size ); } void TextRenderer::setTextColor( Font &font, const std::string &color, const std::string &outline_color, - int outline_size ) { - setTexture( font, _text, color, outline_color, outline_size ); + double outline_size ) { + int fontSize = 0.6 * getRect().h; + font.changeFontSize(fontSize); + int intOutline = outline_size; + if(intOutline != -1) { + intOutline = outline_size * fontSize; + } + setTexture( font, _text, color, outline_color, intOutline ); + font.revertSize(); updateDstRect(); } void TextRenderer::changeText( const std::string &text ) { diff --git a/sdlpp/sdlpp_textrenderer.hpp b/sdlpp/sdlpp_textrenderer.hpp index f54ce7f..b4ed2ea 100644 --- a/sdlpp/sdlpp_textrenderer.hpp +++ b/sdlpp/sdlpp_textrenderer.hpp @@ -17,14 +17,14 @@ public: std::shared_ptr< Renderer > &r, Font &font, const std::string &text, const std::string &color = "FFFFFF", const std::string &outline_color = "000000", - int outline_size = -1, int flags = SDLPP_TEXT_CENTER ); + double outline_size = -1, int flags = SDLPP_TEXT_CENTER ); void setText( Font &font, const std::string &text, const std::string &color = "FFFFFF", const std::string &outline_color = "000000", - int outline_size = -1 ); + double outline_size = -1 ); void setTextColor( Font &font, const std::string &color = "FFFFFF", const std::string &outline_color = "000000", - int outline_size = -1 ); + double outline_size = -1 ); void changeText( const std::string &text ); void setFlags( int flags ); virtual void render() override;