-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCDrawable.cpp
59 lines (47 loc) · 1007 Bytes
/
CDrawable.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include "CDrawable.h"
CDrawable::CDrawable( SDL_Surface* Surf, SDL_Rect* rect )
: mRect( rect ), mSurf( Surf )
{
}
CDrawable::CDrawable( SDL_Surface* Surf, int x, int y, int w, int h )
: mSurf( Surf )
{
mRect = NULL;
setRect( x, y, w, h );
}
CDrawable::~CDrawable()
{
delete mRect;
}
void CDrawable::setRect( int x, int y, int w, int h )
{
if ( mRect != NULL )
{
delete mRect;
}
SDL_Rect* newRect = new SDL_Rect;
newRect->x = x;
newRect->y = y;
newRect->w = w;
newRect->h = h;
mRect = newRect;
}
void CDrawable::setSurface( SDL_Surface* newSurf )
{
if ( newSurf != NULL )
mSurf = newSurf;
}
void CDrawable::OnDraw( SDL_Surface* Dest, SDL_Rect* DestRect )
{
if ( mRect != NULL || DestRect != NULL )
{
if ( DestRect != NULL )
{
SDL_BlitSurface( mSurf, NULL, Dest, DestRect );
}
else
{
SDL_BlitSurface( mSurf, NULL, Dest, mRect );
}
}
}