#pragma once

#include <map>
#include "StringCompare.h"
#include "Surface.h"
#include "GameCore.h"

typedef std::map<const char*,Surface*,StringCompare> SurfaceMap;

class SurfaceManager
{
public:
	SurfaceManager();
	~SurfaceManager();
	void setDirect3DDevice( LPDIRECT3DDEVICE9 newd3dDevice );
	Surface* getSurface( char* surfaceName );
	HRESULT addSurface( char* fileName );
	HRESULT addSurface( char* fileName, int x, int y );
	HRESULT renderSurface( char* imageName, LPDIRECT3DSURFACE9 toRenderTo );
	HRESULT moveSurface( char* surfaceName, int key );
private:
	Surface* loadSurfaceFromFile( char* fileName );
	SurfaceMap surfaces;
	LPDIRECT3DDEVICE9 m_pd3dDevice;
};

