#ifndef GE_SHADER_H
#define GE_SHADER_H
#include <stack>
#include "../headers/oglheaders.h"
#include "../headers/GeBranch.h"

class GeBranchShader : public GeBranch {
public:
	GeBranchShader(char* filenameVertexShader, char* filenameFragementShader);
	~GeBranchShader();

	void setLight(int lightnumber);

	void renderSingle();
	void postRender();

private:
	static std::stack<int> shaderStack;

	char* textFileRead(char *fn);
	void createShaderProgramm(char* filenameVertexShader, char* filenameFragementShader);

	GLuint shaderProgram;
	GLuint uniform_lightno;
	int lightId;
};

#endif