From bffe8d11bd1dfec49280fb64a17f0ae529ac3f5d Mon Sep 17 00:00:00 2001 From: xolatile Date: Sun, 17 Aug 2025 18:28:28 +0200 Subject: Compiles, removed a lot of code, do not run it... --- src/engine/renderva.cpp | 78 +++++-------------------------------------------- 1 file changed, 7 insertions(+), 71 deletions(-) (limited to 'src/engine/renderva.cpp') diff --git a/src/engine/renderva.cpp b/src/engine/renderva.cpp index be57ab3..16ad334 100644 --- a/src/engine/renderva.cpp +++ b/src/engine/renderva.cpp @@ -30,11 +30,6 @@ int isvisiblesphere(float rad, const vec &cv) { return v; } -static inline int ishiddencube(const ivec &o, int size) { - loopi(5) if(o.dist(vfcP[i]) < -vfcDfar[i]*size) return true; - return false; -} - int isvisiblecube(const ivec &o, int size) { int v = VFC_FULL_VISIBLE; float dist; @@ -477,41 +472,6 @@ void renderoutline() { gle::disablevertex(); } -void rendershadowmapreceivers() { - SETSHADER(shadowmapreceiver); - gle::enablevertex(); - glCullFace(GL_FRONT); - glDepthMask(GL_FALSE); - glDepthFunc(GL_GREATER); - extern int ati_minmax_bug; - if(!ati_minmax_bug) glColorMask(GL_FALSE, GL_FALSE, GL_TRUE, GL_FALSE); - glEnable(GL_BLEND); - glBlendEquation_(GL_MAX); - glBlendFunc(GL_ONE, GL_ONE); - vtxarray *prev = NULL; - for(vtxarray *va = visibleva; va; va = va->next) { - if(!va->texs || !isshadowmapreceiver(va)) continue; - if(!prev || va->vbuf != prev->vbuf) { - gle::bindvbo(va->vbuf); - gle::bindebo(va->ebuf); - const vertex *ptr = 0; - gle::vertexpointer(sizeof(vertex), ptr->pos.v); - } - drawvatris(va, 3*va->tris, va->edata); - xtravertsva += va->verts; - prev = va; - } - glDisable(GL_BLEND); - glBlendEquation_(GL_FUNC_ADD); - glCullFace(GL_BACK); - glDepthMask(GL_TRUE); - glDepthFunc(GL_LESS); - if(!ati_minmax_bug) glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); - gle::clearvbo(); - gle::clearebo(); - gle::disablevertex(); -} - VAR(oqdist, 0, 256, 1024); VAR(zpass, 0, 1, 1); VAR(envpass, 0, 1, 1); @@ -528,7 +488,8 @@ struct renderstate { VSlot *vslot, *texgenvslot; vec2 texgenscroll; int texgendim; - renderstate() : colormask(true), depthmask(true), blending(false), alphaing(0), vbuf(0), vattribs(false), vquery(false), colorscale(1, 1, 1), alphascale(0), slot(NULL), texgenslot(NULL), vslot(NULL), texgenvslot(NULL), texgenscroll(0, 0), texgendim(-1) { + renderstate() : colormask(true), depthmask(true), blending(false), alphaing(0), vbuf(0), vattribs(false), vquery(false), colorscale(1, 1, 1), alphascale(0), + slot(NULL), texgenslot(NULL), vslot(NULL), texgenvslot(NULL), texgenscroll(0, 0), texgendim(-1) { loopk(8) textures[k] = 0; } }; @@ -779,33 +740,19 @@ static void changetexgen(renderstate &cur, int dim, Slot &slot, VSlot &vslot) { } static void renderbatch(geombatch &b) { - geombatch *shadowed = NULL; int rendered = -1; for(geombatch *curbatch = &b;; curbatch = &geombatches[curbatch->batch]) { - ushort len = curbatch->es.length[curbatch->va->shadowed ? 0 : 1]; + ushort len = curbatch->es.length[1]; if(len) { if(rendered < 0) { rendered = 0; gbatches++; } ushort minvert = curbatch->es.minvert[0], maxvert = curbatch->es.maxvert[0]; - if(!curbatch->va->shadowed) { minvert = min(minvert, curbatch->es.minvert[1]); maxvert = max(maxvert, curbatch->es.maxvert[1]); } + minvert = min(minvert, curbatch->es.minvert[1]); maxvert = max(maxvert, curbatch->es.maxvert[1]); drawtris(len, curbatch->edata, minvert, maxvert); vtris += len/3; } - if(curbatch->es.length[1] > len && !shadowed) shadowed = curbatch; - if(curbatch->batch < 0) break; - } - if(shadowed) for(geombatch *curbatch = shadowed;; curbatch = &geombatches[curbatch->batch]) { - if(curbatch->va->shadowed && curbatch->es.length[1] > curbatch->es.length[0]) { - if(rendered < 1) { - rendered = 1; - gbatches++; - } - ushort len = curbatch->es.length[1] - curbatch->es.length[0]; - drawtris(len, curbatch->edata + curbatch->es.length[0], curbatch->es.minvert[1], curbatch->es.maxvert[1]); - vtris += len/3; - } if(curbatch->batch < 0) break; } } @@ -854,10 +801,9 @@ void renderzpass(renderstate &cur, vtxarray *va) { if(cur.vbuf!=va->vbuf) changevbuf(cur, RENDERPASS_Z, va); if(!cur.depthmask) { cur.depthmask = true; glDepthMask(GL_TRUE); } if(cur.colormask) { cur.colormask = false; glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE); } - int firsttex = 0, numtris = va->tris; + int numtris = va->tris; ushort *edata = va->edata; if(cur.alphaing) { - firsttex += va->texs + va->blends; edata += 3*(va->tris + va->blendtris); numtris = va->alphatris; xtravertsva += 3*numtris; @@ -891,10 +837,6 @@ void renderva(renderstate &cur, vtxarray *va, int pass = RENDERPASS_LIGHTMAP, bo switch(pass) { case RENDERPASS_LIGHTMAP: if(!cur.alphaing) vverts += va->verts; - va->shadowed = false; - if(!drawtex && !cur.alphaing) { - va->shadowed = isshadowmapreceiver(va); - } if(doquery) startvaquery(va, { if(geombatches.length()) renderbatches(cur, pass); }); mergetexs(cur, va); if(doquery) endvaquery(va, { if(geombatches.length()) renderbatches(cur, pass); }); @@ -939,17 +881,14 @@ VAR(oqgeom, 0, 1, 1); void rendergeom(void) { bool mainpass = !drawtex, doOQ = oqfrags && oqgeom && mainpass, - doZP = doOQ && zpass, - doSM = shadowmap && !drawtex; + doZP = doOQ && zpass; renderstate cur; if(mainpass) { flipqueries(); vtris = vverts = 0; } if(!doZP) { - if(shadowmap && mainpass) rendershadowmap(); setupgeom(); - if(doSM) pushshadowmap(); } resetbatches(); int blends = 0; @@ -974,8 +913,7 @@ void rendergeom(void) { } continue; } - } - else { + } else { va->query = NULL; va->occluded = OCCLUDE_NOTHING; } @@ -991,9 +929,7 @@ void rendergeom(void) { bool multipassing = false; if(doZP) { glFlush(); - if(shadowmap && mainpass) rendershadowmap(); setupgeom(); - if(doSM) pushshadowmap(); if(!multipassing) { multipassing = true; glDepthFunc(GL_LEQUAL); } cur.texgendim = -1; for(vtxarray *va = visibleva; va; va = va->next) { -- cgit v1.2.3