aboutsummaryrefslogtreecommitdiff
path: root/render.c
diff options
context:
space:
mode:
Diffstat (limited to 'render.c')
-rw-r--r--render.c51
1 files changed, 36 insertions, 15 deletions
diff --git a/render.c b/render.c
index 170d4e5..73f36d1 100644
--- a/render.c
+++ b/render.c
@@ -5,15 +5,25 @@
/* +:+ +:+ +:+ */
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
+/* Created: 2020/01/17 14:25:49 by cacharle #+# #+# */
+/* Updated: 2020/01/17 14:50:20 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* render.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
/* Created: 2020/01/11 13:37:17 by cacharle #+# #+# */
-/* Updated: 2020/01/16 10:06:04 by cacharle ### ########.fr */
+/* Updated: 2020/01/17 14:25:04 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include "cub3d.h"
-#define WINDOW_MID_HEIGHT(state) (state->window.height / 2)
-
int render_update(void *param)
{
t_state *state;
@@ -24,6 +34,7 @@ int render_update(void *param)
state_destroy(state);
exit(EXIT_SUCCESS);
}
+ /* ft_bzero(state->window.data, state->window.width * state->window.height * 4); */
render_update_window(state);
mlx_put_image_to_window(state->mlx_ptr, state->window_ptr, state->window.id, 0, 0);
return (0);
@@ -60,7 +71,7 @@ void render_column(t_state *state, int x)
/* printf("map_step [%f %f]\n", rstate.map_step.x, rstate.map_step.y); */
while (TRUE)
{
- rstate.side = rstate.probe.x < rstate.probe.y ? SIDE_WE : SIDE_WE;
+ rstate.side = rstate.probe.x < rstate.probe.y ? SIDE_WE : SIDE_NS;
/* printf("side %s\n", rstate.side == SIDE_WE ? "side we" : "side ns"); */
rstate_next_probe(&rstate);
/* printf("2\n"); */
@@ -72,10 +83,18 @@ void render_column(t_state *state, int x)
/* printf("[%d %d]\n", (int)rstate.map_pos.x, (int)rstate.map_pos.y); */
rstate_line_height(state, &rstate);
/* printf("perp dist %f\n", rstate_perp_dist(state, &rstate)); */
- printf("line height %d\n", rstate.line_height);
- rstate.draw_start = WINDOW_MID_HEIGHT(state) - rstate.line_height / 2;
- rstate.draw_end = WINDOW_MID_HEIGHT(state) + rstate.line_height / 2;
- printf("%d -> %d\n", rstate.draw_start, rstate.draw_end);
+ /* printf("line height %d\n", rstate.line_height); */
+
+
+ rstate.draw_start = state->window.height / 2 - rstate.line_height / 2;
+ rstate.draw_end = state->window.height / 2 + rstate.line_height / 2;
+ if (rstate.draw_start < 0)
+ rstate.draw_start = 0;
+ if (rstate.draw_end > state->window.height - 1)
+ rstate.draw_end = state->window.height - 1;
+ /* printf("%d -> %d\n", rstate.draw_start, rstate.draw_end); */
+ /* rstate.draw_start = 10; */
+ /* rstate.draw_end = 20; */
render_window_column(state, &rstate);
}
@@ -87,13 +106,15 @@ void render_window_column(t_state *state, t_render_state *rstate)
white.hexcode = 0x00ffffff;
black.hexcode = 0x00000000;
- i = -1;
- while (++i < rstate->draw_start)
- ((t_color*)state->window.data)[i * state->window.width + rstate->x] = black;
- while (++i < rstate->draw_end)
- ((t_color*)state->window.data)[i * state->window.width + rstate->x] = white;
- while (++i < state->window_height)
- ((t_color*)state->window.data)[i * state->window.width + rstate->x] = black;
+ i = 0;
+ /* printf("%p\n", state->window.data); */
+ while (i < rstate->draw_start)
+ ((t_color*)state->window.data)[i++ * state->window.width + rstate->x] = black;
+ /* i = rstate->draw_start - 1; */
+ while (i < rstate->draw_end)
+ ((t_color*)state->window.data)[i++ * state->window.width + rstate->x] = white;
+ while (i < state->window_height)
+ ((t_color*)state->window.data)[i++ * state->window.width + rstate->x] = black;
/* printf("%d -> %d\n", rstate->draw_start, rstate->draw_end); */
/* while (++i < rstate->draw_start) */