00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef KEOS_TEXTURE_H
00023 #define KEOS_TEXTURE_H
00024
00025 #include "KeosTextureBase.h"
00026 #include "KeosRectangle.h"
00027
00028 namespace Keos
00029 {
00030
00034 class KEOS_EXPORT CTexture
00035 {
00036 public :
00037
00044 void Create(const TVector2I& Size, TPixelFormat Format, ulong nFlags = 0, const String& strName = "");
00045
00051 void CreateFromFile(const String& strFilename, TPixelFormat Format, ulong nFlags = 0);
00052
00059 void CreateFromImage(const CImage& Image, TPixelFormat Format, ulong nFlags = 0, const String& strName = "");
00060
00064 void SaveToFile(const String& strFilename) const;
00065
00069 void Update(const CRectangle& Rect = CRectangle(-1, -1, -1, -1));
00070
00073 CImage& GetPixels();
00074
00077 const TVector2I& GetSize() const;
00078
00081 TPixelFormat GetFormat() const;
00082
00085 const String& GetName() const;
00086
00089 const ITextureBase* GetTextureBase() const;
00090
00093 bool operator ==(const CTexture& Texture) const;
00094
00097 bool operator !=(const CTexture& Texture) const;
00098
00099 private :
00100
00107 void Load(const CImage& Image, TPixelFormat Format, ulong nFlags, const String& strName);
00108
00110 CSmartPtr<ITextureBase, CCOMRefCounted> m_Texture;
00111 };
00112
00113 }
00114
00115
00116 #endif // KEOS_TEXTURE_H