diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main/engine/engine.c | 27 | ||||
-rw-r--r-- | src/main/engine/engine.h | 1 | ||||
-rw-r--r-- | src/main/game.c | 29 | ||||
-rw-r--r-- | src/main/game.h | 25 |
4 files changed, 76 insertions, 6 deletions
diff --git a/src/main/engine/engine.c b/src/main/engine/engine.c index d7e0f9c..b4b9f42 100644 --- a/src/main/engine/engine.c +++ b/src/main/engine/engine.c @@ -17,18 +17,33 @@ * along with Tris Game. If not, see <http://www.gnu.org/licenses/>. */ +#include <GL/gl.h> #include "../ui/ui.h" #define RANGE_GL 2.0f -float xstep; -float ystep; +static float xstep; +static float ystep; +static int width; +static int height; void -engine_init(int width, int height) +engine_init(int w, int h) { - ui_init(width, height); + width = w; + height = h; + ui_init(w, h); - xstep = RANGE_GL / (float) width; - ystep = RANGE_GL / (float) height; + xstep = RANGE_GL / (float) w; + ystep = RANGE_GL / (float) h; +} + +void +engine_draw_line(int x1, int y1, int x2, int y2) +{ + float _x1 = x1 * xstep - 1; float _y1 = (height - y1) * ystep - 1; + float _x2 = x2 * xstep - 1; float _y2 = (height - y2) * ystep - 1; + + glVertex2f(_x1, _y1); + glVertex2f(_x2, _y2); } diff --git a/src/main/engine/engine.h b/src/main/engine/engine.h index 83b8367..cb9e562 100644 --- a/src/main/engine/engine.h +++ b/src/main/engine/engine.h @@ -21,5 +21,6 @@ #define __ENGINE_H__ void engine_init(int width, int height); +void engine_draw_line(int x1, int y1, int x2, int y2); #endif /* __ENGINE_H__ */ diff --git a/src/main/game.c b/src/main/game.c new file mode 100644 index 0000000..bc9e007 --- /dev/null +++ b/src/main/game.c @@ -0,0 +1,29 @@ +/*- + * Copyright (C) 2025 Alessandro Iezzi <aiezzi AT alessandroiezzi PERIOD it> + * + * This file is part of Tris Game. + * + * Tris Game is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Tris Game is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tris Game. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "engine/engine.h" + +void +game_field(int box_size, int x, int y) +{ + engine_draw_line(box_size, y, box_size, box_size * 3); + engine_draw_line(box_size * 2, y, box_size * 2, box_size * 3); + engine_draw_line(x, box_size, box_size * 3, box_size); + engine_draw_line(x, box_size * 2, box_size * 3, box_size * 2); +} diff --git a/src/main/game.h b/src/main/game.h new file mode 100644 index 0000000..a337bf8 --- /dev/null +++ b/src/main/game.h @@ -0,0 +1,25 @@ +/*- + * Copyright (C) 2025 Alessandro Iezzi <aiezzi AT alessandroiezzi PERIOD it> + * + * This file is part of Tris Game. + * + * Tris Game is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Tris Game is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tris Game. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef __GAME_H__ +#define __GAME_H__ + +void game_field(int box_size, int x, int y); + +#endif /* __GAME_H__ */ |