From 0c85e41ff1b91a3b0c6eac78eade84c7208e06dd Mon Sep 17 00:00:00 2001 From: Milang Date: Fri, 16 Aug 2019 15:27:15 +0200 Subject: [PATCH] ajout commentaires --- src/FxEngine/texture.c | 2 -- src/FxEngine/zbuffer.c | 47 +++++++++++++++++++++++++++++------------- src/FxEngine/zbuffer.h | 17 +++++++++++---- 3 files changed, 46 insertions(+), 20 deletions(-) diff --git a/src/FxEngine/texture.c b/src/FxEngine/texture.c index d48c82c..38784e8 100644 --- a/src/FxEngine/texture.c +++ b/src/FxEngine/texture.c @@ -9,7 +9,5 @@ unsigned char const FE_textures[3][8]= bool FE_get_pixel(int num,int x, int y) { - x%=8; - y%=8; return ((1<<(7-x)) & (FE_textures[num][y])); } \ No newline at end of file diff --git a/src/FxEngine/zbuffer.c b/src/FxEngine/zbuffer.c index 7e69ec3..6f5fecc 100644 --- a/src/FxEngine/zbuffer.c +++ b/src/FxEngine/zbuffer.c @@ -1,39 +1,58 @@ #include "zbuffer.h" + #include #include #include #include #include -static const int size_uint32 = 128*64; -static const int size_octets = size_uint32*sizeof(uint32_t); +/** size_uint32 + * taille du zbuffer exprimée en uint32_t + * utile pour l'effacement du zbuffer sur sh3 +**/ +static const int size_uint32 = FE_ZB_SIZE_X*FE_ZB_SIZE_X; + +/** size_char + * taille du zbuffer exprimée en octets + * sera utile pour le DMA Controller +**/ +static const int size_char = size_uint32*sizeof(uint32_t); + +/** address + * addresse du zbuffer +**/ static uint32_t* address=0; void FE_zbuffer_clear() { while (address==0) { - address=malloc(size_octets); - if (address==0) + address = malloc(size_octets); + if (address==0) // cas de figure où il n'y a plus assez de RAM { dclear(C_WHITE); - dtext(1,1,"Not enough RAM...",C_BLACK,C_NONE); + dtext(1, 1, "Not enough RAM...", C_BLACK, C_NONE); } } - uint32_t indice=0; - // TODO ** ajouter le DMA pour les architectures sh4 - for (indice=0; indicedist&&dist>0) + x %= FE_ZB_SIZE_X; + y %= FE_ZB_SIZE_Y; + const int indice = x * 64 + y; + if (address[indice]>dist && dist>0) { - address[indice]=dist; + address[indice] = dist; return true; } else diff --git a/src/FxEngine/zbuffer.h b/src/FxEngine/zbuffer.h index 88def8d..3c039d2 100644 --- a/src/FxEngine/zbuffer.h +++ b/src/FxEngine/zbuffer.h @@ -1,13 +1,22 @@ #ifndef FE_ZBUFFER #define FE_ZBUFFER -#include - -// nouveauté ! le zbuffer occupe tout l'écran, le rendu 3d offre donc de meilleures possibilités +/** Taille du z_buffer **/ #define FE_ZB_SIZE_X 128 #define FE_ZB_SIZE_Y 64 -void FE_zbuffer_clear(); // does not really clear the zbuffer, but changes encoding sign for the next frame ** on 1st frame, allocates data +/** 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 +**/ +void FE_zbuffer_clear(); + +#include +/** 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 +**/ bool FE_zbuffer_set_dist(int x, int y, int dist); // if you are allowed to draw the pixel on vram #endif \ No newline at end of file