texturemanager.h (1751B)
1/* 2 * Gearboy - Nintendo Game Boy Emulator 3 * Copyright (C) 2012 Ignacio Sanchez 4 5 * This program is free software: you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation, either version 3 of the License, or 8 * any later version. 9 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 15 * You should have received a copy of the GNU General Public License 16 * along with this program. If not, see http://www.gnu.org/licenses/ 17 * 18 */ 19 20#pragma once 21#ifndef _TEXTUREMANAGER_H 22#define _TEXTUREMANAGER_H 23 24#include <map> 25#include <string> 26#import <GLKit/GLKit.h> 27#include "singleton.h" 28#include "texture.h" 29 30class TextureManager : public Singleton<TextureManager> 31{ 32 33 friend class Singleton<TextureManager>; 34 35private: 36 37 typedef std::map<std::string, Texture*> TTextureMap; 38 typedef std::pair<std::string, Texture*> TTextureMapPair; 39 typedef TTextureMap::iterator TTextureMapIterator; 40 typedef std::pair<TTextureMapIterator, bool> TTextureMapResultPair; 41 42 TTextureMap m_TextureMap; 43 44 45 46 bool LoadTexture(Texture* pTexture, bool mipmaps); 47 GLboolean GenMipMap2D(GLubyte *src, GLubyte **dst, int srcWidth, int srcHeight, int *dstWidth, int *dstHeight, int level); 48 49public: 50 51 TextureManager(); 52 ~TextureManager(); 53 54 Texture* GetTexture(const char* strTextureName, bool mipmaps = false); 55 56 bool UnloadTexture(const char* strTextureName); 57 bool UnloadTexture(Texture* pTexture); 58 int UnloadAll(void); 59}; 60 61#endif /* _TEXTUREMANAGER_H */ 62