1
0
Fork 0

various improvements

master
Marrub 2015-11-12 07:12:27 +00:00
parent 4fc00ab098
commit 30a8a674ca
1 changed files with 24 additions and 6 deletions

30
main.c
View File

@ -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.