text: #pragma once
  class ColorShader
  {
  private:
  	struct MatrixBufferType
  	{
  		XMMATRIX world;
  		XMMATRIX view;
  		XMMATRIX projection;
  	};
  
  public:
  	ColorShader();
  	~ColorShader();
  
  	bool Initialize(ID3D11Device*, HWND);
  	void Shutdown();
  	bool Render(ID3D11DeviceContext*, int, XMMATRIX, XMMATRIX, XMMATRIX);
  
  private:
  	bool InitializeShader(ID3D11Device*, HWND, const WCHAR*, const WCHAR*);
  	void ShutdownShader();
  	void OutputShaderErrorMessage(ID3D10Blob*, HWND, const WCHAR*);
  
  	bool SetShaderParameters(ID3D11DeviceContext*, XMMATRIX, XMMATRIX, XMMATRIX);
  	void RenderShader(ID3D11DeviceContext*, int);
  
  private:
  	ID3D11VertexShader * m_VertexShader = nullptr;
  	ID3D11PixelShader* m_PixelShader = nullptr;
  	ID3D11InputLayout* m_Layout = nullptr;
  	ID3D11Buffer* m_MatrixBuffer = nullptr;
  };
  
  