Implemented screenspace particles.

This commit is contained in:
Justin Marshall
2026-05-24 13:04:31 -07:00
parent ac9c10cc92
commit 56bb2f004f
10 changed files with 712 additions and 20 deletions
+4 -2
View File
@@ -103,7 +103,8 @@ SURFACES
// unique srfTriangles_t
// drawSurf_t are always allocated and freed every frame, they are never cached
static const int DSF_VIEW_INSIDE_SHADOW = 1;
static const int DSF_VIEW_INSIDE_SHADOW = 1;
static const int DSF_SCREEN_SPACE_PARTICLE = 2;
typedef struct drawSurf_s {
const srfTriangles_t *geo;
@@ -910,6 +911,7 @@ extern idCVar r_skipFogLights; // skip all fog lights
extern idCVar r_skipSubviews; // 1 = don't render any mirrors / cameras / etc
extern idCVar r_skipGuiShaders; // 1 = don't render any gui elements on surfaces
extern idCVar r_skipParticles; // 1 = don't render any particles
extern idCVar r_screenSpaceParticles; // 1 = render particles in the D3D12 screen-space pass
extern idCVar r_skipUpdates; // 1 = don't accept any entity or light updates, making everything static
extern idCVar r_skipDeforms; // leave all deform materials in their original state
extern idCVar r_skipDynamicTextures; // don't dynamically create textures
@@ -1199,7 +1201,7 @@ viewEntity_t *R_SetEntityDefViewEntity( idRenderEntityLocal *def );
viewLight_t *R_SetLightDefViewLight( idRenderLightLocal *def );
void R_AddDrawSurf( const srfTriangles_t *tri, const viewEntity_t *space, const renderEntity_t *renderEntity,
const idMaterial *shader, const idScreenRect &scissor );
const idMaterial *shader, const idScreenRect &scissor, int dsFlags = 0 );
void R_LinkLightSurf( const drawSurf_t **link, const srfTriangles_t *tri, const viewEntity_t *space,
const idRenderLightLocal *light, const idMaterial *shader, const idScreenRect &scissor, bool viewInsideShadow );