DarkPlaces
Game engine based on the Quake 1 engine by id Software, developed by LadyHavoc
 
r_qshader.h File Reference
#include "qtypes.h"
+ Include dependency graph for r_qshader.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  q3shaderinfo_deform_t
 
struct  q3shaderinfo_layer_alphagen_t
 
struct  q3shaderinfo_layer_rgbgen_t
 
struct  q3shaderinfo_layer_t
 
struct  q3shaderinfo_layer_tcgen_t
 
struct  q3shaderinfo_layer_tcmod_t
 
struct  shader_t
 
struct  texture_shaderpass_t
 

Macros

#define Q3ALPHAGEN_MAXPARMS   1
 
#define Q3DEFORM_MAXPARMS   3
 
#define Q3MAXDEFORMS   4
 
#define Q3MAXTCMODS   8
 
#define Q3PATHLENGTH   64
 
#define Q3RGBGEN_MAXPARMS   3
 
#define Q3SHADER_MAXLAYERS   8
 
#define Q3SHADERINFO_COMPARE_END   rtlightambient
 
#define Q3SHADERINFO_COMPARE_START   surfaceparms
 
#define Q3TCGEN_MAXPARMS   6
 
#define Q3TCMOD_MAXPARMS   6
 
#define Q3TEXTUREFLAG_CAMERA   2048
 
#define Q3TEXTUREFLAG_NOPICMIP   16
 
#define Q3TEXTUREFLAG_POLYGONOFFSET   32
 
#define Q3TEXTUREFLAG_REFLECTION   512
 
#define Q3TEXTUREFLAG_REFRACTION   256
 
#define Q3TEXTUREFLAG_TRANSPARENTSORT   4096
 
#define Q3TEXTUREFLAG_TWOSIDED   1
 
#define Q3TEXTUREFLAG_WATERSHADER   1024
 
#define Q3WAVEFUNC_USER_COUNT   4
 
#define Q3WAVEFUNC_USER_SHIFT   8
 
#define Q3WAVEPARMS   4
 
#define TEXTURE_MAXFRAMES   64
 

Typedefs

typedef int q3wavefunc_t
 

Enumerations

enum  dpoffsetmapping_technique_t { OFFSETMAPPING_OFF , OFFSETMAPPING_DEFAULT , OFFSETMAPPING_LINEAR , OFFSETMAPPING_RELIEF }
 
enum  dptransparentsortcategory_t { TRANSPARENTSORT_SKY , TRANSPARENTSORT_DISTANCE , TRANSPARENTSORT_HUD }
 
enum  q3alphagen_t {
  Q3ALPHAGEN_IDENTITY , Q3ALPHAGEN_CONST , Q3ALPHAGEN_ENTITY , Q3ALPHAGEN_LIGHTINGSPECULAR ,
  Q3ALPHAGEN_ONEMINUSENTITY , Q3ALPHAGEN_ONEMINUSVERTEX , Q3ALPHAGEN_PORTAL , Q3ALPHAGEN_VERTEX ,
  Q3ALPHAGEN_WAVE , Q3ALPHAGEN_COUNT
}
 
enum  q3deform_t {
  Q3DEFORM_NONE , Q3DEFORM_PROJECTIONSHADOW , Q3DEFORM_AUTOSPRITE , Q3DEFORM_AUTOSPRITE2 ,
  Q3DEFORM_TEXT0 , Q3DEFORM_TEXT1 , Q3DEFORM_TEXT2 , Q3DEFORM_TEXT3 ,
  Q3DEFORM_TEXT4 , Q3DEFORM_TEXT5 , Q3DEFORM_TEXT6 , Q3DEFORM_TEXT7 ,
  Q3DEFORM_BULGE , Q3DEFORM_WAVE , Q3DEFORM_NORMAL , Q3DEFORM_MOVE ,
  Q3DEFORM_COUNT
}
 
enum  q3rgbgen_t {
  Q3RGBGEN_IDENTITY , Q3RGBGEN_CONST , Q3RGBGEN_ENTITY , Q3RGBGEN_EXACTVERTEX ,
  Q3RGBGEN_IDENTITYLIGHTING , Q3RGBGEN_LIGHTINGDIFFUSE , Q3RGBGEN_ONEMINUSENTITY , Q3RGBGEN_ONEMINUSVERTEX ,
  Q3RGBGEN_VERTEX , Q3RGBGEN_WAVE , Q3RGBGEN_COUNT
}
 
