25 void Compile(std::string vsSrc, std::string fsSrc) {
26 auto compileStage = [](
unsigned int type,
const char* src) {
27 unsigned int shader = aglCreateShader(type);
28 aglShaderSource(shader, 1, &src,
nullptr);
29 aglCompileShader(shader);
33 aglGetShaderiv(shader, COMPILE_STATUS, &success);
36 aglGetShaderInfoLog(shader, 512,
nullptr, log);
37 throw std::runtime_error(log);
42 const char* vsSrccstr = vsSrc.c_str();
43 const char* fsSrccstr = fsSrc.c_str();
44 unsigned int vs = compileStage(VERTEX_SHADER, vsSrccstr);
45 unsigned int fs = compileStage(FRAGMENT_SHADER, fsSrccstr);
47 id = aglCreateProgram();
48 aglAttachShader(
id, vs);
49 aglAttachShader(
id, fs);
53 aglGetProgramiv(
id, LINK_STATUS, &success);
56 aglGetProgramInfoLog(
id, 512,
nullptr, log);
57 throw std::runtime_error(log);