// This file is distributed under a BSD license. See LICENSE.txt for details. vs.2.0 // material 2.0: texture pass (vertex shader) // flag data layout, constants flags Flags _pad[7] TexFlags[4] TexScale[4] LgtFlags[4] LgtScale[4] SRT1[9] SRT2[5] ColC[4] TexUsed[4] LgtUsed[4] SrcScale[4] SrcScale2[4] LgtType endflags alias mWVP = c0 // inputs alias vPos = v0,vUV = v1 dcl_position vPos dcl_texcoord0 vUV // actual shader code: position m4x4 oPos,vPos,mWVP // actual shader code: texture coordinates imov i1,0 for i=0..3 if TexUsed[i][0] if TexFlags[i][12..15] == 1 // scaled temp scale vmov scale,SrcScale[i] mul oT0+i1.xy,vUV,scale elif TexFlags[i][12..15] == 2 // trans1 dp4 oT0+i1.x,vUV,c8 dp4 oT0+i1.y,vUV,c9 elif TexFlags[i][12..15] == 3 // trans2 dp4 oT0+i1.x,vUV,c10 dp4 oT0+i1.y,vUV,c11 else // untransformed mov oT0+i1.xy,vUV endif iadd i1,1 endif endfor