Richard Boegli's CnC_Generals_Zero_Hour Fork WIP
This is documentation of Richard Boegil's Zero Hour Fork
 
Loading...
Searching...
No Matches
shader.cpp File Reference
#include "shader.h"
#include "w3d_file.h"
#include "wwdebug.h"
#include "Dx8Wrapper.h"
#include "dx8caps.h"

Go to the source code of this file.

Classes

class  Blend
 

Macros

#define SC_OPAQUE
 
#define SC_ADDITIVE
 
#define SC_BUMPENVMAP
 
#define SC_ALPHA
 
#define SC_MULTIPLICATIVE
 
#define SC_OP_2D
 
#define SC_OP_SPRITE
 
#define SC_ADD_2D
 
#define SC_ALPHA_2D
 
#define SC_ADD_SPRITE
 
#define SC_ALPHA_SPRITE
 
#define SC_OPAQUE_SOLID
 
#define SC_ADDITIVE_SOLID
 
#define SC_ALPHA_SOLID
 
#define SC_ATEST_2D
 
#define SC_ATEST_SPRITE
 
#define SC_ATESTBLEND_2D
 
#define SC_ATESTBLEND_SPRITE
 
#define SC_SCREEN_2D
 
#define SC_SCREEN_SPRITE
 
#define SC_MUL_2D
 
#define SC_MUL_SPRITE
 

Variables

unsigned long _PolygonCullMode = D3DCULL_CW
 
const Blend srcBlendLUT [ShaderClass::SRCBLEND_MAX]
 
const Blend dstBlendLUT [ShaderClass::DSTBLEND_MAX]
 

Macro Definition Documentation

◆ SC_ADD_2D

#define SC_ADD_2D
Value:
( SHADE_CNST(PASS_ALWAYS, DEPTH_WRITE_DISABLE, COLOR_WRITE_ENABLE, SRCBLEND_ONE, \
DSTBLEND_ONE, FOG_DISABLE, GRADIENT_DISABLE, SECONDARY_GRADIENT_DISABLE, TEXTURING_ENABLE, \
ALPHATEST_DISABLE, CULL_MODE_ENABLE, \
DETAILCOLOR_DISABLE, DETAILALPHA_DISABLE) )
#define SHADE_CNST(depth_compare, depth_mask, color_mask, src_blend, dst_blend, fog, pri_grad, sec_grad, texture, alpha_test, cullmode, post_det_color, post_det_alpha)
Definition shader.h:76

Definition at line 114 of file shader.cpp.

◆ SC_ADD_SPRITE

#define SC_ADD_SPRITE
Value:
( SHADE_CNST(PASS_LEQUAL, DEPTH_WRITE_DISABLE, COLOR_WRITE_ENABLE, \
SRCBLEND_ONE, DSTBLEND_ONE, FOG_DISABLE, GRADIENT_DISABLE, SECONDARY_GRADIENT_DISABLE, \
TEXTURING_ENABLE, ALPHATEST_DISABLE, CULL_MODE_ENABLE, \
DETAILCOLOR_DISABLE, DETAILALPHA_DISABLE) )

Definition at line 131 of file shader.cpp.

◆ SC_ADDITIVE

#define SC_ADDITIVE
Value:
( SHADE_CNST(PASS_LEQUAL, DEPTH_WRITE_DISABLE, COLOR_WRITE_ENABLE, SRCBLEND_ONE, \
DSTBLEND_ONE, FOG_DISABLE, GRADIENT_MODULATE, SECONDARY_GRADIENT_DISABLE, TEXTURING_ENABLE, \
ALPHATEST_DISABLE, CULL_MODE_ENABLE, \
DETAILCOLOR_DISABLE, DETAILALPHA_DISABLE) )

Definition at line 68 of file shader.cpp.

◆ SC_ADDITIVE_SOLID

#define SC_ADDITIVE_SOLID
Value:
( SHADE_CNST(PASS_LEQUAL, DEPTH_WRITE_DISABLE, COLOR_WRITE_ENABLE, \
SRCBLEND_ONE, DSTBLEND_ONE, FOG_DISABLE, GRADIENT_MODULATE, SECONDARY_GRADIENT_DISABLE, \
TEXTURING_DISABLE, ALPHATEST_DISABLE, CULL_MODE_ENABLE, \
DETAILCOLOR_DISABLE, DETAILALPHA_DISABLE) )