enum  q3tcgen_t {
  Q3TCGEN_NONE , Q3TCGEN_TEXTURE , Q3TCGEN_ENVIRONMENT , Q3TCGEN_LIGHTMAP ,
  Q3TCGEN_VECTOR , Q3TCGEN_COUNT
}
 
enum  q3tcmod_t {
  Q3TCMOD_NONE , Q3TCMOD_ENTITYTRANSLATE , Q3TCMOD_ROTATE , Q3TCMOD_SCALE ,
  Q3TCMOD_SCROLL , Q3TCMOD_STRETCH , Q3TCMOD_TRANSFORM , Q3TCMOD_TURBULENT ,
  Q3TCMOD_PAGE , Q3TCMOD_COUNT
}
 
enum  q3wavefunc_e {
  Q3WAVEFUNC_NONE , Q3WAVEFUNC_INVERSESAWTOOTH , Q3WAVEFUNC_NOISE , Q3WAVEFUNC_SAWTOOTH ,
  Q3WAVEFUNC_SIN , Q3WAVEFUNC_SQUARE , Q3WAVEFUNC_TRIANGLE , Q3WAVEFUNC_COUNT
}
 

Macro Definition Documentation

◆ Q3ALPHAGEN_MAXPARMS

#define Q3ALPHAGEN_MAXPARMS   1

Definition at line 23 of file r_qshader.h.

Referenced by Mod_LoadQ3Shaders().

◆ Q3DEFORM_MAXPARMS

#define Q3DEFORM_MAXPARMS   3

Definition at line 20 of file r_qshader.h.

Referenced by Mod_LoadQ3Shaders().

◆ Q3MAXDEFORMS

#define Q3MAXDEFORMS   4

Definition at line 27 of file r_qshader.h.

Referenced by Mod_FindPotentialDeforms(), and Mod_LoadQ3Shaders().

◆ Q3MAXTCMODS

#define Q3MAXTCMODS   8

Definition at line 26 of file r_qshader.h.

Referenced by Mod_CreateShaderPassFromQ3ShaderLayer(), and Mod_LoadQ3Shaders().

◆ Q3PATHLENGTH

#define Q3PATHLENGTH   64

Definition at line 17 of file r_qshader.h.

Referenced by Mod_LoadQ3Shaders().

◆ Q3RGBGEN_MAXPARMS

#define Q3RGBGEN_MAXPARMS   3

Definition at line 22 of file r_qshader.h.

Referenced by Mod_LoadQ3Shaders().

◆ Q3SHADER_MAXLAYERS

#define Q3SHADER_MAXLAYERS   8

Definition at line 21 of file r_qshader.h.

Referenced by Mod_LoadQ3Shaders(), and mod_newmap().

◆ Q3SHADERINFO_COMPARE_END

#define Q3SHADERINFO_COMPARE_END   rtlightambient

Definition at line 256 of file r_qshader.h.

◆ Q3SHADERINFO_COMPARE_START

#define Q3SHADERINFO_COMPARE_START   surfaceparms

Definition at line 201 of file r_qshader.h.

◆ Q3TCGEN_MAXPARMS

#define Q3TCGEN_MAXPARMS   6

Definition at line 24 of file r_qshader.h.

Referenced by Mod_LoadQ3Shaders().

◆ Q3TCMOD_MAXPARMS

#define Q3TCMOD_MAXPARMS   6

Definition at line 25 of file r_qshader.h.

Referenced by Mod_LoadQ3Shaders().

◆ Q3TEXTUREFLAG_CAMERA

#define Q3TEXTUREFLAG_CAMERA   2048

Definition at line 14 of file r_qshader.h.

Referenced by Mod_LoadQ3Shaders(), and Mod_LoadTextureFromQ3Shader().

◆ Q3TEXTUREFLAG_NOPICMIP

#define Q3TEXTUREFLAG_NOPICMIP   16

Definition at line 9 of file r_qshader.h.

Referenced by Mod_LoadQ3Shaders().

◆ Q3TEXTUREFLAG_POLYGONOFFSET

