#pragma once

#include "GameCore.h"
#include <map>

using namespace std;

typedef map<int, LPDIRECT3DTEXTURE9> TextureMap;
typedef map<int, LPDIRECT3DTEXTURE9>::iterator TextureMapIterator;

class TextureManager
{
public:
	TextureManager();
	~TextureManager();

	// load textures from a file
	HRESULT loadTexturesFromFile( char* fileName );

	// return a texture given a texture id
	LPDIRECT3DTEXTURE9 getTexture( int textureId );

	// set D3D extravaganza
	void setD3DDevice( LPDIRECT3DDEVICE9 pd3dDevice );
private:
	LPDIRECT3DTEXTURE9 loadTexture( char* textureName );  // load a texture into map/ memory
	TextureMap textures;			// map of all textures
	LPDIRECT3DDEVICE9 pd3dDevice;   // D3D device
};
