XML Blends
IMPORTANT
Status: Supported
Minimal version: 1.2
Overview
XML Blends is an alternative shader compilation system, aiming to replace Lua-based compilation. Below is a Lua/XML equivalence example.
- Lua:
lua
function normal(shader, t_base, t_second, t_detail)
shader:begin("accum_volumetric", "accum_volumetric")
:fog(false)
:zb(true, false)
:blend(true, blend.one, blend.one)
:sorting(2, false)
shader:dx10texture("s_lmap", t_base)
shader:dx10texture("s_smap", "null")
shader:dx10texture("s_noise", "fx\\fx_noise")
shader:dx10sampler("smp_rtlinear")
shader:dx10sampler("smp_linear")
shader:dx10sampler("smp_smap")
end- XML:
xml
<w>
<element_0 ps="accum_volumetric" vs="accum_volumetric" fog="0" zread="1" zwrite="0">
<blend status="1" src="one" dest="one" />
<sort status="0" count="2" />
<texture name="s_lmap" rt="t_base" />
<texture name="s_smap" rt="null" />
<texture name="s_noise" rt="fx\\fx_noise" />
<sampler name="smp_rtlinear" />
<sampler name="smp_linear" />
<sampler name="smp_smap" />
</element_0>
</w>Syntax
Tag element_[id]
ps- pixel shader filevs- vertex shader filegs- geometry shader filefog- fog (0/1)zread- zbuffer read (0/1)zwrite- zbuffer write (0/1)
Tag blend
status- enable/disable (0/1)src- input type (zero/one/srccolor/invsrccolor/srcalpha/destalpha/invdestalpha/destcolor/invdestcolor/srcalphasat)dest- output type (zero/one/srccolor/invsrccolor/srcalpha/destalpha/invdestalpha/destcolor/invdestcolor/srcalphasat)
Tag sort
status- enable/disable (0/1)count- priority (number)
Tag flags
dist- enable/disable distort (0/1)emissive- enable/disable emissive (0/1)wmark- enable/disable wmark (0/1)
Tag atoc
status- enable/disable (0/1)
Tag aref
status- enable/disable (0/1)count- count (number)
Tag color
r- enable/disable r-channel write (0/1)g- enable/disable g-channel write (0/1)b- enable/disable b-channel write (0/1)a- enable/disable a-channel write (0/1)
Tag stencil
status- enable/disable (0/1)cmp- (never,less,equal,lessequal,notequal,greater,greaterequal,always)mask- count (number)wmask- count (number)fail- (keep,zero,replace,incrsat,decrsat,invert,incr,decr)pass- (keep,zero,replace,incrsat,decrsat,invert,incr,decr)zfail- (keep,zero,replace,incrsat,decrsat,invert,incr,decr)
Tag ref
value- value (number)
Tag texture
name- texture name
Tag sampler
name- sampler name
Tag cull_mode
mode- (none,cw,ccw)