Definition at line 157 of file shader.cpp.

◆ SC_ALPHA

#define SC_ALPHA
Value:
( SHADE_CNST(PASS_LEQUAL, DEPTH_WRITE_DISABLE, COLOR_WRITE_ENABLE, SRCBLEND_SRC_ALPHA, \
DSTBLEND_ONE_MINUS_SRC_ALPHA, FOG_DISABLE, GRADIENT_MODULATE, SECONDARY_GRADIENT_DISABLE, TEXTURING_ENABLE, \
ALPHATEST_DISABLE, CULL_MODE_ENABLE, \
DETAILCOLOR_DISABLE, DETAILALPHA_DISABLE) )

Definition at line 82 of file shader.cpp.

◆ SC_ALPHA_2D

#define SC_ALPHA_2D
Value:
( SHADE_CNST(PASS_ALWAYS, DEPTH_WRITE_DISABLE, COLOR_WRITE_ENABLE, \
SRCBLEND_SRC_ALPHA, DSTBLEND_ONE_MINUS_SRC_ALPHA, FOG_DISABLE, GRADIENT_DISABLE, \
SECONDARY_GRADIENT_DISABLE, TEXTURING_ENABLE, \
ALPHATEST_DISABLE, CULL_MODE_ENABLE, DETAILCOLOR_DISABLE, DETAILALPHA_DISABLE) )

Definition at line 122 of file shader.cpp.

◆ SC_ALPHA_SOLID

#define SC_ALPHA_SOLID
Value:
( SHADE_CNST(PASS_LEQUAL, DEPTH_WRITE_DISABLE, COLOR_WRITE_ENABLE, \
SRCBLEND_SRC_ALPHA, DSTBLEND_ONE_MINUS_SRC_ALPHA, FOG_DISABLE, GRADIENT_MODULATE, \
SECONDARY_GRADIENT_DISABLE, TEXTURING_DISABLE, \
ALPHATEST_DISABLE, CULL_MODE_ENABLE, DETAILCOLOR_DISABLE, DETAILALPHA_DISABLE) )

Definition at line 166 of file shader.cpp.

◆ SC_ALPHA_SPRITE

#define SC_ALPHA_SPRITE
Value:
( SHADE_CNST(PASS_LEQUAL, DEPTH_WRITE_DISABLE, COLOR_WRITE_ENABLE, \
SRCBLEND_SRC_ALPHA, DSTBLEND_ONE_MINUS_SRC_ALPHA, FOG_DISABLE, GRADIENT_DISABLE, \
SECONDARY_GRADIENT_DISABLE, TEXTURING_ENABLE, \
ALPHATEST_DISABLE, CULL_MODE_ENABLE, DETAILCOLOR_DISABLE, DETAILALPHA_DISABLE) )

Definition at line 140 of file shader.cpp.

◆ SC_ATEST_2D

#define SC_ATEST_2D
Value:
( SHADE_CNST(PASS_ALWAYS, DEPTH_WRITE_DISABLE, COLOR_WRITE_ENABLE, \
SRCBLEND_ONE, DSTBLEND_ZERO, FOG_DISABLE, GRADIENT_DISABLE, SECONDARY_GRADIENT_DISABLE, \
TEXTURING_ENABLE, ALPHATEST_ENABLE, CULL_MODE_ENABLE, \
DETAILCOLOR_DISABLE, DETAILALPHA_DISABLE) )

Definition at line 174 of file shader.cpp.

◆ SC_ATEST_SPRITE

#define SC_ATEST_SPRITE
Value:
( SHADE_CNST(PASS_LEQUAL, DEPTH_WRITE_ENABLE, COLOR_WRITE_ENABLE, \
SRCBLEND_ONE, DSTBLEND_ZERO, FOG_DISABLE, GRADIENT_DISABLE, SECONDARY_GRADIENT_DISABLE, \
TEXTURING_ENABLE, ALPHATEST_ENABLE, CULL_MODE_ENABLE, \
DETAILCOLOR_DISABLE, DETAILALPHA_DISABLE) )

Definition at line 183 of file shader.cpp.

◆ SC_ATESTBLEND_2D

