From 308a1cf24208816b92ab830ec082757ca30738c9 Mon Sep 17 00:00:00 2001 From: Mitya Selivanov Date: Thu, 16 Jan 2025 22:46:37 +0100 Subject: Simple anti-aliasing --- examples/julia_set.c | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) (limited to 'examples') diff --git a/examples/julia_set.c b/examples/julia_set.c index a5b733e..e5a2734 100644 --- a/examples/julia_set.c +++ b/examples/julia_set.c @@ -1,6 +1,5 @@ #include "../graphics.c" -i64 p = 4; f64 view_x = 0.; f64 view_y = 0.; f64 view_s = 1.; @@ -26,9 +25,6 @@ void update_and_render_frame(void) { return; } - if (g_platform.key_pressed['\n']) - p = (p == 1 ? 4 : 1); - if (g_platform.key_pressed[KEY_ESCAPE]) { view_x = 0.; view_y = 0.; @@ -49,10 +45,13 @@ void update_and_render_frame(void) { view_s += .1 * g_platform.wheel_dy * view_s; - for (i32 j = 0; j + p <= g_platform.frame_height; j += p) - for (i32 i = 0; i + p <= g_platform.frame_width; i += p) { - f64 x = .003 * ((i - g_platform.frame_width * .5) * view_s - view_x); - f64 y = .003 * ((j - g_platform.frame_height * .5) * view_s - view_y); + for (i32 j = 0; j < g_platform.frame_height; ++j) + for (i32 i = 0; i < g_platform.frame_width; ++i) { + f64 kx = ((f64) g_platform.real_width) / g_platform.frame_width * view_s; + f64 ky = ((f64) g_platform.real_height) / g_platform.frame_height * view_s; + + f64 x = .003 * ((i - g_platform.frame_width * .5) * kx - view_x); + f64 y = .003 * ((j - g_platform.frame_height * .5) * ky - view_y); i64 n = 0; @@ -69,9 +68,7 @@ void update_and_render_frame(void) { else c = 0xffffff - n * 8 - n * 256 * 4; - for (i32 jj = 0; jj < p; ++jj) - for (i32 ii = 0; ii < p; ++ii) - g_platform.pixels[(j + jj) * g_platform.frame_width + (i + ii)] = vec4_from_vec3_f32(rgb_f32_from_u32(c), 1.f); + g_platform.pixels[j * g_platform.frame_width + i] = vec4_from_vec3_f32(rgb_f32_from_u32(c), 1.f); } p_render_frame(); @@ -82,9 +79,7 @@ i32 main(i32 argc, c8 **argv) { (void) argv; g_platform = (Platform) { - .title = "Julia Set", - .pixel_size = 1, - .exact_resolution = 1, + .title = "Julia Set", }; time_0 = p_time(); -- cgit v1.2.3