aboutsummaryrefslogtreecommitdiff
path: root/src/event.c
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-05-22 10:44:49 +0200
committerCharles <sircharlesaze@gmail.com>2020-05-22 10:44:49 +0200
commit6d4c3864e3b742a92e9874f1e4dfe3a9c1565188 (patch)
treea406e7f7d6bdc5210b2133762e39f7bdb396cfff /src/event.c
parentc9098d549d63b5fe18d8c95049ba13a5ae6e9eca (diff)
downloadmandelbrot_cpu-6d4c3864e3b742a92e9874f1e4dfe3a9c1565188.tar.gz
mandelbrot_cpu-6d4c3864e3b742a92e9874f1e4dfe3a9c1565188.tar.bz2
mandelbrot_cpu-6d4c3864e3b742a92e9874f1e4dfe3a9c1565188.zip
Added information (iterations, center, time)
Diffstat (limited to 'src/event.c')
-rw-r--r--src/event.c31
1 files changed, 29 insertions, 2 deletions
diff --git a/src/event.c b/src/event.c
index 9b05b76..d4ce727 100644
--- a/src/event.c
+++ b/src/event.c
@@ -33,7 +33,10 @@ void event_handle(State *state)
break;
case SDL_KEYDOWN:
- st_set_key(e.key.keysym.sym, true);
+ if (e.key.keysym.sym == SDLK_i)
+ state->info = !state->info;
+ else
+ st_set_key(e.key.keysym.sym, true);
break;
case SDL_KEYUP:
@@ -112,27 +115,51 @@ static void st_set_key(SDL_Keycode sym, bool value)
}
}
-#define MANDEL_ITERATIONS_DELTA 2
+#define MANDEL_ITERATIONS_DELTA 1
+
+#define EVENT_TEXTURE_CENTER_UPDATE(state) \
+ TEXT_TEXTURE_UPDATE(state, state->texture_center, "center: %.3ei + %.3e", \
+ state->imag_start + (state->imag_end - state->imag_start) / 2.0, \
+ state->real_start + (state->real_end - state->real_start) / 2.0)
+
static void st_apply_keys(State *state)
{
if (g_key_states[KEY_INC_ITERATIONS])
+ {
state->iterations += MANDEL_ITERATIONS_DELTA;
+ state->palette = color_palette_new(state->palette, state->iterations);
+ TEXT_TEXTURE_UPDATE(state, state->texture_iterations, "iterations: %d", state->iterations);
+ }
if (g_key_states[KEY_DEC_ITERATIONS])
{
state->iterations -= MANDEL_ITERATIONS_DELTA;
if (state->iterations <= 0)
state->iterations = 1;
+ state->palette = color_palette_new(state->palette, state->iterations);
+ TEXT_TEXTURE_UPDATE(state, state->texture_iterations, "iterations: %d", state->iterations);
}
if (g_key_states[KEY_UP])
+ {
st_move_vertical(state, false);
+ EVENT_TEXTURE_CENTER_UPDATE(state);
+ }
if (g_key_states[KEY_DOWN])
+ {
st_move_vertical(state, true);
+ EVENT_TEXTURE_CENTER_UPDATE(state);
+ }
if (g_key_states[KEY_LEFT])
+ {
st_move_horizontal(state, false);
+ EVENT_TEXTURE_CENTER_UPDATE(state);
+ }
if (g_key_states[KEY_RIGHT])
+ {
st_move_horizontal(state, true);
+ EVENT_TEXTURE_CENTER_UPDATE(state);
+ }
if (g_key_states[KEY_ZOOM_IN])
st_zoom(state, true);