src/shader.c

changeset 44
b3da4096c607
parent 41
df81d493716e
child 50
d8d2e4817db1
equal deleted inserted replaced
43:5a8c31904e44 44:b3da4096c607
124 glDeleteProgram(program.id); 124 glDeleteProgram(program.id);
125 } 125 }
126 program.id = 0; 126 program.id = 0;
127 } 127 }
128 128
129 static AscShaderProgram asc_shader_compile_link_discard( 129 AscShaderProgram asc_shader_easy_compile_and_link(
130 char const *vtxName, char const *fragName) { 130 char const *vtxName, char const *fragName) {
131 AscShader font_vtx = asc_shader_compilef(GL_VERTEX_SHADER, vtxName); 131 AscShader font_vtx = asc_shader_compilef(GL_VERTEX_SHADER, vtxName);
132 AscShader font_frag = asc_shader_compilef(GL_FRAGMENT_SHADER, fragName); 132 AscShader font_frag = asc_shader_compilef(GL_FRAGMENT_SHADER, fragName);
133 AscShaderProgram prog = asc_shader_link(font_vtx, font_frag); 133 AscShaderProgram prog = asc_shader_link(font_vtx, font_frag);
134 asc_shader_destroy(font_vtx); 134 asc_shader_destroy(font_vtx);
135 asc_shader_destroy(font_frag); 135 asc_shader_destroy(font_frag);
136 return prog; 136 return prog;
137 } 137 }
138
139 void asc_shader_initialize_predefined(void) {
140 ASC_SHADER_SPRITE.base = asc_shader_compile_link_discard("shader/sprite_vtx.glsl", "shader/sprite_frag.glsl");
141 ASC_SHADER_SPRITE.surface = glGetUniformLocation(ASC_SHADER_SPRITE.base.id, "surface");
142 ASC_SHADER_SPRITE.depth = glGetUniformLocation(ASC_SHADER_SPRITE.base.id, "depth");
143 }
144
145 void asc_shader_destroy_predefined(void) {
146 asc_shader_program_destroy(ASC_SHADER_SPRITE.base);
147 }

mercurial