diff options
Diffstat (limited to 'examples')
-rw-r--r-- | examples/echo.c | 8 | ||||
-rw-r--r-- | examples/game_of_life.c | 20 | ||||
-rw-r--r-- | examples/graph.c | 6 | ||||
-rw-r--r-- | examples/julia_set.c | 26 | ||||
-rw-r--r-- | examples/labyrinth.c | 20 | ||||
-rw-r--r-- | examples/particles.c | 12 | ||||
-rw-r--r-- | examples/pixels.c | 44 | ||||
-rw-r--r-- | examples/proto.c | 5 | ||||
-rw-r--r-- | examples/screenshot.c | 8 | ||||
-rw-r--r-- | examples/sinewave.c | 30 | ||||
-rw-r--r-- | examples/ui.c | 6 |
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; } |