seoz pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=41059e5dc451f903f1ec9ed561e0a41b8339bb87
commit 41059e5dc451f903f1ec9ed561e0a41b8339bb87 Author: Amitesh Singh <[email protected]> Date: Sat Dec 27 22:12:30 2014 +0900 test_glview: Refractored the shader/program log code. Summary: Added a function print_glerror_log to handle both shaders and programs logs. Test Plan: elementary_test -> glview Reviewers: raster, jpeg, seoz Reviewed By: seoz Subscribers: anand.km, seoz Differential Revision: https://phab.enlightenment.org/D1826 --- src/bin/test_glview.c | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/src/bin/test_glview.c b/src/bin/test_glview.c index c840b97..fc35e48 100644 --- a/src/bin/test_glview.c +++ b/src/bin/test_glview.c @@ -341,12 +341,33 @@ static const char vertex_shader[] = "}\n"; static void +_print_gl_log(Evas_GL_API *gl, GLuint id) +{ + GLint log_len = 0; + char *log; + + if (gl->glIsShader(id)) + gl->glGetShaderiv(id, GL_INFO_LOG_LENGTH, &log_len); + else if (gl->glIsProgram(id)) + gl->glGetProgramiv(id, GL_INFO_LOG_LENGTH, &log_len); + + log = malloc(log_len * sizeof(char)); + + if (gl->glIsShader(id)) + gl->glGetShaderInfoLog(id, log_len, NULL, log); + else if (gl->glIsProgram(id)) + gl->glGetProgramInfoLog(id, log_len, NULL, log); + + printf("%s", log); + free(log); +} + +static void gears_init(GLData *gld) { Evas_GL_API *gl = gld->glapi; const char *p; - char msg[512]; gl->glEnable(GL_CULL_FACE); gl->glEnable(GL_DEPTH_TEST); @@ -355,15 +376,13 @@ gears_init(GLData *gld) gld->vtx_shader = gl->glCreateShader(GL_VERTEX_SHADER); gl->glShaderSource(gld->vtx_shader, 1, &p, NULL); gl->glCompileShader(gld->vtx_shader); - gl->glGetShaderInfoLog(gld->vtx_shader, sizeof msg, NULL, msg); - printf("vertex shader info: %s\n", msg); + _print_gl_log(gl, gld->vtx_shader); p = fragment_shader; gld->fgmt_shader = gl->glCreateShader(GL_FRAGMENT_SHADER); gl->glShaderSource(gld->fgmt_shader, 1, &p, NULL); gl->glCompileShader(gld->fgmt_shader); - gl->glGetShaderInfoLog(gld->fgmt_shader, sizeof msg, NULL, msg); - printf("fragment shader info: %s\n", msg); + _print_gl_log(gl, gld->fgmt_shader); gld->program = gl->glCreateProgram(); gl->glAttachShader(gld->program, gld->vtx_shader); @@ -372,8 +391,7 @@ gears_init(GLData *gld) gl->glBindAttribLocation(gld->program, 1, "normal"); gl->glLinkProgram(gld->program); - gl->glGetProgramInfoLog(gld->program, sizeof msg, NULL, msg); - printf("info: %s\n", msg); + _print_gl_log(gl, gld->program); gl->glUseProgram(gld->program); gld->proj_location = gl->glGetUniformLocation(gld->program, "proj"); --
