This struct is a point in 3d, which has coords save as double it is not recommended to use it for high performances rendering, because of the sh3eb-elf architecture, which does not support natively floating calculation
This is a point which is used for 3d translations and rendering integer mode is the best solution to increase perfs, and that's why I didn't have implemented te floating_points yet
This struct is a point in 3d, which has coords save as uint32_t this is the recommended type for high performance rendering, because the sh3eb-elf architecture is 32 bits
this struct is a point in 3d, which has coords save as double it is not recommended to use it for high performances rendering, because of the sh3eb-elf architecture, which does not support natively floating calculation
+ More...
this struct is a point in 3d, which has coords save as double it is not recommended to use it for high performances rendering, because of the sh3eb-elf architecture, which does not support natively floating calculation
This is a point which is used for 3d translations and rendering integer mode is the best solution to increase perfs, and that's why I didn't have implemented te floating_points yet.
+ More...
This is a point which is used for 3d translations and rendering integer mode is the best solution to increase perfs, and that's why I didn't have implemented te floating_points yet.
this struct is a point in 3d, which has coords save as uint32_t this is the recommended type for high performance rendering, because the sh3eb-elf architecture is 32 bits
+ More...
this struct is a point in 3d, which has coords save as uint32_t this is the recommended type for high performance rendering, because the sh3eb-elf architecture is 32 bits
this struct is a point in 3d, which has coords save as uint32_t this is the recommended type for high performance rendering, because the sh3eb-elf architecture is 32 bits More...
this struct is a point in 3d, which has coords save as double it is not recommended to use it for high performances rendering, because of the sh3eb-elf architecture, which does not support natively floating calculation More...
This is a point which is used for 3d translations and rendering integer mode is the best solution to increase perfs, and that's why I didn't have implemented te floating_points yet. More...
diff --git a/doc/man/man3/FE_floating_position.3 b/doc/man/man3/FE_floating_position.3
new file mode 100644
index 0000000..9bfccc9
--- /dev/null
+++ b/doc/man/man3/FE_floating_position.3
@@ -0,0 +1,47 @@
+.TH "FE_floating_position" 3 "Thu Aug 29 2019" "Version 0.0.1" "FxEngine" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+FE_floating_position \- this struct is a point in 3d, which has coords save as double it is not recommended to use it for high performances rendering, because of the sh3eb-elf architecture, which does not support natively floating calculation
+
+.SH SYNOPSIS
+.br
+.PP
+.PP
+\fC#include \fP
+.SS "Data Fields"
+
+.in +1c
+.ti -1c
+.RI "double \fBx\fP"
+.br
+.ti -1c
+.RI "double \fBy\fP"
+.br
+.ti -1c
+.RI "double \fBz\fP"
+.br
+.in -1c
+.SH "Detailed Description"
+.PP
+this struct is a point in 3d, which has coords save as double it is not recommended to use it for high performances rendering, because of the sh3eb-elf architecture, which does not support natively floating calculation
+.PP
+Definition at line 23 of file translate\&.h\&.
+.SH "Field Documentation"
+.PP
+.SS "double x"
+
+.PP
+Definition at line 25 of file translate\&.h\&.
+.SS "double y"
+
+.PP
+Definition at line 25 of file translate\&.h\&.
+.SS "double z"
+
+.PP
+Definition at line 25 of file translate\&.h\&.
+
+.SH "Author"
+.PP
+Generated automatically by Doxygen for FxEngine from the source code\&.
diff --git a/doc/man/man3/FE_integer_point.3 b/doc/man/man3/FE_integer_point.3
new file mode 100644
index 0000000..497924b
--- /dev/null
+++ b/doc/man/man3/FE_integer_point.3
@@ -0,0 +1,40 @@
+.TH "FE_integer_point" 3 "Thu Aug 29 2019" "Version 0.0.1" "FxEngine" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+FE_integer_point \- This is a point which is used for 3d translations and rendering integer mode is the best solution to increase perfs, and that's why I didn't have implemented te floating_points yet\&.
+
+.SH SYNOPSIS
+.br
+.PP
+.PP
+\fC#include \fP
+.SS "Data Fields"
+
+.in +1c
+.ti -1c
+.RI "\fBFE_integer_position\fP \fBreal\fP"
+.br
+.ti -1c
+.RI "\fBFE_integer_position\fP \fBtranslated\fP"
+.br
+.in -1c
+.SH "Detailed Description"
+.PP
+This is a point which is used for 3d translations and rendering integer mode is the best solution to increase perfs, and that's why I didn't have implemented te floating_points yet\&.
+.PP
+Definition at line 36 of file translate\&.h\&.
+.SH "Field Documentation"
+.PP
+.SS "\fBFE_integer_position\fP real"
+
+.PP
+Definition at line 38 of file translate\&.h\&.
+.SS "\fBFE_integer_position\fP translated"
+
+.PP
+Definition at line 38 of file translate\&.h\&.
+
+.SH "Author"
+.PP
+Generated automatically by Doxygen for FxEngine from the source code\&.
diff --git a/doc/man/man3/FE_integer_position.3 b/doc/man/man3/FE_integer_position.3
new file mode 100644
index 0000000..f720335
--- /dev/null
+++ b/doc/man/man3/FE_integer_position.3
@@ -0,0 +1,47 @@
+.TH "FE_integer_position" 3 "Thu Aug 29 2019" "Version 0.0.1" "FxEngine" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+FE_integer_position \- this struct is a point in 3d, which has coords save as uint32_t this is the recommended type for high performance rendering, because the sh3eb-elf architecture is 32 bits
+
+.SH SYNOPSIS
+.br
+.PP
+.PP
+\fC#include \fP
+.SS "Data Fields"
+
+.in +1c
+.ti -1c
+.RI "int32_t \fBx\fP"
+.br
+.ti -1c
+.RI "int32_t \fBy\fP"
+.br
+.ti -1c
+.RI "int32_t \fBz\fP"
+.br
+.in -1c
+.SH "Detailed Description"
+.PP
+this struct is a point in 3d, which has coords save as uint32_t this is the recommended type for high performance rendering, because the sh3eb-elf architecture is 32 bits
+.PP
+Definition at line 11 of file translate\&.h\&.
+.SH "Field Documentation"
+.PP
+.SS "int32_t x"
+
+.PP
+Definition at line 13 of file translate\&.h\&.
+.SS "int32_t y"
+
+.PP
+Definition at line 13 of file translate\&.h\&.
+.SS "int32_t z"
+
+.PP
+Definition at line 13 of file translate\&.h\&.
+
+.SH "Author"
+.PP
+Generated automatically by Doxygen for FxEngine from the source code\&.
diff --git a/doc/man/man3/_home_milan_dev_fxengine_include_.3 b/doc/man/man3/_home_milan_dev_fxengine_include_.3
new file mode 100644
index 0000000..db963b0
--- /dev/null
+++ b/doc/man/man3/_home_milan_dev_fxengine_include_.3
@@ -0,0 +1,18 @@
+.TH "include Directory Reference" 3 "Thu Aug 29 2019" "Version 0.0.1" "FxEngine" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+include Directory Reference
+.SH SYNOPSIS
+.br
+.PP
+.SS "Directories"
+
+.in +1c
+.ti -1c
+.RI "directory \fBevent\fP"
+.br
+.ti -1c
+.RI "directory \fBrender\fP"
+.br
+.in -1c
diff --git a/doc/man/man3/_home_milan_dev_fxengine_include_event_.3 b/doc/man/man3/_home_milan_dev_fxengine_include_event_.3
new file mode 100644
index 0000000..db5ca70
--- /dev/null
+++ b/doc/man/man3/_home_milan_dev_fxengine_include_event_.3
@@ -0,0 +1,15 @@
+.TH "include/event Directory Reference" 3 "Thu Aug 29 2019" "Version 0.0.1" "FxEngine" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+include/event Directory Reference
+.SH SYNOPSIS
+.br
+.PP
+.SS "Files"
+
+.in +1c
+.ti -1c
+.RI "file \fBkeyboard\&.h\fP"
+.br
+.in -1c
diff --git a/doc/man/man3/_home_milan_dev_fxengine_include_render_.3 b/doc/man/man3/_home_milan_dev_fxengine_include_render_.3
new file mode 100644
index 0000000..3950aa7
--- /dev/null
+++ b/doc/man/man3/_home_milan_dev_fxengine_include_render_.3
@@ -0,0 +1,27 @@
+.TH "include/render Directory Reference" 3 "Thu Aug 29 2019" "Version 0.0.1" "FxEngine" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+include/render Directory Reference
+.SH SYNOPSIS
+.br
+.PP
+.SS "Files"
+
+.in +1c
+.ti -1c
+.RI "file \fBbitmap\&.h\fP"
+.br
+.ti -1c
+.RI "file \fBparameters\&.h\fP"
+.br
+.ti -1c
+.RI "file \fBtranslate\&.h\fP"
+.br
+.ti -1c
+.RI "file \fBtriangle\&.h\fP"
+.br
+.ti -1c
+.RI "file \fBzbuffer\&.h\fP"
+.br
+.in -1c
diff --git a/doc/man/man3/bitmap.h.3 b/doc/man/man3/bitmap.h.3
new file mode 100644
index 0000000..2987554
--- /dev/null
+++ b/doc/man/man3/bitmap.h.3
@@ -0,0 +1,135 @@
+.TH "include/render/bitmap.h" 3 "Thu Aug 29 2019" "Version 0.0.1" "FxEngine" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+include/render/bitmap.h
+.SH SYNOPSIS
+.br
+.PP
+\fC#include \fP
+.br
+\fC#include \fP
+.br
+
+.SS "Data Structures"
+
+.in +1c
+.ti -1c
+.RI "struct \fBbitmap_rich\fP"
+.br
+.RI "bitmap rich type transparency is in the layout "
+.in -1c
+.SS "Typedefs"
+
+.in +1c
+.ti -1c
+.RI "typedef struct \fBbitmap_rich\fP \fBbitmap_rich\fP"
+.br
+.in -1c
+.SS "Functions"
+
+.in +1c
+.ti -1c
+.RI "\fBbitmap_rich\fP * \fBbitmap_new_rich\fP (uint32_t size_px_x, uint32_t size_px_y, uint32_t *color, bool copy_color, uint32_t *layout, bool copy_layout)"
+.br
+.RI "{ function_description } "
+.ti -1c
+.RI "void \fBbitmap_delete_rich\fP (\fBbitmap_rich\fP *bmp)"
+.br
+.RI "delete a rich bitmap created with \fBbitmap_new_rich()\fP "
+.ti -1c
+.RI "uint8_t \fBbitmap_get_pixel_r\fP (const \fBbitmap_rich\fP *bmp, uint32_t x, uint32_t y)"
+.br
+.RI "get the color of pixel from rich bitmap "
+.ti -1c
+.RI "void \fBbitmap_display_pixel_r\fP (const \fBbitmap_rich\fP *bmp, uint32_t bmp_x, uint32_t bmp_y, uint32_t x, uint32_t y)"
+.br
+.RI "display a specific rich bitmap pixel on the screen "
+.in -1c
+.SH "Typedef Documentation"
+.PP
+.SS "typedef struct \fBbitmap_rich\fP \fBbitmap_rich\fP"
+
+.PP
+Definition at line 20 of file bitmap\&.h\&.
+.SH "Function Documentation"
+.PP
+.SS "void bitmap_delete_rich (\fBbitmap_rich\fP * bmp)"
+
+.PP
+delete a rich bitmap created with \fBbitmap_new_rich()\fP
+.PP
+\fBParameters:\fP
+.RS 4
+\fIbmp\fP The bitmap to delete
+.RE
+.PP
+
+.SS "void bitmap_display_pixel_r (const \fBbitmap_rich\fP * bmp, uint32_t bmp_x, uint32_t bmp_y, uint32_t x, uint32_t y)"
+
+.PP
+display a specific rich bitmap pixel on the screen
+.PP
+\fBParameters:\fP
+.RS 4
+\fIbmp\fP The bitmap
+.br
+\fIbmp_x\fP The bitmap x coordinate (in pixels)
+.br
+\fIbmp_y\fP The bitmap y coordinate (in pixels)
+.br
+\fIx\fP screen : x coordinate
+.br
+\fIy\fP screen : y coordinate
+.RE
+.PP
+
+.SS "uint8_t bitmap_get_pixel_r (const \fBbitmap_rich\fP * bmp, uint32_t x, uint32_t y)\fC [inline]\fP"
+
+.PP
+get the color of pixel from rich bitmap
+.PP
+\fBParameters:\fP
+.RS 4
+\fIbmp\fP The bitmap
+.br
+\fIx\fP The bitmap x coordinate (in pixels)
+.br
+\fIy\fP The bitmap y coordinate (in pixels)
+.RE
+.PP
+\fBReturns:\fP
+.RS 4
+the color coded in a unsigned char : if (color >> 1) switch (color%2) { case 0: // WHITE break; case 1: // BLACK } else
+.RE
+.PP
+
+.SS "\fBbitmap_rich\fP* bitmap_new_rich (uint32_t size_px_x, uint32_t size_px_y, uint32_t * color, bool copy_color, uint32_t * layout, bool copy_layout)"
+
+.PP
+{ function_description }
+.PP
+\fBParameters:\fP
+.RS 4
+\fIsize_px_x\fP The width in px
+.br
+\fIsize_px_y\fP The height in px
+.br
+\fIcolor\fP color origin
+.br
+\fIcopy_color\fP if you want to make a copy, or only to make a link
+.br
+\fIlayout\fP layout origin -> can be set as 0 if it isn't needed
+.br
+\fIcopy_layout\fP if you want to make a copy, or to make a link
+.RE
+.PP
+\fBReturns:\fP
+.RS 4
+a rich bitmap, ready to use !
+.RE
+.PP
+
+.SH "Author"
+.PP
+Generated automatically by Doxygen for FxEngine from the source code\&.
diff --git a/doc/man/man3/bitmap_rich.3 b/doc/man/man3/bitmap_rich.3
new file mode 100644
index 0000000..45d3956
--- /dev/null
+++ b/doc/man/man3/bitmap_rich.3
@@ -0,0 +1,84 @@
+.TH "bitmap_rich" 3 "Thu Aug 29 2019" "Version 0.0.1" "FxEngine" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+bitmap_rich \- bitmap rich type transparency is in the layout
+
+.SH SYNOPSIS
+.br
+.PP
+.PP
+\fC#include \fP
+.SS "Data Fields"
+
+.in +1c
+.ti -1c
+.RI "uint32_t \fBsize_px_x\fP"
+.br
+.ti -1c
+.RI "uint32_t \fBsize_px_y\fP"
+.br
+.ti -1c
+.RI "uint32_t \fBsize_o_y\fP"
+.br
+.ti -1c
+.RI "uint32_t * \fBcolor\fP"
+.br
+.ti -1c
+.RI "bool \fBcolor_dynamic\fP"
+.br
+.ti -1c
+.RI "uint32_t * \fBlayout\fP"
+.br
+.ti -1c
+.RI "bool \fBlayout\fP \fBdynamic\fP"
+.br
+.in -1c
+.SH "Detailed Description"
+.PP
+bitmap rich type transparency is in the layout
+
+
+.PP
+\fBWarning:\fP
+.RS 4
+Monochrome only !
+.RE
+.PP
+
+.PP
+Definition at line 9 of file bitmap\&.h\&.
+.SH "Field Documentation"
+.PP
+.SS "uint32_t* color"
+
+.PP
+Definition at line 15 of file bitmap\&.h\&.
+.SS "bool color_dynamic"
+
+.PP
+Definition at line 16 of file bitmap\&.h\&.
+.SS "bool \fBlayout\fP dynamic"
+
+.PP
+Definition at line 18 of file bitmap\&.h\&.
+.SS "uint32_t* layout"
+
+.PP
+Definition at line 17 of file bitmap\&.h\&.
+.SS "uint32_t size_o_y"
+
+.PP
+Definition at line 13 of file bitmap\&.h\&.
+.SS "uint32_t size_px_x"
+
+.PP
+Definition at line 11 of file bitmap\&.h\&.
+.SS "uint32_t size_px_y"
+
+.PP
+Definition at line 12 of file bitmap\&.h\&.
+
+.SH "Author"
+.PP
+Generated automatically by Doxygen for FxEngine from the source code\&.
diff --git a/doc/man/man3/keyboard.h.3 b/doc/man/man3/keyboard.h.3
new file mode 100644
index 0000000..54462d6
--- /dev/null
+++ b/doc/man/man3/keyboard.h.3
@@ -0,0 +1,47 @@
+.TH "include/event/keyboard.h" 3 "Thu Aug 29 2019" "Version 0.0.1" "FxEngine" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+include/event/keyboard.h
+.SH SYNOPSIS
+.br
+.PP
+\fC#include \fP
+.br
+\fC#include \fP
+.br
+\fC#include \fP
+.br
+
+.SS "Typedefs"
+
+.in +1c
+.ti -1c
+.RI "typedef void(* \fBcallback\fP) (void)"
+.br
+.in -1c
+.SS "Functions"
+
+.in +1c
+.ti -1c
+.RI "void \fBevent_keyboard_set_key\fP (uint32_t matrix_code, uint32_t ev_type, \fBcallback\fP function)"
+.br
+.ti -1c
+.RI "void \fBevent_keyboard_reload\fP ()"
+.br
+.in -1c
+.SH "Typedef Documentation"
+.PP
+.SS "typedef void(* callback) (void)"
+
+.PP
+Definition at line 16 of file keyboard\&.h\&.
+.SH "Function Documentation"
+.PP
+.SS "void event_keyboard_reload ()"
+
+.SS "void event_keyboard_set_key (uint32_t matrix_code, uint32_t ev_type, \fBcallback\fP function)"
+
+.SH "Author"
+.PP
+Generated automatically by Doxygen for FxEngine from the source code\&.
diff --git a/doc/man/man3/parameters.h.3 b/doc/man/man3/parameters.h.3
new file mode 100644
index 0000000..9e92993
--- /dev/null
+++ b/doc/man/man3/parameters.h.3
@@ -0,0 +1,59 @@
+.TH "include/render/parameters.h" 3 "Thu Aug 29 2019" "Version 0.0.1" "FxEngine" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+include/render/parameters.h
+.SH SYNOPSIS
+.br
+.PP
+.SS "Macros"
+
+.in +1c
+.ti -1c
+.RI "#define \fBrender_width\fP 128"
+.br
+.ti -1c
+.RI "#define \fBrender_height\fP 64"
+.br
+.ti -1c
+.RI "#define \fBrender_x_mid\fP ((\fBrender_width\fP \- 1) / 2)"
+.br
+.ti -1c
+.RI "#define \fBrender_y_mid\fP ((\fBrender_height\fP \- 1) / 2)"
+.br
+.ti -1c
+.RI "#define \fBrender_max_dist\fP 3000"
+.br
+.ti -1c
+.RI "#define \fBrender_min_dist\fP 1"
+.br
+.in -1c
+.SH "Macro Definition Documentation"
+.PP
+.SS "#define render_height 64"
+
+.PP
+Definition at line 8 of file parameters\&.h\&.
+.SS "#define render_max_dist 3000"
+
+.PP
+Definition at line 12 of file parameters\&.h\&.
+.SS "#define render_min_dist 1"
+
+.PP
+Definition at line 13 of file parameters\&.h\&.
+.SS "#define render_width 128"
+
+.PP
+Definition at line 7 of file parameters\&.h\&.
+.SS "#define render_x_mid ((\fBrender_width\fP \- 1) / 2)"
+
+.PP
+Definition at line 9 of file parameters\&.h\&.
+.SS "#define render_y_mid ((\fBrender_height\fP \- 1) / 2)"
+
+.PP
+Definition at line 10 of file parameters\&.h\&.
+.SH "Author"
+.PP
+Generated automatically by Doxygen for FxEngine from the source code\&.
diff --git a/doc/man/man3/render_triangle.3 b/doc/man/man3/render_triangle.3
new file mode 100644
index 0000000..0b27555
--- /dev/null
+++ b/doc/man/man3/render_triangle.3
@@ -0,0 +1,44 @@
+.TH "render_triangle" 3 "Thu Aug 29 2019" "Version 0.0.1" "FxEngine" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+render_triangle
+.SH SYNOPSIS
+.br
+.PP
+.PP
+\fC#include \fP
+.SS "Data Fields"
+
+.in +1c
+.ti -1c
+.RI "\fBFE_integer_position\fP * \fBs1\fP"
+.br
+.ti -1c
+.RI "\fBFE_integer_position\fP * \fBs2\fP"
+.br
+.ti -1c
+.RI "\fBFE_integer_position\fP * \fBs3\fP"
+.br
+.in -1c
+.SH "Detailed Description"
+.PP
+Definition at line 3 of file triangle\&.h\&.
+.SH "Field Documentation"
+.PP
+.SS "\fBFE_integer_position\fP* s1"
+
+.PP
+Definition at line 5 of file triangle\&.h\&.
+.SS "\fBFE_integer_position\fP* s2"
+
+.PP
+Definition at line 6 of file triangle\&.h\&.
+.SS "\fBFE_integer_position\fP* s3"
+
+.PP
+Definition at line 7 of file triangle\&.h\&.
+
+.SH "Author"
+.PP
+Generated automatically by Doxygen for FxEngine from the source code\&.
diff --git a/doc/man/man3/translate.h.3 b/doc/man/man3/translate.h.3
new file mode 100644
index 0000000..5384e1a
--- /dev/null
+++ b/doc/man/man3/translate.h.3
@@ -0,0 +1,182 @@
+.TH "include/render/translate.h" 3 "Thu Aug 29 2019" "Version 0.0.1" "FxEngine" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+include/render/translate.h
+.SH SYNOPSIS
+.br
+.PP
+\fC#include \fP
+.br
+\fC#include \fP
+.br
+
+.SS "Data Structures"
+
+.in +1c
+.ti -1c
+.RI "struct \fBFE_integer_position\fP"
+.br
+.RI "this struct is a point in 3d, which has coords save as uint32_t this is the recommended type for high performance rendering, because the sh3eb-elf architecture is 32 bits "
+.ti -1c
+.RI "struct \fBFE_floating_position\fP"
+.br
+.RI "this struct is a point in 3d, which has coords save as double it is not recommended to use it for high performances rendering, because of the sh3eb-elf architecture, which does not support natively floating calculation "
+.ti -1c
+.RI "struct \fBFE_integer_point\fP"
+.br
+.RI "This is a point which is used for 3d translations and rendering integer mode is the best solution to increase perfs, and that's why I didn't have implemented te floating_points yet\&. "
+.in -1c
+.SS "Typedefs"
+
+.in +1c
+.ti -1c
+.RI "typedef struct \fBFE_integer_position\fP \fBFE_integer_position\fP"
+.br
+.ti -1c
+.RI "typedef struct \fBFE_floating_position\fP \fBFE_floating_position\fP"
+.br
+.ti -1c
+.RI "typedef struct \fBFE_integer_point\fP \fBFE_integer_point\fP"
+.br
+.in -1c
+.SS "Functions"
+
+.in +1c
+.ti -1c
+.RI "void \fBrender_translate\fP (\fBFE_integer_point\fP *point)"
+.br
+.RI "This function rotates and applies perspective on an integer point\&. "
+.ti -1c
+.RI "void \fBrender_set\fP (const double dh, const double dv, const double roulis, const \fBFE_integer_position\fP *camera)"
+.br
+.RI "Sets up the translation matrices for a new rendering cycle\&. "
+.ti -1c
+.RI "double \fBmodulo_2pi\fP (double a)"
+.br
+.RI "Sets up an angle mesure between -pi and +pi\&. "
+.ti -1c
+.RI "double \fBcos\fP (double angle)"
+.br
+.RI "Homemade cosinus implementation, which is faster than casio provided cosinus function\&. "
+.ti -1c
+.RI "double \fBsin\fP (const double angle)"
+.br
+.RI "Homemade sinus implementation, which is faster than casio provided sinus function\&. "
+.in -1c
+.SS "Variables"
+
+.in +1c
+.ti -1c
+.RI "const double \fBpi\fP"
+.br
+.ti -1c
+.RI "const double \fBpi2\fP"
+.br
+.ti -1c
+.RI "const double \fBpi_sur_2\fP"
+.br
+.in -1c
+.SH "Typedef Documentation"
+.PP
+.SS "typedef struct \fBFE_floating_position\fP \fBFE_floating_position\fP"
+
+.PP
+Definition at line 29 of file translate\&.h\&.
+.SS "typedef struct \fBFE_integer_point\fP \fBFE_integer_point\fP"
+
+.PP
+Definition at line 41 of file translate\&.h\&.
+.SS "typedef struct \fBFE_integer_position\fP \fBFE_integer_position\fP"
+
+.PP
+Definition at line 17 of file translate\&.h\&.
+.SH "Function Documentation"
+.PP
+.SS "double cos (double angle)"
+
+.PP
+Homemade cosinus implementation, which is faster than casio provided cosinus function\&.
+.PP
+\fBParameters:\fP
+.RS 4
+\fIangle\fP The angle (rad)
+.RE
+.PP
+\fBReturns:\fP
+.RS 4
+cos angle
+.RE
+.PP
+
+.SS "double modulo_2pi (double a)"
+
+.PP
+Sets up an angle mesure between -pi and +pi\&.
+.PP
+\fBParameters:\fP
+.RS 4
+\fIa\fP the angle (rad)
+.RE
+.PP
+\fBReturns:\fP
+.RS 4
+angle mesure which respect the following contraint : -pi <= angle <= pi
+.RE
+.PP
+
+.SS "void render_set (const double dh, const double dv, const double roulis, const \fBFE_integer_position\fP * camera)"
+
+.PP
+Sets up the translation matrices for a new rendering cycle\&.
+.PP
+\fBParameters:\fP
+.RS 4
+\fIdh\fP Camera's horizontal direction (rad)
+.br
+\fIdv\fP Camera's vertical direction (rad)
+.br
+\fIroulis\fP Optionnal rotation around the middle of the screen
+.br
+\fIcamera\fP The camera's coordinates, as an integer position
+.RE
+.PP
+
+.SS "void render_translate (\fBFE_integer_point\fP * point)"
+
+.PP
+This function rotates and applies perspective on an integer point\&.
+.PP
+\fBParameters:\fP
+.RS 4
+\fIpoint\fP The point which needs to be translated
+.RE
+.PP
+
+.SS "double sin (const double angle)"
+
+.PP
+Homemade sinus implementation, which is faster than casio provided sinus function\&.
+.PP
+\fBParameters:\fP
+.RS 4
+\fIangle\fP The angle (rad)
+.RE
+.PP
+\fBReturns:\fP
+.RS 4
+sin angle
+.RE
+.PP
+
+.SH "Variable Documentation"
+.PP
+.SS "const double pi"
+mathematics constants
+.SS "const double pi2"
+
+.SS "const double pi_sur_2"
+
+.SH "Author"
+.PP
+Generated automatically by Doxygen for FxEngine from the source code\&.
diff --git a/doc/man/man3/triangle.h.3 b/doc/man/man3/triangle.h.3
new file mode 100644
index 0000000..9d2674d
--- /dev/null
+++ b/doc/man/man3/triangle.h.3
@@ -0,0 +1,21 @@
+.TH "include/render/triangle.h" 3 "Thu Aug 29 2019" "Version 0.0.1" "FxEngine" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+include/render/triangle.h
+.SH SYNOPSIS
+.br
+.PP
+\fC#include \fP
+.br
+
+.SS "Data Structures"
+
+.in +1c
+.ti -1c
+.RI "struct \fBrender_triangle\fP"
+.br
+.in -1c
+.SH "Author"
+.PP
+Generated automatically by Doxygen for FxEngine from the source code\&.
diff --git a/doc/man/man3/zbuffer.h.3 b/doc/man/man3/zbuffer.h.3
new file mode 100644
index 0000000..296f010
--- /dev/null
+++ b/doc/man/man3/zbuffer.h.3
@@ -0,0 +1,34 @@
+.TH "include/render/zbuffer.h" 3 "Thu Aug 29 2019" "Version 0.0.1" "FxEngine" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+include/render/zbuffer.h
+.SH SYNOPSIS
+.br
+.PP
+\fC#include \fP
+.br
+\fC#include \fP
+.br
+\fC#include \fP
+.br
+
+.SS "Functions"
+
+.in +1c
+.ti -1c
+.RI "void \fBrender_zbuffer_clear\fP ()"
+.br
+.ti -1c
+.RI "bool \fBrender_zbuffer_set_px\fP (uint32_t x, uint32_t y, uint32_t dist)"
+.br
+.in -1c
+.SH "Function Documentation"
+.PP
+.SS "void render_zbuffer_clear ()"
+FE_zbuffer_clear effacer le z buffer pour un nouveau cycle de dessin TODO : ajouter effacement avec le DMA Controller pour les modèles ayant un processeur SH4-A
+.SS "bool render_zbuffer_set_px (uint32_t x, uint32_t y, uint32_t dist)"
+FE_zbuffer_set_dist change la distance d'un pixel du zbuffer retourne true si il faut dessiner le pixel retourne false si le pixel est déjà existant
+.SH "Author"
+.PP
+Generated automatically by Doxygen for FxEngine from the source code\&.
diff --git a/include/render/translate.h b/include/render/translate.h
index f8815fa..afff677 100644
--- a/include/render/translate.h
+++ b/include/render/translate.h
@@ -4,58 +4,98 @@
#include
#include
-/* FE_position:
- notion de point dans l'espace simple */
-typedef struct FE_integer_position FE_integer_position;
+/**
+ * @brief this struct is a point in 3d, which has coords save as uint32_t
+ * this is the recommended type for high performance rendering, because the sh3eb-elf architecture is 32 bits
+ */
struct FE_integer_position
{
int32_t x,
y,
z;
};
+typedef struct FE_integer_position FE_integer_position;
-typedef struct FE_floating_position FE_floating_position;
+/**
+ * @brief this struct is a point in 3d, which has coords save as double
+ * it is not recommended to use it for high performances rendering, because of the sh3eb-elf architecture, which does not support natively floating calculation
+ */
struct FE_floating_position
{
double x,
y,
z;
};
+typedef struct FE_floating_position FE_floating_position;
-
-/* FE_point:
- notion de point dans l'espace destiné à etre utilisé dans l'affichage */
-typedef struct FE_integer_point FE_integer_point;
+/**
+ * @brief This is a point which is used for 3d translations and rendering
+ * integer mode is the best solution to increase perfs, and that's why I didn't have implemented te floating_points yet.
+ */
struct FE_integer_point
{
FE_integer_position real,
translated;
};
-
+typedef struct FE_integer_point FE_integer_point;
// applique la matrice de rotation et les deltas sur les coordonnées d'un point
+
+/**
+ * @brief This function rotates and applies perspective on an integer point
+ *
+ * @param point The point which needs to be translated
+ */
void render_translate(FE_integer_point * point);
-// change la matrice de rotation et les deltas pour le cycle à venir
+/**
+ * @brief Sets up the translation matrices for a new rendering cycle
+ *
+ * @param[in] dh Camera's horizontal direction (rad)
+ * @param[in] dv Camera's vertical direction (rad)
+ * @param[in] roulis Optionnal rotation around the middle of the screen
+ * @param[in] camera The camera's coordinates, as an integer position
+ */
void render_set(const double dh, const double dv, const double roulis, const FE_integer_position * camera);
-// constantes mathématiques
-
+/**
+ * mathematics constants
+ */
extern const double pi, pi2, pi_sur_2;
-// fonctions mathématiques
-
+/**
+ * @brief Sets up an angle mesure between -pi and +pi
+ *
+ * @param[in] a the angle (rad)
+ *
+ * @return angle mesure which respect the following contraint :
+ * -pi <= angle <= pi
+ */
double modulo_2pi(double a);
+/**
+ * @brief Homemade cosinus implementation, which is faster than casio provided cosinus function
+ *
+ * @param[in] angle The angle (rad)
+ *
+ * @return cos angle
+ */
double cos(double angle);
+/**
+ * @brief Homemade sinus implementation, which is faster than casio provided sinus function
+ *
+ * @param[in] angle The angle (rad)
+ *
+ * @return sin angle
+ */
double sin(const double angle);
#endif