Modules/RasterRender/public/Shader.hpp
2024-11-24 22:41:14 +03:00

32 lines
No EOL
683 B
C++

#pragma once
namespace tp {
class RenderShader {
public:
RenderShader();
RenderShader(const char* vertid, const char* geomid, const char* fragid, bool paths = true);
~RenderShader();
void vert_bind_source(const char* vert_src);
void frag_bind_source(const char* frag_src);
void geom_bind_source(const char* geom_src);
void compile();
void bind();
uint4 getu(const char* uid);
void unbind();
void load(const char* vert, const char* geom, const char* frag, bool paths);
private:
bool compile_shader(const char* ShaderCode, uint4 ShaderID);
private:
uint4 programm;
uint4 VertexShaderID;
uint4 FragmentShaderID;
uint4 GeometryShaderID;
};
};