mirror of
https://github.com/guezoloic/t3dsr.git
synced 2026-01-25 10:34:23 +00:00
feat: add clearCanvas and rework on drawPixel
This commit is contained in:
22
src/draw.c
22
src/draw.c
@@ -24,9 +24,15 @@ void editCanvas(int width, int height)
|
|||||||
|
|
||||||
static char drawPixel(float zBuffer)
|
static char drawPixel(float zBuffer)
|
||||||
{
|
{
|
||||||
if (zBuffer < 0.25f) return '.';
|
float zb = (zBuffer + 1.f) * 0.5f;
|
||||||
else if (zBuffer < 0.5f) return '*';
|
|
||||||
else if (zBuffer < 0.75f) return 'o';
|
if (zb > 1.f) zb = 1.f;
|
||||||
|
if (zb < 0.f) zb = 0.f;
|
||||||
|
|
||||||
|
|
||||||
|
if (zb < 0.25f) return '.';
|
||||||
|
else if (zb < 0.5f) return '*';
|
||||||
|
else if (zb < 0.75f) return 'o';
|
||||||
else return '#';
|
else return '#';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -81,6 +87,16 @@ void renderCanvas(int width, int height)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void clearCanvas(int width, int height)
|
||||||
|
{
|
||||||
|
printf("\033[2J\033[H");
|
||||||
|
for (int i = 0; i<height; i++) {
|
||||||
|
for (int j = 0; j<width; j++) {
|
||||||
|
canvas[i*width + j] = ' ';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void freeCanvas(void)
|
void freeCanvas(void)
|
||||||
{
|
{
|
||||||
free(canvas);
|
free(canvas);
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ void editCanvas(int width, int height);
|
|||||||
void drawCanvas(Vec4f_t p, int width, int height);
|
void drawCanvas(Vec4f_t p, int width, int height);
|
||||||
void drawLine(Vec4f_t p0, Vec4f_t p1, int width, int height);
|
void drawLine(Vec4f_t p0, Vec4f_t p1, int width, int height);
|
||||||
void renderCanvas(int width, int height);
|
void renderCanvas(int width, int height);
|
||||||
|
void clearCanvas(int width, int height);
|
||||||
void freeCanvas(void);
|
void freeCanvas(void);
|
||||||
|
|
||||||
#endif // DRAW_H
|
#endif // DRAW_H
|
||||||
Reference in New Issue
Block a user