SDLPP: allow change of font size
This commit is contained in:
+27
-8
@@ -1,16 +1,14 @@
|
||||
#include "sdlpp_font.hpp"
|
||||
|
||||
namespace SDLPP {
|
||||
Font::Font( const std::string &font, int size ) {
|
||||
font_ptr = TTF_OpenFont( font.c_str(), size );
|
||||
if ( font_ptr == NULL ) {
|
||||
std::cerr << "Unable to load font '" << font
|
||||
<< "': TTF Error: " << TTF_GetError() << std::endl;
|
||||
throw "TTF_OpenFont error";
|
||||
}
|
||||
Font::Font( const std::string &font ) : font_path(font) {}
|
||||
Font::Font( const std::string &font, int size ) : Font(font) {
|
||||
original_size = size;
|
||||
font_ptr = TTF_OpenFont( font_path.c_str(), size );
|
||||
checkFont();
|
||||
}
|
||||
Font::~Font() {
|
||||
TTF_CloseFont( font_ptr );
|
||||
closeFont();
|
||||
}
|
||||
const TTF_Font *Font::getFont() const {
|
||||
return font_ptr;
|
||||
@@ -30,4 +28,25 @@ void Font::setStyle( int style ) {
|
||||
void Font::setHinting( int hinting ) {
|
||||
TTF_SetFontHinting( font_ptr, hinting );
|
||||
}
|
||||
void Font::changeFontSize( int size ) {
|
||||
closeFont();
|
||||
font_ptr = TTF_OpenFont( font_path.c_str(), size );
|
||||
checkFont();
|
||||
}
|
||||
void Font::revertSize() {
|
||||
closeFont();
|
||||
font_ptr = TTF_OpenFont( font_path.c_str(), original_size );
|
||||
checkFont();
|
||||
}
|
||||
|
||||
void Font::closeFont() {
|
||||
TTF_CloseFont( font_ptr );
|
||||
}
|
||||
void Font::checkFont() {
|
||||
if ( font_ptr == NULL ) {
|
||||
std::cerr << "Unable to load font '" << font_path
|
||||
<< "': TTF Error: " << TTF_GetError() << std::endl;
|
||||
throw "TTF_OpenFont error";
|
||||
}
|
||||
}
|
||||
} // namespace SDLPP
|
||||
|
||||
Reference in New Issue
Block a user