#ifndef CSHADERFACTORY_HPP
#define CSHADERFACTORY_HPP

#include "../Configuration/EImplementations.hpp"
#include "../../Model/Graphic/Shader/CShader.hpp"
#include "../CKernel.fwd.hpp"

namespace CShaderFactory {
	CShader* createShader(CKernel* e, std::string name, std::string vertexPath, std::string fragmentPath);

	CShader* createShader(EGraphicImplementation e, std::string name, std::string vertexPath, std::string fragmentPath);

	CShader* createShader(CKernel* e, std::string name, std::string vertexPath, std::string fragmentPath, std::string geomPath);

	CShader* createShader(EGraphicImplementation e, std::string name, std::string vertexPath, std::string fragmentPath, std::string geomPath);
}

#endif