diff --git a/cudoku.c b/cudoku.c index 9d63c97..121a402 100644 --- a/cudoku.c +++ b/cudoku.c @@ -35,17 +35,10 @@ unsigned int prepare_bg_rect() { return vao; } -void draw_bg_rect(Shader shader, unsigned int vao, float x_scale, float y_scale) { +void draw_bg_rect(Shader shader, unsigned int vao, float* transform) { use_shader(shader); - float mat[4][4] = { - {x_scale, 0, 0, 0}, - {0, y_scale, 0, 0}, - {0, 0, 1, 0}, - {0, 0, 0, 1}, - }; - - set_mat4(shader, "transform", (float *)mat); + set_mat4(shader, "transform", transform); glBindVertexArray(vao); glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0); @@ -54,17 +47,10 @@ void draw_bg_rect(Shader shader, unsigned int vao, float x_scale, float y_scale) /* glBindVertexArray(0); */ } -void draw_bg_lines(Shader shader, float x_scale, float y_scale, float resolution) { +void draw_bg_lines(Shader shader, float* transform, float resolution) { use_shader(shader); - float mat[4][4] = { - {x_scale, 0, 0, 0}, - {0, y_scale, 0, 0}, - {0, 0, 1, 0}, - {0, 0, 0, 1}, - }; - - set_mat4(shader, "transform", (float *)mat); + set_mat4(shader, "transform", transform); set_float(shader, "resolution", resolution); glDrawArrays(GL_TRIANGLES, 0, 6); diff --git a/cudoku.h b/cudoku.h index 61eacd0..7b97d75 100644 --- a/cudoku.h +++ b/cudoku.h @@ -3,5 +3,5 @@ #include "shader.h" unsigned int prepare_bg_rect(Shader shader); -void draw_bg_rect(Shader shader, unsigned int vao, float x_scale, float y_scale); -void draw_bg_lines(Shader shader, float x_scale, float y_scale, float resolution); +void draw_bg_rect(Shader shader, unsigned int vao, float* transform); +void draw_bg_lines(Shader shader, float* transform, float resolution); diff --git a/main.c b/main.c index eb6bef1..31e9aa9 100644 --- a/main.c +++ b/main.c @@ -68,8 +68,15 @@ int main() { glClearColor(0.0, 0.0, 0.0, 1.0); glClear(GL_COLOR_BUFFER_BIT); - draw_bg_rect(board_shader, board_vao, x_scale, y_scale); - draw_bg_lines(grid_shader, x_scale, y_scale, width < height ? width : height); + float transform[4][4] = { + {x_scale, 0, 0, 0}, + {0, y_scale, 0, 0}, + {0, 0, 1, 0}, + {0, 0, 0, 1}, + }; + + draw_bg_rect(board_shader, board_vao, (float *)transform); + draw_bg_lines(grid_shader, (float *)transform, width < height ? width : height); glXSwapBuffers(display, window); }