Font: Add missing RGSS2+ props basic plumbing (and bind most in MRI)

No core implementations yet for shadow and outline color.
This commit is contained in:
Jonas Kulla 2014-08-15 23:18:02 +02:00
parent 36eea09c7e
commit 9003f9a435
3 changed files with 124 additions and 22 deletions

View file

@ -198,17 +198,25 @@ struct FontPrivate
int size;
bool bold;
bool italic;
bool outline;
bool shadow;
Color *color;
Color *outColor;
Color colorTmp;
Color outColorTmp;
static std::string defaultName;
static int defaultSize;
static bool defaultBold;
static bool defaultItalic;
static bool defaultOutline;
static bool defaultShadow;
static Color *defaultColor;
static Color *defaultOutColor;
static Color defaultColorTmp;
static Color defaultOutColorTmp;
/* The actual font is opened as late as possible
* (when it is queried by a Bitmap), prior it is
@ -221,8 +229,12 @@ struct FontPrivate
size(size ? size : defaultSize),
bold(defaultBold),
italic(defaultItalic),
outline(defaultOutline),
shadow(defaultShadow),
color(&colorTmp),
outColor(&outColorTmp),
colorTmp(*defaultColor),
outColorTmp(*defaultOutColor),
sdlFont(0)
{}
@ -231,19 +243,27 @@ struct FontPrivate
size(other.size),
bold(other.bold),
italic(other.italic),
outline(other.outline),
shadow(other.shadow),
color(&colorTmp),
outColor(&outColorTmp),
colorTmp(*other.color),
outColorTmp(*other.outColor),
sdlFont(other.sdlFont)
{}
};
std::string FontPrivate::defaultName = "Arial";
int FontPrivate::defaultSize = 22;
bool FontPrivate::defaultBold = false;
bool FontPrivate::defaultItalic = false;
Color *FontPrivate::defaultColor = &FontPrivate::defaultColorTmp;
std::string FontPrivate::defaultName = "Arial";
int FontPrivate::defaultSize = 22;
bool FontPrivate::defaultBold = false;
bool FontPrivate::defaultItalic = false;
bool FontPrivate::defaultOutline = false;
bool FontPrivate::defaultShadow = true;
Color *FontPrivate::defaultColor = &FontPrivate::defaultColorTmp;
Color *FontPrivate::defaultOutColor = &FontPrivate::defaultOutColorTmp;
Color FontPrivate::defaultColorTmp(255, 255, 255, 255);
Color FontPrivate::defaultOutColorTmp(0, 0, 0, 128);
bool Font::doesExist(const char *name)
{
@ -299,15 +319,33 @@ void Font::setSize(int value)
#undef CHK_DISP
#define CHK_DISP
DEF_ATTR_RD_SIMPLE(Font, Size, int, p->size)
DEF_ATTR_SIMPLE(Font, Bold, bool, p->bold)
DEF_ATTR_SIMPLE(Font, Italic, bool, p->italic)
DEF_ATTR_SIMPLE(Font, Color, Color*, p->color)
DEF_ATTR_RD_SIMPLE(Font, Size, int, p->size)
DEF_ATTR_SIMPLE(Font, Bold, bool, p->bold)
DEF_ATTR_SIMPLE(Font, Italic, bool, p->italic)
DEF_ATTR_SIMPLE(Font, Color, Color*, p->color)
DEF_ATTR_SIMPLE_STATIC(Font, DefaultSize, int, FontPrivate::defaultSize)
DEF_ATTR_SIMPLE_STATIC(Font, DefaultBold, bool, FontPrivate::defaultBold)
DEF_ATTR_SIMPLE_STATIC(Font, DefaultItalic, bool, FontPrivate::defaultItalic)
DEF_ATTR_SIMPLE_STATIC(Font, DefaultColor, Color*, FontPrivate::defaultColor)
#ifdef RGSS2
DEF_ATTR_SIMPLE(Font, Shadow, bool, p->shadow)
#endif
#ifdef RGSS3
DEF_ATTR_SIMPLE(Font, Outline, bool, p->outline)
DEF_ATTR_SIMPLE(Font, OutColor, Color*, p->outColor)
#endif
DEF_ATTR_SIMPLE_STATIC(Font, DefaultSize, int, FontPrivate::defaultSize)
DEF_ATTR_SIMPLE_STATIC(Font, DefaultBold, bool, FontPrivate::defaultBold)
DEF_ATTR_SIMPLE_STATIC(Font, DefaultItalic, bool, FontPrivate::defaultItalic)
DEF_ATTR_SIMPLE_STATIC(Font, DefaultColor, Color*, FontPrivate::defaultColor)
#ifdef RGSS2
DEF_ATTR_SIMPLE_STATIC(Font, DefaultShadow, bool, FontPrivate::defaultShadow)
#endif
#ifdef RGSS3
DEF_ATTR_SIMPLE_STATIC(Font, DefaultOutline, bool, FontPrivate::defaultOutline)
DEF_ATTR_SIMPLE_STATIC(Font, DefaultOutColor, Color*, FontPrivate::defaultOutColor)
#endif
const char *Font::getDefaultName()
{

View file

@ -85,16 +85,34 @@ public:
const char *getName() const;
void setName(const char *value);
DECL_ATTR( Size, int )
DECL_ATTR( Bold, bool )
DECL_ATTR( Italic, bool )
DECL_ATTR( Color, Color* )
DECL_ATTR( Size, int )
DECL_ATTR( Bold, bool )
DECL_ATTR( Italic, bool )
DECL_ATTR( Color, Color* )
DECL_ATTR_STATIC( DefaultName, const char* )
DECL_ATTR_STATIC( DefaultSize, int )
DECL_ATTR_STATIC( DefaultBold, bool )
DECL_ATTR_STATIC( DefaultItalic, bool )
DECL_ATTR_STATIC( DefaultColor, Color* )
#ifdef RGSS2
DECL_ATTR( Shadow, bool )
#endif
#ifdef RGSS3
DECL_ATTR( Outline, bool )
DECL_ATTR( OutColor, Color* )
#endif
DECL_ATTR_STATIC( DefaultName, const char* )
DECL_ATTR_STATIC( DefaultSize, int )
DECL_ATTR_STATIC( DefaultBold, bool )
DECL_ATTR_STATIC( DefaultItalic, bool )
DECL_ATTR_STATIC( DefaultColor, Color* )
#ifdef RGSS2
DECL_ATTR_STATIC( DefaultShadow, bool )
#endif
#ifdef RGSS3
DECL_ATTR_STATIC( DefaultOutline, bool )
DECL_ATTR_STATIC( DefaultOutColor, Color* )
#endif
/* internal */
_TTF_Font *getSdlFont();