#define SC_ATESTBLEND_2D
Value:
( SHADE_CNST(PASS_ALWAYS, DEPTH_WRITE_DISABLE, COLOR_WRITE_ENABLE, \
SRCBLEND_SRC_ALPHA, DSTBLEND_ONE_MINUS_SRC_ALPHA, FOG_DISABLE, GRADIENT_DISABLE, \
SECONDARY_GRADIENT_DISABLE, TEXTURING_ENABLE, \
ALPHATEST_ENABLE, CULL_MODE_ENABLE, DETAILCOLOR_DISABLE, DETAILALPHA_DISABLE) )

Definition at line 192 of file shader.cpp.

◆ SC_ATESTBLEND_SPRITE

#define SC_ATESTBLEND_SPRITE
Value:
( SHADE_CNST(PASS_LEQUAL, DEPTH_WRITE_ENABLE, COLOR_WRITE_ENABLE, \
SRCBLEND_SRC_ALPHA, DSTBLEND_ONE_MINUS_SRC_ALPHA, FOG_DISABLE, GRADIENT_DISABLE, \
SECONDARY_GRADIENT_DISABLE, TEXTURING_ENABLE, \
ALPHATEST_ENABLE, CULL_MODE_ENABLE, DETAILCOLOR_DISABLE, DETAILALPHA_DISABLE) )

Definition at line 201 of file shader.cpp.

◆ SC_BUMPENVMAP

#define SC_BUMPENVMAP
Value:
( SHADE_CNST(PASS_LEQUAL, DEPTH_WRITE_DISABLE, COLOR_WRITE_ENABLE, SRCBLEND_ONE, \
DSTBLEND_ONE, FOG_DISABLE, GRADIENT_BUMPENVMAP, SECONDARY_GRADIENT_DISABLE, TEXTURING_ENABLE, \
ALPHATEST_DISABLE, CULL_MODE_ENABLE, \
DETAILCOLOR_ADD, DETAILALPHA_DISABLE) )

Definition at line 75 of file shader.cpp.

◆ SC_MUL_2D

#define SC_MUL_2D
Value:
( SHADE_CNST(PASS_ALWAYS, DEPTH_WRITE_DISABLE, COLOR_WRITE_ENABLE, SRCBLEND_ZERO, \
DSTBLEND_SRC_COLOR, FOG_DISABLE, GRADIENT_DISABLE, SECONDARY_GRADIENT_DISABLE, TEXTURING_ENABLE, \
ALPHATEST_DISABLE, CULL_MODE_ENABLE, \
DETAILCOLOR_DISABLE, DETAILALPHA_DISABLE) )

Definition at line 226 of file shader.cpp.

◆ SC_MUL_SPRITE

#define SC_MUL_SPRITE
Value:
( SHADE_CNST(PASS_LEQUAL, DEPTH_WRITE_DISABLE, COLOR_WRITE_ENABLE, \
SRCBLEND_ZERO, DSTBLEND_SRC_COLOR, FOG_DISABLE, GRADIENT_DISABLE, SECONDARY_GRADIENT_DISABLE, \
TEXTURING_ENABLE, ALPHATEST_DISABLE, CULL_MODE_ENABLE, \
DETAILCOLOR_DISABLE, DETAILALPHA_DISABLE) )

Definition at line 235 of file shader.cpp.

◆ SC_MULTIPLICATIVE

#define SC_MULTIPLICATIVE
Value:
( SHADE_CNST(PASS_LEQUAL, DEPTH_WRITE_DISABLE, COLOR_WRITE_ENABLE, SRCBLEND_ZERO, \
DSTBLEND_SRC_COLOR, FOG_DISABLE, GRADIENT_MODULATE, SECONDARY_GRADIENT_DISABLE, TEXTURING_ENABLE, \
ALPHATEST_DISABLE, CULL_MODE_ENABLE, \
DETAILCOLOR_DISABLE, DETAILALPHA_DISABLE) )

Definition at line 89 of file shader.cpp.

◆ SC_OP_2D

#define SC_OP_2D
Value:
( SHADE_CNST(PASS_ALWAYS, DEPTH_WRITE_DISABLE, COLOR_WRITE_ENABLE, SRCBLEND_ONE, \
DSTBLEND_ZERO, FOG_DISABLE, GRADIENT_DISABLE, SECONDARY_GRADIENT_DISABLE, TEXTURING_ENABLE, \
ALPHATEST_DISABLE, CULL_MODE_ENABLE, \
DETAILCOLOR_DISABLE, DETAILALPHA_DISABLE) )

Definition at line 97 of file shader.cpp.

