Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

# KeosTexture.h

Go to the documentation of this file.

    00001 /*
    00002  * This source file is part of KEOS (Free 3D Engine)
    00003  * For the latest info, see http://www.keosengine.org/
    00004  * E-mails : thierry.vouriot@keosengine.org, yeri@keosengine.org
    00005  *
    00006  * This program is free software; you can redistribute it and/or modify it under
    00007  * the terms of the GNU Lesser General Public License as published by the Free Software
    00008  * Foundation; either version 2 of the License, or (at your option) any later
    00009  * version.
    00010  *
    00011  * This program is distributed in the hope that it will be useful, but WITHOUT
    00012  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
    00013  * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
    00014  *
    00015  * You should have received a copy of the GNU Lesser General Public License along with
    00016  * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
    00017  * Place - Suite 330, Boston, MA 02111-1307, USA, or go to
    00018  * http://www.gnu.org/copyleft/lesser.txt.
    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* GetTexture() 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 } // namespace Keos
    00114
    00115
    00116 #endif // KEOS_TEXTURE_H