summaryrefslogtreecommitdiff
path: root/src/main/engine/shape/line.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/engine/shape/line.c')
-rw-r--r--src/main/engine/shape/line.c69
1 files changed, 69 insertions, 0 deletions
diff --git a/src/main/engine/shape/line.c b/src/main/engine/shape/line.c
new file mode 100644
index 0000000..7c0bc18
--- /dev/null
+++ b/src/main/engine/shape/line.c
@@ -0,0 +1,69 @@
+/*-
+ * 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 <GL/gl.h>
+#include "line.h"
+
+Line *
+engine_line_new(float x1, float y1, float x2, float y2)
+{
+ Line *line = malloc(sizeof(Line));
+ line->x1 = x1;
+ line->y1 = y1;
+ line->x2 = x2;
+ line->y2 = y2;
+
+ return line;
+}
+
+void
+engine_render_line(Line *line)
+{
+ glLineWidth(5.0f);
+ glBegin(GL_LINES);
+ glColor3f(1.0f, 1.0f, 0.0f); /* Yellow */
+
+ glVertex2f(line->x1, line->y1);
+ glVertex2f(line->x2, line->y2);
+
+ glEnd();
+}
+
+void
+engine_render_lines(list_t *lines)
+{
+ if (lines == NULL || lines->size <= 0) return;
+
+ glLineWidth(5.0f);
+ glBegin(GL_LINES);
+ glColor3f(1.0f, 1.0f, 0.0f); /* Yellow */
+
+ list_node_t *current = lines->head;
+ do {
+ Line *line = current->data;
+
+ glVertex2f(line->x1, line->y1);
+ glVertex2f(line->x2, line->y2);
+
+ current = current->next;
+ } while (current != NULL);
+
+ glEnd();
+}