summaryrefslogtreecommitdiff
path: root/examples/julia_set.c
diff options
context:
space:
mode:
Diffstat (limited to 'examples/julia_set.c')
-rw-r--r--examples/julia_set.c23
1 files changed, 9 insertions, 14 deletions
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();