diff --git a/Makefile b/Makefile index 16d3f34..8c0484d 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ CC = gcc -CFLAGS = -pg -O2 -LDFLAGS = -pg +CFLAGS = -pg -g +LDFLAGS = -pg -g LDLIBS = -lraylib -lm objects = c3d.o diff --git a/c3d.c b/c3d.c index fd207b2..7e4ba8f 100644 --- a/c3d.c +++ b/c3d.c @@ -171,7 +171,7 @@ float Sign(Vector2* v1, Vector2* v2, Vector2* v3) { return (v1->x - v3->x) * (v2->y - v3->y) - (v2->x - v3->x) * (v1->y - v3->y); } -inline bool IsInTri(Tri2D tri, Vector2 p) { +bool IsInTri(Tri2D tri, Vector2 p) { float d1, d2, d3; bool has_neg, has_pos; @@ -418,16 +418,20 @@ int main() { Tri2Darr.arr = internaltri2darray; static Zee ZBuff[1920][1080] = {{(Zee){10000,NULL}}}; //FIXME: Stupid static makes the file 32 Megs because pog - - + + static Color display[1920*1080*4]; + memset(display,0,sizeof(display)); + + Tri2D funners = (Tri2D){ (Vector2){50,50},(Vector2){500,50},(Vector2){500,500},GREEN}; + Tri2D funners2 = (Tri2D){ (Vector2){600,0},(Vector2){600,500},(Vector2){1000,500},RED}; + Tri2D blank = (Tri2D) { (Vector2){-10,-10},(Vector2){-10,-10}, (Vector2){-10,-10}}; while (!WindowShouldClose()) { float frametime = GetFrameTime(); CtrlLocalCam(&camera,frametime); LocalCamApplyVelo(&camera,frametime); BeginTextureMode(renderTexture); - ClearBackground(BLACK); - DrawText("Congrats! You created your first window!", 190, 200, 20, - BLACK); + //ClearBackground(BLACK); + ; /* Vector3 TransVector = TransformWithCam(point,&camera); */ /* if (TransVector.z < 0) { */ /* Vector2 MPos = Conv3Dto2D(TransVector); */ @@ -446,32 +450,45 @@ int main() { for(int i = 0; i < TransformedTris.length; i++) { Tri2DArrayAppend(&Tri2Darr,ConvertTriToTri2D(&TransformedTris.arr[i])); } - - memset(ZBuff,0,sizeof(ZBuff)); - for(int i = 0; i < Tri2Darr.length; i++) { - for(int y = 0; y < RENDERHEIGHT; y++){ - for(int x = 0; x< RENDERWIDTH; x++) { - if (IsInTri(Tri2Darr.arr[i],(Vector2){x,y})) { - ZBuff[x][y].triangle = &Tri2Darr.arr[i]; - } - } + //memset(ZBuff,0,sizeof(ZBuff)); + memset(display,0,sizeof(display)); + + + + for (int y = 0; y < RENDERHEIGHT; y++){ + for (int x = 0; xcolor); - } + //int index = (x+y*RENDERWIDTH); + /* Color * c = &ZBuff[x][y].triangle->color; + display[index] = c->r; + display[index+1] = c->g; + display[index+2] = c->b; + display[index+3] = c->a; + */ + display[index] = ZBuff[x][y].triangle->color; + index = index+1; } @@ -482,6 +499,8 @@ int main() { //Copytexture to main display :0 BeginDrawing(); + ClearBackground(BLACK); + UpdateTexture(renderTexture.texture, display); DrawTexturePro(renderTexture.texture, (Rectangle){0,0,renderTexture.texture.width,-renderTexture.texture.height},(Rectangle){0,0,SCREENWIDTH,SCREENHEIGHT},(Vector2){0,0},0,WHITE); char fpstext[40];