src/glcontext.c

changeset 78
9bc544f4ce8f
parent 77
2187a732f4d7
equal deleted inserted replaced
77:2187a732f4d7 78:9bc544f4ce8f
46 asc_dprintf("GL debug: %.*s", (int)buf.length, buf.ptr); 46 asc_dprintf("GL debug: %.*s", (int)buf.length, buf.ptr);
47 } 47 }
48 cx_strfree(&buf); 48 cx_strfree(&buf);
49 } 49 }
50 50
51 #include "shader_codes.h"
52
53 static void asc_shader_initialize_predefined(AscGLContext *ctx) { 51 static void asc_shader_initialize_predefined(AscGLContext *ctx) {
52 // TODO: deal with different working dirs
54 AscShaderSprite *sprite = &ctx->shader.sprite; 53 AscShaderSprite *sprite = &ctx->shader.sprite;
55 sprite->program = asc_shader_program_create(asc_shader_codes_sprite); 54 AscShaderCodes codes;
55 if (asc_shader_load_code_files((AscShaderCodeFiles){
56 .vtx = "./shader/sprite_vtx.glsl",
57 .frag = "./shader/sprite_frag.glsl"
58 }, &codes)) {
59 asc_error("Loading sprite shader failed.");
60 return;
61 }
62 sprite->program = asc_shader_program_create(codes);
56 sprite->depth = glGetUniformLocation(sprite->program.id, "depth"); 63 sprite->depth = glGetUniformLocation(sprite->program.id, "depth");
57 sprite->tex = glGetUniformLocation(sprite->program.id, "texture"); 64 sprite->tex = glGetUniformLocation(sprite->program.id, "texture");
65 asc_shader_free_codes(codes);
58 } 66 }
59 67
60 static void asc_shader_destroy_predefined(AscGLContext *ctx) { 68 static void asc_shader_destroy_predefined(AscGLContext *ctx) {
61 asc_shader_program_destroy(ctx->shader.sprite.program); 69 asc_shader_program_destroy(ctx->shader.sprite.program);
62 } 70 }

mercurial