30 lines
571 B
C++
30 lines
571 B
C++
#ifndef LLMR_RENDERER_SHADER
|
|
#define LLMR_RENDERER_SHADER
|
|
|
|
#include <forward_list>
|
|
|
|
namespace llmr {
|
|
|
|
class Shader {
|
|
public:
|
|
Shader(const char *vertex, const char *fragment);
|
|
~Shader();
|
|
|
|
// Make noncopyable
|
|
Shader(const Shader&) = delete;
|
|
Shader(const Shader&&) = delete;
|
|
Shader &operator=(const Shader&) = delete;
|
|
Shader &operator=(const Shader&&) = delete;
|
|
|
|
bool valid;
|
|
uint32_t program;
|
|
std::forward_list<uint32_t> attributes;
|
|
|
|
private:
|
|
bool compileShader(uint32_t *shader, uint32_t type, const char *source);
|
|
};
|
|
|
|
}
|
|
|
|
#endif
|