diff options
-rw-r--r-- | CMakeLists.txt | 4 | ||||
-rw-r--r-- | src/main/engine/engine.c | 17 | ||||
-rw-r--r-- | src/main/engine/shape/circle.c | 34 | ||||
-rw-r--r-- | src/main/engine/shape/circle.h (renamed from src/main/engine/types.h) | 12 |
4 files changed, 46 insertions, 21 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 1232136..efb94f9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -43,7 +43,9 @@ add_executable(tris src/main/game/domain/board.c src/main/game/domain/board.h src/main/engine/domain/color.c - src/main/engine/domain/color.h) + src/main/engine/domain/color.h + src/main/engine/shape/circle.c + src/main/engine/shape/circle.h) target_include_directories(tris PRIVATE log/src) diff --git a/src/main/engine/engine.c b/src/main/engine/engine.c index 362d2d8..3abfbcc 100644 --- a/src/main/engine/engine.c +++ b/src/main/engine/engine.c @@ -26,7 +26,7 @@ #include "engine.h" #include "ui/ui.h" #include "../util/list.h" -#include "types.h" +#include "shape/circle.h" #ifdef X11 #include <X11/Xlib.h> @@ -88,24 +88,11 @@ engine_set_window_title(Engine *engine, const char *title) ui_set_title(engine->ui, title); } -static Circle * -engine_new_circle(float cx, float cy, float r, int num_segments, int outline) -{ - Circle *circle = malloc(sizeof(Circle)); - circle->cx = cx; - circle->cy = cy; - circle->r = r; - circle->num_segments = num_segments; - circle->outline = outline; - - return circle; -} - void engine_draw_circle(float cx, float cy, float r, int num_segments, int outline) { if (engine == NULL || engine->circles == NULL) return; - list_add(engine->circles, engine_new_circle(cx, cy, r, num_segments, outline)); + list_add(engine->circles, engine_circle_new(cx, cy, r, num_segments, outline)); } static Line * diff --git a/src/main/engine/shape/circle.c b/src/main/engine/shape/circle.c new file mode 100644 index 0000000..9cc79c6 --- /dev/null +++ b/src/main/engine/shape/circle.c @@ -0,0 +1,34 @@ +/*- + * 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 <stdlib.h> +#include "circle.h" + +Circle * +engine_circle_new(float cx, float cy, float r, int num_segments, int outline) +{ + Circle *circle = malloc(sizeof(Circle)); + circle->cx = cx; + circle->cy = cy; + circle->r = r; + circle->num_segments = num_segments; + circle->outline = outline; + + return circle; +} diff --git a/src/main/engine/types.h b/src/main/engine/shape/circle.h index a87f087..f8bb91d 100644 --- a/src/main/engine/types.h +++ b/src/main/engine/shape/circle.h @@ -1,5 +1,5 @@ /*- -* Copyright (C) 2025 Alessandro Iezzi <aiezzi AT alessandroiezzi PERIOD it> + * Copyright (C) 2025 Alessandro Iezzi <aiezzi AT alessandroiezzi PERIOD it> * * This file is part of Tris Game. * @@ -17,10 +17,10 @@ * along with Tris Game. If not, see <http://www.gnu.org/licenses/>. */ -#ifndef __ENGINE_TYPES_H__ -#define __ENGINE_TYPES_H__ +#ifndef __CIRCLE_H__ +#define __CIRCLE_H__ -typedef struct Circle { +typedef struct { int outline; float cx; float cy; @@ -28,4 +28,6 @@ typedef struct Circle { int num_segments; } Circle; -#endif /* __ENGINE_TYPES_H__ */ +Circle *engine_circle_new(float cx, float cy, float r, int num_segments, int outline); + +#endif /* __CIRCLE_H__ */ |