63 }, &codes)) { |
63 }, &codes)) { |
64 asc_error("Loading rectangle shader failed."); |
64 asc_error("Loading rectangle shader failed."); |
65 return NULL; |
65 return NULL; |
66 } |
66 } |
67 AscRectangleShader *shader = asc_shader_create(codes, sizeof(*shader)); |
67 AscRectangleShader *shader = asc_shader_create(codes, sizeof(*shader)); |
68 if (asc_has_error()) { |
68 if (shader == NULL) { |
69 asc_shader_free_codes(codes); |
69 asc_shader_free_codes(codes); |
70 // TODO: must not return NULL or must add error handling on caller site |
|
71 return NULL; |
70 return NULL; |
72 } |
71 } |
73 shader->size = glGetUniformLocation(shader->program.gl_id, "size"); |
72 shader->size = glGetUniformLocation(shader->program.gl_id, "size"); |
74 if (asc_test_flag(flags, ASC_RECTANGLE_SHADER_FLAG_FILL)) { |
73 if (asc_test_flag(flags, ASC_RECTANGLE_SHADER_FLAG_FILL)) { |
75 shader->color = glGetUniformLocation(shader->program.gl_id, "color"); |
74 shader->color = glGetUniformLocation(shader->program.gl_id, "color"); |