From faa74e2c942102a9b1aa215a913fddf422714d7e Mon Sep 17 00:00:00 2001 From: dec05eba Date: Fri, 22 Oct 2021 03:35:27 +0200 Subject: Add shader --- tests/main.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'tests/main.c') diff --git a/tests/main.c b/tests/main.c index 8631c35..0e6e199 100644 --- a/tests/main.c +++ b/tests/main.c @@ -8,11 +8,13 @@ #include #include #include +#include typedef struct { mgl_texture *texture; mgl_font *font; mgl_vertex_buffer *vertex_buffer; + mgl_shader_program *shader_program; } Userdata; static void draw(mgl_window *window, void *userdata) { @@ -26,10 +28,15 @@ static void draw(mgl_window *window, void *userdata) { }; mgl_rectangle_draw(context, &rect); + /*mgl_shader_program_set_uniform_texture2d(u->shader_program, "texture", u->texture);*/ + mgl_shader_program_set_uniform_vec2f(u->shader_program, "resolution", (mgl_vec2f){ window->size.x, window->size.y }); + mgl_sprite sprite; mgl_sprite_init(&sprite, u->texture, 100.0f - 10.0f, 0.0f); mgl_sprite_set_color(&sprite, (mgl_color){255, 255, 255, 128}); + mgl_shader_program_use(u->shader_program); mgl_sprite_draw(context, &sprite); + mgl_shader_program_use(NULL); mgl_text text; mgl_text_init(&text, u->font, "hello world!\nGood bye world!", 0.0f, 0.0f); @@ -47,11 +54,13 @@ int main(int argc, char **argv) { mgl_texture texture; mgl_font font; mgl_vertex_buffer vertex_buffer; + mgl_shader_program shader_program; Userdata userdata; userdata.texture = &texture; userdata.font = &font; userdata.vertex_buffer = &vertex_buffer; + userdata.shader_program = &shader_program; mgl_window window; if(mgl_window_create(&window, "mgl", 1280, 720) != 0) @@ -63,6 +72,15 @@ int main(int argc, char **argv) { if(mgl_font_load_from_file(&font, "/usr/share/fonts/noto/NotoSans-Regular.ttf", 32) != 0) return 1; + if(mgl_shader_program_init(&shader_program) != 0) + return 1; + + if(mgl_shader_program_add_shader_from_file(&shader_program, "tests/circle_mask.glsl", MGL_SHADER_FRAGMENT) != 0) + return 1; + + if(mgl_shader_program_finalize(&shader_program) != 0) + return 1; + if(mgl_vertex_buffer_init(&vertex_buffer, MGL_PRIMITIVE_QUADS, MGL_USAGE_STATIC) != 0) return 1; @@ -106,6 +124,7 @@ int main(int argc, char **argv) { } mgl_vertex_buffer_deinit(&vertex_buffer); + mgl_shader_program_deinit(&shader_program); mgl_font_unload(&font); mgl_texture_unload(&texture); mgl_window_deinit(&window); -- cgit v1.2.3