#define Q3TEXTUREFLAG_POLYGONOFFSET   32

Definition at line 10 of file r_qshader.h.

Referenced by Mod_LoadQ3Shaders(), and Mod_LoadTextureFromQ3Shader().

◆ Q3TEXTUREFLAG_REFLECTION

#define Q3TEXTUREFLAG_REFLECTION   512

Definition at line 12 of file r_qshader.h.

Referenced by Mod_LoadQ3Shaders(), and Mod_LoadTextureFromQ3Shader().

◆ Q3TEXTUREFLAG_REFRACTION

#define Q3TEXTUREFLAG_REFRACTION   256

Definition at line 11 of file r_qshader.h.

Referenced by Mod_LoadQ3Shaders(), and Mod_LoadTextureFromQ3Shader().

◆ Q3TEXTUREFLAG_TRANSPARENTSORT

#define Q3TEXTUREFLAG_TRANSPARENTSORT   4096

Definition at line 15 of file r_qshader.h.

Referenced by Mod_LoadQ3Shaders().

◆ Q3TEXTUREFLAG_TWOSIDED

#define Q3TEXTUREFLAG_TWOSIDED   1

Definition at line 8 of file r_qshader.h.

Referenced by Mod_LoadQ3Shaders(), and Mod_LoadTextureFromQ3Shader().

◆ Q3TEXTUREFLAG_WATERSHADER

#define Q3TEXTUREFLAG_WATERSHADER   1024

Definition at line 13 of file r_qshader.h.

Referenced by Mod_LoadQ3Shaders(), and Mod_LoadTextureFromQ3Shader().

◆ Q3WAVEFUNC_USER_COUNT

#define Q3WAVEFUNC_USER_COUNT   4

Definition at line 42 of file r_qshader.h.

Referenced by R_EvaluateQ3WaveFunc(), and R_TestQ3WaveFunc().

◆ Q3WAVEFUNC_USER_SHIFT

#define Q3WAVEFUNC_USER_SHIFT   8

◆ Q3WAVEPARMS

#define Q3WAVEPARMS   4

Definition at line 19 of file r_qshader.h.

Referenced by Mod_LoadQ3Shaders().

◆ TEXTURE_MAXFRAMES

#define TEXTURE_MAXFRAMES   64

Definition at line 18 of file r_qshader.h.

Referenced by Mod_LoadQ3Shaders().

Typedef Documentation

◆ q3wavefunc_t

typedef int q3wavefunc_t

Definition at line 41 of file r_qshader.h.

Enumeration Type Documentation

◆ dpoffsetmapping_technique_t

Enumerator
OFFSETMAPPING_OFF 
OFFSETMAPPING_DEFAULT 
OFFSETMAPPING_LINEAR 
OFFSETMAPPING_RELIEF 

Definition at line 183 of file r_qshader.h.

