summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/echo.c8
-rw-r--r--examples/game_of_life.c20
-rw-r--r--examples/graph.c6
-rw-r--r--examples/julia_set.c26
-rw-r--r--examples/labyrinth.c20
-rw-r--r--examples/particles.c12
-rw-r--r--examples/pixels.c44
-rw-r--r--examples/proto.c5
-rw-r--r--examples/screenshot.c8
-rw-r--r--examples/sinewave.c30
-rw-r--r--examples/ui.c6
11 files changed, 49 insertions, 136 deletions
diff --git a/examples/echo.c b/examples/echo.c
index 10f3cd5..1671be7 100644
--- a/examples/echo.c
+++ b/examples/echo.c
@@ -41,7 +41,7 @@ i32 main(i32 argc, c8 **argv) {
printf("Receiving UDP messages on port %d\n\n", PORT);
for (;;) {
- i64 n = p_recv(
+ i64 n = network_recv(
0,
(IP_Address) {
.protocol = IPv4_UDP,
@@ -61,7 +61,7 @@ i32 main(i32 argc, c8 **argv) {
buf[n] = '\0';
printf("%s\n", buf);
} else
- p_sleep_for(10);
+ suspend_thread_for_milliseconds(10);
}
} break;
@@ -75,7 +75,7 @@ i32 main(i32 argc, c8 **argv) {
if (strcmp(buf, "!quit") == 0)
break;
- p_send(
+ network_send(
0,
(IP_Address) {
.protocol = IPv4_UDP,
@@ -94,6 +94,6 @@ i32 main(i32 argc, c8 **argv) {
default:;
}
- p_cleanup();
+ shutdown_all_systems();
return 0;
}
diff --git a/examples/game_of_life.c b/examples/game_of_life.c
deleted file mode 100644
index d95fb9e..0000000
--- a/examples/game_of_life.c
+++ /dev/null
@@ -1,20 +0,0 @@
-#include "../reduced_system_layer.c"
-
-void update_and_render_frame(void) {
- p_handle_events();
- p_render_frame();
- p_sleep_for(0);
-}
-
-i32 main(i32 argc, c8 **argv) {
- (void) argc;
- (void) argv;
-
- g_platform = (Platform) {
- .title = "Conway's Game of Life",
- };
-
- p_event_loop();
-
- return 0;
-}
diff --git a/examples/graph.c b/examples/graph.c
index f196d3d..c1c84f2 100644
--- a/examples/graph.c
+++ b/examples/graph.c
@@ -371,7 +371,7 @@ i64 drag_x0 = 0;
i64 drag_y0 = 0;
void update_and_render_frame(void) {
- p_wait_events();
+ wait_main_window_events();
// Input events
@@ -520,7 +520,7 @@ void update_and_render_frame(void) {
draw_graph();
- p_render_frame();
+ render_main_window_frame();
}
i32 main(i32 argc, c8 **argv) {
@@ -539,7 +539,7 @@ i32 main(i32 argc, c8 **argv) {
add_edge(0, 2);
add_edge(1, 2);
- p_event_loop();
+ run_main_window_event_loop();
return 0;
}
diff --git a/examples/julia_set.c b/examples/julia_set.c
index 288dac2..81aa02c 100644
--- a/examples/julia_set.c
+++ b/examples/julia_set.c
@@ -11,6 +11,13 @@ f64 radius = 2.;
i64 limit = 1024;
i64 time_0;
+void inc_f64(f64 *x, i8 s) {
+ u64 *u = (u64 *) x;
+ if (((*u >> 52) & 2047) == 2047)
+ return;
+ *u += *x > 0 ? s : -s;
+}
+
void apply_scale(f64 delta) {
while (delta > SCALE_LIMIT) {
apply_scale(SCALE_LIMIT);
@@ -22,21 +29,24 @@ void apply_scale(f64 delta) {
}
f64 ds = view_s * delta * .1;
- if (view_s + ds < 1e-12)
+ if (view_s + ds <= 0.0)
return;
f64 dx = (g_platform.cursor_x * 1. - g_platform.real_width * .5);
f64 dy = (g_platform.cursor_y * 1. - g_platform.real_height * .5);
view_x -= view_s * dx;
view_y -= view_s * dy;
- view_s += ds;
+ if (view_s == view_s + ds)
+ inc_f64(&view_s, ds > 0 ? 1 : -1);
+ else
+ view_s += ds;
view_x += view_s * dx;
view_y += view_s * dy;
}
void update_and_render_frame(void) {
- i32 num_events = p_handle_events();
+ i32 num_events = handle_main_window_events();
- i64 time_elapsed = p_time() - time_0;
+ i64 time_elapsed = current_utc_time_in_milliseconds() - time_0;
time_0 += time_elapsed;
b8 left = g_platform.key_down[KEY_LEFT];
@@ -45,7 +55,7 @@ void update_and_render_frame(void) {
b8 down = g_platform.key_down[KEY_DOWN];
if (!left && !right && !up && !down && num_events == 0) {
- p_sleep_for(1);
+ suspend_thread_for_milliseconds(1);
return;
}
@@ -98,7 +108,7 @@ void update_and_render_frame(void) {
g_platform.pixels[j * g_platform.frame_width + i] = vec4_from_vec3_f32(rgb_f32_from_u32(c), 1.f);
}
- p_render_frame();
+ render_main_window_frame();
}
i32 main(i32 argc, c8 **argv) {
@@ -109,9 +119,9 @@ i32 main(i32 argc, c8 **argv) {
.title = "Julia Set",
};
- time_0 = p_time();
+ time_0 = current_utc_time_in_milliseconds();
- p_event_loop();
+ run_main_window_event_loop();
return 0;
}
diff --git a/examples/labyrinth.c b/examples/labyrinth.c
deleted file mode 100644
index 01af7c6..0000000
--- a/examples/labyrinth.c
+++ /dev/null
@@ -1,20 +0,0 @@
-#include "../reduced_system_layer.c"
-
-void update_and_render_frame(void) {
- p_handle_events();
- p_render_frame();
- p_sleep_for(0);
-}
-
-i32 main(i32 argc, c8 **argv) {
- (void) argc;
- (void) argv;
-
- g_platform = (Platform) {
- .title = "Labyrinth",
- };
-
- p_event_loop();
-
- return 0;
-}
diff --git a/examples/particles.c b/examples/particles.c
index 894fee0..753698d 100644
--- a/examples/particles.c
+++ b/examples/particles.c
@@ -22,9 +22,9 @@ vec4_f32 background = { .0f, .0f, .08f, 1.f };
i64 time_0;
void update_and_render_frame(void) {
- p_handle_events();
+ handle_main_window_events();
- i64 time_elapsed = p_time() - time_0;
+ i64 time_elapsed = current_utc_time_in_milliseconds() - time_0;
time_0 += time_elapsed;
if (g_platform.key_pressed[BUTTON_LEFT]) {
@@ -109,7 +109,7 @@ void update_and_render_frame(void) {
}
}
- p_render_frame();
+ render_main_window_frame();
}
i32 main(i32 argc, c8 **argv) {
@@ -122,11 +122,11 @@ i32 main(i32 argc, c8 **argv) {
.exact_resolution = 1,
};
- time_0 = p_time();
+ time_0 = current_utc_time_in_milliseconds();
- srand(p_time());
+ srand(time_0);
- p_event_loop();
+ run_main_window_event_loop();
return 0;
}
diff --git a/examples/pixels.c b/examples/pixels.c
deleted file mode 100644
index 0579361..0000000
--- a/examples/pixels.c
+++ /dev/null
@@ -1,44 +0,0 @@
-#define MIN_PIXEL_SIZE 16
-#include "../graphics.c"
-
-i64 t = 0;
-f64 x = 100.;
-f64 y = 100.;
-
-void update_and_render_frame(void) {
- p_handle_events();
-
- i64 time_elapsed = p_time() - t;
- t += time_elapsed;
-
- if (g_platform.key_down[KEY_LEFT]) x -= .01 * time_elapsed;
- if (g_platform.key_down[KEY_RIGHT]) x += .01 * time_elapsed;
- if (g_platform.key_down[KEY_UP]) y -= .01 * time_elapsed;
- if (g_platform.key_down[KEY_DOWN]) y += .01 * time_elapsed;
-
- Brush white = RGB(1.f, 1.f, 1.f);
- Brush black = RGB(0.f, 0.f, 0.f);
-
- white.quick = 1;
-
- fill_rectangle(white, 0., 0., g_platform.real_width, g_platform.real_height);
- fill_rectangle(black, x, y, 40., 40.);
-
- p_render_frame();
- p_sleep_for(0);
-}
-
-i32 main(i32 argc, c8 **argv) {
- (void) argc;
- (void) argv;
-
- g_platform = (Platform) {
- .title = "Pixels",
- };
-
- t = p_time();
-
- p_event_loop();
-
- return 0;
-}
diff --git a/examples/proto.c b/examples/proto.c
deleted file mode 100644
index dbb64a8..0000000
--- a/examples/proto.c
+++ /dev/null
@@ -1,5 +0,0 @@
-int main(int argc, char **argv) {
- (void) argc;
- (void) argv;
- return 0;
-}
diff --git a/examples/screenshot.c b/examples/screenshot.c
index 33bbe99..c3c0ebd 100644
--- a/examples/screenshot.c
+++ b/examples/screenshot.c
@@ -6,11 +6,11 @@ b8 has_screenshot = 0;
void update_and_render_frame(void) {
if (!has_screenshot) {
- p_screenshot(MAX_NUM_PIXELS, &width, &height, g_platform.sketch);
+ take_screenshot(MAX_NUM_PIXELS, &width, &height, g_platform.sketch);
has_screenshot = 1;
}
- p_handle_events();
+ handle_main_window_events();
draw_pixels((Brush) { .quick = 1, }, 0, 0, g_platform.real_width, g_platform.real_height, (Pixel_Buffer) {
.width = width,
@@ -19,7 +19,7 @@ void update_and_render_frame(void) {
.pixels = g_platform.sketch,
});
- p_render_frame();
+ render_main_window_frame();
}
i32 main(i32 argc, c8 **argv) {
@@ -30,7 +30,7 @@ i32 main(i32 argc, c8 **argv) {
.title = "Screenshot",
};
- p_event_loop();
+ run_main_window_event_loop();
return 0;
}
diff --git a/examples/sinewave.c b/examples/sinewave.c
index f2b2580..0c33803 100644
--- a/examples/sinewave.c
+++ b/examples/sinewave.c
@@ -1,9 +1,6 @@
#include "../graphics.c"
-i64 time_0 = 0;
-i64 audio_samples = 0;
-
-f32 frames[SOUND_SAMPLE_RATE * NUM_SOUND_CHANNELS] = {0};
+f32 frames[PRIMARY_SOUND_SAMPLE_RATE * NUM_PRIMARY_SOUND_CHANNELS] = {0};
b8 ui_button(f64 x, f64 y, f64 width, f64 height) {
b8 has_cursor = g_platform.cursor_x >= x && g_platform.cursor_x < x + width &&
@@ -22,21 +19,18 @@ b8 ui_button(f64 x, f64 y, f64 width, f64 height) {
}
void update_and_render_frame(void) {
- i32 num_events = p_handle_events();
+ i32 num_events = handle_main_window_events();
if (num_events > 0) {
fill_rectangle(RGB(.1f, .1f, .1f), 0, 0, g_platform.frame_width, g_platform.frame_height);
if (ui_button(100, 100, 200, 200))
- p_queue_sound(0, SOUND_SAMPLE_RATE, frames);
+ queue_primary_sound(0, PRIMARY_SOUND_SAMPLE_RATE, frames);
}
- i64 samples_elapsed = ((p_time() - time_0) * SOUND_SAMPLE_RATE) / 1000 - audio_samples;
- audio_samples += samples_elapsed;
-
- p_handle_sound();
- p_render_frame();
- p_sleep_for(0);
+ handle_primary_sound();
+ render_main_window_frame();
+ suspend_thread_for_milliseconds(0);
}
i32 main(i32 argc, c8 **argv) {
@@ -44,14 +38,14 @@ i32 main(i32 argc, c8 **argv) {
(void) argv;
g_platform = (Platform) {
- .title = "Sine Wave",
- .graceful_exit = 1,
+ .title = "Sine Wave",
+ .graceful_shutdown = 1,
};
f64 frequency = 440.;
- for (i64 i = 0; i < SOUND_SAMPLE_RATE; ++i) {
- f64 t = ((f64) i) / SOUND_SAMPLE_RATE;
+ for (i64 i = 0; i < PRIMARY_SOUND_SAMPLE_RATE; ++i) {
+ f64 t = ((f64) i) / PRIMARY_SOUND_SAMPLE_RATE;
f64 x = sin(t * (M_PI * 2.) * frequency);
if (t < .005)
x *= t / .005;
@@ -61,8 +55,6 @@ i32 main(i32 argc, c8 **argv) {
frames[i * 2 + 1] = (f32) (x * .5);
}
- time_0 = p_time();
-
- p_event_loop();
+ run_main_window_event_loop();
return 0;
}
diff --git a/examples/ui.c b/examples/ui.c
index 022a463..a3ca476 100644
--- a/examples/ui.c
+++ b/examples/ui.c
@@ -12,7 +12,7 @@ i64 cursor = 0;
i64 selection = 0;
void update_and_render_frame(void) {
- p_wait_events();
+ wait_main_window_events();
Brush background = RGB(.2f, .1f, 0.f);
background.quick = 1;
@@ -226,7 +226,7 @@ void update_and_render_frame(void) {
draw_text_area((Brush) { .color = color, }, x0, y0, w, h, 10., 10., text_len, text);
draw_text_cursor((Brush) { .xor_color = 1, .color = { 1.f, 1.f, 1.f, 1.f }, }, x0, y0, w, h, 10., 10., cursor, selection, text_len, text);
- p_render_frame();
+ render_main_window_frame();
}
i32 main(i32 argc, c8 **argv) {
@@ -237,7 +237,7 @@ i32 main(i32 argc, c8 **argv) {
.title = "UI",
};
- p_event_loop();
+ run_main_window_event_loop();
return 0;
}