#ifndef SHADER_H
#define SHADER_H

#include <GL/glew.h>
#include <stdbool.h>

typedef struct {
	bool success;
	GLuint shader;
} ShaderCompileResult;

typedef struct {
	bool success;
	GLuint program;
} ProgramLinkResult;

extern const char* readFileToMemory(const char* filepath);
extern ShaderCompileResult readAndCompileShaderFromFile(const char* filepath, GLenum shaderType);
extern ProgramLinkResult linkShaderProgram(GLuint vertexShader, GLuint fragmentShader);
extern ProgramLinkResult buildShaderProgram(const char* vertexShaderPath, const char* fragmentShaderPath);

#endif // SHADER_H