Fix bug in Font::setFontStyle

This commit is contained in:
Kirigaya Kazuto 2017-05-16 15:52:00 +08:00
parent b40db11955
commit 00a3000d1d

View File

@ -362,13 +362,14 @@ namespace MiniEngine
template<typename... Args> template<typename... Args>
void setFontStyle(Style style,Args&&... args) void setFontStyle(Style style,Args&&... args)
{ {
_internal_fontcalc=0; int fontcalc=0;
_setFontStyle(style,std::forward(args...)); _setFontStyle(fontcalc,style,args...);
} }
void setFontStyle(Style style) void setFontStyle(Style style)
{ {
_real_setFontStyle(_style_caster(style)); int fontcalc=0;
_setFontStyle(fontcalc,style);
} }
std::tuple<Style> getFontStyles(); std::tuple<Style> getFontStyles();
@ -397,21 +398,20 @@ namespace MiniEngine
Texture renderUTF8Solid(Renderer rnd, std::string Text, RGBA fg); Texture renderUTF8Solid(Renderer rnd, std::string Text, RGBA fg);
protected: protected:
template<typename... Args> template<typename... Args>
void _setFontStyle(Style style,Args&&... args) void _setFontStyle(int& fontcalc,Style style,Args&&... args)
{ {
_internal_fontcalc|=_style_caster(style); fontcalc|=_style_caster(style);
_setFontStyle(args...); _setFontStyle(fontcalc,args...);
} }
void _setFontStyle(Style style) void _setFontStyle(int& fontcalc,Style style)
{ {
_internal_fontcalc|=_style_caster(style); fontcalc|=_style_caster(style);
_real_setFontStyle(_internal_fontcalc); _real_setFontStyle(fontcalc);
} }
private: private:
void _real_setFontStyle(int); void _real_setFontStyle(int);
int _style_caster(Style); int _style_caster(Style);
int _internal_fontcalc;
std::shared_ptr<TTF_Font> _font; std::shared_ptr<TTF_Font> _font;
void _set(TTF_Font*); void _set(TTF_Font*);