#define SHADERSTAGE_SKY 0
#define SHADERSTAGE_NORMAL 1
-#define SHADERSTAGE_BASELIGHTING 2
-#define SHADERSTAGE_COUNT 3
+#define SHADERSTAGE_COUNT 2
#define SHADERFLAGS_NEEDLIGHTMAP 1
#define SURF_DRAWNOALPHA 0x100
#define SURF_DRAWFULLBRIGHT 0x200
#define SURF_LIGHTBOTHSIDES 0x400
-#define SURF_CLIPSOLID 0x800 // this polygon can obscure other polygons
#define SURF_SHADOWCAST 0x1000 // this polygon can cast stencil shadows
#define SURF_SHADOWLIGHT 0x2000 // this polygon can be lit by stencil shadowing
#define SURF_WATERALPHA 0x4000 // this polygon's alpha is modulated by r_wateralpha
// set if animated or there is an alternate frame set
// (this is an optimization in the renderer)
int animated;
- // the current texture frames in animation
- // (index with entity frame != 0)
- struct texture_s *currentframe[2];
+ // the current texture frame in animation
+ struct texture_s *currentframe;
+ // current alpha of the texture
+ float currentalpha;
}
texture_t;
// neighboring surfaces (one per poly_numverts)
struct msurface_s **neighborsurfaces;
+ // currently used only for generating static shadow volumes
+ int castshadow;
// these are regenerated every frame
// lighting info
vec3_t maxs;
// leaf specific
- // potentially visible if current (r_pvsframecount)
+ // next leaf in pvschain
+ struct mleaf_s *pvschain;
+ // potentially visible if current (model->pvsframecount)
int pvsframe;
+ // visible if marked current (r_framecount)
+ int visframe;
// used by certain worldnode variants to avoid processing the same leaf twice in a frame
int worldnodeframe;
// used by polygon-through-portals visibility checker
// maximum extent of the light for culling purposes
float cullradius;
float cullradius2;
+ /*
// surfaces this shines on
int numsurfaces;
msurface_t **surfaces;
//svbspmesh_t *shadowvolume;
//vec3_t shadowvolumemins, shadowvolumemaxs;
shadowmesh_t *shadowvolume;
+ */
}
mlight_t;