Lines Matching refs:va

11 static inline void drawvatris(vtxarray *va, GLsizei numindices, int offset)  in drawvatris()  argument
13 drawtris(numindices, (ushort *)0 + va->eoffset + offset, va->minvert, va->maxvert); in drawvatris()
16 static inline void drawvaskytris(vtxarray *va) in drawvaskytris() argument
18 drawtris(va->sky, (ushort *)0 + va->skyoffset, va->minvert, va->maxvert); in drawvaskytris()
109 static inline float vadist(vtxarray *va, const vec &p) in vadist() argument
111 return p.dist_to_bb(va->bbmin, va->bbmax); in vadist()
118 static inline void addvisibleva(vtxarray *va) in addvisibleva() argument
120 float dist = vadist(va, camera1->o); in addvisibleva()
121 va->distance = int(dist); /*cv.dist(camera1->o) - va->size*SQRT3/2*/ in addvisibleva()
126 while(cur && va->distance >= cur->distance) in addvisibleva()
132 va->next = cur; in addvisibleva()
133 *prev = va; in addvisibleva()
142 vtxarray *va = vasort[i]; in sortvisiblevas() local
143 *last = va; in sortvisiblevas()
144 while(va->next) va = va->next; in sortvisiblevas()
145 last = &va->next; in sortvisiblevas()
245 vtxarray *va = valist[i]; in visiblecubes() local
246 va->distance = 0; in visiblecubes()
247 va->curvfc = VFC_FULL_VISIBLE; in visiblecubes()
248 va->occluded = !va->texs ? OCCLUDE_GEOM : OCCLUDE_NOTHING; in visiblecubes()
249 va->query = NULL; in visiblecubes()
250 va->next = visibleva; in visiblecubes()
251 visibleva = va; in visiblecubes()
501 …for(vtxarray *va = visibleva; va; va = va->next) if(va->occluded < OCCLUDE_BB && va->curvfc < VFC_… in findvisiblemms() local
503 octaentities *oe = va->mapmodels[i]; in findvisiblemms()
635 …for(vtxarray *va = visibleva; va; va = va->next) if(va->occluded < OCCLUDE_BB && va->curvfc < VFC_… in rendertransparentmapmodels() local
637 octaentities *oe = va->mapmodels[i]; in rendertransparentmapmodels()
648 static inline bool bbinsideva(const ivec &bo, const ivec &br, vtxarray *va) in bbinsideva() argument
650 return bo.x >= va->bbmin.x && bo.y >= va->bbmin.y && bo.z >= va->bbmin.z && in bbinsideva()
651 br.x <= va->bbmax.x && br.y <= va->bbmax.y && br.z <= va->bbmax.z; in bbinsideva()
659 if(c[i].ext && c[i].ext->va) in bboccluded()
661 vtxarray *va = c[i].ext->va; in bboccluded() local
662 … if(va->curvfc >= VFC_FOGGED || (va->occluded >= OCCLUDE_BB && bbinsideva(bo, br, va))) continue; in bboccluded()
677 if(c->ext && c->ext->va) in bboccluded()
679 vtxarray *va = c->ext->va; in bboccluded() local
680 …if(va->curvfc >= VFC_FOGGED || (va->occluded >= OCCLUDE_BB && bbinsideva(bo, br, va))) return true; in bboccluded()
686 if(c->ext && c->ext->va) in bboccluded()
688 vtxarray *va = c->ext->va; in bboccluded() local
689 …if(va->curvfc >= VFC_FOGGED || (va->occluded >= OCCLUDE_BB && bbinsideva(bo, br, va))) return true; in bboccluded()
715 for(vtxarray *va = visibleva; va; va = va->next) if(va->occluded < OCCLUDE_BB) in renderoutline() local
717 …if((!va->texs || va->occluded >= OCCLUDE_GEOM) && !va->alphaback && !va->alphafront && !va->refrac… in renderoutline()
719 if(!prev || va->vbuf != prev->vbuf) in renderoutline()
721 gle::bindvbo(va->vbuf); in renderoutline()
722 gle::bindebo(va->ebuf); in renderoutline()
727 if(va->texs && va->occluded < OCCLUDE_GEOM) in renderoutline()
729 drawvatris(va, 3*va->tris, 0); in renderoutline()
730 xtravertsva += va->verts; in renderoutline()
732 if(va->alphaback || va->alphafront || va->refract) in renderoutline()
734 …drawvatris(va, 3*(va->alphabacktris + va->alphafronttris + va->refracttris), 3*(va->tris + va->ble… in renderoutline()
735 xtravertsva += 3*(va->alphabacktris + va->alphafronttris + va->refracttris); in renderoutline()
738 prev = va; in renderoutline()
772 for(vtxarray *va = visibleva; va; va = va->next) if(va->texs && va->occluded < OCCLUDE_GEOM) in renderblendbrush() local
774 …if(va->o.x + va->size <= x || va->o.y + va->size <= y || va->o.x >= x + w || va->o.y >= y + h) con… in renderblendbrush()
776 if(!prev || va->vbuf != prev->vbuf) in renderblendbrush()
778 gle::bindvbo(va->vbuf); in renderblendbrush()
779 gle::bindebo(va->ebuf); in renderblendbrush()
784 drawvatris(va, 3*va->tris, 0); in renderblendbrush()
785 xtravertsva += va->verts; in renderblendbrush()
787 prev = va; in renderblendbrush()
976 static inline void addshadowva(vtxarray *va, float dist) in addshadowva() argument
978 va->rdistance = int(dist); in addshadowva()
983 while(cur && va->rdistance > cur->rdistance) in addshadowva()
989 va->rnext = cur; in addshadowva()
990 *prev = va; in addshadowva()
999 vtxarray *va = vasort[i]; in sortshadowvas() local
1000 *last = va; in sortshadowvas()
1001 while(va->rnext) va = va->rnext; in sortshadowvas()
1002 last = &va->rnext; in sortshadowvas()
1096 for(vtxarray *va = shadowva; va; va = va->rnext) if(va->tris && va->shadowmask&(1<<shadowside)) in rendershadowmapworld() local
1098 if(!prev || va->vbuf != prev->vbuf) in rendershadowmapworld()
1100 gle::bindvbo(va->vbuf); in rendershadowmapworld()
1101 gle::bindebo(va->ebuf); in rendershadowmapworld()
1106 if(!smnodraw) drawvatris(va, 3*va->tris, 0); in rendershadowmapworld()
1107 xtravertsva += va->verts; in rendershadowmapworld()
1109 prev = va; in rendershadowmapworld()
1115 … for(vtxarray *va = shadowva; va; va = va->rnext) if(va->sky && va->shadowmask&(1<<shadowside)) in rendershadowmapworld() local
1117 if(!prev || va->vbuf != prev->vbuf) in rendershadowmapworld()
1119 gle::bindvbo(va->vbuf); in rendershadowmapworld()
1120 gle::bindebo(va->skybuf); in rendershadowmapworld()
1125 if(!smnodraw) drawvaskytris(va); in rendershadowmapworld()
1126 xtravertsva += va->sky/3; in rendershadowmapworld()
1128 prev = va; in rendershadowmapworld()
1143 for(vtxarray *va = shadowva; va; va = va->rnext) loopvj(va->mapmodels) in findshadowmms() local
1145 octaentities *oe = va->mapmodels[j]; in findshadowmms()
1240 static void renderquery(renderstate &cur, occludequery *query, vtxarray *va, bool full = true) in renderquery() argument
1246 if(full) drawbb(ivec(va->bbmin).sub(1), ivec(va->bbmax).sub(va->bbmin).add(2)); in renderquery()
1247 else drawbb(va->geommin, ivec(va->geommax).sub(va->geommin)); in renderquery()
1267 vtxarray *va; member
1270 geombatch(const elementset &es, int offset, vtxarray *va) in geombatch()
1271 : es(es), vslot(lookupvslot(es.texture)), offset(offset), va(va), in geombatch()
1277 if(va->vbuf < b.va->vbuf) return -1; in compare()
1278 if(va->vbuf > b.va->vbuf) return 1; in compare()
1282 int x1 = va->o.x&~0xFFF, x2 = b.va->o.x&~0xFFF; in compare()
1285 int y1 = va->o.y&~0xFFF, y2 = b.va->o.y&~0xFFF; in compare()
1307 static void mergetexs(renderstate &cur, vtxarray *va, elementset *texs = NULL, int numtexs = 0, int… in mergetexs() argument
1311 texs = va->texelems; in mergetexs()
1312 numtexs = va->texs; in mergetexs()
1315 texs += va->texs + va->blends; in mergetexs()
1316 offset += 3*(va->tris + va->blendtris); in mergetexs()
1317 numtexs = va->alphaback; in mergetexs()
1318 if(cur.alphaing > 1) numtexs += va->alphafront + va->refract; in mergetexs()
1328 geombatches.add(geombatch(texs[i], offset, va)).next = i+1; in mergetexs()
1331 geombatches.add(geombatch(texs[numtexs-1], offset, va)); in mergetexs()
1338 geombatch &b = geombatches.add(geombatch(texs[curtex], offset, va)); in mergetexs()
1407 static void changevbuf(renderstate &cur, int pass, vtxarray *va) in changevbuf() argument
1409 gle::bindvbo(va->vbuf); in changevbuf()
1410 gle::bindebo(va->ebuf); in changevbuf()
1411 cur.vbuf = va->vbuf; in changevbuf()
1445 if((cur.blendx != (b.va->o.x&~0xFFF) || cur.blendy != (b.va->o.y&~0xFFF))) in changebatchtmus()
1449 bindblendtexture(b.va->o); in changebatchtmus()
1450 cur.blendx = b.va->o.x&~0xFFF; in changebatchtmus()
1451 cur.blendy = b.va->o.y&~0xFFF; in changebatchtmus()
1651 …drawtris(len, (ushort *)0 + curbatch->va->eoffset + curbatch->offset, curbatch->es.minvert, curbat… in renderbatch()
1685 if(cur.vbuf != b.va->vbuf) changevbuf(cur, pass, b.va); in renderbatches()
1706 void renderzpass(renderstate &cur, vtxarray *va) in renderzpass() argument
1713 if(cur.vbuf!=va->vbuf) changevbuf(cur, RENDERPASS_Z, va); in renderzpass()
1717 int firsttex = 0, numtris = va->tris, offset = 0; in renderzpass()
1720 firsttex += va->texs + va->blends; in renderzpass()
1721 offset += 3*(va->tris + va->blendtris); in renderzpass()
1722 numtris = va->alphabacktris + va->alphafronttris + va->refracttris; in renderzpass()
1725 else xtravertsva += va->verts; in renderzpass()
1727 drawvatris(va, 3*numtris, offset); in renderzpass()
1730 #define startvaquery(va, flush) \ argument
1732 if(va->query) \
1735 startquery(va->query); \
1740 #define endvaquery(va, flush) \ argument
1742 if(va->query) \
1745 endquery(va->query); \
1751 void renderva(renderstate &cur, vtxarray *va, int pass = RENDERPASS_GBUFFER, bool doquery = false) in renderva() argument
1756 if(!cur.alphaing) vverts += va->verts; in renderva()
1757 if(doquery) startvaquery(va, { if(geombatches.length()) renderbatches(cur, pass); }); in renderva()
1758 mergetexs(cur, va); in renderva()
1759 if(doquery) endvaquery(va, { if(geombatches.length()) renderbatches(cur, pass); }); in renderva()
1764 …if(doquery) startvaquery(va, { if(geombatches.length()) renderbatches(cur, RENDERPASS_GBUFFER); }); in renderva()
1765 mergetexs(cur, va, &va->texelems[va->texs], va->blends, 3*va->tris); in renderva()
1766 … if(doquery) endvaquery(va, { if(geombatches.length()) renderbatches(cur, RENDERPASS_GBUFFER); }); in renderva()
1772 if(cur.vbuf!=va->vbuf) changevbuf(cur, pass, va); in renderva()
1773 drawvatris(va, 3*va->tris, 0); in renderva()
1774 xtravertsva += va->verts; in renderva()
1778 if(doquery) startvaquery(va, ); in renderva()
1779 renderzpass(cur, va); in renderva()
1780 if(doquery) endvaquery(va, ); in renderva()
1784 mergetexs(cur, va); in renderva()
1789 mergetexs(cur, va, &va->texelems[va->texs], va->blends, 3*va->tris); in renderva()
1826 for(vtxarray *va = visibleva; va; va = va->next) if(va->texs) in rendergeom() local
1828 if(!camera1->o.insidebb(va->o, va->size, 2)) in rendergeom()
1830 if(va->parent && va->parent->occluded >= OCCLUDE_BB) in rendergeom()
1832 va->query = NULL; in rendergeom()
1833 va->occluded = OCCLUDE_PARENT; in rendergeom()
1836va->occluded = va->query && va->query->owner == va && checkquery(va->query) ? min(va->occluded+1, … in rendergeom()
1837 va->query = newquery(va); in rendergeom()
1838 if(!va->query || !va->occluded) in rendergeom()
1839va->occluded = pvsoccluded(va->geommin, va->geommax) ? OCCLUDE_GEOM : OCCLUDE_NOTHING; in rendergeom()
1840 if(va->occluded >= OCCLUDE_GEOM) in rendergeom()
1842 if(va->query) in rendergeom()
1846 renderquery(cur, va->query, va); in rendergeom()
1853 va->query = NULL; in rendergeom()
1854va->occluded = pvsoccluded(va->geommin, va->geommax) ? OCCLUDE_GEOM : OCCLUDE_NOTHING; in rendergeom()
1855 if(va->occluded >= OCCLUDE_GEOM) continue; in rendergeom()
1858 renderva(cur, va, RENDERPASS_Z, true); in rendergeom()
1877 for(vtxarray *va = visibleva; va; va = va->next) if(va->texs && va->occluded < OCCLUDE_GEOM) in rendergeom() local
1879 blends += va->blends; in rendergeom()
1880 renderva(cur, va, RENDERPASS_GBUFFER); in rendergeom()
1883 … for(vtxarray *va = visibleva; va; va = va->next) if(va->texs && va->occluded >= OCCLUDE_GEOM) in rendergeom() local
1885 … if((va->parent && va->parent->occluded >= OCCLUDE_BB) || (va->query && checkquery(va->query))) in rendergeom()
1887 va->occluded = OCCLUDE_BB; in rendergeom()
1892va->occluded = pvsoccluded(va->geommin, va->geommax) ? OCCLUDE_GEOM : OCCLUDE_NOTHING; in rendergeom()
1893 if(va->occluded >= OCCLUDE_GEOM) continue; in rendergeom()
1896 blends += va->blends; in rendergeom()
1897 renderva(cur, va, RENDERPASS_GBUFFER); in rendergeom()
1906 for(vtxarray *va = visibleva; va; va = va->next) if(va->texs) in rendergeom() local
1908 va->query = NULL; in rendergeom()
1909 va->occluded = pvsoccluded(va->geommin, va->geommax) ? OCCLUDE_GEOM : OCCLUDE_NOTHING; in rendergeom()
1910 if(va->occluded >= OCCLUDE_GEOM) continue; in rendergeom()
1911 blends += va->blends; in rendergeom()
1912 renderva(cur, va, RENDERPASS_GBUFFER); in rendergeom()
1929 …for(vtxarray *va = visibleva; va; va = va->next) if(va->blends && va->occluded < OCCLUDE_GEOM && v… in rendergeom() local
1931 renderva(cur, va, RENDERPASS_GBUFFER_BLEND); in rendergeom()
1958 for(vtxarray *va = shadowva; va; va = va->rnext) if(va->shadowmask&mask && va->dyntexs) in dynamicshadowvabounds() local
1960 bbmin.min(vec(va->geommin)); in dynamicshadowvabounds()
1961 bbmax.max(vec(va->geommax)); in dynamicshadowvabounds()
1979 for(vtxarray *va = shadowva; va; va = va->rnext) if(va->sky) in renderrsmgeom() local
1981 if(!prev || va->vbuf != prev->vbuf) in renderrsmgeom()
1983 gle::bindvbo(va->vbuf); in renderrsmgeom()
1984 gle::bindebo(va->skybuf); in renderrsmgeom()
1989 drawvaskytris(va); in renderrsmgeom()
1990 xtravertsva += va->sky/3; in renderrsmgeom()
1992 prev = va; in renderrsmgeom()
2000 for(vtxarray *va = shadowva; va; va = va->rnext) if(va->texs) in renderrsmgeom() local
2002 blends += va->blends; in renderrsmgeom()
2003 renderva(cur, va, RENDERPASS_RSM); in renderrsmgeom()
2021 for(vtxarray *va = shadowva; va; va = va->rnext) if(va->blends) in renderrsmgeom() local
2023 renderva(cur, va, RENDERPASS_RSM_BLEND); in renderrsmgeom()
2050 …for(vtxarray *va = visibleva; va; va = va->next) if(va->alphabacktris || va->alphafronttris || va-… in findalphavas() local
2052 if(va->occluded >= OCCLUDE_BB) continue; in findalphavas()
2053 if(va->occluded >= OCCLUDE_GEOM && pvsoccluded(va->alphamin, va->alphamax)) continue; in findalphavas()
2054 if(va->curvfc==VFC_FOGGED) continue; in findalphavas()
2056 if(!calcbbscissor(va->alphamin, va->alphamax, sx1, sy1, sx2, sy2)) continue; in findalphavas()
2057 alphavas.add(va); in findalphavas()
2063 if(va->alphabacktris) in findalphavas()
2071 if(va->refracttris) in findalphavas()
2073 if(!calcbbscissor(va->refractmin, va->refractmax, sx1, sy1, sx2, sy2)) continue; in findalphavas()
2091 vtxarray *va = alphavas[i]; in renderrefractmask() local
2092 if(!va->refracttris) continue; in renderrefractmask()
2094 if(!prev || va->vbuf != prev->vbuf) in renderrefractmask()
2096 gle::bindvbo(va->vbuf); in renderrefractmask()
2097 gle::bindebo(va->ebuf); in renderrefractmask()
2102 …drawvatris(va, 3*va->refracttris, 3*(va->tris + va->blendtris + va->alphabacktris + va->alphafront… in renderrefractmask()
2103 xtravertsva += 3*va->refracttris; in renderrefractmask()
2105 prev = va; in renderrefractmask()
2144 for(vtxarray *va = visibleva; va; va = va->next) if(va->sky && va->occluded < OCCLUDE_BB && in renderexplicitsky() local
2145 …((va->skymax.x >= 0 && isvisiblebb(va->skymin, ivec(va->skymax).sub(va->skymin)) != VFC_NOT_VISIBL… in renderexplicitsky()
2148 if(!prev || va->vbuf != prev->vbuf) in renderexplicitsky()
2172 gle::bindvbo(va->vbuf); in renderexplicitsky()
2173 gle::bindebo(va->skybuf); in renderexplicitsky()
2177 drawvaskytris(va); in renderexplicitsky()
2178 xtraverts += va->sky; in renderexplicitsky()
2179 prev = va; in renderexplicitsky()
2221 vtxarray *va; member
2224 decalbatch(const elementset &es, int offset, vtxarray *va) in decalbatch()
2225 : es(es), slot(lookupdecalslot(es.texture)), offset(offset), va(va), in decalbatch()
2231 if(va->vbuf < b.va->vbuf) return -1; in compare()
2232 if(va->vbuf > b.va->vbuf) return 1; in compare()
2249 static void mergedecals(decalrenderer &cur, vtxarray *va) in mergedecals() argument
2251 elementset *texs = va->decalelems; in mergedecals()
2252 int numtexs = va->decaltexs, offset = 0; in mergedecals()
2260 decalbatches.add(decalbatch(texs[i], offset, va)).next = i+1; in mergedecals()
2263 decalbatches.add(decalbatch(texs[numtexs-1], offset, va)); in mergedecals()
2270 decalbatch &b = decalbatches.add(decalbatch(texs[curtex], offset, va)); in mergedecals()
2322 static void changevbuf(decalrenderer &cur, int pass, vtxarray *va) in changevbuf() argument
2324 gle::bindvbo(va->vbuf); in changevbuf()
2325 gle::bindebo(va->decalbuf); in changevbuf()
2326 cur.vbuf = va->vbuf; in changevbuf()
2440 …drawtris(len, (ushort *)0 + curbatch->va->decaloffset + curbatch->offset, curbatch->es.minvert, cu… in renderdecalbatch()
2458 if(cur.vbuf != b.va->vbuf) changevbuf(cur, pass, b.va); in renderdecalbatches()
2527 … for(vtxarray *va = decalva; va; va = va->next) if(va->decaltris && va->occluded < OCCLUDE_BB) in renderdecals() local
2529 mergedecals(cur, va); in renderdecals()
2542 … for(vtxarray *va = decalva; va; va = va->next) if(va->decaltris && va->occluded < OCCLUDE_BB) in renderdecals() local
2544 mergedecals(cur, va); in renderdecals()
2554 … for(vtxarray *va = decalva; va; va = va->next) if(va->decaltris && va->occluded < OCCLUDE_BB) in renderdecals() local
2556 mergedecals(cur, va); in renderdecals()
2763 for(vtxarray *va = shadowva; va; va = va->rnext) if(va->shadowmask) in genshadowmesh() local
2765 … if(va->tris) genshadowmeshtris(m, sides, draws, va->edata + va->eoffset, va->tris, va->vdata); in genshadowmesh()
2766 …if(getskyshadow() && va->sky) genshadowmeshtris(m, sides, draws, va->skydata + va->skyoffset, va->… in genshadowmesh()