diff options
author | rodri <rgl@antares-labs.eu> | 2024-07-13 15:18:19 +0000 |
---|---|---|
committer | rodri <rgl@antares-labs.eu> | 2024-07-13 15:18:19 +0000 |
commit | 82888bed1931e83ed1401485033cb9f7acdadc94 (patch) | |
tree | a481e076aa8ba6b28b30d1495061d4d7ff156512 /render.c | |
parent | 04d50b8bbe324fdb7a8a1e724fbc59c4050862f0 (diff) | |
download | libgraphics-82888bed1931e83ed1401485033cb9f7acdadc94.tar.gz libgraphics-82888bed1931e83ed1401485033cb9f7acdadc94.tar.bz2 libgraphics-82888bed1931e83ed1401485033cb9f7acdadc94.zip |
enable culling and add a camera knob for it.
Diffstat (limited to 'render.c')
-rw-r--r-- | render.c | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -377,7 +377,6 @@ tilerdurden(void *arg) for(; np--; p++){ p->v[0].p = clip2ndc(p->v[0].p); p->v[1].p = clip2ndc(p->v[1].p); - p->v[0].p = ndc2viewport(params->fb, p->v[0].p); p->v[1].p = ndc2viewport(params->fb, p->v[1].p); @@ -425,8 +424,10 @@ tilerdurden(void *arg) p->v[2].p = clip2ndc(p->v[2].p); /* culling */ -// if(isfacingback(*p)) -// goto skiptri; + switch(params->camera->cullmode){ + case CullFront: if(!isfacingback(p)) goto skiptri; break; + case CullBack: if(isfacingback(p)) goto skiptri; break; + } p->v[0].p = ndc2viewport(params->fb, p->v[0].p); p->v[1].p = ndc2viewport(params->fb, p->v[1].p); @@ -450,7 +451,7 @@ tilerdurden(void *arg) task->p.v[2] = dupvertex(&p->v[2]); sendp(taskchans[i], task); } -//skiptri: +skiptri: delvattrs(&p->v[0]); delvattrs(&p->v[1]); delvattrs(&p->v[2]); |