diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-05-22 10:44:49 +0200 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-05-22 10:44:49 +0200 |
| commit | 6d4c3864e3b742a92e9874f1e4dfe3a9c1565188 (patch) | |
| tree | a406e7f7d6bdc5210b2133762e39f7bdb396cfff /src/event.c | |
| parent | c9098d549d63b5fe18d8c95049ba13a5ae6e9eca (diff) | |
| download | mandelbrot_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.c | 31 |
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); |
