diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/event.c | 3 | ||||
| -rw-r--r-- | src/render.c | 37 | ||||
| -rw-r--r-- | src/state.c | 6 |
3 files changed, 39 insertions, 7 deletions
diff --git a/src/event.c b/src/event.c index 1c6753e..d3adc1b 100644 --- a/src/event.c +++ b/src/event.c @@ -6,14 +6,13 @@ /* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/24 09:52:35 by cacharle #+# #+# */ -/* Updated: 2020/02/25 16:20:49 by cacharle ### ########.fr */ +/* Updated: 2020/02/25 17:04:38 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ #include "fractol.h" #define MOVE_SPEED 0.1 -#define ZOOM_SPEED 1.2 int event_quit(t_state *state) { diff --git a/src/render.c b/src/render.c index 2045a3a..a7e9f92 100644 --- a/src/render.c +++ b/src/render.c @@ -6,12 +6,45 @@ /* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/24 09:54:59 by cacharle #+# #+# */ -/* Updated: 2020/02/25 16:13:40 by cacharle ### ########.fr */ +/* Updated: 2020/02/25 17:28:08 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ #include "fractol.h" +#define SUPERSAMPLE_SIZE 3 + +static t_color st_take_sample(t_state *state, t_complex z) +{ + int u; + int v; + t_complex sz; + t_color color; + t_color tmp; + + color.hexcode = 0x0; + u = -1; + while (++u < SUPERSAMPLE_SIZE) + { + v = -1; + while (++v < SUPERSAMPLE_SIZE) + { + sz.r = z.r + (double)v / 3.0; + sz.i = z.i + (double)u / 3.0; + tmp = state->palette[state->func(state, sz)]; + color.rgb.r += tmp.rgb.r; + color.rgb.g += tmp.rgb.g; + color.rgb.b += tmp.rgb.b; + } + } + + color.rgb.r /= 9; + color.rgb.g /= 9; + color.rgb.b /= 9; + + return (color); +} + static void *st_render_routine(void *void_arg) { int j; @@ -28,7 +61,7 @@ static void *st_render_routine(void *void_arg) while (++j < WINDOW_WIDTH) { z.r = ((double)j / (double)WINDOW_WIDTH) * state->plane.r - (state->plane.r / 2.0) + state->center.r; - ((t_color*)state->window.data)[offset] = state->palette[state->func(state, z)]; + ((t_color*)state->window.data)[offset] = state->palette[state->func(state, z)];//st_take_sample(state, z); offset++; } return (NULL); diff --git a/src/state.c b/src/state.c index f079b6c..ae9f107 100644 --- a/src/state.c +++ b/src/state.c @@ -6,7 +6,7 @@ /* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/24 09:58:01 by cacharle #+# #+# */ -/* Updated: 2020/02/25 15:57:01 by cacharle ### ########.fr */ +/* Updated: 2020/02/25 17:31:49 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ @@ -31,7 +31,7 @@ void state_update_palette(t_state *state) hsl.l = 127; state->palette[i] = color_hsl_to_rgb(hsl); } - state->palette[i].hexcode = 0x0; + state->palette[i].hexcode = 0x111111; } static int st_state_dispatch_func(t_state *state, char *fractal_name) @@ -75,7 +75,7 @@ int state_init(t_state *state, char *fractal_name) state->center.i = 0.0; state->plane.r = 4.0; state->plane.i = 4.0; - state->iterations = 30; + state->iterations = 50; state->palette = NULL; state_update_palette(state); state->updated = false; |
