header file for renderva
parent
949ec16cd7
commit
26ce5f8423
|
@ -1,4 +1,5 @@
|
||||||
#include "blend.hh"
|
#include "blend.hh"
|
||||||
|
#include "renderva.hh"
|
||||||
#include "texture.hh"
|
#include "texture.hh"
|
||||||
|
|
||||||
#include "engine.hh"
|
#include "engine.hh"
|
||||||
|
|
|
@ -25,7 +25,6 @@ extern int blendpaintmode;
|
||||||
void stoppaintblendmap();
|
void stoppaintblendmap();
|
||||||
void trypaintblendmap();
|
void trypaintblendmap();
|
||||||
|
|
||||||
void renderblendbrush(GLuint tex, float x, float y, float w, float h);
|
|
||||||
void renderblendbrush();
|
void renderblendbrush();
|
||||||
|
|
||||||
bool loadblendmap(stream *f, int info);
|
bool loadblendmap(stream *f, int info);
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
#include "renderva.hh"
|
||||||
|
|
||||||
#include "engine.hh"
|
#include "engine.hh"
|
||||||
|
|
||||||
VARNP(dynlights, usedynlights, 0, 1, 1);
|
VARNP(dynlights, usedynlights, 0, 1, 1);
|
||||||
|
|
|
@ -243,9 +243,6 @@ enum { SM_NONE = 0, SM_REFLECT, SM_CUBEMAP, SM_CASCADE, SM_SPOT };
|
||||||
|
|
||||||
extern int shadowmapping;
|
extern int shadowmapping;
|
||||||
|
|
||||||
extern vec shadoworigin, shadowdir;
|
|
||||||
extern float shadowradius, shadowbias;
|
|
||||||
extern int shadowside, shadowspot;
|
|
||||||
extern matrix4 shadowmatrix;
|
extern matrix4 shadowmatrix;
|
||||||
|
|
||||||
extern void loaddeferredlightshaders();
|
extern void loaddeferredlightshaders();
|
||||||
|
@ -255,25 +252,14 @@ extern void clearshadowcache();
|
||||||
extern void rendervolumetric();
|
extern void rendervolumetric();
|
||||||
extern void cleanupvolumetric();
|
extern void cleanupvolumetric();
|
||||||
|
|
||||||
extern void findshadowvas();
|
|
||||||
extern void findshadowmms();
|
|
||||||
|
|
||||||
extern int calcshadowinfo(const extentity &e, vec &origin, float &radius, vec &spotloc, int &spotangle, float &bias);
|
extern int calcshadowinfo(const extentity &e, vec &origin, float &radius, vec &spotloc, int &spotangle, float &bias);
|
||||||
extern int dynamicshadowvabounds(int mask, vec &bbmin, vec &bbmax);
|
|
||||||
extern void rendershadowmapworld();
|
|
||||||
extern void batchshadowmapmodels(bool skipmesh = false);
|
|
||||||
extern void rendershadowatlas();
|
extern void rendershadowatlas();
|
||||||
extern void renderrsmgeom(bool dyntex = false);
|
|
||||||
extern bool useradiancehints();
|
extern bool useradiancehints();
|
||||||
extern void renderradiancehints();
|
extern void renderradiancehints();
|
||||||
extern void clearradiancehintscache();
|
extern void clearradiancehintscache();
|
||||||
extern void cleanuplights();
|
extern void cleanuplights();
|
||||||
extern void workinoq();
|
extern void workinoq();
|
||||||
|
|
||||||
extern int calcbbsidemask(const vec &bbmin, const vec &bbmax, const vec &lightpos, float lightradius, float bias);
|
|
||||||
extern int calcspheresidemask(const vec &p, float radius, float bias);
|
|
||||||
extern int calctrisidemask(const vec &p1, const vec &p2, const vec &p3, float bias);
|
|
||||||
extern int cullfrustumsides(const vec &lightpos, float lightradius, float size, float border);
|
|
||||||
extern int calcbbcsmsplits(const ivec &bbmin, const ivec &bbmax);
|
extern int calcbbcsmsplits(const ivec &bbmin, const ivec &bbmax);
|
||||||
extern int calcspherecsmsplits(const vec ¢er, float radius);
|
extern int calcspherecsmsplits(const vec ¢er, float radius);
|
||||||
extern int calcbbrsmsplits(const ivec &bbmin, const ivec &bbmax);
|
extern int calcbbrsmsplits(const ivec &bbmin, const ivec &bbmax);
|
||||||
|
@ -361,50 +347,6 @@ extern void destroyva(vtxarray *va, bool reparent = true);
|
||||||
extern void updatevabb(vtxarray *va, bool force = false);
|
extern void updatevabb(vtxarray *va, bool force = false);
|
||||||
extern void updatevabbs(bool force = false);
|
extern void updatevabbs(bool force = false);
|
||||||
|
|
||||||
// renderva
|
|
||||||
|
|
||||||
extern int oqfrags;
|
|
||||||
extern float alphafrontsx1, alphafrontsx2, alphafrontsy1, alphafrontsy2, alphabacksx1, alphabacksx2, alphabacksy1, alphabacksy2, alpharefractsx1, alpharefractsx2, alpharefractsy1, alpharefractsy2;
|
|
||||||
extern uint alphatiles[LIGHTTILE_MAXH];
|
|
||||||
extern vtxarray *visibleva;
|
|
||||||
|
|
||||||
extern void visiblecubes(bool cull = true);
|
|
||||||
extern void setvfcP(const vec &bbmin = vec(-1, -1, -1), const vec &bbmax = vec(1, 1, 1));
|
|
||||||
extern void savevfcP();
|
|
||||||
extern void restorevfcP();
|
|
||||||
extern void rendergeom();
|
|
||||||
extern int findalphavas();
|
|
||||||
extern void renderrefractmask();
|
|
||||||
extern void renderalphageom(int side);
|
|
||||||
extern void rendermapmodels();
|
|
||||||
extern void renderoutline();
|
|
||||||
extern void cleanupva();
|
|
||||||
|
|
||||||
extern bool isfoggedsphere(float rad, const vec &cv);
|
|
||||||
extern int isvisiblesphere(float rad, const vec &cv);
|
|
||||||
extern int isvisiblebb(const ivec &bo, const ivec &br);
|
|
||||||
extern bool bboccluded(const ivec &bo, const ivec &br);
|
|
||||||
|
|
||||||
extern int deferquery;
|
|
||||||
extern void flipqueries();
|
|
||||||
extern occludequery *newquery(void *owner);
|
|
||||||
extern void startquery(occludequery *query);
|
|
||||||
extern void endquery(occludequery *query);
|
|
||||||
extern bool checkquery(occludequery *query, bool nowait = false);
|
|
||||||
extern void resetqueries();
|
|
||||||
extern int getnumqueries();
|
|
||||||
extern void startbb(bool mask = true);
|
|
||||||
extern void endbb(bool mask = true);
|
|
||||||
extern void drawbb(const ivec &bo, const ivec &br);
|
|
||||||
|
|
||||||
extern void renderdecals();
|
|
||||||
|
|
||||||
struct shadowmesh;
|
|
||||||
extern void clearshadowmeshes();
|
|
||||||
extern void genshadowmeshes();
|
|
||||||
extern shadowmesh *findshadowmesh(int idx, extentity &e);
|
|
||||||
extern void rendershadowmesh(shadowmesh *m);
|
|
||||||
|
|
||||||
// dynlight
|
// dynlight
|
||||||
|
|
||||||
extern void updatedynlights();
|
extern void updatedynlights();
|
||||||
|
@ -564,7 +506,6 @@ extern int skytexture, skyshadow, explicitsky;
|
||||||
extern void drawskybox(bool clear = false);
|
extern void drawskybox(bool clear = false);
|
||||||
extern bool hasskybox();
|
extern bool hasskybox();
|
||||||
extern bool limitsky();
|
extern bool limitsky();
|
||||||
extern bool renderexplicitsky(bool outline = false);
|
|
||||||
extern void cleanupsky();
|
extern void cleanupsky();
|
||||||
|
|
||||||
// menus
|
// menus
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
#include "blend.hh"
|
#include "blend.hh"
|
||||||
|
#include "renderva.hh"
|
||||||
#include "texture.hh"
|
#include "texture.hh"
|
||||||
|
|
||||||
#include "engine.hh"
|
#include "engine.hh"
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
// main.cpp: initialisation & main loop
|
// main.cpp: initialisation & main loop
|
||||||
|
|
||||||
#include "blend.hh"
|
#include "blend.hh"
|
||||||
|
#include "renderva.hh"
|
||||||
#include "shader.hh"
|
#include "shader.hh"
|
||||||
#include "texture.hh"
|
#include "texture.hh"
|
||||||
#include "world.hh"
|
#include "world.hh"
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
#include "material.hh"
|
#include "material.hh"
|
||||||
|
#include "renderva.hh"
|
||||||
#include "texture.hh"
|
#include "texture.hh"
|
||||||
#include "water.hh"
|
#include "water.hh"
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
#include "blend.hh"
|
#include "blend.hh"
|
||||||
#include "material.hh"
|
#include "material.hh"
|
||||||
|
#include "renderva.hh"
|
||||||
#include "texture.hh"
|
#include "texture.hh"
|
||||||
#include "world.hh"
|
#include "world.hh"
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
#include "blend.hh"
|
#include "blend.hh"
|
||||||
#include "material.hh"
|
#include "material.hh"
|
||||||
|
#include "renderva.hh"
|
||||||
#include "texture.hh"
|
#include "texture.hh"
|
||||||
#include "world.hh"
|
#include "world.hh"
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
#include "aa.hh"
|
#include "aa.hh"
|
||||||
#include "blend.hh"
|
#include "blend.hh"
|
||||||
#include "material.hh"
|
#include "material.hh"
|
||||||
|
#include "renderva.hh"
|
||||||
#include "texture.hh"
|
#include "texture.hh"
|
||||||
#include "water.hh"
|
#include "water.hh"
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
#include "aa.hh"
|
#include "aa.hh"
|
||||||
#include "material.hh"
|
#include "material.hh"
|
||||||
|
#include "renderva.hh"
|
||||||
#include "texture.hh"
|
#include "texture.hh"
|
||||||
#include "world.hh"
|
#include "world.hh"
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
#include "aa.hh"
|
#include "aa.hh"
|
||||||
|
#include "renderva.hh"
|
||||||
#include "shader.hh"
|
#include "shader.hh"
|
||||||
#include "texture.hh"
|
#include "texture.hh"
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
// renderparticles.cpp
|
// renderparticles.cpp
|
||||||
|
|
||||||
|
#include "renderva.hh"
|
||||||
#include "shader.hh"
|
#include "shader.hh"
|
||||||
#include "texture.hh"
|
#include "texture.hh"
|
||||||
#include "water.hh"
|
#include "water.hh"
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
#include "renderva.hh"
|
||||||
#include "texture.hh"
|
#include "texture.hh"
|
||||||
|
|
||||||
#include "engine.hh"
|
#include "engine.hh"
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
// renderva.cpp: handles the occlusion and rendering of vertex arrays
|
// renderva.cpp: handles the occlusion and rendering of vertex arrays
|
||||||
|
|
||||||
|
#include "renderva.hh"
|
||||||
|
|
||||||
#include "blend.hh"
|
#include "blend.hh"
|
||||||
#include "texture.hh"
|
#include "texture.hh"
|
||||||
|
|
||||||
|
@ -23,9 +25,9 @@ static inline void drawvaskytris(vtxarray *va)
|
||||||
|
|
||||||
///////// view frustrum culling ///////////////////////
|
///////// view frustrum culling ///////////////////////
|
||||||
|
|
||||||
plane vfcP[5]; // perpindictular vectors to view frustrum bounding planes
|
static plane vfcP[5]; // perpindictular vectors to view frustrum bounding planes
|
||||||
float vfcDfog; // far plane culling distance (fog limit).
|
static float vfcDfog; // far plane culling distance (fog limit).
|
||||||
float vfcDnear[5], vfcDfar[5];
|
static float vfcDnear[5], vfcDfar[5];
|
||||||
|
|
||||||
vtxarray *visibleva = NULL;
|
vtxarray *visibleva = NULL;
|
||||||
|
|
||||||
|
@ -68,7 +70,7 @@ static inline int isfoggedcube(const ivec &o, int size)
|
||||||
return dist < -vfcDfar[4]*size || dist > vfcDfog - vfcDnear[4]*size;
|
return dist < -vfcDfar[4]*size || dist > vfcDfog - vfcDnear[4]*size;
|
||||||
}
|
}
|
||||||
|
|
||||||
int isvisiblecube(const ivec &o, int size)
|
static int isvisiblecube(const ivec &o, int size)
|
||||||
{
|
{
|
||||||
int v = VFC_FULL_VISIBLE;
|
int v = VFC_FULL_VISIBLE;
|
||||||
float dist;
|
float dist;
|
||||||
|
@ -136,7 +138,7 @@ static inline void addvisibleva(vtxarray *va)
|
||||||
*prev = va;
|
*prev = va;
|
||||||
}
|
}
|
||||||
|
|
||||||
void sortvisiblevas()
|
static void sortvisiblevas()
|
||||||
{
|
{
|
||||||
visibleva = NULL;
|
visibleva = NULL;
|
||||||
vtxarray **last = &visibleva;
|
vtxarray **last = &visibleva;
|
||||||
|
@ -185,14 +187,14 @@ static inline void findvisiblevas(vector<vtxarray *> &vas)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void findvisiblevas()
|
static void findvisiblevas()
|
||||||
{
|
{
|
||||||
memset(vasort, 0, sizeof(vasort));
|
memset(vasort, 0, sizeof(vasort));
|
||||||
findvisiblevas<false, false>(varoot);
|
findvisiblevas<false, false>(varoot);
|
||||||
sortvisiblevas();
|
sortvisiblevas();
|
||||||
}
|
}
|
||||||
|
|
||||||
void calcvfcD()
|
static void calcvfcD()
|
||||||
{
|
{
|
||||||
loopi(5)
|
loopi(5)
|
||||||
{
|
{
|
||||||
|
@ -203,7 +205,7 @@ void calcvfcD()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void setvfcP(const vec &bbmin, const vec &bbmax)
|
static void setvfcP(const vec &bbmin = vec(-1, -1, -1), const vec &bbmax = vec(1, 1, 1))
|
||||||
{
|
{
|
||||||
vec4 px = camprojmatrix.rowx(), py = camprojmatrix.rowy(), pz = camprojmatrix.rowz(), pw = camprojmatrix.roww();
|
vec4 px = camprojmatrix.rowx(), py = camprojmatrix.rowy(), pz = camprojmatrix.rowz(), pw = camprojmatrix.roww();
|
||||||
vfcP[0] = plane(vec4(pw).mul(-bbmin.x).add(px)).normalize(); // left plane
|
vfcP[0] = plane(vec4(pw).mul(-bbmin.x).add(px)).normalize(); // left plane
|
||||||
|
@ -216,18 +218,20 @@ void setvfcP(const vec &bbmin, const vec &bbmax)
|
||||||
calcvfcD();
|
calcvfcD();
|
||||||
}
|
}
|
||||||
|
|
||||||
plane oldvfcP[5];
|
static plane oldvfcP[5];
|
||||||
|
|
||||||
void savevfcP()
|
#if 0
|
||||||
|
static void savevfcP()
|
||||||
{
|
{
|
||||||
memcpy(oldvfcP, vfcP, sizeof(vfcP));
|
memcpy(oldvfcP, vfcP, sizeof(vfcP));
|
||||||
}
|
}
|
||||||
|
|
||||||
void restorevfcP()
|
static void restorevfcP()
|
||||||
{
|
{
|
||||||
memcpy(vfcP, oldvfcP, sizeof(vfcP));
|
memcpy(vfcP, oldvfcP, sizeof(vfcP));
|
||||||
calcvfcD();
|
calcvfcD();
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void visiblecubes(bool cull)
|
void visiblecubes(bool cull)
|
||||||
{
|
{
|
||||||
|
@ -337,7 +341,7 @@ void resetqueries()
|
||||||
loopi(MAXQUERYFRAMES) queryframes[i].reset();
|
loopi(MAXQUERYFRAMES) queryframes[i].reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
void clearqueries()
|
static void clearqueries()
|
||||||
{
|
{
|
||||||
loopi(MAXQUERYFRAMES) queryframes[i].cleanup();
|
loopi(MAXQUERYFRAMES) queryframes[i].cleanup();
|
||||||
}
|
}
|
||||||
|
@ -460,7 +464,7 @@ extern int octaentsize;
|
||||||
|
|
||||||
static octaentities *visiblemms, **lastvisiblemms;
|
static octaentities *visiblemms, **lastvisiblemms;
|
||||||
|
|
||||||
void findvisiblemms(const vector<extentity *> &ents, bool doquery)
|
static void findvisiblemms(const vector<extentity *> &ents, bool doquery)
|
||||||
{
|
{
|
||||||
visiblemms = NULL;
|
visiblemms = NULL;
|
||||||
lastvisiblemms = &visiblemms;
|
lastvisiblemms = &visiblemms;
|
||||||
|
@ -714,7 +718,7 @@ void renderblendbrush(GLuint tex, float x, float y, float w, float h)
|
||||||
gle::disablevertex();
|
gle::disablevertex();
|
||||||
}
|
}
|
||||||
|
|
||||||
int calcbbsidemask(const ivec &bbmin, const ivec &bbmax, const vec &lightpos, float lightradius, float bias)
|
static int calcbbsidemask(const ivec &bbmin, const ivec &bbmax, const vec &lightpos, float lightradius, float bias)
|
||||||
{
|
{
|
||||||
vec pmin = vec(bbmin).sub(lightpos).div(lightradius), pmax = vec(bbmax).sub(lightpos).div(lightradius);
|
vec pmin = vec(bbmin).sub(lightpos).div(lightradius), pmax = vec(bbmax).sub(lightpos).div(lightradius);
|
||||||
int mask = 0x3F;
|
int mask = 0x3F;
|
||||||
|
@ -772,7 +776,7 @@ int calcspheresidemask(const vec &p, float radius, float bias)
|
||||||
return mask;
|
return mask;
|
||||||
}
|
}
|
||||||
|
|
||||||
int calctrisidemask(const vec &p1, const vec &p2, const vec &p3, float bias)
|
static int calctrisidemask(const vec &p1, const vec &p2, const vec &p3, float bias)
|
||||||
{
|
{
|
||||||
// p1, p2, p3 are in the cubemap's local coordinate system
|
// p1, p2, p3 are in the cubemap's local coordinate system
|
||||||
// bias = border/(size - border)
|
// bias = border/(size - border)
|
||||||
|
@ -889,7 +893,7 @@ vec shadoworigin(0, 0, 0), shadowdir(0, 0, 0);
|
||||||
float shadowradius = 0, shadowbias = 0;
|
float shadowradius = 0, shadowbias = 0;
|
||||||
int shadowside = 0, shadowspot = 0;
|
int shadowside = 0, shadowspot = 0;
|
||||||
|
|
||||||
vtxarray *shadowva = NULL;
|
static vtxarray *shadowva = NULL;
|
||||||
|
|
||||||
static inline void addshadowva(vtxarray *va, float dist)
|
static inline void addshadowva(vtxarray *va, float dist)
|
||||||
{
|
{
|
||||||
|
@ -908,7 +912,7 @@ static inline void addshadowva(vtxarray *va, float dist)
|
||||||
*prev = va;
|
*prev = va;
|
||||||
}
|
}
|
||||||
|
|
||||||
void sortshadowvas()
|
static void sortshadowvas()
|
||||||
{
|
{
|
||||||
shadowva = NULL;
|
shadowva = NULL;
|
||||||
vtxarray **last = &shadowva;
|
vtxarray **last = &shadowva;
|
||||||
|
@ -921,7 +925,7 @@ void sortshadowvas()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void findshadowvas(vector<vtxarray *> &vas)
|
static void findshadowvas(vector<vtxarray *> &vas)
|
||||||
{
|
{
|
||||||
loopv(vas)
|
loopv(vas)
|
||||||
{
|
{
|
||||||
|
@ -938,7 +942,7 @@ void findshadowvas(vector<vtxarray *> &vas)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void findcsmshadowvas(vector<vtxarray *> &vas)
|
static void findcsmshadowvas(vector<vtxarray *> &vas)
|
||||||
{
|
{
|
||||||
loopv(vas)
|
loopv(vas)
|
||||||
{
|
{
|
||||||
|
@ -956,7 +960,7 @@ void findcsmshadowvas(vector<vtxarray *> &vas)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void findrsmshadowvas(vector<vtxarray *> &vas)
|
static void findrsmshadowvas(vector<vtxarray *> &vas)
|
||||||
{
|
{
|
||||||
loopv(vas)
|
loopv(vas)
|
||||||
{
|
{
|
||||||
|
@ -974,7 +978,7 @@ void findrsmshadowvas(vector<vtxarray *> &vas)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void findspotshadowvas(vector<vtxarray *> &vas)
|
static void findspotshadowvas(vector<vtxarray *> &vas)
|
||||||
{
|
{
|
||||||
loopv(vas)
|
loopv(vas)
|
||||||
{
|
{
|
||||||
|
@ -1611,7 +1615,7 @@ static void renderbatches(renderstate &cur, int pass)
|
||||||
resetbatches();
|
resetbatches();
|
||||||
}
|
}
|
||||||
|
|
||||||
void renderzpass(renderstate &cur, vtxarray *va)
|
static void renderzpass(renderstate &cur, vtxarray *va)
|
||||||
{
|
{
|
||||||
if(!cur.vattribs)
|
if(!cur.vattribs)
|
||||||
{
|
{
|
||||||
|
@ -1656,7 +1660,7 @@ void renderzpass(renderstate &cur, vtxarray *va)
|
||||||
|
|
||||||
VAR(batchgeom, 0, 1, 1);
|
VAR(batchgeom, 0, 1, 1);
|
||||||
|
|
||||||
void renderva(renderstate &cur, vtxarray *va, int pass = RENDERPASS_GBUFFER, bool doquery = false)
|
static void renderva(renderstate &cur, vtxarray *va, int pass = RENDERPASS_GBUFFER, bool doquery = false)
|
||||||
{
|
{
|
||||||
switch(pass)
|
switch(pass)
|
||||||
{
|
{
|
||||||
|
@ -1708,14 +1712,14 @@ void cleanupva()
|
||||||
cleanupgrass();
|
cleanupgrass();
|
||||||
}
|
}
|
||||||
|
|
||||||
void setupgeom(renderstate &cur)
|
static void setupgeom(renderstate &cur)
|
||||||
{
|
{
|
||||||
glActiveTexture_(GL_TEXTURE0);
|
glActiveTexture_(GL_TEXTURE0);
|
||||||
GLOBALPARAMF(colorparams, 1, 1, 1, 1);
|
GLOBALPARAMF(colorparams, 1, 1, 1, 1);
|
||||||
GLOBALPARAMF(blendlayer, 1.0f);
|
GLOBALPARAMF(blendlayer, 1.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
void cleanupgeom(renderstate &cur)
|
static void cleanupgeom(renderstate &cur)
|
||||||
{
|
{
|
||||||
if(cur.vattribs) disablevattribs(cur);
|
if(cur.vattribs) disablevattribs(cur);
|
||||||
if(cur.vbuf) disablevbuf(cur);
|
if(cur.vbuf) disablevbuf(cur);
|
||||||
|
@ -2366,7 +2370,7 @@ static void renderdecalbatches(decalrenderer &cur, int pass)
|
||||||
resetdecalbatches();
|
resetdecalbatches();
|
||||||
}
|
}
|
||||||
|
|
||||||
void setupdecals(decalrenderer &cur)
|
static void setupdecals(decalrenderer &cur)
|
||||||
{
|
{
|
||||||
gle::enablevertex();
|
gle::enablevertex();
|
||||||
gle::enablenormal();
|
gle::enablenormal();
|
||||||
|
@ -2380,7 +2384,7 @@ void setupdecals(decalrenderer &cur)
|
||||||
GLOBALPARAMF(colorparams, 1, 1, 1, 1);
|
GLOBALPARAMF(colorparams, 1, 1, 1, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void cleanupdecals(decalrenderer &cur)
|
static void cleanupdecals(decalrenderer &cur)
|
||||||
{
|
{
|
||||||
disablepolygonoffset(GL_POLYGON_OFFSET_FILL);
|
disablepolygonoffset(GL_POLYGON_OFFSET_FILL);
|
||||||
glDisable(GL_BLEND);
|
glDisable(GL_BLEND);
|
||||||
|
@ -2496,10 +2500,10 @@ struct shadowverts
|
||||||
return table[h] = verts.length()-1;
|
return table[h] = verts.length()-1;
|
||||||
}
|
}
|
||||||
} shadowverts;
|
} shadowverts;
|
||||||
vector<ushort> shadowtris[6];
|
static vector<ushort> shadowtris[6];
|
||||||
vector<GLuint> shadowvbos;
|
static vector<GLuint> shadowvbos;
|
||||||
hashtable<int, shadowmesh> shadowmeshes;
|
static hashtable<int, shadowmesh> shadowmeshes;
|
||||||
vector<shadowdraw> shadowdraws;
|
static vector<shadowdraw> shadowdraws;
|
||||||
|
|
||||||
struct shadowdrawinfo
|
struct shadowdrawinfo
|
||||||
{
|
{
|
||||||
|
|
|
@ -0,0 +1,75 @@
|
||||||
|
#ifndef ENGINE_RENDERVA_HH
|
||||||
|
#define ENGINE_RENDERVA_HH
|
||||||
|
|
||||||
|
#include <shared/geom.hh>
|
||||||
|
|
||||||
|
#include "octa.hh"
|
||||||
|
#include "renderlights.hh" /* LIGHTTILE_MAXH */
|
||||||
|
|
||||||
|
extern vtxarray *visibleva;
|
||||||
|
|
||||||
|
bool isfoggedsphere(float rad, const vec &cv);
|
||||||
|
int isvisiblesphere(float rad, const vec &cv);
|
||||||
|
int isvisiblebb(const ivec &bo, const ivec &br);
|
||||||
|
|
||||||
|
void visiblecubes(bool cull = true);
|
||||||
|
|
||||||
|
extern int deferquery;
|
||||||
|
|
||||||
|
int getnumqueries();
|
||||||
|
void flipqueries();
|
||||||
|
void resetqueries();
|
||||||
|
occludequery *newquery(void *owner);
|
||||||
|
void startquery(occludequery *query);
|
||||||
|
void endquery(occludequery *query);
|
||||||
|
bool checkquery(occludequery *query, bool nowait = false);
|
||||||
|
|
||||||
|
void startbb(bool mask = true);
|
||||||
|
void endbb(bool mask = true);
|
||||||
|
void drawbb(const ivec &bo, const ivec &br);
|
||||||
|
bool bboccluded(const ivec &bo, const ivec &br);
|
||||||
|
|
||||||
|
void rendermapmodels();
|
||||||
|
void renderoutline();
|
||||||
|
void renderblendbrush(GLuint tex, float x, float y, float w, float h);
|
||||||
|
|
||||||
|
int calcspheresidemask(const vec &p, float radius, float bias);
|
||||||
|
int cullfrustumsides(const vec &lightpos, float lightradius, float size, float border);
|
||||||
|
|
||||||
|
extern vec shadoworigin, shadowdir;
|
||||||
|
extern float shadowradius, shadowbias;
|
||||||
|
extern int shadowside, shadowspot;
|
||||||
|
|
||||||
|
extern void findshadowvas();
|
||||||
|
extern void findshadowmms();
|
||||||
|
|
||||||
|
int dynamicshadowvabounds(int mask, vec &bbmin, vec &bbmax);
|
||||||
|
|
||||||
|
void rendershadowmapworld();
|
||||||
|
void batchshadowmapmodels(bool skipmesh = false);
|
||||||
|
void renderrsmgeom(bool dyntex = false);
|
||||||
|
|
||||||
|
struct shadowmesh;
|
||||||
|
struct extentity; /* FIXME: remove */
|
||||||
|
|
||||||
|
void clearshadowmeshes();
|
||||||
|
void genshadowmeshes();
|
||||||
|
shadowmesh *findshadowmesh(int idx, extentity &e);
|
||||||
|
void rendershadowmesh(shadowmesh *m);
|
||||||
|
|
||||||
|
extern int oqfrags;
|
||||||
|
extern float alphafrontsx1, alphafrontsx2, alphafrontsy1, alphafrontsy2, alphabacksx1, alphabacksx2, alphabacksy1, alphabacksy2, alpharefractsx1, alpharefractsx2, alpharefractsy1, alpharefractsy2;
|
||||||
|
extern uint alphatiles[LIGHTTILE_MAXH];
|
||||||
|
|
||||||
|
int findalphavas();
|
||||||
|
void renderrefractmask();
|
||||||
|
void renderalphageom(int side);
|
||||||
|
|
||||||
|
bool renderexplicitsky(bool outline = false);
|
||||||
|
|
||||||
|
void renderdecals();
|
||||||
|
|
||||||
|
void cleanupva();
|
||||||
|
void rendergeom();
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue