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_IMAGE_HPP
00026 #define SFML_IMAGE_HPP
00027
00029
00031 #include <SFML/Graphics/Color.hpp>
00032 #include <SFML/Graphics/VideoResource.hpp>
00033 #include <SFML/Graphics/Rect.hpp>
00034 #include <string>
00035 #include <vector>
00036
00037
00042 class SFML_API sfImage : public sf_private::sfVideoResource
00043 {
00044 public :
00045
00050 sfImage();
00051
00058 sfImage(const sfImage& Copy);
00059
00068 sfImage(unsigned int Width, unsigned int Height, const sfColor& Color = sfColor(0, 0, 0, 255));
00069
00078 sfImage(unsigned int Width, unsigned int Height, const void* Data);
00079
00084 ~sfImage();
00085
00094 bool LoadFromFile(const std::string& Filename);
00095
00104 bool SaveToFile(const std::string& Filename) const;
00105
00114 void Create(unsigned int Width, unsigned int Height, const sfColor& Color = sfColor(0, 0, 0, 255));
00115
00124 void LoadFromMemory(unsigned int Width, unsigned int Height, const void* Data);
00125
00132 void CreateMaskFromColor(const sfColor& ColorKey);
00133
00143 void Resize(unsigned int Width, unsigned int Height, const sfColor& Color = sfColor(0, 0, 0, 255));
00144
00154 void SetPixel(unsigned int X, unsigned int Y, const sfColor& Color);
00155
00165 sfColor GetPixel(unsigned int X, unsigned int Y) const;
00166
00175 const sfUint32* GetPixelsPtr() const;
00176
00182 void Update();
00183
00188 void Bind() const;
00189
00196 void SetSmooth(bool Smooth) const;
00197
00205 void SetRepeat(bool Repeat) const;
00206
00213 unsigned int GetWidth() const;
00214
00221 unsigned int GetHeight() const;
00222
00232 sfFloatRect GetTexCoords(const sfIntRect& Rect) const;
00233
00242 static unsigned int GetValidTextureSize(unsigned int Size);
00243
00252 sfImage& operator =(const sfImage& Other);
00253
00254 private :
00255
00260 void CreateTexture();
00261
00266 virtual void DestroyVideoResources();
00267
00269
00271 unsigned int myWidth;
00272 unsigned int myHeight;
00273 unsigned int myTextureWidth;
00274 unsigned int myTextureHeight;
00275 std::vector<sfUint32> myPixels;
00276 unsigned int myGLTexture;
00277 };
00278
00279
00280 #endif // SFML_IMAGE_HPP