◆ SC_OP_SPRITE

#define SC_OP_SPRITE
Value:
( SHADE_CNST(PASS_LEQUAL, DEPTH_WRITE_DISABLE, COLOR_WRITE_ENABLE, SRCBLEND_ONE, \
DSTBLEND_ZERO, FOG_DISABLE, GRADIENT_DISABLE, SECONDARY_GRADIENT_DISABLE, TEXTURING_ENABLE, \
ALPHATEST_DISABLE, CULL_MODE_ENABLE, \
DETAILCOLOR_DISABLE, DETAILALPHA_DISABLE) )

Definition at line 105 of file shader.cpp.

◆ SC_OPAQUE

#define SC_OPAQUE
Value:
( SHADE_CNST(PASS_LEQUAL, DEPTH_WRITE_ENABLE, COLOR_WRITE_ENABLE, SRCBLEND_ONE, \
DSTBLEND_ZERO, FOG_DISABLE, GRADIENT_MODULATE, SECONDARY_GRADIENT_DISABLE, TEXTURING_ENABLE, \
ALPHATEST_DISABLE, CULL_MODE_ENABLE, \
DETAILCOLOR_DISABLE, DETAILALPHA_DISABLE) )

Definition at line 61 of file shader.cpp.

◆ SC_OPAQUE_SOLID

#define SC_OPAQUE_SOLID
Value:
( SHADE_CNST(PASS_LEQUAL, DEPTH_WRITE_ENABLE, COLOR_WRITE_ENABLE, \
SRCBLEND_ONE, DSTBLEND_ZERO, FOG_DISABLE, GRADIENT_MODULATE, SECONDARY_GRADIENT_DISABLE, \
TEXTURING_DISABLE, ALPHATEST_DISABLE, CULL_MODE_ENABLE, \
DETAILCOLOR_DISABLE, DETAILALPHA_DISABLE) )

Definition at line 148 of file shader.cpp.

◆ SC_SCREEN_2D

#define SC_SCREEN_2D
Value:
( SHADE_CNST(PASS_ALWAYS, DEPTH_WRITE_DISABLE, COLOR_WRITE_ENABLE, SRCBLEND_ONE, \
DSTBLEND_ONE_MINUS_SRC_COLOR, FOG_DISABLE, GRADIENT_DISABLE, SECONDARY_GRADIENT_DISABLE, \
TEXTURING_ENABLE, ALPHATEST_DISABLE, CULL_MODE_ENABLE, \
DETAILCOLOR_DISABLE, DETAILALPHA_DISABLE) )

Definition at line 209 of file shader.cpp.

◆ SC_SCREEN_SPRITE

#define SC_SCREEN_SPRITE
Value:
( SHADE_CNST(PASS_LEQUAL, DEPTH_WRITE_DISABLE, COLOR_WRITE_ENABLE, \
SRCBLEND_ONE, DSTBLEND_ONE_MINUS_SRC_COLOR, FOG_DISABLE, GRADIENT_DISABLE, SECONDARY_GRADIENT_DISABLE, \
TEXTURING_ENABLE, ALPHATEST_DISABLE, CULL_MODE_ENABLE, \
DETAILCOLOR_DISABLE, DETAILALPHA_DISABLE) )

Definition at line 218 of file shader.cpp.

Variable Documentation

◆ _PolygonCullMode

unsigned long _PolygonCullMode = D3DCULL_CW

Definition at line 52 of file shader.cpp.

◆ dstBlendLUT

const Blend dstBlendLUT[ShaderClass::DSTBLEND_MAX]
Initial value:
=
{
Blend(D3DBLEND_ZERO, false),
Blend(D3DBLEND_ONE, false),
Blend(D3DBLEND_SRCCOLOR, false),
Blend(D3DBLEND_INVSRCCOLOR, false),
Blend(D3DBLEND_SRCALPHA, true),
Blend(D3DBLEND_INVSRCALPHA, true)
}

Definition at line 386 of file shader.cpp.

◆ srcBlendLUT

const Blend srcBlendLUT[ShaderClass::SRCBLEND_MAX]
Initial value:
=
{
Blend(D3DBLEND_ZERO, false),
Blend(D3DBLEND_ONE, false),
Blend(D3DBLEND_SRCALPHA, true),
Blend(D3DBLEND_DESTCOLOR, true)
}

Definition at line 378 of file shader.cpp.