Added screensapce decal system and stamp placement system in Radiant.

This commit is contained in:
Justin Marshall
2026-05-22 07:54:36 -07:00
parent e8ea0567b0
commit f2e8b0b45e
13 changed files with 962 additions and 32 deletions
+20
View File
@@ -579,6 +579,18 @@ typedef struct modelTrace_s {
#endif
} modelTrace_t;
typedef struct renderWorldDecal_s {
idStr material;
idVec3 origin;
idVec3 normal;
idVec3 axisU;
idVec3 axisV;
float size;
float depth;
float opacity;
idVec4 color;
} renderWorldDecal_t;
#ifdef QUAKE4
// RAVEN BEGIN
@@ -817,6 +829,14 @@ public:
// Traces vs the world model bsp tree.
virtual bool FastWorldTrace(modelTrace_t& trace, const idVec3& start, const idVec3& end) const = 0;
// Screen-space world decals consumed by the path tracer.
virtual void ClearWorldDecals() = 0;
virtual int AddWorldDecal(const renderWorldDecal_t& decal) = 0;
virtual void RemoveWorldDecal(int decalIndex) = 0;
virtual int NumWorldDecals() const = 0;
virtual const renderWorldDecal_t* GetWorldDecal(int decalIndex) const = 0;
virtual void SubmitWorldDecalsToScreenSpace() const = 0;
//-------------- Demo Control -----------------
// Writes a loadmap command to the demo, and clears archive counters.