00001 /* 00002 This file is part of c0re. 00003 00004 c0re is a multiplayer RTS on a hexagonal map with an evolving unit concept. 00005 Copyright (C) 2007 Stephan Hofmann 00006 00007 c0re is free software: you can redistribute it and/or modify 00008 it under the terms of the GNU General Public License as published by 00009 the Free Software Foundation, either version 3 of the License, or 00010 (at your option) any later version. 00011 00012 This program is distributed in the hope that it will be useful, 00013 but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 GNU General Public License for more details. 00016 00017 You should have received a copy of the GNU General Public License 00018 along with this program. If not, see <http://www.gnu.org/licenses/>. 00019 */ 00020 00021 #ifndef _TEXTUREINTERFACE_H_ 00022 #define _TEXTUREINTERFACE_H_ 00023 00024 #include "BitmapHeader.h" 00025 00029 enum eTextureModification 00030 { 00031 TM_Masked_Normal, 00032 TM_Masked_Blue_To_Red 00033 }; 00034 00038 class TextureInterface 00039 { 00040 public: 00044 TextureInterface(); 00045 00049 virtual ~TextureInterface(); 00050 00056 virtual int render(double x_begin, double x_end, double y_begin, double y_end) = 0; 00057 00065 virtual int loadAndBind(std::string p_filename, eTextureModification p_modifikationflag = TM_Masked_Normal) = 0; 00066 00073 virtual int bind(TextureData* data); 00074 00078 double ratio; 00079 00080 protected: 00087 virtual TextureData* loadBMP(std::string p_filename); 00088 00095 virtual TextureData* loadPNG(std::string p_filename); 00096 00097 private: 00101 static int s_handlerIndex; 00102 00103 }; 00104 00105 #endif