184{
185 OFFSETMAPPING_OFF, // none
186 OFFSETMAPPING_DEFAULT, // cvar-set
187 OFFSETMAPPING_LINEAR, // linear
188 OFFSETMAPPING_RELIEF // relief
dpoffsetmapping_technique_t
Definition r_qshader.h:184
@ OFFSETMAPPING_DEFAULT
Definition r_qshader.h:186
@ OFFSETMAPPING_OFF
Definition r_qshader.h:185
@ OFFSETMAPPING_LINEAR
Definition r_qshader.h:187
@ OFFSETMAPPING_RELIEF
Definition r_qshader.h:188

◆ dptransparentsortcategory_t

Enumerator
TRANSPARENTSORT_SKY 
TRANSPARENTSORT_DISTANCE 
TRANSPARENTSORT_HUD 

Definition at line 191 of file r_qshader.h.

192{
dptransparentsortcategory_t
Definition r_qshader.h:192
@ TRANSPARENTSORT_DISTANCE
Definition r_qshader.h:194
@ TRANSPARENTSORT_SKY
Definition r_qshader.h:193
@ TRANSPARENTSORT_HUD
Definition r_qshader.h:195

◆ q3alphagen_t

Enumerator
Q3ALPHAGEN_IDENTITY 
Q3ALPHAGEN_CONST 
Q3ALPHAGEN_ENTITY 
Q3ALPHAGEN_LIGHTINGSPECULAR 
Q3ALPHAGEN_ONEMINUSENTITY 
Q3ALPHAGEN_ONEMINUSVERTEX 
Q3ALPHAGEN_PORTAL 
Q3ALPHAGEN_VERTEX 
Q3ALPHAGEN_WAVE 
Q3ALPHAGEN_COUNT 

Definition at line 83 of file r_qshader.h.

84{
95}
@ Q3ALPHAGEN_LIGHTINGSPECULAR
Definition r_qshader.h:88
@ Q3ALPHAGEN_COUNT
Definition r_qshader.h:94
@ Q3ALPHAGEN_ONEMINUSENTITY
Definition r_qshader.h:89
@ Q3ALPHAGEN_WAVE
Definition r_qshader.h:93
@ Q3ALPHAGEN_ONEMINUSVERTEX
Definition r_qshader.h:90
@ Q3ALPHAGEN_IDENTITY
Definition r_qshader.h:85
@ Q3ALPHAGEN_VERTEX
Definition r_qshader.h:92
@ Q3ALPHAGEN_PORTAL
Definition r_qshader.h:91
@ Q3ALPHAGEN_CONST
Definition r_qshader.h:86
@ Q3ALPHAGEN_ENTITY
Definition r_qshader.h:87

◆ q3deform_t

enum q3deform_t
Enumerator
Q3DEFORM_NONE 
Q3DEFORM_PROJECTIONSHADOW 
Q3DEFORM_AUTOSPRITE 
Q3DEFORM_AUTOSPRITE2 
Q3DEFORM_TEXT0 
Q3DEFORM_TEXT1 
Q3DEFORM_TEXT2 
Q3DEFORM_TEXT3 
Q3DEFORM_TEXT4 
Q3DEFORM_TEXT5 
Q3DEFORM_TEXT6 
Q3DEFORM_TEXT7 
Q3DEFORM_BULGE 
Q3DEFORM_WAVE 
Q3DEFORM_NORMAL 
Q3DEFORM_MOVE 
Q3DEFORM_COUNT 

Definition at line 45 of file r_qshader.h.

46{
64}
@ Q3DEFORM_NORMAL
Definition r_qshader.h:61
@ Q3DEFORM_TEXT3
Definition r_qshader.h:54
@ Q3DEFORM_TEXT5
Definition r_qshader.h:56
@ Q3DEFORM_TEXT0
Definition r_qshader.h:51
@ Q3DEFORM_AUTOSPRITE
Definition r_qshader.h:49
@ Q3DEFORM_PROJECTIONSHADOW
Definition r_qshader.h:48
@ Q3DEFORM_WAVE
Definition r_qshader.h:60
@ Q3DEFORM_TEXT1
Definition r_qshader.h:52
@ Q3DEFORM_TEXT2
Definition r_qshader.h:53
@ Q3DEFORM_NONE
Definition r_qshader.h:47
@ Q3DEFORM_AUTOSPRITE2
Definition r_qshader.h:50
@ Q3DEFORM_COUNT
Definition r_qshader.h:63
@ Q3DEFORM_TEXT7
Definition r_qshader.h:58
@ Q3DEFORM_MOVE
Definition r_qshader.h:62
@ Q3DEFORM_TEXT6
Definition r_qshader.h:57
@ Q3DEFORM_TEXT4
Definition r_qshader.h:55
@ Q3DEFORM_BULGE
Definition r_qshader.h:59

◆ q3rgbgen_t

enum q3rgbgen_t
Enumerator
Q3RGBGEN_IDENTITY 
Q3RGBGEN_CONST 
Q3RGBGEN_ENTITY 
Q3RGBGEN_EXACTVERTEX 
Q3RGBGEN_IDENTITYLIGHTING 
Q3RGBGEN_LIGHTINGDIFFUSE 
Q3RGBGEN_ONEMINUSENTITY 
Q3RGBGEN_ONEMINUSVERTEX 
Q3RGBGEN_VERTEX 
Q3RGBGEN_WAVE 
Q3RGBGEN_COUNT 

Definition at line 67 of file r_qshader.h.

68{
80}
@ Q3RGBGEN_VERTEX
Definition r_qshader.h:77
@ Q3RGBGEN_LIGHTINGDIFFUSE
Definition r_qshader.h:74
@ Q3RGBGEN_CONST
Definition r_qshader.h:70
@ Q3RGBGEN_COUNT
Definition r_qshader.h:79
@ Q3RGBGEN_WAVE
Definition r_qshader.h:78
@ Q3RGBGEN_IDENTITYLIGHTING
Definition r_qshader.h:73
@ Q3RGBGEN_ONEMINUSENTITY
Definition r_qshader.h:75
@ Q3RGBGEN_IDENTITY
Definition r_qshader.h:69
@ Q3RGBGEN_ONEMINUSVERTEX
Definition r_qshader.h:76
@ Q3RGBGEN_ENTITY
Definition r_qshader.h:71
@ Q3RGBGEN_EXACTVERTEX
Definition r_qshader.h:72

◆ q3tcgen_t

enum q3tcgen_t
Enumerator
Q3TCGEN_NONE 
Q3TCGEN_TEXTURE 
Q3TCGEN_ENVIRONMENT 
Q3TCGEN_LIGHTMAP 
Q3TCGEN_VECTOR 
Q3TCGEN_COUNT 

Definition at line 98 of file r_qshader.h.

99{
101 Q3TCGEN_TEXTURE, // very common
102 Q3TCGEN_ENVIRONMENT, // common
106}
@ Q3TCGEN_COUNT
Definition r_qshader.h:105
@ Q3TCGEN_VECTOR
Definition r_qshader.h:104
@ Q3TCGEN_NONE
Definition r_qshader.h:100
@ Q3TCGEN_ENVIRONMENT
Definition r_qshader.h:102
@ Q3TCGEN_LIGHTMAP
Definition r_qshader.h:103
@ Q3TCGEN_TEXTURE
Definition r_qshader.h:101

◆ q3tcmod_t

enum q3tcmod_t
Enumerator
Q3TCMOD_NONE 
Q3TCMOD_ENTITYTRANSLATE 
Q3TCMOD_ROTATE 
Q3TCMOD_SCALE 
Q3TCMOD_SCROLL 
Q3TCMOD_STRETCH 
Q3TCMOD_TRANSFORM 
Q3TCMOD_TURBULENT 
Q3TCMOD_PAGE 
Q3TCMOD_COUNT 

Definition at line 109 of file r_qshader.h.

110{
121}
@ Q3TCMOD_SCALE
Definition r_qshader.h:114
@ Q3TCMOD_ROTATE
Definition r_qshader.h:113
@ Q3TCMOD_ENTITYTRANSLATE
Definition r_qshader.h:112
@ Q3TCMOD_TRANSFORM
Definition r_qshader.h:117
@ Q3TCMOD_SCROLL
Definition r_qshader.h:115
@ Q3TCMOD_PAGE
Definition r_qshader.h:119
@ Q3TCMOD_TURBULENT
Definition r_qshader.h:118
@ Q3TCMOD_STRETCH
Definition r_qshader.h:116
@ Q3TCMOD_NONE
Definition r_qshader.h:111
@ Q3TCMOD_COUNT
Definition r_qshader.h:120

◆ q3wavefunc_e

Enumerator
Q3WAVEFUNC_NONE 
Q3WAVEFUNC_INVERSESAWTOOTH 
Q3WAVEFUNC_NOISE 
Q3WAVEFUNC_SAWTOOTH 
Q3WAVEFUNC_SIN 
Q3WAVEFUNC_SQUARE 
Q3WAVEFUNC_TRIANGLE 
Q3WAVEFUNC_COUNT 

Definition at line 29 of file r_qshader.h.

30{
39}
@ Q3WAVEFUNC_INVERSESAWTOOTH
Definition r_qshader.h:32
@ Q3WAVEFUNC_SAWTOOTH
Definition r_qshader.h:34
@ Q3WAVEFUNC_TRIANGLE
Definition r_qshader.h:37
@ Q3WAVEFUNC_NOISE
Definition r_qshader.h:33
@ Q3WAVEFUNC_COUNT
Definition r_qshader.h:38
@ Q3WAVEFUNC_NONE
Definition r_qshader.h:31
@ Q3WAVEFUNC_SIN
Definition r_qshader.h:35
@ Q3WAVEFUNC_SQUARE
Definition r_qshader.h:36