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_IMAGEIMPL_HPP
00026 #define SFML_IMAGEIMPL_HPP
00027
00029
00031 #include <SFML/Graphics/VideoResource.hpp>
00032 #include <SFML/Utilities/Rect.hpp>
00033 #include <vector>
00034
00035 class sfImage;
00036
00037
00038 namespace sf_private
00039 {
00044 class sfImageImpl : public sfVideoResource
00045 {
00046 public :
00047
00052 ~sfImageImpl();
00053
00054 private :
00055
00056 friend sfImage;
00057
00066 sfImageImpl(unsigned int Width, unsigned int Height, const std::vector<sfUint32>& Pixels);
00067
00074 void CreateMaskFromColor(sfUint32 ColorKey);
00075
00084 void SetPixel(unsigned int X, unsigned int Y, sfUint32 Color);
00085
00094 const std::vector<sfUint32>& GetPixels() const;
00095
00101 void Update();
00102
00107 void Bind() const;
00108
00115 void SetSmooth(bool Smooth) const;
00116
00124 void SetRepeat(bool Repeat) const;
00125
00132 unsigned int GetWidth() const;
00133
00140 unsigned int GetHeight() const;
00141
00151 sfFloatRect GetTexCoords(const sfIntRect& Rect) const;
00152
00161 static unsigned int GetValidTextureSize(unsigned int Size);
00162
00167 virtual void InitVideoResources();
00168
00173 virtual void DestroyVideoResources();
00174
00176
00178 unsigned int myWidth;
00179 unsigned int myHeight;
00180 unsigned int myTextureWidth;
00181 unsigned int myTextureHeight;
00182 std::vector<sfUint32> myPixels;
00183 unsigned int myGLTexture;
00184 };
00185
00186 }
00187
00188 #endif // SFML_IMAGEIMPL_HPP