Pass value object attributes by reference (instead of pointer)
This underlines that no reference inside the setter is taken, and that these attributes are non-nullable. Also removes a couple of superfluous attribute macros.
This commit is contained in:
parent
5549ff78f0
commit
c9d5059238
29 changed files with 92 additions and 110 deletions
|
@ -941,12 +941,12 @@ void Bitmap::drawText(const IntRect &rect, const char *str, int align)
|
|||
return;
|
||||
|
||||
TTF_Font *font = p->font->getSdlFont();
|
||||
Color *fontColor = p->font->getColor();
|
||||
const Color &fontColor = p->font->getColor();
|
||||
|
||||
SDL_Color c;
|
||||
fontColor->toSDLColor(c);
|
||||
fontColor.toSDLColor(c);
|
||||
|
||||
float txtAlpha = fontColor->norm.w;
|
||||
float txtAlpha = fontColor.norm.w;
|
||||
|
||||
SDL_Surface *txtSurf;
|
||||
|
||||
|
@ -1186,11 +1186,11 @@ IntRect Bitmap::textSize(const char *str)
|
|||
return IntRect(0, 0, w, h);
|
||||
}
|
||||
|
||||
DEF_ATTR_RD_SIMPLE(Bitmap, Font, Font*, p->font)
|
||||
DEF_ATTR_RD_SIMPLE(Bitmap, Font, Font&, *p->font)
|
||||
|
||||
void Bitmap::setFont(Font *value)
|
||||
void Bitmap::setFont(Font &value)
|
||||
{
|
||||
*p->font = *value;
|
||||
*p->font = value;
|
||||
}
|
||||
|
||||
void Bitmap::setInitFont(Font *value)
|
||||
|
|
|
@ -99,7 +99,7 @@ public:
|
|||
|
||||
IntRect textSize(const char *str);
|
||||
|
||||
DECL_ATTR(Font, Font*)
|
||||
DECL_ATTR(Font, Font&)
|
||||
|
||||
/* Sets initial reference without copying by value,
|
||||
* use at construction */
|
||||
|
|
29
src/font.cpp
29
src/font.cpp
|
@ -350,21 +350,22 @@ void Font::setSize(int value)
|
|||
|
||||
static void guardDisposed() {}
|
||||
|
||||
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, Shadow, bool, p->shadow)
|
||||
DEF_ATTR_SIMPLE (Font, Outline, bool, p->outline)
|
||||
DEF_ATTR_OBJ_VALUE(Font, Color, Color*, p->color)
|
||||
DEF_ATTR_OBJ_VALUE(Font, OutColor, Color*, p->outColor)
|
||||
DEF_ATTR_RD_SIMPLE(Font, Size, int, p->size)
|
||||
|
||||
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, DefaultShadow, bool, FontPrivate::defaultShadow)
|
||||
DEF_ATTR_SIMPLE_STATIC (Font, DefaultOutline, bool, FontPrivate::defaultOutline)
|
||||
DEF_ATTR_OBJ_VALUE_STATIC(Font, DefaultColor, Color*, FontPrivate::defaultColor)
|
||||
DEF_ATTR_OBJ_VALUE_STATIC(Font, DefaultOutColor, Color*, FontPrivate::defaultOutColor)
|
||||
DEF_ATTR_SIMPLE(Font, Bold, bool, p->bold)
|
||||
DEF_ATTR_SIMPLE(Font, Italic, bool, p->italic)
|
||||
DEF_ATTR_SIMPLE(Font, Shadow, bool, p->shadow)
|
||||
DEF_ATTR_SIMPLE(Font, Outline, bool, p->outline)
|
||||
DEF_ATTR_SIMPLE(Font, Color, Color&, *p->color)
|
||||
DEF_ATTR_SIMPLE(Font, OutColor, Color&, *p->outColor)
|
||||
|
||||
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, DefaultShadow, bool, FontPrivate::defaultShadow)
|
||||
DEF_ATTR_SIMPLE_STATIC(Font, DefaultOutline, bool, FontPrivate::defaultOutline)
|
||||
DEF_ATTR_SIMPLE_STATIC(Font, DefaultColor, Color&, *FontPrivate::defaultColor)
|
||||
DEF_ATTR_SIMPLE_STATIC(Font, DefaultOutColor, Color&, *FontPrivate::defaultOutColor)
|
||||
|
||||
const char *Font::getDefaultName()
|
||||
{
|
||||
|
|
|
@ -92,19 +92,19 @@ public:
|
|||
DECL_ATTR( Size, int )
|
||||
DECL_ATTR( Bold, bool )
|
||||
DECL_ATTR( Italic, bool )
|
||||
DECL_ATTR( Color, Color* )
|
||||
DECL_ATTR( Color, Color& )
|
||||
DECL_ATTR( Shadow, bool )
|
||||
DECL_ATTR( Outline, bool )
|
||||
DECL_ATTR( OutColor, Color* )
|
||||
DECL_ATTR( OutColor, 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* )
|
||||
DECL_ATTR_STATIC( DefaultColor, Color& )
|
||||
DECL_ATTR_STATIC( DefaultShadow, bool )
|
||||
DECL_ATTR_STATIC( DefaultOutline, bool )
|
||||
DECL_ATTR_STATIC( DefaultOutColor, Color* )
|
||||
DECL_ATTR_STATIC( DefaultOutColor, Color& )
|
||||
|
||||
/* Assigns heap allocated objects to object properties;
|
||||
* using this in pure C++ will cause memory leaks
|
||||
|
|
|
@ -161,9 +161,9 @@ DEF_ATTR_RD_SIMPLE(Plane, ZoomX, float, p->zoomX)
|
|||
DEF_ATTR_RD_SIMPLE(Plane, ZoomY, float, p->zoomY)
|
||||
DEF_ATTR_RD_SIMPLE(Plane, BlendType, int, p->blendType)
|
||||
|
||||
DEF_ATTR_SIMPLE (Plane, Opacity, int, p->opacity)
|
||||
DEF_ATTR_OBJ_VALUE(Plane, Color, Color*, p->color)
|
||||
DEF_ATTR_OBJ_VALUE(Plane, Tone, Tone*, p->tone)
|
||||
DEF_ATTR_SIMPLE(Plane, Opacity, int, p->opacity)
|
||||
DEF_ATTR_SIMPLE(Plane, Color, Color&, *p->color)
|
||||
DEF_ATTR_SIMPLE(Plane, Tone, Tone&, *p->tone)
|
||||
|
||||
Plane::~Plane()
|
||||
{
|
||||
|
|
|
@ -44,8 +44,8 @@ public:
|
|||
DECL_ATTR( ZoomY, float )
|
||||
DECL_ATTR( Opacity, int )
|
||||
DECL_ATTR( BlendType, int )
|
||||
DECL_ATTR( Color, Color* )
|
||||
DECL_ATTR( Tone, Tone* )
|
||||
DECL_ATTR( Color, Color& )
|
||||
DECL_ATTR( Tone, Tone& )
|
||||
|
||||
void initDynAttribs();
|
||||
|
||||
|
|
|
@ -317,12 +317,11 @@ DEF_ATTR_RD_SIMPLE(Sprite, WaveLength, int, p->wave.length)
|
|||
DEF_ATTR_RD_SIMPLE(Sprite, WaveSpeed, int, p->wave.speed)
|
||||
DEF_ATTR_RD_SIMPLE(Sprite, WavePhase, float, p->wave.phase)
|
||||
|
||||
DEF_ATTR_SIMPLE (Sprite, BushOpacity, int, p->bushOpacity)
|
||||
DEF_ATTR_SIMPLE (Sprite, Opacity, int, p->opacity)
|
||||
|
||||
DEF_ATTR_OBJ_VALUE(Sprite, SrcRect, Rect*, p->srcRect)
|
||||
DEF_ATTR_OBJ_VALUE(Sprite, Color, Color*, p->color)
|
||||
DEF_ATTR_OBJ_VALUE(Sprite, Tone, Tone*, p->tone)
|
||||
DEF_ATTR_SIMPLE(Sprite, BushOpacity, int, p->bushOpacity)
|
||||
DEF_ATTR_SIMPLE(Sprite, Opacity, int, p->opacity)
|
||||
DEF_ATTR_SIMPLE(Sprite, SrcRect, Rect&, *p->srcRect)
|
||||
DEF_ATTR_SIMPLE(Sprite, Color, Color&, *p->color)
|
||||
DEF_ATTR_SIMPLE(Sprite, Tone, Tone&, *p->tone)
|
||||
|
||||
void Sprite::setBitmap(Bitmap *bitmap)
|
||||
{
|
||||
|
|
|
@ -47,7 +47,7 @@ public:
|
|||
void update();
|
||||
|
||||
DECL_ATTR( Bitmap, Bitmap* )
|
||||
DECL_ATTR( SrcRect, Rect* )
|
||||
DECL_ATTR( SrcRect, Rect& )
|
||||
DECL_ATTR( X, int )
|
||||
DECL_ATTR( Y, int )
|
||||
DECL_ATTR( OX, int )
|
||||
|
@ -60,8 +60,8 @@ public:
|
|||
DECL_ATTR( BushOpacity, int )
|
||||
DECL_ATTR( Opacity, int )
|
||||
DECL_ATTR( BlendType, int )
|
||||
DECL_ATTR( Color, Color* )
|
||||
DECL_ATTR( Tone, Tone* )
|
||||
DECL_ATTR( Color, Color& )
|
||||
DECL_ATTR( Tone, Tone& )
|
||||
DECL_ATTR( WaveAmp, int )
|
||||
DECL_ATTR( WaveLength, int )
|
||||
DECL_ATTR( WaveSpeed, int )
|
||||
|
|
16
src/util.h
16
src/util.h
|
@ -152,20 +152,4 @@ inline C *dataPtr(std::vector<C> &v)
|
|||
#define DEF_ATTR_SIMPLE_STATIC(klass, name, type, location) \
|
||||
DEF_ATTR_SIMPLE_DETAILED(klass, name, type, location, )
|
||||
|
||||
#define DEF_ATTR_OBJ_VALUE(klass, name, type, location) \
|
||||
DEF_ATTR_RD_SIMPLE_DETAILED(klass, name, type, location, const) \
|
||||
void klass :: set##name(type value) \
|
||||
{ \
|
||||
guardDisposed(); \
|
||||
*location = *value; \
|
||||
}
|
||||
|
||||
#define DEF_ATTR_OBJ_VALUE_STATIC(klass, name, type, location) \
|
||||
DEF_ATTR_RD_SIMPLE_DETAILED(klass, name, type, location, ) \
|
||||
void klass :: set##name(type value) \
|
||||
{ \
|
||||
guardDisposed(); \
|
||||
*location = *value; \
|
||||
}
|
||||
|
||||
#endif // UTIL_H
|
||||
|
|
|
@ -147,9 +147,9 @@ void Viewport::update()
|
|||
DEF_ATTR_RD_SIMPLE(Viewport, OX, int, geometry.xOrigin)
|
||||
DEF_ATTR_RD_SIMPLE(Viewport, OY, int, geometry.yOrigin)
|
||||
|
||||
DEF_ATTR_OBJ_VALUE(Viewport, Rect, Rect*, p->rect)
|
||||
DEF_ATTR_OBJ_VALUE(Viewport, Color, Color*, p->color)
|
||||
DEF_ATTR_OBJ_VALUE(Viewport, Tone, Tone*, p->tone)
|
||||
DEF_ATTR_SIMPLE(Viewport, Rect, Rect&, *p->rect)
|
||||
DEF_ATTR_SIMPLE(Viewport, Color, Color&, *p->color)
|
||||
DEF_ATTR_SIMPLE(Viewport, Tone, Tone&, *p->tone)
|
||||
|
||||
void Viewport::setOX(int value)
|
||||
{
|
||||
|
|
|
@ -39,11 +39,11 @@ public:
|
|||
|
||||
void update();
|
||||
|
||||
DECL_ATTR( Rect, Rect* )
|
||||
DECL_ATTR( Rect, Rect& )
|
||||
DECL_ATTR( OX, int )
|
||||
DECL_ATTR( OY, int )
|
||||
DECL_ATTR( Color, Color* )
|
||||
DECL_ATTR( Tone, Tone* )
|
||||
DECL_ATTR( Color, Color& )
|
||||
DECL_ATTR( Tone, Tone& )
|
||||
|
||||
void initDynAttribs();
|
||||
|
||||
|
|
|
@ -706,6 +706,7 @@ void Window::update()
|
|||
|
||||
DEF_ATTR_SIMPLE(Window, X, int, p->position.x)
|
||||
DEF_ATTR_SIMPLE(Window, Y, int, p->position.y)
|
||||
DEF_ATTR_SIMPLE(Window, CursorRect, Rect&, *p->cursorRect)
|
||||
|
||||
DEF_ATTR_RD_SIMPLE(Window, Windowskin, Bitmap*, p->windowskin)
|
||||
DEF_ATTR_RD_SIMPLE(Window, Contents, Bitmap*, p->contents)
|
||||
|
@ -720,8 +721,6 @@ DEF_ATTR_RD_SIMPLE(Window, Opacity, int, p->opacity)
|
|||
DEF_ATTR_RD_SIMPLE(Window, BackOpacity, int, p->backOpacity)
|
||||
DEF_ATTR_RD_SIMPLE(Window, ContentsOpacity, int, p->contentsOpacity)
|
||||
|
||||
DEF_ATTR_OBJ_VALUE(Window, CursorRect, Rect*, p->cursorRect)
|
||||
|
||||
void Window::setWindowskin(Bitmap *value)
|
||||
{
|
||||
guardDisposed();
|
||||
|
|
|
@ -43,7 +43,7 @@ public:
|
|||
DECL_ATTR( Windowskin, Bitmap* )
|
||||
DECL_ATTR( Contents, Bitmap* )
|
||||
DECL_ATTR( Stretch, bool )
|
||||
DECL_ATTR( CursorRect, Rect* )
|
||||
DECL_ATTR( CursorRect, Rect& )
|
||||
DECL_ATTR( Active, bool )
|
||||
DECL_ATTR( Pause, bool )
|
||||
DECL_ATTR( X, int )
|
||||
|
|
|
@ -882,6 +882,8 @@ bool WindowVX::isClosed() const
|
|||
|
||||
DEF_ATTR_SIMPLE(WindowVX, X, int, p->geo.x)
|
||||
DEF_ATTR_SIMPLE(WindowVX, Y, int, p->geo.y)
|
||||
DEF_ATTR_SIMPLE(WindowVX, CursorRect, Rect&, *p->cursorRect)
|
||||
DEF_ATTR_SIMPLE(WindowVX, Tone, Tone&, *p->tone)
|
||||
|
||||
DEF_ATTR_RD_SIMPLE(WindowVX, Windowskin, Bitmap*, p->windowskin)
|
||||
DEF_ATTR_RD_SIMPLE(WindowVX, Contents, Bitmap*, p->contents)
|
||||
|
@ -899,9 +901,6 @@ DEF_ATTR_RD_SIMPLE(WindowVX, BackOpacity, int, p->backOpacity)
|
|||
DEF_ATTR_RD_SIMPLE(WindowVX, ContentsOpacity, int, p->contentsOpacity)
|
||||
DEF_ATTR_RD_SIMPLE(WindowVX, Openness, int, p->openness)
|
||||
|
||||
DEF_ATTR_OBJ_VALUE(WindowVX, CursorRect, Rect*, p->cursorRect)
|
||||
DEF_ATTR_OBJ_VALUE(WindowVX, Tone, Tone*, p->tone)
|
||||
|
||||
void WindowVX::setWindowskin(Bitmap *value)
|
||||
{
|
||||
guardDisposed();
|
||||
|
|
|
@ -48,7 +48,7 @@ public:
|
|||
|
||||
DECL_ATTR( Windowskin, Bitmap* )
|
||||
DECL_ATTR( Contents, Bitmap* )
|
||||
DECL_ATTR( CursorRect, Rect* )
|
||||
DECL_ATTR( CursorRect, Rect& )
|
||||
DECL_ATTR( Active, bool )
|
||||
DECL_ATTR( ArrowsVisible, bool )
|
||||
DECL_ATTR( Pause, bool )
|
||||
|
@ -64,7 +64,7 @@ public:
|
|||
DECL_ATTR( BackOpacity, int )
|
||||
DECL_ATTR( ContentsOpacity, int )
|
||||
DECL_ATTR( Openness, int )
|
||||
DECL_ATTR( Tone, Tone* )
|
||||
DECL_ATTR( Tone, Tone& )
|
||||
|
||||
void initDynAttribs();
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue