various improvements
parent
4fc00ab098
commit
30a8a674ca
30
main.c
30
main.c
|
@ -55,13 +55,35 @@ GLuint R_CreateShader(GLenum type, char const *src)
|
||||||
if(!success)
|
if(!success)
|
||||||
{
|
{
|
||||||
glGetShaderInfoLog(shader, 512, NULL, log);
|
glGetShaderInfoLog(shader, 512, NULL, log);
|
||||||
printf("Shader compile failed: %s\n", log);
|
fprintf(stderr, "Shader compile failed!\n%s\n", log);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
return shader;
|
return shader;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GLuint R_LinkProgram(GLuint vertShader, GLuint fragShader)
|
||||||
|
{
|
||||||
|
char log[512];
|
||||||
|
GLint success;
|
||||||
|
GLuint program;
|
||||||
|
|
||||||
|
program = glCreateProgram();
|
||||||
|
glAttachShader(program, vertShader);
|
||||||
|
glAttachShader(program, fragShader);
|
||||||
|
glLinkProgram(program);
|
||||||
|
glGetProgramiv(program, GL_LINK_STATUS, &success);
|
||||||
|
|
||||||
|
if(!success)
|
||||||
|
{
|
||||||
|
glGetProgramInfoLog(program, 512, NULL, log);
|
||||||
|
fprintf(stderr, "Failed to link shader program!\n%s\n", log);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return program;
|
||||||
|
}
|
||||||
|
|
||||||
char const *FXT_ReadFile(char const *fname)
|
char const *FXT_ReadFile(char const *fname)
|
||||||
{
|
{
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
|
@ -98,11 +120,7 @@ void R_InitGL()
|
||||||
// Init shaders.
|
// Init shaders.
|
||||||
re.VertShader = R_CreateShader(GL_VERTEX_SHADER, FXT_ReadFile("main.vp.glsl"));
|
re.VertShader = R_CreateShader(GL_VERTEX_SHADER, FXT_ReadFile("main.vp.glsl"));
|
||||||
re.FragShader = R_CreateShader(GL_FRAGMENT_SHADER, FXT_ReadFile("main.fp.glsl"));
|
re.FragShader = R_CreateShader(GL_FRAGMENT_SHADER, FXT_ReadFile("main.fp.glsl"));
|
||||||
|
re.Program = R_LinkProgram(re.VertShader, re.FragShader);
|
||||||
re.Program = glCreateProgram();
|
|
||||||
glAttachShader(re.Program, re.VertShader);
|
|
||||||
glAttachShader(re.Program, re.FragShader);
|
|
||||||
glLinkProgram(re.Program);
|
|
||||||
|
|
||||||
// Init uniform and attribute locations.
|
// Init uniform and attribute locations.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue