summaryrefslogtreecommitdiff
path: root/examples/graph.c
diff options
context:
space:
mode:
authorMitya Selivanov <automainint@guattari.tech>2025-01-12 12:13:56 +0100
committerMitya Selivanov <automainint@guattari.tech>2025-01-12 12:13:56 +0100
commit29d736aecc5db0deb67053931e5b1cf03a9defc3 (patch)
tree50caf18887aeda07b24bee5d4143130f8546aff7 /examples/graph.c
parent464575c72a8a20b5e565f91cebfeb470edc8542e (diff)
downloadreduced_system_layer-29d736aecc5db0deb67053931e5b1cf03a9defc3.zip
f32 colors; g_ prefix
Diffstat (limited to 'examples/graph.c')
-rw-r--r--[-rwxr-xr-x]examples/graph.c81
1 files changed, 27 insertions, 54 deletions
diff --git a/examples/graph.c b/examples/graph.c
index 6ad5fdc..f03cc93 100755..100644
--- a/examples/graph.c
+++ b/examples/graph.c
@@ -1,30 +1,3 @@
-#if 0 /*
-#/ ================================================================
-#/
-#/ graph.c
-#/
-#/ ================================================================
-#/
-#/ Self-compilation shell script
-#/
-SRC=${0##*./}
-BIN=${SRC%.*}
-gcc \
- -Wall -Wextra -Werror -pedantic \
- -Wno-old-style-declaration \
- -Wno-missing-braces \
- -Wno-unused-variable \
- -Wno-unused-but-set-variable \
- -Wno-unused-parameter \
- -Wno-overlength-strings \
- -O3 \
- -fsanitize=undefined,address,leak \
- -lX11 -lm -lasound \
- -o $BIN $SRC && \
- ./$BIN $@ && rm $BIN
-exit $? # */
-#endif
-
#include "../graphics.c"
enum {
@@ -80,12 +53,12 @@ void draw_node(i64 node_index) {
Node n = world.nodes[node_index];
- u32 color = 0; // black color
+ vec3_f32 color = {0}; // black color
if (n.highlight)
- color = 0xff00ff; // pink color
+ color = (vec3_f32) { 1.f, .0f, 1.f }; // pink color
if (n.hover)
- color = 0x007f00; // green color
+ color = (vec3_f32) { 0.f, .5f, 0.f }; // green color
fill_ellipse(
OP_SET, // set pixels
@@ -105,12 +78,12 @@ void draw_edge(i64 edge_index) {
Node n0 = world.nodes[e.src];
Node n1 = world.nodes[e.dst];
- u32 color = 0x7f7f7f; // grey color
+ vec3_f32 color = { .5f, .5f, .5f }; // grey color
if (e.highlight)
- color = 0xff00ff; // pink color
+ color = (vec3_f32) { 1.f, .0f, 1.f }; // pink color
if (e.hover)
- color = 0x007f00; // green color
+ color = (vec3_f32) { 0.f, .5f, 0.f }; // green color
fill_line(
OP_SET, // set pixels
@@ -146,8 +119,8 @@ void update_node(i64 node_index) {
n.y - n.radius,
n.radius * 2,
n.radius * 2,
- platform.cursor_x,
- platform.cursor_y
+ g_platform.cursor_x,
+ g_platform.cursor_y
);
}
@@ -165,8 +138,8 @@ void update_edge(i64 edge_index) {
n1.x,
n1.y,
e.width,
- platform.cursor_x,
- platform.cursor_y
+ g_platform.cursor_x,
+ g_platform.cursor_y
);
}
@@ -421,7 +394,7 @@ void update_and_render_frame(void) {
update_edge(i);
}
- if (platform.key_pressed[KEY_DELETE]) {
+ if (g_platform.key_pressed[KEY_DELETE]) {
for (i64 i = 0; i < MAX_NUM_EDGES; ++i)
if (world.edges[i].enabled && world.edges[i].hover)
remove_edge(i);
@@ -433,7 +406,7 @@ void update_and_render_frame(void) {
path_changed = 1;
}
- if (platform.key_pressed['1']) {
+ if (g_platform.key_pressed['1']) {
for (i64 i = 0; i < MAX_NUM_NODES; ++i)
if (world.nodes[i].enabled && world.nodes[i].hover) {
path_src = i;
@@ -442,7 +415,7 @@ void update_and_render_frame(void) {
}
}
- if (platform.key_pressed['2'])
+ if (g_platform.key_pressed['2'])
for (i64 i = 0; i < MAX_NUM_NODES; ++i)
if (world.nodes[i].enabled && world.nodes[i].hover) {
path_dst = i;
@@ -455,13 +428,13 @@ void update_and_render_frame(void) {
path_changed = 0;
}
- if (platform.key_pressed[BUTTON_LEFT]) {
+ if (g_platform.key_pressed[BUTTON_LEFT]) {
for (i64 i = 0; i < MAX_NUM_NODES; ++i)
if (world.nodes[i].enabled && world.nodes[i].hover) {
drag_on = 1;
drag_node = i;
- drag_x0 = platform.cursor_x;
- drag_y0 = platform.cursor_y;
+ drag_x0 = g_platform.cursor_x;
+ drag_y0 = g_platform.cursor_y;
for (i64 j = 0; j < MAX_NUM_NODES; ++j) {
world.nodes[j].drag_x = world.nodes[j].x;
world.nodes[j].drag_y = world.nodes[j].y;
@@ -470,10 +443,10 @@ void update_and_render_frame(void) {
}
if (!drag_on)
- add_node(platform.cursor_x, platform.cursor_y);
+ add_node(g_platform.cursor_x, g_platform.cursor_y);
}
- if (platform.key_pressed[BUTTON_RIGHT])
+ if (g_platform.key_pressed[BUTTON_RIGHT])
for (i64 i = 0; i < MAX_NUM_NODES; ++i)
if (world.nodes[i].enabled && world.nodes[i].hover) {
adding_edge = 1;
@@ -489,7 +462,7 @@ void update_and_render_frame(void) {
break;
}
- if (adding_edge && !platform.key_down[BUTTON_RIGHT]) {
+ if (adding_edge && !g_platform.key_down[BUTTON_RIGHT]) {
adding_edge = 0;
add_edge(adding_src, adding_dst);
path_changed = 1;
@@ -497,8 +470,8 @@ void update_and_render_frame(void) {
if (drag_on) {
if (check_node_index(drag_node)) {
- f64 dx = platform.cursor_x - drag_x0;
- f64 dy = platform.cursor_y - drag_y0;
+ f64 dx = g_platform.cursor_x - drag_x0;
+ f64 dy = g_platform.cursor_y - drag_y0;
world.nodes[drag_node].x = world.nodes[drag_node].drag_x + dx;
world.nodes[drag_node].y = world.nodes[drag_node].drag_y + dy;
@@ -525,26 +498,26 @@ void update_and_render_frame(void) {
path_changed = 1;
}
- if (!platform.key_down[BUTTON_LEFT])
+ if (!g_platform.key_down[BUTTON_LEFT])
drag_on = 0;
}
// Render
- fill_rectangle(OP_SET, 0xa0b0c0, 0, 0, platform.frame_width, platform.frame_height);
+ fill_rectangle(OP_SET, (vec3_f32) { .7f, .8f, .9f }, 0, 0, g_platform.frame_width, g_platform.frame_height);
if (adding_edge) {
f64 x0 = world.nodes[adding_src].x;
f64 y0 = world.nodes[adding_src].y;
- f64 x1 = platform.cursor_x;
- f64 y1 = platform.cursor_y;
+ f64 x1 = g_platform.cursor_x;
+ f64 y1 = g_platform.cursor_y;
if (adding_src != adding_dst) {
x1 = world.nodes[adding_dst].x;
y1 = world.nodes[adding_dst].y;
}
- fill_line(OP_SET, 0x7f007f, x0, y0, x1, y1, 30);
+ fill_line(OP_SET, (vec3_f32) { .5f, 0.f, .5f }, x0, y0, x1, y1, 30);
}
draw_graph();
@@ -556,7 +529,7 @@ i32 main(i32 argc, c8 **argv) {
(void) argc;
(void) argv;
- platform = (Platform) {
+ g_platform = (Platform) {
.title = "Graph",
.frame_width = 960,
.frame_height = 720,