#ifndef IVISUALMANAGER_H
#define IVISUALMANAGER_H

#include "IManager.h"

namespace Salamander
{

class IVisualManager : public IManager
{
public:
	virtual ~IVisualManager();
	virtual bool preCache(Visual& visual);
	virtual bool postCache(Visual& visual);

protected:
	registerManager();
	IVisualManager();

	virtual void frame();
	virtual void preRender() = 0;
	virtual void render(const Visual& visual) = 0;
	virtual void postRender() = 0;

private:
	std::vector<Visual*> visuals_;
};

}

#endif // IVISUALMANAGER_H