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 sfVideoResource
00044 {
00045 public :
00046
00051 sfTiledBackground();
00052
00062 sfTiledBackground(const sfImage& Img, unsigned int TileSize, unsigned int NbTilesX, unsigned int NbTilesY);
00063
00068 ~sfTiledBackground();
00069
00079 void Initialize(const sfImage& Img, unsigned int TileSize, unsigned int NbTilesX, unsigned int NbTilesY);
00080
00090 void SetTile(unsigned int PosX, unsigned int PosY, unsigned int IndexX, unsigned int IndexY);
00091
00099 void SetPosition(float Left, float Top);
00100
00107 void SetScale(float Scale);
00108
00109 protected :
00110
00115 virtual void Render(sfRenderWindow& Window);
00116
00117 private :
00118
00123 void Compile();
00124
00129 virtual void InitVideoResources();
00130
00135 virtual void DestroyVideoResources();
00136
00140 struct Tile
00141 {
00142 Tile() : X(0), Y(0) {}
00143
00144 unsigned int X;
00145 unsigned int Y;
00146 };
00147
00149
00151 float myLeft;
00152 float myTop;
00153 const sfImage* myTileset;
00154 unsigned int myTileSize;
00155 float myScale;
00156 unsigned int myNbTilesX;
00157 unsigned int myNbTilesY;
00158 std::vector<Tile> myTiles;
00159 bool myIsCompiled;
00160 unsigned int myGLList;
00161 };
00162
00163
00164 #endif // SFML_TILEDBACKGROUND_HPP