aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/cub3d.h30
1 files changed, 23 insertions, 7 deletions
diff --git a/include/cub3d.h b/include/cub3d.h
index 9c4a79f..30b3b74 100644
--- a/include/cub3d.h
+++ b/include/cub3d.h
@@ -6,7 +6,7 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/11/15 06:40:37 by cacharle #+# #+# */
-/* Updated: 2020/02/04 00:26:19 by cacharle ### ########.fr */
+/* Updated: 2020/02/04 02:54:03 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdio.h>
@@ -145,6 +145,20 @@ typedef struct s_render_state
t_cell target;
} t_render_state;
+typedef struct
+{
+ t_vector sprite;
+ double inverse_det;
+ t_vector transform;
+ int sprite_window_x;
+ int draw_start_x;
+ int draw_end_x;
+ int sprite_height;
+ int sprite_width;
+ int draw_end_y;
+ int draw_start;
+} t_sprite_state;
+
typedef t_bool (*t_option_parser_func)(t_state *state, char *line);
typedef struct s_option_parser
@@ -217,19 +231,16 @@ int render_update(void *param);
void render_update_window(t_state *state);
void render_column(t_state *state, int x);
void render_window_column(t_state *state, t_render_state *rstate);
-void render_texture(t_state *state, t_render_state *rstate, int *i);
/*
** vector.c
*/
t_vector vector_add(t_vector a, t_vector b);
-t_vector vector_sub(t_vector a, t_vector b);
t_vector vector_scale(t_vector v, double scalar);
t_vector vector_rotate(t_vector v, double angle);
double vector_norm(t_vector v);
t_vector vector_new(double x, double y);
-t_vector vector_apply(t_vector v, double (*f)(double));
/*
** error.c
@@ -256,9 +267,8 @@ t_bool state_init_sprites(t_state *state);
** render_state.c
*/
-void rstate_ray(t_state *state, t_render_state *rstate);
-void rstate_delta(t_render_state *rstate);
-void rstate_init_probe(t_state *state, t_render_state *rstate);
+void rstate_init(t_state *state, t_render_state *rstate, int x);
+void rstate_post(t_state *state, t_render_state *rstate);
void rstate_perp_dist(t_state *state, t_render_state *rstate);
void rstate_line_height(t_state *state, t_render_state *rstate);
void rstate_next_probe(t_render_state *rstate);
@@ -267,6 +277,7 @@ void rstate_next_probe(t_render_state *rstate);
** texture.c
*/
+void texture_render(t_state *state, t_render_state *rstate, int *i);
t_image *texture_select(t_state *state, t_render_state *rstate);
int texture_x(t_state *state, t_render_state *rstate, t_image *texture);
@@ -287,5 +298,10 @@ void bmp_fill_header(t_image *image, t_byte file_header[FILE_HEADER_SIZE],
void render_update_sprite(t_state *state);
+/*
+** sprite_sort.c
+*/
+
+void sprite_sort(t_state *state);
#endif