-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathBackground.h
57 lines (48 loc) · 2.11 KB
/
Background.h
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
/*
Penjin is Copyright (c)2005, 2006, 2007, 2008, 2009, 2010 Kevin Winfield-Pantoja
This file is part of Penjin.
Penjin is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Penjin is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with Penjin. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef BACKGROUND_H
#define BACKGROUND_H
#include "Image.h"
class Background
{
public:
Background();
~Background();
PENJIN_ERRORS loadBackground(CRstring file);
template <class T>
void setPosition(const T& pos){position.x = pos.x;position.y = pos.y;}
#ifdef PENJIN_SDL
void render(SDL_Surface *screen); // The destination surface the animation should be rendered to
void render(){render(screen);}
#else
void render();
#endif
PENJIN_ERRORS setTransparentColour(const Colour& c){return img.setTransparentColour(c);}
PENJIN_ERRORS setTransparentColour(const PENJIN_COLOURS& c){return setTransparentColour(Colour(c));}
void disableTransparentColour(){img.disableTransparentColour();}
void setBG(CRuint bg); // Assigns a background ID
uint getBG()const; // Returns an assigned background ID
void toGreyScale(); // Permanently convert Background to B&W
void clear(){img.clear();bg=0;} // Clear out all images
size_t size()const{return img.size();} // The number of stored backgrounds.
private:
#ifdef PENJIN_SDL
SDL_Surface* screen;
#endif
uint bg; // The stored bg ID, used with the image draw function to draw a specific bg.
Image img;
Vector2di position;
};
#endif // BACKGROUND_H