CSC8503_Advanced_Game_Technologies / Common / ShaderBase.h
ShaderBase.h
Raw
#pragma once
#include <string>
using std::string;
namespace NCL {
	namespace Rendering {
		enum class ShaderStages {
			SHADER_VERTEX,
			SHADER_FRAGMENT,
			SHADER_GEOMETRY,
			SHADER_DOMAIN,
			SHADER_HULL,
			SHADER_MAX
		};

		class ShaderBase	{
		public:
			ShaderBase() {
			}
			ShaderBase(const string& vertex, const string& fragment, const string& geometry = "", const string& domain = "", const string& hull = "");
			virtual ~ShaderBase();

			virtual void ReloadShader() = 0;
		protected:

			string shaderFiles[(int)ShaderStages::SHADER_MAX];
		};
	}
}