2025-01-19 14:17:36 +01:00

46 lines
568 B
C++

#pragma once
#include <GL/glew.h>
#include "ShaderUtil.h"
class Shader {
private:
const char* _vert;
const char* _frag;
GLuint _id;
public:
Shader(const char* vert, const char* frag) : _vert(vert), _frag(frag), _id(0) {
}
~Shader() {
if (_id != 0) {
glDeleteProgram(_id);
}
}
GLuint Reference() const { return _id; }
void Initialize() {
if (_id != 0)
return;
_id = ShaderUtil::CreateShaderProgram(_vert, _frag);
}
void Use() {
Initialize();
glUseProgram(_id);
}
void Disable() {
Initialize();
glUseProgram(0);
}
};