Skip to content

Commit

Permalink
[#13][feat] frame progressbar
Browse files Browse the repository at this point in the history
  • Loading branch information
davfront committed Jul 5, 2023
1 parent 90e35c9 commit bfba8f2
Show file tree
Hide file tree
Showing 6 changed files with 63 additions and 3 deletions.
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,7 @@ SRCS_FILES = \
camera/rt_cam_world_to_screen.c\
\
ui/rt_ui_help_bg.c\
ui/rt_ui_frame_progress.c\
\
main.c\

Expand Down
1 change: 1 addition & 0 deletions include/minirt.h
Original file line number Diff line number Diff line change
Expand Up @@ -222,5 +222,6 @@ void rt_draw_rect(t_data *data, t_rect, t_rgb color, float alpha);

// ui
void rt_ui_help_bg(t_data *data);
void rt_ui_frame_progress(t_data *data);

#endif
2 changes: 1 addition & 1 deletion src/help/rt_help.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ static int rt_help_viewer(t_data *data, int line)
rt_help_label(data, line, "Image quality");
i = 100;
if (data->rdr.tile_size > 1 && data->rdr.step_max > 0)
i *= (t_float)data->rdr.step / data->rdr.step_max;
i *= fmin(data->rdr.step, data->rdr.step_max) / data->rdr.step_max;
if (i == 100)
rt_help_value_perc(data, line++, i, GREEN);
else
Expand Down
31 changes: 29 additions & 2 deletions src/raytracer/rt_draw_frame.c
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
/* By: dapereir <[email protected]> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2022/12/14 16:35:43 by dapereir #+# #+# */
/* Updated: 2023/07/02 21:33:11 by dapereir ### ########.fr */
/* Updated: 2023/07/05 14:46:49 by dapereir ### ########.fr */
/* */
/* ************************************************************************** */

Expand All @@ -30,6 +30,31 @@ static void rt_clear_buffer(t_data *data)
}
}

static void rt_draw_buffer(t_data *data)
{
int x;
int y;
t_buf buf;
t_rgb color;

ft_bzero(&buf, sizeof(buf));
y = 0;
while (y < WIN_HEIGHT)
{
x = 0;
while (x < WIN_WIDTH)
{
buf = data->rdr.buf[x][y];
color = buf.color;
if (buf.obj && buf.obj == data->ui.selected)
color = rgb_mix(color, rgb(255, 255, 255), 0.1);
rt_viewer_set_pixel(data, x, y, color);
x++;
}
y++;
}
}

void rt_draw_frame(t_data *data)
{
if (data->ui.changed)
Expand All @@ -45,7 +70,9 @@ void rt_draw_frame(t_data *data)
}
if (data->rdr.step <= data->rdr.step_max)
rt_lowres_draw_step(data, data->rdr.step);
if (data->rdr.step < data->rdr.step_max)
else
rt_draw_buffer(data);
if (data->rdr.step <= data->rdr.step_max)
data->rdr.step++;
data->ui.changed = 0;
}
30 changes: 30 additions & 0 deletions src/ui/rt_ui_frame_progress.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* rt_ui_frame_progress.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: dapereir <[email protected]> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2023/07/05 14:16:53 by dapereir #+# #+# */
/* Updated: 2023/07/05 14:47:44 by dapereir ### ########.fr */
/* */
/* ************************************************************************** */

#include "minirt.h"

void rt_ui_frame_progress(t_data *data)
{
int padding;
t_rect rect;

if (!data || data->rdr.step > data->rdr.step_max)
return ;
padding = 2;
rect.p = px(padding, padding);
rect.h = 2;
rect.w = 0;
if (data->rdr.step_max)
rect.w = (t_float)(WIN_WIDTH - 2 * padding) \
* data->rdr.step / data->rdr.step_max;
rt_draw_rect(data, rect, rgb(255, 255, 255), 1);
}
1 change: 1 addition & 0 deletions src/viewer/rt_viewer_render_frame.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ int rt_viewer_render_frame(t_data *data)
&data->img.len, &data->img.endian);
rt_viewer_thread_handler(data);
rt_ui_help_bg(data);
rt_ui_frame_progress(data);
mlx_put_image_to_window(data->mlx, data->win, data->img.img, 0, 0);
mlx_destroy_image(data->mlx, data->img.img);
data->img.img = NULL;
Expand Down

0 comments on commit bfba8f2

Please sign in to comment.