00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00024
00025 #ifndef SFML_TILEDBACKGROUND_HPP
00026 #define SFML_TILEDBACKGROUND_HPP
00027
00029
00031 #include <SFML/Graphics/Drawable.hpp>
00032 #include <SFML/Graphics/VideoResource.hpp>
00033 #include <vector>
00034
00035 class sfImage;
00036
00037
00043 class SFML_API sfTiledBackground : public sfDrawable, public sf_private::sfVideoResource
00044 {
00045 public :
00046
00051 sfTiledBackground();
00052
00062 sfTiledBackground(const sfImage& Image, unsigned int TileSize, unsigned int NbTilesX, unsigned int NbTilesY);
00063
00070 sfTiledBackground(const sfTiledBackground& Copy);
00071
00076 ~sfTiledBackground();
00077
00087 void Initialize(const sfImage& Image, unsigned int TileSize, unsigned int NbTilesX, unsigned int NbTilesY);
00088
00098 void SetTile(unsigned int Left, unsigned int Top, unsigned int IndexX, unsigned int IndexY);
00099
00108 sfTiledBackground& operator =(const sfTiledBackground& Other);
00109
00110 protected :
00111
00116 virtual void Render(sfRenderWindow& Window);
00117
00118 private :
00119
00124 void Compile();
00125
00130 virtual void DestroyVideoResources();
00131
00135 struct Tile
00136 {
00137 Tile() : X(0), Y(0) {}
00138
00139 unsigned int X;
00140 unsigned int Y;
00141 };
00142
00144
00146 const sfImage* myTileset;
00147 unsigned int myTileSize;
00148 unsigned int myNbTilesX;
00149 unsigned int myNbTilesY;
00150 std::vector<Tile> myTiles;
00151 bool myIsCompiled;
00152 unsigned int myGLList;
00153 };
00154
00155
00156 #endif // SFML_TILEDBACKGROUND_HPP