#pragma once
#include "PhongEffect.h"
#include "PostProcessing.h"
#include "ShadowMapping.h"
#include "IntroEffect.h"

class EffectManager
{
	private:
	EffectManager(void);
	
	PhongEffect* phongEffect;
	PostProcessing* postProcessingEffect;
	ShadowMapping* shadowMapping;
	IntroEffect* introEffect;
	static EffectManager* instance;

	public:
	static EffectManager* getInstance(void)
	{
		if(!instance)
			instance = new EffectManager();
		return instance;
	}
	static void releaseEffectManager()
	{
		delete(instance);
		instance = NULL;
	}
	~EffectManager(void);

	PhongEffect* getPhongEffect();
	PostProcessing* getPostProcessingEffect();
	ShadowMapping* getShadowMappingEffect();
	IntroEffect* getIntroEffect();
	HRESULT initEffects();
};