36# define __JO_VOXEL_H__
38#ifdef JO_COMPILE_WITH_SOFTWARE_RENDERER_SUPPORT
static __jo_force_inline jo_fixed jo_fixed_cos(const jo_fixed rad)
Fast cosinus computation using fixed number.
Definition math.h:1061
static __jo_force_inline jo_fixed jo_fixed_sin(const jo_fixed rad)
Fast sinus computation using fixed number.
Definition math.h:980
static __jo_force_inline jo_fixed jo_fixed_mult(const jo_fixed x, const jo_fixed y)
Multiply to fixed number.
Definition math.h:546
#define JO_FIXED_1
Fixed floating point value for 1.
Definition math.h:405
static __jo_force_inline jo_fixed jo_fixed_div(const jo_fixed dividend, const jo_fixed divisor)
Divide fixed-point numbers (expresses dividend / divisor).
Definition math.h:605
void jo_software_renderer_flush(jo_software_renderer_gfx *const gfx)
Copy the buffer into VDP1/2 VRAM.
This is the main struct that handle everything for drawing.
Definition software_renderer.h:93
#define __jo_force_inline
force inline attribute (and prevent Doxygen prototype parsing bug)
Definition types.h:39
int jo_fixed
Fixed point Q16.16 number.
Definition types.h:48
8 bits image struct
Definition types.h:239
Palette contents struct.
Definition types.h:255
jo_voxel_camera camera
Definition voxel.h:76
void jo_voxel_redraw(const jo_voxel *const voxel_data)
Draw voxels to gfx.
static __jo_force_inline void jo_voxel_horizon_up(jo_voxel *const voxel_data, const jo_fixed distance)
Increase horizon height (camera.horizon).
Definition voxel.h:169
jo_img_8bits terrain_img
Definition voxel.h:74
jo_fixed inv_clipping_size_width
Definition voxel.h:45
jo_fixed deltax_incr
Definition voxel.h:48
jo_palette height_pal
Definition voxel.h:73
jo_fixed deltay_incr
Definition voxel.h:49
static __jo_force_inline void jo_voxel_horizon_down(jo_voxel *const voxel_data, const jo_fixed distance)
Decrease horizon height (camera.horizon).
Definition voxel.h:178
jo_fixed scale
Definition voxel.h:58
static __jo_force_inline void jo_voxel_rotate_left(jo_voxel *const voxel_data, const jo_fixed angle_rad)
Rotate camera on the left (camera.angle).
Definition voxel.h:225
jo_fixed x
Definition voxel.h:59
static __jo_force_inline void jo_voxel_decrease_view_distance(jo_voxel *const voxel_data, const jo_fixed distance)
Decrease view distance (camera.zfar).
Definition voxel.h:158
static __jo_force_inline void jo_voxel_redraw_and_flush(const jo_voxel *const voxel_data)
Draw voxels and flush the buffer.
Definition voxel.h:118
void jo_voxel_run(jo_voxel *const voxel_data)
Draw voxels to gfx.
void jo_voxel_do_angle_computation(jo_voxel *const voxel_data)
Do computation linked to camera angle.
jo_software_renderer_gfx * gfx
Definition voxel.h:71
static __jo_force_inline void jo_voxel_move_up(jo_voxel *voxel_data, const jo_fixed distance)
Increase camera height (camera.height).
Definition voxel.h:187
__jo_voxel_computation_cache __cache
Definition voxel.h:78
jo_fixed angle
Definition voxel.h:64
jo_fixed zfar
Definition voxel.h:63
jo_fixed y
Definition voxel.h:60
bool use_zbuffer
Definition voxel.h:77
static __jo_force_inline void jo_voxel_increase_view_distance(jo_voxel *const voxel_data, const jo_fixed distance)
Increase view distance (camera.zfar).
Definition voxel.h:147
jo_fixed horizon
Definition voxel.h:62
jo_fixed height
Definition voxel.h:61
static __jo_force_inline void jo_voxel_move_down(jo_voxel *const voxel_data, const jo_fixed distance)
Decrease camera height (camera.height).
Definition voxel.h:196
static __jo_force_inline void jo_voxel_move_backward(jo_voxel *const voxel_data, const jo_fixed distance)
Move camera backward (camera.x & camera.y).
Definition voxel.h:215
static __jo_force_inline void jo_voxel_move_forward(jo_voxel *const voxel_data, const jo_fixed distance)
Move camera forward (camera.x & camera.y).
Definition voxel.h:205
jo_fixed deltay_0
Definition voxel.h:51
jo_palette terrain_pal
Definition voxel.h:72
void __jo_voxel_redraw(const jo_voxel *const voxel_data, const bool clear)
Draw voxels to gfx (internal engine usage, see jo_voxel_redraw() and jo_voxel_redraw_and_flush()).
jo_fixed deltax_0
Definition voxel.h:50
jo_img_8bits height_img
Definition voxel.h:75
static __jo_force_inline void jo_voxel_set_scale(jo_voxel *const voxel_data, const jo_fixed scale)
Set scale (camera.scale).
Definition voxel.h:138
static __jo_force_inline void jo_voxel_rotate_right(jo_voxel *const voxel_data, const jo_fixed angle_rad)
Rotate camera on the right (camera.angle).
Definition voxel.h:235
jo_fixed inv_zfar
Definition voxel.h:46
int map_width_minus_1
Definition voxel.h:47
Voxel computation cache (internal engine usage).
Definition voxel.h:44
Voxel main definition.
Definition voxel.h:70
Voxel camera definition.
Definition voxel.h:57