text: ////////////////////////////////////////////////////////////////////////////////
  // Filename: graphicsclass.h
  ////////////////////////////////////////////////////////////////////////////////
  #ifndef _GRAPHICSCLASS_H_
  #define _GRAPHICSCLASS_H_
  
  
  ///////////////////////
  // MY CLASS INCLUDES //
  ///////////////////////
  #include "d3dclass.h"
  #include "cameraclass.h"
  #include "modelclass.h"
  #include "lightclass.h"
  #include "rendertextureclass.h"
  #include "depthshaderclass.h"
  #include "shadowshaderclass.h"
  
  
  /////////////
  // GLOBALS //
  /////////////
  const bool FULL_SCREEN = true;
  const bool VSYNC_ENABLED = true;
  const float SCREEN_DEPTH = 100.0f;
  const float SCREEN_NEAR = 1.0f;
  const int SHADOWMAP_WIDTH = 1024;
  const int SHADOWMAP_HEIGHT = 1024;
  
  
  ////////////////////////////////////////////////////////////////////////////////
  // Class name: GraphicsClass
  ////////////////////////////////////////////////////////////////////////////////
  class GraphicsClass
  {
  public:
  	GraphicsClass();
  	GraphicsClass(const GraphicsClass&);
  	~GraphicsClass();
  
  	bool Initialize(int, int, HWND);
  	void Shutdown();
  	bool Frame(float, float, float, float, float, float);
  
  private:
  	bool RenderSceneToTexture();
  	bool RenderSceneToTexture2();
  	bool Render();
  
  private:
  	D3DClass* m_D3D;
  	CameraClass* m_Camera;
  	ModelClass *m_CubeModel, *m_GroundModel, *m_SphereModel;
  	LightClass* m_Light;
  	RenderTextureClass* m_RenderTexture;
  	DepthShaderClass* m_DepthShader;
  	ShadowShaderClass* m_ShadowShader;
  	LightClass* m_Light2;
  	RenderTextureClass* m_RenderTexture2;
  };
  
  #endif