00001 /************************************************************************ 00002 filename: CEGUITexture.h 00003 created: 21/2/2004 00004 author: Paul D Turner 00005 00006 purpose: Defines abstract interface for texture objects. Texture 00007 objects are created & destroyed by the Renderer. 00008 *************************************************************************/ 00009 /************************************************************************* 00010 Crazy Eddie's GUI System (http://www.cegui.org.uk) 00011 Copyright (C)2004 - 2005 Paul D Turner (paul@cegui.org.uk) 00012 00013 This library is free software; you can redistribute it and/or 00014 modify it under the terms of the GNU Lesser General Public 00015 License as published by the Free Software Foundation; either 00016 version 2.1 of the License, or (at your option) any later version. 00017 00018 This library is distributed in the hope that it will be useful, 00019 but WITHOUT ANY WARRANTY; without even the implied warranty of 00020 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00021 Lesser General Public License for more details. 00022 00023 You should have received a copy of the GNU Lesser General Public 00024 License along with this library; if not, write to the Free Software 00025 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00026 *************************************************************************/ 00027 #ifndef _CEGUITexture_h_ 00028 #define _CEGUITexture_h_ 00029 00030 #include "CEGUIBase.h" 00031 #include "CEGUIString.h" 00032 00033 // Start of CEGUI namespace section 00034 namespace CEGUI 00035 { 00045 class CEGUIEXPORT Texture 00046 { 00047 public: 00048 /************************************************************************* 00049 Abstract Interface 00050 *************************************************************************/ 00058 virtual ushort getWidth(void) const = 0; 00059 00060 00068 virtual ushort getHeight(void) const = 0; 00069 00070 00084 virtual void loadFromFile(const String& filename, const String& resourceGroup) = 0; 00085 00086 00103 virtual void loadFromMemory(const void* buffPtr, uint buffWidth, uint buffHeight) = 0; 00104 00105 00113 Renderer* getRenderer(void) const {return d_owner;} 00114 00115 00116 protected: 00117 /************************************************************************* 00118 Construction and Destruction 00119 *************************************************************************/ 00124 Texture(Renderer* owner) : d_owner(owner) {} 00125 00126 public: // luabind compatibility 00131 virtual ~Texture(void) {} 00132 00133 private: 00134 Renderer* d_owner; //<! Renderer object that created and owns this texture 00135 }; 00136 00137 } // End of CEGUI namespace section 00138 00139 #endif // end of guard _CEGUITexture_h_