mirror of
https://github.com/Kiritow/MiniEngine.git
synced 2024-03-22 13:11:22 +08:00
class Font supports Unicode now.
This commit is contained in:
parent
7cecae5695
commit
e6624b8238
128
MiniEngine.cpp
128
MiniEngine.cpp
|
@ -171,47 +171,47 @@ namespace MiniEngine
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int getTTFFontStyleFromFontStyle(Font::Style style)
|
int getTTFFontStyleFromFontStyle(FontStyle style)
|
||||||
{
|
{
|
||||||
switch(style)
|
switch(style)
|
||||||
{
|
{
|
||||||
case Font::Style::Bold:
|
case FontStyle::Bold:
|
||||||
return TTF_STYLE_BOLD;
|
return TTF_STYLE_BOLD;
|
||||||
case Font::Style::Italic:
|
case FontStyle::Italic:
|
||||||
return TTF_STYLE_ITALIC;
|
return TTF_STYLE_ITALIC;
|
||||||
case Font::Style::Normal:
|
case FontStyle::Normal:
|
||||||
return TTF_STYLE_NORMAL;
|
return TTF_STYLE_NORMAL;
|
||||||
case Font::Style::StrikeThrough:
|
case FontStyle::StrikeThrough:
|
||||||
return TTF_STYLE_STRIKETHROUGH;
|
return TTF_STYLE_STRIKETHROUGH;
|
||||||
case Font::Style::UnderLine:
|
case FontStyle::UnderLine:
|
||||||
return TTF_STYLE_UNDERLINE;
|
return TTF_STYLE_UNDERLINE;
|
||||||
default:
|
default:
|
||||||
return TTF_STYLE_NORMAL;
|
return TTF_STYLE_NORMAL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<Font::Style> getFontStyleVecFromMixedTTFFontStyle(int Mixed_TTF_Font_Style)
|
std::vector<FontStyle> getFontStyleVecFromMixedTTFFontStyle(int Mixed_TTF_Font_Style)
|
||||||
{
|
{
|
||||||
std::vector<Font::Style> vec;
|
std::vector<FontStyle> vec;
|
||||||
if(Mixed_TTF_Font_Style&TTF_STYLE_BOLD)
|
if(Mixed_TTF_Font_Style&TTF_STYLE_BOLD)
|
||||||
{
|
{
|
||||||
vec.push_back(Font::Style::Bold);
|
vec.push_back(FontStyle::Bold);
|
||||||
}
|
}
|
||||||
if(Mixed_TTF_Font_Style&TTF_STYLE_ITALIC)
|
if(Mixed_TTF_Font_Style&TTF_STYLE_ITALIC)
|
||||||
{
|
{
|
||||||
vec.push_back(Font::Style::Italic);
|
vec.push_back(FontStyle::Italic);
|
||||||
}
|
}
|
||||||
if(Mixed_TTF_Font_Style&TTF_STYLE_STRIKETHROUGH)
|
if(Mixed_TTF_Font_Style&TTF_STYLE_STRIKETHROUGH)
|
||||||
{
|
{
|
||||||
vec.push_back(Font::Style::StrikeThrough);
|
vec.push_back(FontStyle::StrikeThrough);
|
||||||
}
|
}
|
||||||
if(Mixed_TTF_Font_Style&TTF_STYLE_UNDERLINE)
|
if(Mixed_TTF_Font_Style&TTF_STYLE_UNDERLINE)
|
||||||
{
|
{
|
||||||
vec.push_back(Font::Style::UnderLine);
|
vec.push_back(FontStyle::UnderLine);
|
||||||
}
|
}
|
||||||
if(vec.empty())
|
if(vec.empty())
|
||||||
{
|
{
|
||||||
vec.push_back(Font::Style::Normal);
|
vec.push_back(FontStyle::Normal);
|
||||||
}
|
}
|
||||||
|
|
||||||
return vec;
|
return vec;
|
||||||
|
@ -1380,7 +1380,7 @@ namespace MiniEngine
|
||||||
_font.reset();
|
_font.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
TTF_Font* Font::_get()
|
TTF_Font* Font::_get() const
|
||||||
{
|
{
|
||||||
return _font.get();
|
return _font.get();
|
||||||
}
|
}
|
||||||
|
@ -1403,32 +1403,32 @@ namespace MiniEngine
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Font::isReady()
|
bool Font::isReady() const
|
||||||
{
|
{
|
||||||
return (_get() != nullptr);
|
return (_get() != nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Font::isNormal()
|
bool Font::isNormal() const
|
||||||
{
|
{
|
||||||
return !(TTF_GetFontStyle(_get()));
|
return !(TTF_GetFontStyle(_get()));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Font::isBold()
|
bool Font::isBold() const
|
||||||
{
|
{
|
||||||
return (TTF_GetFontStyle(_get()) & TTF_STYLE_BOLD );
|
return (TTF_GetFontStyle(_get()) & TTF_STYLE_BOLD );
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Font::isItalic()
|
bool Font::isItalic() const
|
||||||
{
|
{
|
||||||
return (TTF_GetFontStyle(_get()) & TTF_STYLE_ITALIC );
|
return (TTF_GetFontStyle(_get()) & TTF_STYLE_ITALIC );
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Font::isUnderLine()
|
bool Font::isUnderLine() const
|
||||||
{
|
{
|
||||||
return (TTF_GetFontStyle(_get()) & TTF_STYLE_UNDERLINE );
|
return (TTF_GetFontStyle(_get()) & TTF_STYLE_UNDERLINE );
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Font::isStrikeThrough()
|
bool Font::isStrikeThrough() const
|
||||||
{
|
{
|
||||||
return (TTF_GetFontStyle(_get()) & TTF_STYLE_STRIKETHROUGH );
|
return (TTF_GetFontStyle(_get()) & TTF_STYLE_STRIKETHROUGH );
|
||||||
}
|
}
|
||||||
|
@ -1475,18 +1475,18 @@ namespace MiniEngine
|
||||||
TTF_SetFontStyle(_get(),Style);
|
TTF_SetFontStyle(_get(),Style);
|
||||||
}
|
}
|
||||||
|
|
||||||
int Font::_style_caster(Style style)
|
int Font::_style_caster(FontStyle style)
|
||||||
{
|
{
|
||||||
return _internal::getTTFFontStyleFromFontStyle(style);
|
return _internal::getTTFFontStyleFromFontStyle(style);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<Font::Style> Font::getFontStyles()
|
std::vector<FontStyle> Font::getFontStyles() const
|
||||||
{
|
{
|
||||||
int styles=TTF_GetFontStyle(_get());
|
int styles=TTF_GetFontStyle(_get());
|
||||||
return _internal::getFontStyleVecFromMixedTTFFontStyle(styles);
|
return _internal::getFontStyleVecFromMixedTTFFontStyle(styles);
|
||||||
}
|
}
|
||||||
|
|
||||||
Rect Font::sizeText(const std::string& Text) throw (ErrorViewer)
|
Rect Font::sizeText(const std::string& Text) const throw (ErrorViewer)
|
||||||
{
|
{
|
||||||
int w=0,h=0;
|
int w=0,h=0;
|
||||||
if(TTF_SizeText(_get(),Text.c_str(),&w,&h)!=0)
|
if(TTF_SizeText(_get(),Text.c_str(),&w,&h)!=0)
|
||||||
|
@ -1497,7 +1497,7 @@ namespace MiniEngine
|
||||||
return Rect(0,0,w,h);
|
return Rect(0,0,w,h);
|
||||||
}
|
}
|
||||||
|
|
||||||
Rect Font::sizeUTF8(const std::string& Text) throw (ErrorViewer)
|
Rect Font::sizeUTF8(const std::string& Text) const throw (ErrorViewer)
|
||||||
{
|
{
|
||||||
int w=0,h=0;
|
int w=0,h=0;
|
||||||
if(TTF_SizeUTF8(_get(),Text.c_str(),&w,&h)!=0)
|
if(TTF_SizeUTF8(_get(),Text.c_str(),&w,&h)!=0)
|
||||||
|
@ -1508,70 +1508,109 @@ namespace MiniEngine
|
||||||
return Rect(0,0,w,h);
|
return Rect(0,0,w,h);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Rect Font::sizeUnicode(const uint16_t* Text) const throw (ErrorViewer)
|
||||||
|
{
|
||||||
|
int w=0,h=0;
|
||||||
|
if(TTF_SizeUNICODE(_get(),Text,&w,&h)!=0)
|
||||||
|
{
|
||||||
|
/// Something might be wrong
|
||||||
|
throw ErrorViewer();
|
||||||
|
}
|
||||||
|
return Rect(0,0,w,h);
|
||||||
|
}
|
||||||
|
|
||||||
/// rendering surfaces...
|
/// rendering surfaces...
|
||||||
Surface Font::renderText(std::string Text,RGBA fg)
|
Surface Font::renderText(std::string Text,RGBA fg) const
|
||||||
{
|
{
|
||||||
Surface surf;
|
Surface surf;
|
||||||
surf._set(TTF_RenderText_Blended(_get(), Text.c_str(), fg.toSDLColor()));
|
surf._set(TTF_RenderText_Blended(_get(), Text.c_str(), fg.toSDLColor()));
|
||||||
return surf;
|
return surf;
|
||||||
}
|
}
|
||||||
|
|
||||||
Surface Font::renderTextWrapped(std::string Text, RGBA fg, int WrapLength)
|
Surface Font::renderTextWrapped(std::string Text, RGBA fg, size_t WrapLength) const
|
||||||
{
|
{
|
||||||
Surface surf;
|
Surface surf;
|
||||||
surf._set(TTF_RenderText_Blended_Wrapped(_get(), Text.c_str(), fg.toSDLColor(), WrapLength));
|
surf._set(TTF_RenderText_Blended_Wrapped(_get(), Text.c_str(), fg.toSDLColor(), WrapLength));
|
||||||
return surf;
|
return surf;
|
||||||
}
|
}
|
||||||
|
|
||||||
Surface Font::renderTextShaded(std::string Text, RGBA fg,RGBA bg)
|
Surface Font::renderTextShaded(std::string Text, RGBA fg,RGBA bg) const
|
||||||
{
|
{
|
||||||
Surface surf;
|
Surface surf;
|
||||||
surf._set(TTF_RenderText_Shaded(_get(), Text.c_str(), fg.toSDLColor(), bg.toSDLColor()));
|
surf._set(TTF_RenderText_Shaded(_get(), Text.c_str(), fg.toSDLColor(), bg.toSDLColor()));
|
||||||
return surf;
|
return surf;
|
||||||
}
|
}
|
||||||
|
|
||||||
Surface Font::renderTextSolid(std::string Text,RGBA fg)
|
Surface Font::renderTextSolid(std::string Text,RGBA fg) const
|
||||||
{
|
{
|
||||||
Surface surf;
|
Surface surf;
|
||||||
surf._set(TTF_RenderText_Solid(_get(), Text.c_str(), fg.toSDLColor()));
|
surf._set(TTF_RenderText_Solid(_get(), Text.c_str(), fg.toSDLColor()));
|
||||||
return surf;
|
return surf;
|
||||||
}
|
}
|
||||||
|
|
||||||
Surface Font::renderUTF8(std::string Text,RGBA fg)
|
Surface Font::renderUTF8(std::string Text,RGBA fg) const
|
||||||
{
|
{
|
||||||
Surface surf;
|
Surface surf;
|
||||||
surf._set(TTF_RenderUTF8_Blended(_get(), Text.c_str(), fg.toSDLColor()));
|
surf._set(TTF_RenderUTF8_Blended(_get(), Text.c_str(), fg.toSDLColor()));
|
||||||
return surf;
|
return surf;
|
||||||
}
|
}
|
||||||
|
|
||||||
Surface Font::renderUTF8Wrapped(std::string Text, RGBA fg, int WrapLength)
|
Surface Font::renderUTF8Wrapped(std::string Text, RGBA fg, size_t WrapLength) const
|
||||||
{
|
{
|
||||||
Surface surf;
|
Surface surf;
|
||||||
surf._set(TTF_RenderUTF8_Blended_Wrapped(_get(), Text.c_str(), fg.toSDLColor(), WrapLength));
|
surf._set(TTF_RenderUTF8_Blended_Wrapped(_get(), Text.c_str(), fg.toSDLColor(), WrapLength));
|
||||||
return surf;
|
return surf;
|
||||||
}
|
}
|
||||||
|
|
||||||
Surface Font::renderUTF8Shaded(std::string Text, RGBA fg,RGBA bg)
|
Surface Font::renderUTF8Shaded(std::string Text, RGBA fg,RGBA bg) const
|
||||||
{
|
{
|
||||||
Surface surf;
|
Surface surf;
|
||||||
surf._set(TTF_RenderUTF8_Shaded(_get(), Text.c_str(), fg.toSDLColor(), bg.toSDLColor()));
|
surf._set(TTF_RenderUTF8_Shaded(_get(), Text.c_str(), fg.toSDLColor(), bg.toSDLColor()));
|
||||||
return surf;
|
return surf;
|
||||||
}
|
}
|
||||||
|
|
||||||
Surface Font::renderUTF8Solid(std::string Text,RGBA fg)
|
Surface Font::renderUTF8Solid(std::string Text,RGBA fg) const
|
||||||
{
|
{
|
||||||
Surface surf;
|
Surface surf;
|
||||||
surf._set(TTF_RenderUTF8_Solid(_get(), Text.c_str(), fg.toSDLColor()));
|
surf._set(TTF_RenderUTF8_Solid(_get(), Text.c_str(), fg.toSDLColor()));
|
||||||
return surf;
|
return surf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Surface Font::renderUnicode(const uint16_t* Text, RGBA fg) const
|
||||||
|
{
|
||||||
|
Surface surf;
|
||||||
|
surf._set(TTF_RenderUNICODE_Blended(_get(),Text,fg.toSDLColor()));
|
||||||
|
return surf;
|
||||||
|
}
|
||||||
|
|
||||||
|
Surface Font::renderUnicodeWrapped(const uint16_t* Text, RGBA fg, size_t WrapLength) const
|
||||||
|
{
|
||||||
|
Surface surf;
|
||||||
|
surf._set(TTF_RenderUNICODE_Blended_Wrapped(_get(),Text,fg.toSDLColor(),WrapLength));
|
||||||
|
return surf;
|
||||||
|
}
|
||||||
|
|
||||||
|
Surface Font::renderUnicodeShaded(const uint16_t* Text, RGBA fg, RGBA bg) const
|
||||||
|
{
|
||||||
|
Surface surf;
|
||||||
|
surf._set(TTF_RenderUNICODE_Shaded(_get(),Text,fg.toSDLColor(),bg.toSDLColor()));
|
||||||
|
return surf;
|
||||||
|
}
|
||||||
|
|
||||||
|
Surface Font::renderUnicodeSolid(const uint16_t* Text, RGBA fg) const
|
||||||
|
{
|
||||||
|
Surface surf;
|
||||||
|
surf._set(TTF_RenderUNICODE_Solid(_get(),Text,fg.toSDLColor()));
|
||||||
|
return surf;
|
||||||
|
}
|
||||||
|
|
||||||
/// rendering textures...
|
/// rendering textures...
|
||||||
Texture Font::renderText(Renderer rnd, std::string Text, RGBA fg)
|
Texture Font::renderText(Renderer rnd, std::string Text, RGBA fg)
|
||||||
{
|
{
|
||||||
return rnd.render(renderText(Text,fg));
|
return rnd.render(renderText(Text,fg));
|
||||||
}
|
}
|
||||||
|
|
||||||
Texture Font::renderTextWrapped(Renderer rnd, std::string Text, RGBA fg, int WrapLength)
|
Texture Font::renderTextWrapped(Renderer rnd, std::string Text, RGBA fg, size_t WrapLength)
|
||||||
{
|
{
|
||||||
return rnd.render(renderTextWrapped(Text,fg,WrapLength));
|
return rnd.render(renderTextWrapped(Text,fg,WrapLength));
|
||||||
}
|
}
|
||||||
|
@ -1591,7 +1630,7 @@ namespace MiniEngine
|
||||||
return rnd.render(renderUTF8(Text,fg));
|
return rnd.render(renderUTF8(Text,fg));
|
||||||
}
|
}
|
||||||
|
|
||||||
Texture Font::renderUTF8Wrapped(Renderer rnd, std::string Text, RGBA fg, int WrapLength)
|
Texture Font::renderUTF8Wrapped(Renderer rnd, std::string Text, RGBA fg, size_t WrapLength)
|
||||||
{
|
{
|
||||||
return rnd.render(renderUTF8Wrapped(Text,fg,WrapLength));
|
return rnd.render(renderUTF8Wrapped(Text,fg,WrapLength));
|
||||||
}
|
}
|
||||||
|
@ -1606,6 +1645,27 @@ namespace MiniEngine
|
||||||
return rnd.render(renderUTF8Solid(Text,fg));
|
return rnd.render(renderUTF8Solid(Text,fg));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Texture Font::renderUnicode(Renderer rnd, const uint16_t* Text, RGBA fg) const
|
||||||
|
{
|
||||||
|
return rnd.render(renderUnicode(Text,fg));
|
||||||
|
}
|
||||||
|
|
||||||
|
Texture Font::renderUnicodeWrapped(Renderer rnd, const uint16_t* Text, RGBA fg, size_t WrapLength) const
|
||||||
|
{
|
||||||
|
return rnd.render(renderUnicodeWrapped(Text,fg,WrapLength));
|
||||||
|
}
|
||||||
|
|
||||||
|
Texture Font::renderUnicodeShaded(Renderer rnd, const uint16_t* Text, RGBA fg, RGBA bg) const
|
||||||
|
{
|
||||||
|
return rnd.render(renderUnicodeShaded(Text,fg,bg));
|
||||||
|
}
|
||||||
|
|
||||||
|
Texture Font::renderUnicodeSolid(Renderer rnd, const uint16_t* Text, RGBA fg) const
|
||||||
|
{
|
||||||
|
return rnd.render(renderUnicodeSolid(Text,fg));
|
||||||
|
}
|
||||||
|
|
||||||
void Font::release()
|
void Font::release()
|
||||||
{
|
{
|
||||||
_clear();
|
_clear();
|
||||||
|
|
67
MiniEngine.h
67
MiniEngine.h
|
@ -378,21 +378,21 @@ namespace MiniEngine
|
||||||
Renderer winrnd;
|
Renderer winrnd;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum class FontStyle { Normal, Bold, Italic, UnderLine, StrikeThrough };
|
||||||
|
|
||||||
class Font
|
class Font
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
enum class Style { Normal, Bold, Italic, UnderLine, StrikeThrough };
|
|
||||||
|
|
||||||
Font() = default;
|
Font() = default;
|
||||||
Font(std::string FontFileName, int size) throw(ErrorViewer);
|
Font(std::string FontFileName, int size) throw(ErrorViewer);
|
||||||
int use(std::string FontFileName, int size);
|
int use(std::string FontFileName, int size);
|
||||||
bool isReady();
|
bool isReady() const;
|
||||||
|
|
||||||
bool isNormal();
|
bool isNormal() const;
|
||||||
bool isBold();
|
bool isBold() const;
|
||||||
bool isItalic();
|
bool isItalic() const;
|
||||||
bool isUnderLine();
|
bool isUnderLine() const;
|
||||||
bool isStrikeThrough();
|
bool isStrikeThrough() const;
|
||||||
|
|
||||||
void setNormal();
|
void setNormal();
|
||||||
void setBold(bool);
|
void setBold(bool);
|
||||||
|
@ -401,65 +401,78 @@ namespace MiniEngine
|
||||||
void setStrikeThrough(bool);
|
void setStrikeThrough(bool);
|
||||||
|
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
void setFontStyle(Style style,Args&&... args)
|
void setFontStyle(FontStyle style,Args&&... args)
|
||||||
{
|
{
|
||||||
int fontcalc=0;
|
int fontcalc=0;
|
||||||
_setFontStyle(fontcalc,style,args...);
|
_setFontStyle(fontcalc,style,args...);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setFontStyle(Style style)
|
void setFontStyle(FontStyle style)
|
||||||
{
|
{
|
||||||
int fontcalc=0;
|
int fontcalc=0;
|
||||||
_setFontStyle(fontcalc,style);
|
_setFontStyle(fontcalc,style);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<Style> getFontStyles();
|
std::vector<FontStyle> getFontStyles() const;
|
||||||
|
|
||||||
Rect sizeText(const std::string& Text) throw (ErrorViewer);
|
Rect sizeText(const std::string& Text) const throw (ErrorViewer);
|
||||||
Rect sizeUTF8(const std::string& Text) throw (ErrorViewer);
|
Rect sizeUTF8(const std::string& Text) const throw (ErrorViewer);
|
||||||
|
Rect sizeUnicode(const uint16_t* Text) const throw (ErrorViewer);
|
||||||
|
|
||||||
Surface renderText(std::string Text, RGBA fg);
|
/// Surface Rendering Functions.
|
||||||
Surface renderTextWrapped(std::string Text, RGBA fg, int WrapLength);
|
Surface renderText(std::string Text, RGBA fg) const;
|
||||||
Surface renderTextShaded(std::string Text, RGBA fg, RGBA bg);
|
Surface renderTextWrapped(std::string Text, RGBA fg, size_t WrapLength) const;
|
||||||
Surface renderTextSolid(std::string Text, RGBA fg);
|
Surface renderTextShaded(std::string Text, RGBA fg, RGBA bg) const;
|
||||||
|
Surface renderTextSolid(std::string Text, RGBA fg) const;
|
||||||
|
|
||||||
Surface renderUTF8(std::string Text, RGBA fg);
|
Surface renderUTF8(std::string Text, RGBA fg) const;
|
||||||
Surface renderUTF8Wrapped(std::string Text, RGBA fg, int WrapLength);
|
Surface renderUTF8Wrapped(std::string Text, RGBA fg, size_t WrapLength) const;
|
||||||
Surface renderUTF8Shaded(std::string Text, RGBA fg, RGBA bg);
|
Surface renderUTF8Shaded(std::string Text, RGBA fg, RGBA bg) const;
|
||||||
Surface renderUTF8Solid(std::string Text, RGBA fg);
|
Surface renderUTF8Solid(std::string Text, RGBA fg) const;
|
||||||
|
|
||||||
|
Surface renderUnicode(const uint16_t* Text,RGBA fg) const;
|
||||||
|
Surface renderUnicodeWrapped(const uint16_t* Text,RGBA fg,size_t WrapLength) const;
|
||||||
|
Surface renderUnicodeShaded(const uint16_t* Text,RGBA fg,RGBA bg) const;
|
||||||
|
Surface renderUnicodeSolid(const uint16_t* Text,RGBA fg) const;
|
||||||
|
|
||||||
|
/// Texture Rendering Functions.
|
||||||
Texture renderText(Renderer rnd, std::string Text, RGBA fg);
|
Texture renderText(Renderer rnd, std::string Text, RGBA fg);
|
||||||
Texture renderTextWrapped(Renderer rnd, std::string Text, RGBA fg, int WrapLength);
|
Texture renderTextWrapped(Renderer rnd, std::string Text, RGBA fg, size_t WrapLength);
|
||||||
Texture renderTextShaded(Renderer rnd, std::string Text, RGBA fg, RGBA bg);
|
Texture renderTextShaded(Renderer rnd, std::string Text, RGBA fg, RGBA bg);
|
||||||
Texture renderTextSolid(Renderer rnd, std::string Text, RGBA fg);
|
Texture renderTextSolid(Renderer rnd, std::string Text, RGBA fg);
|
||||||
|
|
||||||
Texture renderUTF8(Renderer rnd, std::string Text, RGBA fg);
|
Texture renderUTF8(Renderer rnd, std::string Text, RGBA fg);
|
||||||
Texture renderUTF8Wrapped(Renderer rnd, std::string Text, RGBA fg, int WrapLength);
|
Texture renderUTF8Wrapped(Renderer rnd, std::string Text, RGBA fg, size_t WrapLength);
|
||||||
Texture renderUTF8Shaded(Renderer rnd, std::string Text, RGBA fg, RGBA bg);
|
Texture renderUTF8Shaded(Renderer rnd, std::string Text, RGBA fg, RGBA bg);
|
||||||
Texture renderUTF8Solid(Renderer rnd, std::string Text, RGBA fg);
|
Texture renderUTF8Solid(Renderer rnd, std::string Text, RGBA fg);
|
||||||
|
|
||||||
|
Texture renderUnicode(Renderer rnd,const uint16_t* Text,RGBA fg) const;
|
||||||
|
Texture renderUnicodeWrapped(Renderer rnd,const uint16_t* Text,RGBA fg,size_t WrapLength) const;
|
||||||
|
Texture renderUnicodeShaded(Renderer rnd,const uint16_t* Text,RGBA fg,RGBA bg) const;
|
||||||
|
Texture renderUnicodeSolid(Renderer rnd,const uint16_t* Text,RGBA fg) const;
|
||||||
|
|
||||||
void release();
|
void release();
|
||||||
protected:
|
protected:
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
void _setFontStyle(int& fontcalc,Style style,Args&&... args)
|
void _setFontStyle(int& fontcalc,FontStyle style,Args&&... args)
|
||||||
{
|
{
|
||||||
fontcalc|=_style_caster(style);
|
fontcalc|=_style_caster(style);
|
||||||
_setFontStyle(fontcalc,args...);
|
_setFontStyle(fontcalc,args...);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _setFontStyle(int& fontcalc,Style style)
|
void _setFontStyle(int& fontcalc,FontStyle style)
|
||||||
{
|
{
|
||||||
fontcalc|=_style_caster(style);
|
fontcalc|=_style_caster(style);
|
||||||
_real_setFontStyle(fontcalc);
|
_real_setFontStyle(fontcalc);
|
||||||
}
|
}
|
||||||
private:
|
private:
|
||||||
void _real_setFontStyle(int);
|
void _real_setFontStyle(int);
|
||||||
int _style_caster(Style);
|
int _style_caster(FontStyle);
|
||||||
|
|
||||||
std::shared_ptr<TTF_Font> _font;
|
std::shared_ptr<TTF_Font> _font;
|
||||||
void _set(TTF_Font*);
|
void _set(TTF_Font*);
|
||||||
void _clear();
|
void _clear();
|
||||||
TTF_Font* _get();
|
TTF_Font* _get() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class Platform { Unknown,Windows,MacOS,Linux,iOS,Android };
|
enum class Platform { Unknown,Windows,MacOS,Linux,iOS,Android };
|
||||||
|
|
Loading…
Reference in New Issue
Block a user