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

irrlichttexture.h

Go to the documentation of this file.
00001 /************************************************************************
00002         filename:       irrlichttexture.h
00003         created:        20/7/2004
00004         author:         Thomas Suter
00005 *************************************************************************/
00006 /*************************************************************************
00007     Crazy Eddie's GUI System (http://www.cegui.org.uk)
00008     Copyright (C)2004 - 2005 Paul D Turner (paul@cegui.org.uk)
00009 
00010     This library is free software; you can redistribute it and/or
00011     modify it under the terms of the GNU Lesser General Public
00012     License as published by the Free Software Foundation; either
00013     version 2.1 of the License, or (at your option) any later version.
00014 
00015     This library is distributed in the hope that it will be useful,
00016     but WITHOUT ANY WARRANTY; without even the implied warranty of
00017     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00018     Lesser General Public License for more details.
00019 
00020     You should have received a copy of the GNU Lesser General Public
00021     License along with this library; if not, write to the Free Software
00022     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00023 *************************************************************************/
00024 #ifndef IRRLICHTTEXTURE_H_INCLUDED
00025 #define IRRLICHTTEXTURE_H_INCLUDED
00026 
00027 #include "IrrlichtRendererDef.h"
00028 
00029 #include "CEGUIBase.h"
00030 #include "CEGUIRenderer.h"
00031 #include "CEGUITexture.h"
00032 
00033 #include <irrlicht.h>
00034 
00035 namespace CEGUI
00036 {
00037         class IRRLICHT_GUIRENDERER_API IrrlichtTexture : public Texture
00038         {
00039         public:
00040 
00041                 // constructor
00042                 IrrlichtTexture(Renderer* r, irr::IrrlichtDevice* device);
00043                 
00044                 // destructor
00045                 virtual ~IrrlichtTexture();
00046                 
00047                 // returns the irrlich texture
00048                 irr::video::ITexture* getTexture();
00049 
00050                 // set the irrlicht texture
00051                 void setTexture(irr::video::ITexture* texture);
00052 
00053 
00061                 virtual ushort  getWidth(void) const;
00062 
00063 
00071                 virtual ushort  getHeight(void) const;
00072 
00073 
00087                 virtual void    loadFromFile(const String& filename, const String& resourceGroup);
00088 
00089 
00106                 virtual void    loadFromMemory(const void* buffPtr, uint buffWidth, uint buffHeight);
00107 
00108         private:
00109 
00110                 // counter for unique texture names
00111                 static int iTextureNumber;
00112 
00113                 // generate a unique name
00114                 static irr::core::stringc getUniqueName(void);
00115                 
00116                 // remove the texture from irrlicht textures
00117                 void freeTexture();
00118 
00119                 // the current texture for rendering
00120                 irr::video::ITexture* tex;
00121 
00122                 // the irrlicht video driver 
00123                 irr::video::IVideoDriver* driver;
00124 
00125                 // the irrlicht device
00126                 irr::IrrlichtDevice* device;
00127 
00128         };
00129 }
00130 #endif

Generated on Wed Feb 16 12:41:08 2005 for Crazy Eddies GUI System by  doxygen 1.3.9.1