#pragma once

#include "..\DXFunctions\DeviceStateManager.h"
#include "..\DXFunctions\BufferManager.h"
#include "..\DXFunctions\Camera.h"

class Menu;
class ShadowApp;

class DeferredShadowTechnique
{
protected:

	ShadowApp* m_pApp;
	Menu*		m_pMenu;

public:
	DeferredShadowTechnique(ShadowApp* const pApp);
	virtual ~DeferredShadowTechnique(void);

	//render the mask which says if a fragment is in shaodw or not
	virtual void RenderShadowMask(void) {}

	//virtual void DrawControls(void) {}
	virtual void UpdateInput(void) {}

	Menu* GetMenu(void) const { return m_pMenu; }
};
