diff --git a/src/d3d/d3d9matfx.cpp b/src/d3d/d3d9matfx.cpp index ebcb319..b7e0de8 100644 --- a/src/d3d/d3d9matfx.cpp +++ b/src/d3d/d3d9matfx.cpp @@ -30,8 +30,8 @@ enum { VSLOC_texMat = VSLOC_afterLights, - PSLOC_shininess = 0, - PSLOC_colorClamp = 1 + PSLOC_shininess = 1, + PSLOC_colorClamp = 2 }; void @@ -51,9 +51,9 @@ matfxRender_Default(InstanceDataHeader *header, InstanceData *inst, int32 lightB if(inst->material->texture){ d3d::setTexture(0, m->texture); - setPixelShader(default_color_tex_PS); + setPixelShader(default_tex_PS); }else - setPixelShader(default_color_PS); + setPixelShader(default_PS); drawInst(header, inst); } @@ -149,6 +149,9 @@ matfxRenderCB_Shader(Atomic *atomic, InstanceDataHeader *header) vsBits = lightingCB_Shader(atomic); uploadMatrices(atomic->getFrame()->getLTM()); + d3ddevice->SetVertexShaderConstantF(VSLOC_fogData, (float*)&d3dShaderState.fogData, 1); + d3ddevice->SetPixelShaderConstantF(PSLOC_fogColor, (float*)&d3dShaderState.fogColor, 1); + bool normals = !!(atomic->geometry->flags & Geometry::NORMALS); float surfProps[4]; diff --git a/src/d3d/d3d9render.cpp b/src/d3d/d3d9render.cpp index 53deb15..587f112 100644 --- a/src/d3d/d3d9render.cpp +++ b/src/d3d/d3d9render.cpp @@ -138,6 +138,9 @@ defaultRenderCB_Shader(Atomic *atomic, InstanceDataHeader *header) vsBits = lightingCB_Shader(atomic); uploadMatrices(atomic->getFrame()->getLTM()); + d3ddevice->SetVertexShaderConstantF(VSLOC_fogData, (float*)&d3dShaderState.fogData, 1); + d3ddevice->SetPixelShaderConstantF(PSLOC_fogColor, (float*)&d3dShaderState.fogColor, 1); + // Pick a shader if((vsBits & VSLIGHT_MASK) == 0) setVertexShader(default_amb_VS); @@ -166,9 +169,9 @@ defaultRenderCB_Shader(Atomic *atomic, InstanceDataHeader *header) if(inst->material->texture){ d3d::setTexture(0, m->texture); - setPixelShader(default_color_tex_PS); + setPixelShader(default_tex_PS); }else - setPixelShader(default_color_PS); + setPixelShader(default_PS); drawInst(header, inst); inst++; diff --git a/src/d3d/d3ddevice.cpp b/src/d3d/d3ddevice.cpp index 83f3abe..fcba101 100644 --- a/src/d3d/d3ddevice.cpp +++ b/src/d3d/d3ddevice.cpp @@ -71,6 +71,8 @@ struct RwStateCache { }; static RwStateCache rwStateCache; +D3dShaderState d3dShaderState; + #define MAXNUMSTATES (D3DRS_BLENDOPALPHA+1) #define MAXNUMTEXSTATES (D3DTSS_CONSTANT+1) #define MAXNUMSAMPLERSTATES (D3DSAMP_DMAPOFFSET+1) @@ -477,7 +479,8 @@ setRwRenderState(int32 state, void *pvalue) case FOGENABLE: if(rwStateCache.fogenable != bval){ rwStateCache.fogenable = bval; - setRenderState(D3DRS_FOGENABLE, rwStateCache.fogenable); +// setRenderState(D3DRS_FOGENABLE, rwStateCache.fogenable); + d3dShaderState.fogData.disable = bval ? 0.0f : 1.0f; }; break; case FOGCOLOR:{ @@ -489,6 +492,7 @@ setRwRenderState(int32 state, void *pvalue) if(!equal(rwStateCache.fogcolor, c)){ rwStateCache.fogcolor = c; setRenderState(D3DRS_FOGCOLOR, D3DCOLOR_RGBA(c.red, c.green, c.blue, c.alpha)); + convColor(&d3dShaderState.fogColor, &c); }} break; case CULLMODE: if(rwStateCache.cullmode != value){ @@ -686,8 +690,15 @@ beginUpdate(Camera *cam) d3ddevice->SetTransform(D3DTS_PROJECTION, (D3DMATRIX*)proj); // TODO: figure out where this is really done - setRenderState(D3DRS_FOGSTART, *(uint32*)&cam->fogPlane); - setRenderState(D3DRS_FOGEND, *(uint32*)&cam->farPlane); +// setRenderState(D3DRS_FOGSTART, *(uint32*)&cam->fogPlane); +// setRenderState(D3DRS_FOGEND, *(uint32*)&cam->farPlane); + d3dShaderState.fogData.start = cam->fogPlane; + d3dShaderState.fogData.end = cam->farPlane; + d3dShaderState.fogData.range = 1.0f/(cam->fogPlane - cam->farPlane); + d3dShaderState.fogDisable.start = 0.0f; + d3dShaderState.fogDisable.end = 0.0f; + d3dShaderState.fogDisable.range = 0.0f; + d3dShaderState.fogDisable.disable = 1.0f; D3DVIEWPORT9 vp; vp.MinZ = 0.0f; diff --git a/src/d3d/d3dimmed.cpp b/src/d3d/d3dimmed.cpp index c6cc7fc..7d5f284 100644 --- a/src/d3d/d3dimmed.cpp +++ b/src/d3d/d3dimmed.cpp @@ -109,9 +109,9 @@ im2DRenderPrimitive(PrimitiveType primType, void *vertices, int32 numVertices) d3ddevice->SetVertexDeclaration(im2ddecl); if(engine->device.getRenderState(TEXTURERASTER)) - setPixelShader(default_color_tex_PS); + setPixelShader(im2d_tex_PS); else - setPixelShader(default_color_PS); + setPixelShader(im2d_PS); d3d::flushCache(); @@ -163,9 +163,9 @@ im2DRenderIndexedPrimitive(PrimitiveType primType, d3ddevice->SetVertexDeclaration(im2ddecl); if(engine->device.getRenderState(TEXTURERASTER)) - setPixelShader(default_color_tex_PS); + setPixelShader(im2d_tex_PS); else - setPixelShader(default_color_PS); + setPixelShader(im2d_PS); d3d::flushCache(); @@ -250,6 +250,13 @@ im3DTransform(void *vertices, int32 numVertices, Matrix *world) else uploadMatrices(world); + d3ddevice->SetVertexShaderConstantF(VSLOC_fogData, (float*)&d3dShaderState.fogData, 1); + d3ddevice->SetPixelShaderConstantF(PSLOC_fogColor, (float*)&d3dShaderState.fogColor, 1); + static float surfprops[4] = { 0.0f, 0.0f, 0.0f, 1.0f }; + static float white[4] = { 1.0f, 1.0f, 1.0f, 1.0f }; + d3ddevice->SetVertexShaderConstantF(VSLOC_surfProps, surfprops, 1); + d3ddevice->SetVertexShaderConstantF(VSLOC_matColor, white, 1); + uint8 *lockedvertices = lockVertices(im3dvertbuf, 0, numVertices*sizeof(Im3DVertex), D3DLOCK_DISCARD); memcpy(lockedvertices, vertices, numVertices*sizeof(Im3DVertex)); unlockVertices(im3dvertbuf); @@ -257,6 +264,8 @@ im3DTransform(void *vertices, int32 numVertices, Matrix *world) d3ddevice->SetStreamSource(0, im3dvertbuf, 0, sizeof(Im3DVertex)); d3ddevice->SetVertexDeclaration(im3ddecl); + setVertexShader(default_amb_VS); + num3DVertices = numVertices; } @@ -270,9 +279,9 @@ im3DRenderIndexed(PrimitiveType primType, void *indices, int32 numIndices) d3ddevice->SetIndices(im3dindbuf); if(engine->device.getRenderState(TEXTURERASTER)) - setPixelShader(default_color_tex_PS); + setPixelShader(default_tex_PS); else - setPixelShader(default_color_PS); + setPixelShader(default_PS); d3d::flushCache(); @@ -302,6 +311,7 @@ im3DRenderIndexed(PrimitiveType primType, void *indices, int32 numIndices) 0, num3DVertices, 0, primCount); + setVertexShader(nil); setPixelShader(nil); } diff --git a/src/d3d/d3drender.cpp b/src/d3d/d3drender.cpp index 4a0b177..8f1b6f9 100644 --- a/src/d3d/d3drender.cpp +++ b/src/d3d/d3drender.cpp @@ -25,8 +25,11 @@ IDirect3DDevice9 *d3ddevice = nil; void *default_amb_VS; void *default_amb_dir_VS; void *default_all_VS; -void *default_color_PS; -void *default_color_tex_PS; +void *default_PS; +void *default_tex_PS; +void *im2d_PS; +void *im2d_tex_PS; + void createDefaultShaders(void) @@ -52,15 +55,28 @@ createDefaultShaders(void) { static -#include "shaders/default_color_PS.h" - default_color_PS = createPixelShader((void*)PS_NAME); - assert(default_color_PS); +#include "shaders/default_PS.h" + default_PS = createPixelShader((void*)PS_NAME); + assert(default_PS); } { static -#include "shaders/default_color_tex_PS.h" - default_color_tex_PS = createPixelShader((void*)PS_NAME); - assert(default_color_tex_PS); +#include "shaders/default_tex_PS.h" + default_tex_PS = createPixelShader((void*)PS_NAME); + assert(default_tex_PS); + } + + { + static +#include "shaders/im2d_PS.h" + im2d_PS = createPixelShader((void*)PS_NAME); + assert(im2d_PS); + } + { + static +#include "shaders/im2d_tex_PS.h" + im2d_tex_PS = createPixelShader((void*)PS_NAME); + assert(im2d_tex_PS); } } @@ -74,10 +90,15 @@ destroyDefaultShaders(void) destroyVertexShader(default_all_VS); default_all_VS = nil; - destroyPixelShader(default_color_PS); - default_color_PS = nil; - destroyPixelShader(default_color_tex_PS); - default_color_tex_PS = nil; + destroyPixelShader(default_PS); + default_PS = nil; + destroyPixelShader(default_tex_PS); + default_tex_PS = nil; + + destroyPixelShader(im2d_PS); + im2d_PS = nil; + destroyPixelShader(im2d_tex_PS); + im2d_tex_PS = nil; } diff --git a/src/d3d/rwd3d.h b/src/d3d/rwd3d.h index d049ab9..a9d3067 100644 --- a/src/d3d/rwd3d.h +++ b/src/d3d/rwd3d.h @@ -194,6 +194,20 @@ void destroyPixelShader(void *shader); * Vertex shaders and common pipeline stuff */ +struct D3dShaderState +{ + // for VS + struct { + float32 start; + float32 end; + float32 range; // 1/(start-end) + float32 disable; // lower clamp + } fogData, fogDisable; + // for PS + RGBAf fogColor; +}; +extern D3dShaderState d3dShaderState; + // Standard Vertex shader locations enum { @@ -202,12 +216,15 @@ enum VSLOC_normal = 8, VSLOC_matColor = 12, VSLOC_surfProps = 13, - VSLOC_ambLight = 14, - VSLOC_lightOffset = 15, - VSLOC_lights = 16, + VSLOC_fogData = 14, + VSLOC_ambLight = 15, + VSLOC_lightOffset = 16, + VSLOC_lights = 17, VSLOC_afterLights = VSLOC_lights + 8*3, VSLOC_numLights = 0, + + PSLOC_fogColor = 0 }; // Vertex shader bits @@ -232,8 +249,10 @@ int32 uploadLights(WorldLights *lightData); // called by lightingCB_Shader extern void *default_amb_VS; extern void *default_amb_dir_VS; extern void *default_all_VS; -extern void *default_color_PS; -extern void *default_color_tex_PS; +extern void *default_PS; +extern void *default_tex_PS; +extern void *im2d_PS; +extern void *im2d_tex_PS; void createDefaultShaders(void); void destroyDefaultShaders(void); diff --git a/src/d3d/shaders/default_PS.hlsl b/src/d3d/shaders/default_PS.hlsl new file mode 100644 index 0000000..eaf279d --- /dev/null +++ b/src/d3d/shaders/default_PS.hlsl @@ -0,0 +1,19 @@ +struct VS_out { + float4 Position : POSITION; + float3 TexCoord0 : TEXCOORD0; + float4 Color : COLOR0; +}; + +sampler2D tex0 : register(s0); + +float4 fogColor : register(c0); + +float4 main(VS_out input) : COLOR +{ + float4 color = input.Color; +#ifdef TEX + color *= tex2D(tex0, input.TexCoord0.xy); +#endif + color.rgb = lerp(fogColor.rgb, color.rgb, input.TexCoord0.z); + return color; +} diff --git a/src/d3d/shaders/default_VS.hlsl b/src/d3d/shaders/default_VS.hlsl index 86658eb..73a404d 100644 --- a/src/d3d/shaders/default_VS.hlsl +++ b/src/d3d/shaders/default_VS.hlsl @@ -1,26 +1,4 @@ -float4x4 combinedMat : register(c0); -float4x4 worldMat : register(c4); -float3x3 normalMat : register(c8); -float4 matCol : register(c12); -float4 surfProps : register(c13); -float4 ambientLight : register(c14); - -#define surfAmbient (surfProps.x) -#define surfSpecular (surfProps.y) -#define surfDiffuse (surfProps.z) -#define surfPrelight (surfProps.w) - -#include "lighting.h" - -int numDirLights : register(i0); -int numPointLights : register(i1); -int numSpotLights : register(i2); -int4 firstLight : register(c15); -Light lights[8] : register(c16); - -#define firstDirLight (firstLight.x) -#define firstPointLight (firstLight.y) -#define firstSpotLight (firstLight.z) +#include "standardConstants.h" struct VS_in { @@ -32,7 +10,7 @@ struct VS_in struct VS_out { float4 Position : POSITION; - float2 TexCoord0 : TEXCOORD0; + float3 TexCoord0 : TEXCOORD0; // also fog float4 Color : COLOR0; }; @@ -45,7 +23,7 @@ VS_out main(in VS_in input) float3 Vertex = mul(worldMat, input.Position).xyz; float3 Normal = mul(normalMat, input.Normal); - output.TexCoord0 = input.TexCoord; + output.TexCoord0.xy = input.TexCoord; output.Color = float4(0.0, 0.0, 0.0, 1.0); if(surfPrelight > 0.0) @@ -70,5 +48,7 @@ VS_out main(in VS_in input) output.Color = clamp(output.Color, 0.0, 1.0); output.Color *= matCol; + output.TexCoord0.z = clamp((output.Position.w - fogEnd)*fogRange, fogDisable, 1.0); + return output; } diff --git a/src/d3d/shaders/default_all_VS.h b/src/d3d/shaders/default_all_VS.h index e8b6a75..65ce514 100644 --- a/src/d3d/shaders/default_all_VS.h +++ b/src/d3d/shaders/default_all_VS.h @@ -3,7 +3,7 @@ // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 // // fxc /T vs_2_0 /DDIRECTIONALS /DPOINTLIGHTS /DSPOTLIGHTS /Fh -// default_all_VS.h defaultVS.hlsl +// default_all_VS.h default_VS.hlsl // // // Parameters: @@ -11,6 +11,7 @@ // float4 ambientLight; // float4x4 combinedMat; // int4 firstLight; +// float4 fogData; // // struct // { @@ -41,14 +42,15 @@ // normalMat c8 3 // matCol c12 1 // surfProps c13 1 -// ambientLight c14 1 -// firstLight c15 1 -// lights c16 24 +// fogData c14 1 +// ambientLight c15 1 +// firstLight c16 1 +// lights c17 24 // vs_2_0 def c11, 3, 0, 0, 0 - def c40, 0, -0, -1, 1 + def c41, 0, -0, -1, 1 dcl_position v0 dcl_normal v1 dcl_texcoord v2 @@ -56,7 +58,8 @@ mul r0, v0.y, c1 mad r0, c0, v0.x, r0 mad r0, c2, v0.z, r0 - mad oPos, c3, v0.w, r0 + mad r0, c3, v0.w, r0 + mov oPos, r0 mul r0.xyz, v0.y, c5 mad r0.xyz, c4, v0.x, r0 mad r0.xyz, c6, v0.z, r0 @@ -64,422 +67,443 @@ mul r1.xyz, v1.y, c9 mad r1.xyz, c8, v1.x, r1 mad r1.xyz, c10, v1.z, r1 - mov r2.xw, c40 - slt r0.w, r2.x, c13.w - add r3, v3, c40.yyyz - mad r3, r0.w, r3, c40.xxxw + mov r2.xw, c41 + slt r1.w, r2.x, c13.w + add r3, v3, c41.yyyz + mad r3, r1.w, r3, c41.xxxw mov r2.x, c13.x - mad r2.xyz, c14, r2.x, r3 + mad r2.xyz, c15, r2.x, r3 mov r4.xyz, r2 - mov r0.w, c40.x + mov r1.w, c41.x rep i0 - add r1.w, r0.w, c15.x - mul r1.w, r1.w, c11.x - mova a0.x, r1.w - dp3 r1.w, r1, -c18[a0.x] - max r1.w, r1.w, c40.x - mul r5.xyz, r1.w, c16[a0.x] + add r4.w, r1.w, c16.x + mul r4.w, r4.w, c11.x + mova a0.x, r4.w + dp3 r4.w, r1, -c19[a0.x] + max r4.w, r4.w, c41.x + mul r5.xyz, r4.w, c17[a0.x] mad r4.xyz, r5, c13.z, r4 - add r0.w, r0.w, c40.w + add r1.w, r1.w, c41.w endrep mov r2.xyz, r4 - mov r0.w, c40.x + mov r1.w, c41.x rep i1 - add r1.w, r0.w, c15.y - mul r1.w, r1.w, c11.x - mova a0.x, r1.w - add r5.xyz, r0, -c17[a0.x] - dp3 r1.w, r5, r5 - rsq r1.w, r1.w - mul r5.xyz, r1.w, r5 - dp3 r4.w, r1, -r5 - max r4.w, r4.w, c40.x - mul r5.xyz, r4.w, c16[a0.x] - rcp r1.w, r1.w - rcp r4.w, c16[a0.x].w - mad r1.w, r1.w, -r4.w, c40.w - max r1.w, r1.w, c40.x - mul r5.xyz, r1.w, r5 + add r4.w, r1.w, c16.y + mul r4.w, r4.w, c11.x + mova a0.x, r4.w + add r5.xyz, r0, -c18[a0.x] + dp3 r4.w, r5, r5 + rsq r4.w, r4.w + mul r5.xyz, r4.w, r5 + dp3 r5.x, r1, -r5 + max r5.x, r5.x, c41.x + mul r5.xyz, r5.x, c17[a0.x] + rcp r4.w, r4.w + rcp r5.w, c17[a0.x].w + mad r4.w, r4.w, -r5.w, c41.w + max r4.w, r4.w, c41.x + mul r5.xyz, r4.w, r5 mad r2.xyz, r5, c13.z, r2 - add r0.w, r0.w, c40.w + add r1.w, r1.w, c41.w endrep mov r3.xyz, r2 - mov r0.w, c40.x + mov r1.w, c41.x rep i2 - add r1.w, r0.w, c15.z - mul r1.w, r1.w, c11.x - mova a0.x, r1.w - add r4.xyz, r0, -c17[a0.x] - dp3 r1.w, r4, r4 - rsq r1.w, r1.w - mul r4.xyz, r1.w, r4 - dp3 r4.w, r1, -r4 - dp3 r4.x, r4, c18[a0.x] - max r4.y, r4.w, c40.x - add r4.x, r4.x, c17[a0.x].w - add r4.z, r2.w, c17[a0.x].w + add r4.x, r1.w, c16.z + mul r4.x, r4.x, c11.x + mova a0.x, r4.x + add r4.xyz, r0, -c18[a0.x] + dp3 r4.w, r4, r4 + rsq r4.w, r4.w + mul r4.xyz, r4.w, r4 + dp3 r5.x, r1, -r4 + dp3 r4.x, r4, c19[a0.x] + max r4.y, r5.x, c41.x + add r4.x, r4.x, c18[a0.x].w + add r4.z, r2.w, c18[a0.x].w rcp r4.z, r4.z mul r4.x, r4.z, r4.x - slt r4.z, r4.x, c40.x + slt r4.z, r4.x, c41.x mad r4.y, r4.z, -r4.y, r4.y - max r4.x, r4.x, c18[a0.x].w + max r4.x, r4.x, c19[a0.x].w mul r4.x, r4.x, r4.y - mul r4.xyz, r4.x, c16[a0.x] - rcp r1.w, r1.w - rcp r4.w, c16[a0.x].w - mad r1.w, r1.w, -r4.w, c40.w - max r1.w, r1.w, c40.x - mul r4.xyz, r1.w, r4 + mul r4.xyz, r4.x, c17[a0.x] + rcp r4.w, r4.w + rcp r5.x, c17[a0.x].w + mad r4.w, r4.w, -r5.x, c41.w + max r4.w, r4.w, c41.x + mul r4.xyz, r4.w, r4 mad r3.xyz, r4, c13.z, r3 - add r0.w, r0.w, c40.w + add r1.w, r1.w, c41.w endrep - max r0, r3, c40.x - min r0, r0, c40.w - mul oD0, r0, c12 + max r1, r3, c41.x + min r1, r1, c41.w + mul oD0, r1, c12 + add r0.x, r0.w, -c14.y + mul r0.x, r0.x, c14.z + max r0.x, r0.x, c14.w + min oT0.z, r0.x, c41.w mov oT0.xy, v2 -// approximately 93 instruction slots used +// approximately 98 instruction slots used #endif const BYTE g_vs20_main[] = { 0, 2, 254, 255, 254, 255, - 151, 0, 67, 84, 65, 66, - 28, 0, 0, 0, 39, 2, + 158, 0, 67, 84, 65, 66, + 28, 0, 0, 0, 67, 2, 0, 0, 0, 2, 254, 255, - 11, 0, 0, 0, 28, 0, + 12, 0, 0, 0, 28, 0, 0, 0, 0, 1, 0, 0, - 32, 2, 0, 0, 248, 0, - 0, 0, 2, 0, 14, 0, - 1, 0, 58, 0, 8, 1, + 60, 2, 0, 0, 12, 1, + 0, 0, 2, 0, 15, 0, + 1, 0, 62, 0, 28, 1, 0, 0, 0, 0, 0, 0, - 24, 1, 0, 0, 2, 0, + 44, 1, 0, 0, 2, 0, 0, 0, 4, 0, 2, 0, - 36, 1, 0, 0, 0, 0, - 0, 0, 52, 1, 0, 0, - 2, 0, 15, 0, 1, 0, - 62, 0, 64, 1, 0, 0, - 0, 0, 0, 0, 80, 1, - 0, 0, 2, 0, 16, 0, - 24, 0, 66, 0, 156, 1, + 56, 1, 0, 0, 0, 0, + 0, 0, 72, 1, 0, 0, + 2, 0, 16, 0, 1, 0, + 66, 0, 84, 1, 0, 0, + 0, 0, 0, 0, 100, 1, + 0, 0, 2, 0, 14, 0, + 1, 0, 58, 0, 28, 1, 0, 0, 0, 0, 0, 0, - 172, 1, 0, 0, 2, 0, - 12, 0, 1, 0, 50, 0, - 8, 1, 0, 0, 0, 0, - 0, 0, 179, 1, 0, 0, - 2, 0, 8, 0, 3, 0, - 34, 0, 192, 1, 0, 0, - 0, 0, 0, 0, 208, 1, - 0, 0, 1, 0, 0, 0, - 1, 0, 2, 0, 224, 1, + 108, 1, 0, 0, 2, 0, + 17, 0, 24, 0, 70, 0, + 184, 1, 0, 0, 0, 0, + 0, 0, 200, 1, 0, 0, + 2, 0, 12, 0, 1, 0, + 50, 0, 28, 1, 0, 0, + 0, 0, 0, 0, 207, 1, + 0, 0, 2, 0, 8, 0, + 3, 0, 34, 0, 220, 1, 0, 0, 0, 0, 0, 0, - 240, 1, 0, 0, 1, 0, - 1, 0, 1, 0, 6, 0, - 224, 1, 0, 0, 0, 0, - 0, 0, 255, 1, 0, 0, - 1, 0, 2, 0, 1, 0, - 10, 0, 224, 1, 0, 0, - 0, 0, 0, 0, 13, 2, - 0, 0, 2, 0, 13, 0, - 1, 0, 54, 0, 8, 1, + 236, 1, 0, 0, 1, 0, + 0, 0, 1, 0, 2, 0, + 252, 1, 0, 0, 0, 0, + 0, 0, 12, 2, 0, 0, + 1, 0, 1, 0, 1, 0, + 6, 0, 252, 1, 0, 0, + 0, 0, 0, 0, 27, 2, + 0, 0, 1, 0, 2, 0, + 1, 0, 10, 0, 252, 1, 0, 0, 0, 0, 0, 0, - 23, 2, 0, 0, 2, 0, - 4, 0, 4, 0, 18, 0, - 36, 1, 0, 0, 0, 0, - 0, 0, 97, 109, 98, 105, - 101, 110, 116, 76, 105, 103, - 104, 116, 0, 171, 171, 171, - 1, 0, 3, 0, 1, 0, - 4, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 99, 111, - 109, 98, 105, 110, 101, 100, - 77, 97, 116, 0, 3, 0, - 3, 0, 4, 0, 4, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 102, 105, 114, 115, - 116, 76, 105, 103, 104, 116, - 0, 171, 1, 0, 2, 0, + 41, 2, 0, 0, 2, 0, + 13, 0, 1, 0, 54, 0, + 28, 1, 0, 0, 0, 0, + 0, 0, 51, 2, 0, 0, + 2, 0, 4, 0, 4, 0, + 18, 0, 56, 1, 0, 0, + 0, 0, 0, 0, 97, 109, + 98, 105, 101, 110, 116, 76, + 105, 103, 104, 116, 0, 171, + 171, 171, 1, 0, 3, 0, 1, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 108, 105, 103, 104, 116, 115, - 0, 99, 111, 108, 111, 114, - 0, 171, 171, 171, 1, 0, - 3, 0, 1, 0, 4, 0, + 99, 111, 109, 98, 105, 110, + 101, 100, 77, 97, 116, 0, + 3, 0, 3, 0, 4, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 102, 105, + 114, 115, 116, 76, 105, 103, + 104, 116, 0, 171, 1, 0, + 2, 0, 1, 0, 4, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 112, 111, 115, 105, - 116, 105, 111, 110, 0, 100, - 105, 114, 101, 99, 116, 105, - 111, 110, 0, 171, 87, 1, - 0, 0, 96, 1, 0, 0, - 112, 1, 0, 0, 96, 1, - 0, 0, 121, 1, 0, 0, - 96, 1, 0, 0, 5, 0, - 0, 0, 1, 0, 12, 0, - 8, 0, 3, 0, 132, 1, - 0, 0, 109, 97, 116, 67, - 111, 108, 0, 110, 111, 114, - 109, 97, 108, 77, 97, 116, - 0, 171, 171, 171, 3, 0, - 3, 0, 3, 0, 3, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 110, 117, 109, 68, - 105, 114, 76, 105, 103, 104, - 116, 115, 0, 171, 171, 171, - 0, 0, 2, 0, 1, 0, - 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 110, 117, - 109, 80, 111, 105, 110, 116, + 0, 0, 102, 111, 103, 68, + 97, 116, 97, 0, 108, 105, + 103, 104, 116, 115, 0, 99, + 111, 108, 111, 114, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 112, 111, 115, 105, 116, 105, + 111, 110, 0, 100, 105, 114, + 101, 99, 116, 105, 111, 110, + 0, 171, 115, 1, 0, 0, + 124, 1, 0, 0, 140, 1, + 0, 0, 124, 1, 0, 0, + 149, 1, 0, 0, 124, 1, + 0, 0, 5, 0, 0, 0, + 1, 0, 12, 0, 8, 0, + 3, 0, 160, 1, 0, 0, + 109, 97, 116, 67, 111, 108, + 0, 110, 111, 114, 109, 97, + 108, 77, 97, 116, 0, 171, + 171, 171, 3, 0, 3, 0, + 3, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 110, 117, 109, 68, 105, 114, 76, 105, 103, 104, 116, 115, - 0, 110, 117, 109, 83, 112, - 111, 116, 76, 105, 103, 104, - 116, 115, 0, 115, 117, 114, - 102, 80, 114, 111, 112, 115, - 0, 119, 111, 114, 108, 100, - 77, 97, 116, 0, 118, 115, - 95, 50, 95, 48, 0, 77, - 105, 99, 114, 111, 115, 111, - 102, 116, 32, 40, 82, 41, - 32, 72, 76, 83, 76, 32, - 83, 104, 97, 100, 101, 114, - 32, 67, 111, 109, 112, 105, - 108, 101, 114, 32, 57, 46, - 50, 57, 46, 57, 53, 50, - 46, 51, 49, 49, 49, 0, - 81, 0, 0, 5, 11, 0, - 15, 160, 0, 0, 64, 64, + 0, 171, 171, 171, 0, 0, + 2, 0, 1, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 110, 117, 109, 80, + 111, 105, 110, 116, 76, 105, + 103, 104, 116, 115, 0, 110, + 117, 109, 83, 112, 111, 116, + 76, 105, 103, 104, 116, 115, + 0, 115, 117, 114, 102, 80, + 114, 111, 112, 115, 0, 119, + 111, 114, 108, 100, 77, 97, + 116, 0, 118, 115, 95, 50, + 95, 48, 0, 77, 105, 99, + 114, 111, 115, 111, 102, 116, + 32, 40, 82, 41, 32, 72, + 76, 83, 76, 32, 83, 104, + 97, 100, 101, 114, 32, 67, + 111, 109, 112, 105, 108, 101, + 114, 32, 57, 46, 50, 57, + 46, 57, 53, 50, 46, 51, + 49, 49, 49, 0, 81, 0, + 0, 5, 11, 0, 15, 160, + 0, 0, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 81, 0, + 0, 5, 41, 0, 15, 160, 0, 0, 0, 0, 0, 0, - 81, 0, 0, 5, 40, 0, - 15, 160, 0, 0, 0, 0, - 0, 0, 0, 128, 0, 0, - 128, 191, 0, 0, 128, 63, - 31, 0, 0, 2, 0, 0, - 0, 128, 0, 0, 15, 144, - 31, 0, 0, 2, 3, 0, - 0, 128, 1, 0, 15, 144, - 31, 0, 0, 2, 5, 0, - 0, 128, 2, 0, 15, 144, - 31, 0, 0, 2, 10, 0, - 0, 128, 3, 0, 15, 144, - 5, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 85, 144, - 1, 0, 228, 160, 4, 0, - 0, 4, 0, 0, 15, 128, - 0, 0, 228, 160, 0, 0, - 0, 144, 0, 0, 228, 128, - 4, 0, 0, 4, 0, 0, - 15, 128, 2, 0, 228, 160, - 0, 0, 170, 144, 0, 0, - 228, 128, 4, 0, 0, 4, - 0, 0, 15, 192, 3, 0, - 228, 160, 0, 0, 255, 144, - 0, 0, 228, 128, 5, 0, - 0, 3, 0, 0, 7, 128, - 0, 0, 85, 144, 5, 0, + 0, 128, 0, 0, 128, 191, + 0, 0, 128, 63, 31, 0, + 0, 2, 0, 0, 0, 128, + 0, 0, 15, 144, 31, 0, + 0, 2, 3, 0, 0, 128, + 1, 0, 15, 144, 31, 0, + 0, 2, 5, 0, 0, 128, + 2, 0, 15, 144, 31, 0, + 0, 2, 10, 0, 0, 128, + 3, 0, 15, 144, 5, 0, + 0, 3, 0, 0, 15, 128, + 0, 0, 85, 144, 1, 0, 228, 160, 4, 0, 0, 4, - 0, 0, 7, 128, 4, 0, + 0, 0, 15, 128, 0, 0, 228, 160, 0, 0, 0, 144, 0, 0, 228, 128, 4, 0, - 0, 4, 0, 0, 7, 128, - 6, 0, 228, 160, 0, 0, + 0, 4, 0, 0, 15, 128, + 2, 0, 228, 160, 0, 0, 170, 144, 0, 0, 228, 128, 4, 0, 0, 4, 0, 0, - 7, 128, 7, 0, 228, 160, + 15, 128, 3, 0, 228, 160, 0, 0, 255, 144, 0, 0, - 228, 128, 5, 0, 0, 3, - 1, 0, 7, 128, 1, 0, - 85, 144, 9, 0, 228, 160, - 4, 0, 0, 4, 1, 0, - 7, 128, 8, 0, 228, 160, - 1, 0, 0, 144, 1, 0, - 228, 128, 4, 0, 0, 4, - 1, 0, 7, 128, 10, 0, - 228, 160, 1, 0, 170, 144, - 1, 0, 228, 128, 1, 0, - 0, 2, 2, 0, 9, 128, - 40, 0, 228, 160, 12, 0, - 0, 3, 0, 0, 8, 128, - 2, 0, 0, 128, 13, 0, - 255, 160, 2, 0, 0, 3, - 3, 0, 15, 128, 3, 0, - 228, 144, 40, 0, 149, 160, - 4, 0, 0, 4, 3, 0, - 15, 128, 0, 0, 255, 128, - 3, 0, 228, 128, 40, 0, - 192, 160, 1, 0, 0, 2, - 2, 0, 1, 128, 13, 0, - 0, 160, 4, 0, 0, 4, - 2, 0, 7, 128, 14, 0, - 228, 160, 2, 0, 0, 128, - 3, 0, 228, 128, 1, 0, - 0, 2, 4, 0, 7, 128, - 2, 0, 228, 128, 1, 0, - 0, 2, 0, 0, 8, 128, - 40, 0, 0, 160, 38, 0, - 0, 1, 0, 0, 228, 240, - 2, 0, 0, 3, 1, 0, - 8, 128, 0, 0, 255, 128, - 15, 0, 0, 160, 5, 0, - 0, 3, 1, 0, 8, 128, - 1, 0, 255, 128, 11, 0, - 0, 160, 46, 0, 0, 2, - 0, 0, 1, 176, 1, 0, - 255, 128, 8, 0, 0, 4, - 1, 0, 8, 128, 1, 0, - 228, 128, 18, 32, 228, 161, - 0, 0, 0, 176, 11, 0, - 0, 3, 1, 0, 8, 128, - 1, 0, 255, 128, 40, 0, - 0, 160, 5, 0, 0, 4, - 5, 0, 7, 128, 1, 0, - 255, 128, 16, 32, 228, 160, - 0, 0, 0, 176, 4, 0, - 0, 4, 4, 0, 7, 128, - 5, 0, 228, 128, 13, 0, - 170, 160, 4, 0, 228, 128, - 2, 0, 0, 3, 0, 0, - 8, 128, 0, 0, 255, 128, - 40, 0, 255, 160, 39, 0, - 0, 0, 1, 0, 0, 2, - 2, 0, 7, 128, 4, 0, 228, 128, 1, 0, 0, 2, - 0, 0, 8, 128, 40, 0, + 0, 0, 15, 192, 0, 0, + 228, 128, 5, 0, 0, 3, + 0, 0, 7, 128, 0, 0, + 85, 144, 5, 0, 228, 160, + 4, 0, 0, 4, 0, 0, + 7, 128, 4, 0, 228, 160, + 0, 0, 0, 144, 0, 0, + 228, 128, 4, 0, 0, 4, + 0, 0, 7, 128, 6, 0, + 228, 160, 0, 0, 170, 144, + 0, 0, 228, 128, 4, 0, + 0, 4, 0, 0, 7, 128, + 7, 0, 228, 160, 0, 0, + 255, 144, 0, 0, 228, 128, + 5, 0, 0, 3, 1, 0, + 7, 128, 1, 0, 85, 144, + 9, 0, 228, 160, 4, 0, + 0, 4, 1, 0, 7, 128, + 8, 0, 228, 160, 1, 0, + 0, 144, 1, 0, 228, 128, + 4, 0, 0, 4, 1, 0, + 7, 128, 10, 0, 228, 160, + 1, 0, 170, 144, 1, 0, + 228, 128, 1, 0, 0, 2, + 2, 0, 9, 128, 41, 0, + 228, 160, 12, 0, 0, 3, + 1, 0, 8, 128, 2, 0, + 0, 128, 13, 0, 255, 160, + 2, 0, 0, 3, 3, 0, + 15, 128, 3, 0, 228, 144, + 41, 0, 149, 160, 4, 0, + 0, 4, 3, 0, 15, 128, + 1, 0, 255, 128, 3, 0, + 228, 128, 41, 0, 192, 160, + 1, 0, 0, 2, 2, 0, + 1, 128, 13, 0, 0, 160, + 4, 0, 0, 4, 2, 0, + 7, 128, 15, 0, 228, 160, + 2, 0, 0, 128, 3, 0, + 228, 128, 1, 0, 0, 2, + 4, 0, 7, 128, 2, 0, + 228, 128, 1, 0, 0, 2, + 1, 0, 8, 128, 41, 0, 0, 160, 38, 0, 0, 1, - 1, 0, 228, 240, 2, 0, - 0, 3, 1, 0, 8, 128, - 0, 0, 255, 128, 15, 0, - 85, 160, 5, 0, 0, 3, - 1, 0, 8, 128, 1, 0, + 0, 0, 228, 240, 2, 0, + 0, 3, 4, 0, 8, 128, + 1, 0, 255, 128, 16, 0, + 0, 160, 5, 0, 0, 3, + 4, 0, 8, 128, 4, 0, 255, 128, 11, 0, 0, 160, 46, 0, 0, 2, 0, 0, - 1, 176, 1, 0, 255, 128, - 2, 0, 0, 4, 5, 0, - 7, 128, 0, 0, 228, 128, - 17, 32, 228, 161, 0, 0, - 0, 176, 8, 0, 0, 3, - 1, 0, 8, 128, 5, 0, - 228, 128, 5, 0, 228, 128, - 7, 0, 0, 2, 1, 0, - 8, 128, 1, 0, 255, 128, - 5, 0, 0, 3, 5, 0, - 7, 128, 1, 0, 255, 128, - 5, 0, 228, 128, 8, 0, - 0, 3, 4, 0, 8, 128, - 1, 0, 228, 128, 5, 0, - 228, 129, 11, 0, 0, 3, + 1, 176, 4, 0, 255, 128, + 8, 0, 0, 4, 4, 0, + 8, 128, 1, 0, 228, 128, + 19, 32, 228, 161, 0, 0, + 0, 176, 11, 0, 0, 3, 4, 0, 8, 128, 4, 0, - 255, 128, 40, 0, 0, 160, + 255, 128, 41, 0, 0, 160, 5, 0, 0, 4, 5, 0, 7, 128, 4, 0, 255, 128, - 16, 32, 228, 160, 0, 0, - 0, 176, 6, 0, 0, 2, - 1, 0, 8, 128, 1, 0, - 255, 128, 6, 0, 0, 3, - 4, 0, 8, 128, 16, 32, - 255, 160, 0, 0, 0, 176, - 4, 0, 0, 4, 1, 0, - 8, 128, 1, 0, 255, 128, - 4, 0, 255, 129, 40, 0, - 255, 160, 11, 0, 0, 3, - 1, 0, 8, 128, 1, 0, - 255, 128, 40, 0, 0, 160, - 5, 0, 0, 3, 5, 0, - 7, 128, 1, 0, 255, 128, - 5, 0, 228, 128, 4, 0, - 0, 4, 2, 0, 7, 128, - 5, 0, 228, 128, 13, 0, - 170, 160, 2, 0, 228, 128, - 2, 0, 0, 3, 0, 0, - 8, 128, 0, 0, 255, 128, - 40, 0, 255, 160, 39, 0, - 0, 0, 1, 0, 0, 2, - 3, 0, 7, 128, 2, 0, - 228, 128, 1, 0, 0, 2, - 0, 0, 8, 128, 40, 0, - 0, 160, 38, 0, 0, 1, - 2, 0, 228, 240, 2, 0, + 17, 32, 228, 160, 0, 0, + 0, 176, 4, 0, 0, 4, + 4, 0, 7, 128, 5, 0, + 228, 128, 13, 0, 170, 160, + 4, 0, 228, 128, 2, 0, 0, 3, 1, 0, 8, 128, - 0, 0, 255, 128, 15, 0, - 170, 160, 5, 0, 0, 3, - 1, 0, 8, 128, 1, 0, - 255, 128, 11, 0, 0, 160, - 46, 0, 0, 2, 0, 0, - 1, 176, 1, 0, 255, 128, - 2, 0, 0, 4, 4, 0, - 7, 128, 0, 0, 228, 128, - 17, 32, 228, 161, 0, 0, - 0, 176, 8, 0, 0, 3, - 1, 0, 8, 128, 4, 0, - 228, 128, 4, 0, 228, 128, - 7, 0, 0, 2, 1, 0, - 8, 128, 1, 0, 255, 128, + 1, 0, 255, 128, 41, 0, + 255, 160, 39, 0, 0, 0, + 1, 0, 0, 2, 2, 0, + 7, 128, 4, 0, 228, 128, + 1, 0, 0, 2, 1, 0, + 8, 128, 41, 0, 0, 160, + 38, 0, 0, 1, 1, 0, + 228, 240, 2, 0, 0, 3, + 4, 0, 8, 128, 1, 0, + 255, 128, 16, 0, 85, 160, 5, 0, 0, 3, 4, 0, - 7, 128, 1, 0, 255, 128, - 4, 0, 228, 128, 8, 0, - 0, 3, 4, 0, 8, 128, - 1, 0, 228, 128, 4, 0, - 228, 129, 8, 0, 0, 4, - 4, 0, 1, 128, 4, 0, - 228, 128, 18, 32, 228, 160, - 0, 0, 0, 176, 11, 0, - 0, 3, 4, 0, 2, 128, - 4, 0, 255, 128, 40, 0, - 0, 160, 2, 0, 0, 4, - 4, 0, 1, 128, 4, 0, - 0, 128, 17, 32, 255, 160, - 0, 0, 0, 176, 2, 0, - 0, 4, 4, 0, 4, 128, - 2, 0, 255, 128, 17, 32, - 255, 160, 0, 0, 0, 176, + 8, 128, 4, 0, 255, 128, + 11, 0, 0, 160, 46, 0, + 0, 2, 0, 0, 1, 176, + 4, 0, 255, 128, 2, 0, + 0, 4, 5, 0, 7, 128, + 0, 0, 228, 128, 18, 32, + 228, 161, 0, 0, 0, 176, + 8, 0, 0, 3, 4, 0, + 8, 128, 5, 0, 228, 128, + 5, 0, 228, 128, 7, 0, + 0, 2, 4, 0, 8, 128, + 4, 0, 255, 128, 5, 0, + 0, 3, 5, 0, 7, 128, + 4, 0, 255, 128, 5, 0, + 228, 128, 8, 0, 0, 3, + 5, 0, 1, 128, 1, 0, + 228, 128, 5, 0, 228, 129, + 11, 0, 0, 3, 5, 0, + 1, 128, 5, 0, 0, 128, + 41, 0, 0, 160, 5, 0, + 0, 4, 5, 0, 7, 128, + 5, 0, 0, 128, 17, 32, + 228, 160, 0, 0, 0, 176, 6, 0, 0, 2, 4, 0, - 4, 128, 4, 0, 170, 128, - 5, 0, 0, 3, 4, 0, - 1, 128, 4, 0, 170, 128, - 4, 0, 0, 128, 12, 0, - 0, 3, 4, 0, 4, 128, - 4, 0, 0, 128, 40, 0, - 0, 160, 4, 0, 0, 4, - 4, 0, 2, 128, 4, 0, - 170, 128, 4, 0, 85, 129, - 4, 0, 85, 128, 11, 0, - 0, 4, 4, 0, 1, 128, - 4, 0, 0, 128, 18, 32, - 255, 160, 0, 0, 0, 176, + 8, 128, 4, 0, 255, 128, + 6, 0, 0, 3, 5, 0, + 8, 128, 17, 32, 255, 160, + 0, 0, 0, 176, 4, 0, + 0, 4, 4, 0, 8, 128, + 4, 0, 255, 128, 5, 0, + 255, 129, 41, 0, 255, 160, + 11, 0, 0, 3, 4, 0, + 8, 128, 4, 0, 255, 128, + 41, 0, 0, 160, 5, 0, + 0, 3, 5, 0, 7, 128, + 4, 0, 255, 128, 5, 0, + 228, 128, 4, 0, 0, 4, + 2, 0, 7, 128, 5, 0, + 228, 128, 13, 0, 170, 160, + 2, 0, 228, 128, 2, 0, + 0, 3, 1, 0, 8, 128, + 1, 0, 255, 128, 41, 0, + 255, 160, 39, 0, 0, 0, + 1, 0, 0, 2, 3, 0, + 7, 128, 2, 0, 228, 128, + 1, 0, 0, 2, 1, 0, + 8, 128, 41, 0, 0, 160, + 38, 0, 0, 1, 2, 0, + 228, 240, 2, 0, 0, 3, + 4, 0, 1, 128, 1, 0, + 255, 128, 16, 0, 170, 160, 5, 0, 0, 3, 4, 0, 1, 128, 4, 0, 0, 128, - 4, 0, 85, 128, 5, 0, + 11, 0, 0, 160, 46, 0, + 0, 2, 0, 0, 1, 176, + 4, 0, 0, 128, 2, 0, 0, 4, 4, 0, 7, 128, - 4, 0, 0, 128, 16, 32, - 228, 160, 0, 0, 0, 176, - 6, 0, 0, 2, 1, 0, - 8, 128, 1, 0, 255, 128, - 6, 0, 0, 3, 4, 0, - 8, 128, 16, 32, 255, 160, - 0, 0, 0, 176, 4, 0, - 0, 4, 1, 0, 8, 128, - 1, 0, 255, 128, 4, 0, - 255, 129, 40, 0, 255, 160, - 11, 0, 0, 3, 1, 0, - 8, 128, 1, 0, 255, 128, - 40, 0, 0, 160, 5, 0, + 0, 0, 228, 128, 18, 32, + 228, 161, 0, 0, 0, 176, + 8, 0, 0, 3, 4, 0, + 8, 128, 4, 0, 228, 128, + 4, 0, 228, 128, 7, 0, + 0, 2, 4, 0, 8, 128, + 4, 0, 255, 128, 5, 0, 0, 3, 4, 0, 7, 128, - 1, 0, 255, 128, 4, 0, - 228, 128, 4, 0, 0, 4, - 3, 0, 7, 128, 4, 0, - 228, 128, 13, 0, 170, 160, - 3, 0, 228, 128, 2, 0, - 0, 3, 0, 0, 8, 128, - 0, 0, 255, 128, 40, 0, - 255, 160, 39, 0, 0, 0, + 4, 0, 255, 128, 4, 0, + 228, 128, 8, 0, 0, 3, + 5, 0, 1, 128, 1, 0, + 228, 128, 4, 0, 228, 129, + 8, 0, 0, 4, 4, 0, + 1, 128, 4, 0, 228, 128, + 19, 32, 228, 160, 0, 0, + 0, 176, 11, 0, 0, 3, + 4, 0, 2, 128, 5, 0, + 0, 128, 41, 0, 0, 160, + 2, 0, 0, 4, 4, 0, + 1, 128, 4, 0, 0, 128, + 18, 32, 255, 160, 0, 0, + 0, 176, 2, 0, 0, 4, + 4, 0, 4, 128, 2, 0, + 255, 128, 18, 32, 255, 160, + 0, 0, 0, 176, 6, 0, + 0, 2, 4, 0, 4, 128, + 4, 0, 170, 128, 5, 0, + 0, 3, 4, 0, 1, 128, + 4, 0, 170, 128, 4, 0, + 0, 128, 12, 0, 0, 3, + 4, 0, 4, 128, 4, 0, + 0, 128, 41, 0, 0, 160, + 4, 0, 0, 4, 4, 0, + 2, 128, 4, 0, 170, 128, + 4, 0, 85, 129, 4, 0, + 85, 128, 11, 0, 0, 4, + 4, 0, 1, 128, 4, 0, + 0, 128, 19, 32, 255, 160, + 0, 0, 0, 176, 5, 0, + 0, 3, 4, 0, 1, 128, + 4, 0, 0, 128, 4, 0, + 85, 128, 5, 0, 0, 4, + 4, 0, 7, 128, 4, 0, + 0, 128, 17, 32, 228, 160, + 0, 0, 0, 176, 6, 0, + 0, 2, 4, 0, 8, 128, + 4, 0, 255, 128, 6, 0, + 0, 3, 5, 0, 1, 128, + 17, 32, 255, 160, 0, 0, + 0, 176, 4, 0, 0, 4, + 4, 0, 8, 128, 4, 0, + 255, 128, 5, 0, 0, 129, + 41, 0, 255, 160, 11, 0, + 0, 3, 4, 0, 8, 128, + 4, 0, 255, 128, 41, 0, + 0, 160, 5, 0, 0, 3, + 4, 0, 7, 128, 4, 0, + 255, 128, 4, 0, 228, 128, + 4, 0, 0, 4, 3, 0, + 7, 128, 4, 0, 228, 128, + 13, 0, 170, 160, 3, 0, + 228, 128, 2, 0, 0, 3, + 1, 0, 8, 128, 1, 0, + 255, 128, 41, 0, 255, 160, + 39, 0, 0, 0, 11, 0, + 0, 3, 1, 0, 15, 128, + 3, 0, 228, 128, 41, 0, + 0, 160, 10, 0, 0, 3, + 1, 0, 15, 128, 1, 0, + 228, 128, 41, 0, 255, 160, + 5, 0, 0, 3, 0, 0, + 15, 208, 1, 0, 228, 128, + 12, 0, 228, 160, 2, 0, + 0, 3, 0, 0, 1, 128, + 0, 0, 255, 128, 14, 0, + 85, 161, 5, 0, 0, 3, + 0, 0, 1, 128, 0, 0, + 0, 128, 14, 0, 170, 160, 11, 0, 0, 3, 0, 0, - 15, 128, 3, 0, 228, 128, - 40, 0, 0, 160, 10, 0, - 0, 3, 0, 0, 15, 128, - 0, 0, 228, 128, 40, 0, - 255, 160, 5, 0, 0, 3, - 0, 0, 15, 208, 0, 0, - 228, 128, 12, 0, 228, 160, - 1, 0, 0, 2, 0, 0, - 3, 224, 2, 0, 228, 144, - 255, 255, 0, 0 + 1, 128, 0, 0, 0, 128, + 14, 0, 255, 160, 10, 0, + 0, 3, 0, 0, 4, 224, + 0, 0, 0, 128, 41, 0, + 255, 160, 1, 0, 0, 2, + 0, 0, 3, 224, 2, 0, + 228, 144, 255, 255, 0, 0 }; diff --git a/src/d3d/shaders/default_amb_VS.h b/src/d3d/shaders/default_amb_VS.h index bc4d51d..0c49d78 100644 --- a/src/d3d/shaders/default_amb_VS.h +++ b/src/d3d/shaders/default_amb_VS.h @@ -2,13 +2,14 @@ // // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 // -// fxc /T vs_2_0 /Fh default_amb_VS.h defaultVS.hlsl +// fxc /T vs_2_0 /Fh default_amb_VS.h default_VS.hlsl // // // Parameters: // // float4 ambientLight; // float4x4 combinedMat; +// float4 fogData; // float4 matCol; // float4 surfProps; // @@ -20,7 +21,8 @@ // combinedMat c0 4 // matCol c12 1 // surfProps c13 1 -// ambientLight c14 1 +// fogData c14 1 +// ambientLight c15 1 // vs_2_0 @@ -28,92 +30,89 @@ dcl_position v0 dcl_texcoord v1 dcl_color v2 - mul r0, v0.y, c1 - mad r0, c0, v0.x, r0 - mad r0, c2, v0.z, r0 - mad oPos, c3, v0.w, r0 mov r0.x, c4.x slt r0.x, r0.x, c13.w add r1, v2, c4.yyyz mad r0, r0.x, r1, c4.xxxw mov r1.x, c13.x - mad r0.xyz, c14, r1.x, r0 + mad r0.xyz, c15, r1.x, r0 max r0, r0, c4.x min r0, r0, c4.w mul oD0, r0, c12 + mul r0, v0.y, c1 + mad r0, c0, v0.x, r0 + mad r0, c2, v0.z, r0 + mad r0, c3, v0.w, r0 + add r1.x, r0.w, -c14.y + mov oPos, r0 + mul r0.x, r1.x, c14.z + max r0.x, r0.x, c14.w + min oT0.z, r0.x, c4.w mov oT0.xy, v1 -// approximately 14 instruction slots used +// approximately 19 instruction slots used #endif const BYTE g_vs20_main[] = { 0, 2, 254, 255, 254, 255, - 62, 0, 67, 84, 65, 66, - 28, 0, 0, 0, 192, 0, + 69, 0, 67, 84, 65, 66, + 28, 0, 0, 0, 220, 0, 0, 0, 0, 2, 254, 255, - 4, 0, 0, 0, 28, 0, + 5, 0, 0, 0, 28, 0, 0, 0, 0, 1, 0, 0, - 185, 0, 0, 0, 108, 0, - 0, 0, 2, 0, 14, 0, - 1, 0, 58, 0, 124, 0, + 213, 0, 0, 0, 128, 0, + 0, 0, 2, 0, 15, 0, + 1, 0, 62, 0, 144, 0, 0, 0, 0, 0, 0, 0, - 140, 0, 0, 0, 2, 0, + 160, 0, 0, 0, 2, 0, 0, 0, 4, 0, 2, 0, - 152, 0, 0, 0, 0, 0, - 0, 0, 168, 0, 0, 0, - 2, 0, 12, 0, 1, 0, - 50, 0, 124, 0, 0, 0, - 0, 0, 0, 0, 175, 0, - 0, 0, 2, 0, 13, 0, - 1, 0, 54, 0, 124, 0, + 172, 0, 0, 0, 0, 0, + 0, 0, 188, 0, 0, 0, + 2, 0, 14, 0, 1, 0, + 58, 0, 144, 0, 0, 0, + 0, 0, 0, 0, 196, 0, + 0, 0, 2, 0, 12, 0, + 1, 0, 50, 0, 144, 0, 0, 0, 0, 0, 0, 0, - 97, 109, 98, 105, 101, 110, - 116, 76, 105, 103, 104, 116, - 0, 171, 171, 171, 1, 0, - 3, 0, 1, 0, 4, 0, + 203, 0, 0, 0, 2, 0, + 13, 0, 1, 0, 54, 0, + 144, 0, 0, 0, 0, 0, + 0, 0, 97, 109, 98, 105, + 101, 110, 116, 76, 105, 103, + 104, 116, 0, 171, 171, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 99, 111, + 109, 98, 105, 110, 101, 100, + 77, 97, 116, 0, 3, 0, + 3, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 99, 111, 109, 98, - 105, 110, 101, 100, 77, 97, - 116, 0, 3, 0, 3, 0, - 4, 0, 4, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 109, 97, 116, 67, 111, 108, - 0, 115, 117, 114, 102, 80, - 114, 111, 112, 115, 0, 118, - 115, 95, 50, 95, 48, 0, - 77, 105, 99, 114, 111, 115, - 111, 102, 116, 32, 40, 82, - 41, 32, 72, 76, 83, 76, - 32, 83, 104, 97, 100, 101, - 114, 32, 67, 111, 109, 112, - 105, 108, 101, 114, 32, 57, - 46, 50, 57, 46, 57, 53, - 50, 46, 51, 49, 49, 49, - 0, 171, 171, 171, 81, 0, - 0, 5, 4, 0, 15, 160, - 0, 0, 0, 0, 0, 0, - 0, 128, 0, 0, 128, 191, - 0, 0, 128, 63, 31, 0, - 0, 2, 0, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 0, 128, - 1, 0, 15, 144, 31, 0, - 0, 2, 10, 0, 0, 128, - 2, 0, 15, 144, 5, 0, - 0, 3, 0, 0, 15, 128, - 0, 0, 85, 144, 1, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 15, 128, 0, 0, - 228, 160, 0, 0, 0, 144, - 0, 0, 228, 128, 4, 0, - 0, 4, 0, 0, 15, 128, - 2, 0, 228, 160, 0, 0, - 170, 144, 0, 0, 228, 128, - 4, 0, 0, 4, 0, 0, - 15, 192, 3, 0, 228, 160, - 0, 0, 255, 144, 0, 0, - 228, 128, 1, 0, 0, 2, + 0, 0, 102, 111, 103, 68, + 97, 116, 97, 0, 109, 97, + 116, 67, 111, 108, 0, 115, + 117, 114, 102, 80, 114, 111, + 112, 115, 0, 118, 115, 95, + 50, 95, 48, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 57, 46, 50, + 57, 46, 57, 53, 50, 46, + 51, 49, 49, 49, 0, 171, + 171, 171, 81, 0, 0, 5, + 4, 0, 15, 160, 0, 0, + 0, 0, 0, 0, 0, 128, + 0, 0, 128, 191, 0, 0, + 128, 63, 31, 0, 0, 2, + 0, 0, 0, 128, 0, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 0, 128, 1, 0, + 15, 144, 31, 0, 0, 2, + 10, 0, 0, 128, 2, 0, + 15, 144, 1, 0, 0, 2, 0, 0, 1, 128, 4, 0, 0, 160, 12, 0, 0, 3, 0, 0, 1, 128, 0, 0, @@ -127,7 +126,7 @@ const BYTE g_vs20_main[] = 1, 0, 0, 2, 1, 0, 1, 128, 13, 0, 0, 160, 4, 0, 0, 4, 0, 0, - 7, 128, 14, 0, 228, 160, + 7, 128, 15, 0, 228, 160, 1, 0, 0, 128, 0, 0, 228, 128, 11, 0, 0, 3, 0, 0, 15, 128, 0, 0, @@ -137,7 +136,33 @@ const BYTE g_vs20_main[] = 4, 0, 255, 160, 5, 0, 0, 3, 0, 0, 15, 208, 0, 0, 228, 128, 12, 0, - 228, 160, 1, 0, 0, 2, - 0, 0, 3, 224, 1, 0, - 228, 144, 255, 255, 0, 0 + 228, 160, 5, 0, 0, 3, + 0, 0, 15, 128, 0, 0, + 85, 144, 1, 0, 228, 160, + 4, 0, 0, 4, 0, 0, + 15, 128, 0, 0, 228, 160, + 0, 0, 0, 144, 0, 0, + 228, 128, 4, 0, 0, 4, + 0, 0, 15, 128, 2, 0, + 228, 160, 0, 0, 170, 144, + 0, 0, 228, 128, 4, 0, + 0, 4, 0, 0, 15, 128, + 3, 0, 228, 160, 0, 0, + 255, 144, 0, 0, 228, 128, + 2, 0, 0, 3, 1, 0, + 1, 128, 0, 0, 255, 128, + 14, 0, 85, 161, 1, 0, + 0, 2, 0, 0, 15, 192, + 0, 0, 228, 128, 5, 0, + 0, 3, 0, 0, 1, 128, + 1, 0, 0, 128, 14, 0, + 170, 160, 11, 0, 0, 3, + 0, 0, 1, 128, 0, 0, + 0, 128, 14, 0, 255, 160, + 10, 0, 0, 3, 0, 0, + 4, 224, 0, 0, 0, 128, + 4, 0, 255, 160, 1, 0, + 0, 2, 0, 0, 3, 224, + 1, 0, 228, 144, 255, 255, + 0, 0 }; diff --git a/src/d3d/shaders/default_amb_dir_VS.h b/src/d3d/shaders/default_amb_dir_VS.h index 4bd6524..d813eb6 100644 --- a/src/d3d/shaders/default_amb_dir_VS.h +++ b/src/d3d/shaders/default_amb_dir_VS.h @@ -2,7 +2,7 @@ // // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 // -// fxc /T vs_2_0 /DDIRECTIONALS /Fh default_amb_dir_VS.h defaultVS.hlsl +// fxc /T vs_2_0 /DDIRECTIONALS /Fh default_amb_dir_VS.h default_VS.hlsl // // // Parameters: @@ -10,6 +10,7 @@ // float4 ambientLight; // float4x4 combinedMat; // int4 firstLight; +// float4 fogData; // // struct // { @@ -34,9 +35,10 @@ // normalMat c8 3 // matCol c12 1 // surfProps c13 1 -// ambientLight c14 1 -// firstLight c15 1 -// lights c16 24 +// fogData c14 1 +// ambientLight c15 1 +// firstLight c16 1 +// lights c17 24 // vs_2_0 @@ -49,216 +51,238 @@ mul r0, v0.y, c1 mad r0, c0, v0.x, r0 mad r0, c2, v0.z, r0 - mad oPos, c3, v0.w, r0 + mad r0, c3, v0.w, r0 + mov oPos, r0 mul r0.xyz, v1.y, c9 mad r0.xyz, c8, v1.x, r0 mad r0.xyz, c10, v1.z, r0 mov r1.x, c5.x - slt r0.w, r1.x, c13.w - add r1, v3, c5.yyyz - mad r1, r0.w, r1, c5.xxxw + slt r1.x, r1.x, c13.w + add r2, v3, c5.yyyz + mad r1, r1.x, r2, c5.xxxw mov r2.x, c13.x - mad r2.xyz, c14, r2.x, r1 + mad r2.xyz, c15, r2.x, r1 mov r1.xyz, r2 - mov r0.w, c5.x + mov r2.w, c5.x rep i0 - add r2.w, r0.w, c15.x - mul r2.w, r2.w, c4.x - mova a0.x, r2.w - dp3 r2.w, r0, -c18[a0.x] - max r2.w, r2.w, c5.x - mul r3.xyz, r2.w, c16[a0.x] + add r3.x, r2.w, c16.x + mul r3.x, r3.x, c4.x + mova a0.x, r3.x + dp3 r3.x, r0, -c19[a0.x] + max r3.x, r3.x, c5.x + mul r3.xyz, r3.x, c17[a0.x] mad r1.xyz, r3, c13.z, r1 - add r0.w, r0.w, c5.w + add r2.w, r2.w, c5.w endrep - max r0, r1, c5.x - min r0, r0, c5.w - mul oD0, r0, c12 + max r1, r1, c5.x + min r1, r1, c5.w + mul oD0, r1, c12 + add r0.x, r0.w, -c14.y + mul r0.x, r0.x, c14.z + max r0.x, r0.x, c14.w + min oT0.z, r0.x, c5.w mov oT0.xy, v2 -// approximately 32 instruction slots used +// approximately 37 instruction slots used #endif const BYTE g_vs20_main[] = { 0, 2, 254, 255, 254, 255, - 127, 0, 67, 84, 65, 66, - 28, 0, 0, 0, 197, 1, + 134, 0, 67, 84, 65, 66, + 28, 0, 0, 0, 225, 1, 0, 0, 0, 2, 254, 255, - 8, 0, 0, 0, 28, 0, + 9, 0, 0, 0, 28, 0, 0, 0, 0, 1, 0, 0, - 190, 1, 0, 0, 188, 0, - 0, 0, 2, 0, 14, 0, - 1, 0, 58, 0, 204, 0, + 218, 1, 0, 0, 208, 0, + 0, 0, 2, 0, 15, 0, + 1, 0, 62, 0, 224, 0, 0, 0, 0, 0, 0, 0, - 220, 0, 0, 0, 2, 0, + 240, 0, 0, 0, 2, 0, 0, 0, 4, 0, 2, 0, - 232, 0, 0, 0, 0, 0, - 0, 0, 248, 0, 0, 0, - 2, 0, 15, 0, 1, 0, - 62, 0, 4, 1, 0, 0, - 0, 0, 0, 0, 20, 1, - 0, 0, 2, 0, 16, 0, - 24, 0, 66, 0, 96, 1, + 252, 0, 0, 0, 0, 0, + 0, 0, 12, 1, 0, 0, + 2, 0, 16, 0, 1, 0, + 66, 0, 24, 1, 0, 0, + 0, 0, 0, 0, 40, 1, + 0, 0, 2, 0, 14, 0, + 1, 0, 58, 0, 224, 0, 0, 0, 0, 0, 0, 0, - 112, 1, 0, 0, 2, 0, - 12, 0, 1, 0, 50, 0, - 204, 0, 0, 0, 0, 0, - 0, 0, 119, 1, 0, 0, - 2, 0, 8, 0, 3, 0, - 34, 0, 132, 1, 0, 0, - 0, 0, 0, 0, 148, 1, - 0, 0, 1, 0, 0, 0, - 1, 0, 2, 0, 164, 1, + 48, 1, 0, 0, 2, 0, + 17, 0, 24, 0, 70, 0, + 124, 1, 0, 0, 0, 0, + 0, 0, 140, 1, 0, 0, + 2, 0, 12, 0, 1, 0, + 50, 0, 224, 0, 0, 0, + 0, 0, 0, 0, 147, 1, + 0, 0, 2, 0, 8, 0, + 3, 0, 34, 0, 160, 1, 0, 0, 0, 0, 0, 0, - 180, 1, 0, 0, 2, 0, - 13, 0, 1, 0, 54, 0, - 204, 0, 0, 0, 0, 0, - 0, 0, 97, 109, 98, 105, - 101, 110, 116, 76, 105, 103, - 104, 116, 0, 171, 171, 171, - 1, 0, 3, 0, 1, 0, - 4, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 99, 111, - 109, 98, 105, 110, 101, 100, - 77, 97, 116, 0, 3, 0, - 3, 0, 4, 0, 4, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 102, 105, 114, 115, - 116, 76, 105, 103, 104, 116, - 0, 171, 1, 0, 2, 0, + 176, 1, 0, 0, 1, 0, + 0, 0, 1, 0, 2, 0, + 192, 1, 0, 0, 0, 0, + 0, 0, 208, 1, 0, 0, + 2, 0, 13, 0, 1, 0, + 54, 0, 224, 0, 0, 0, + 0, 0, 0, 0, 97, 109, + 98, 105, 101, 110, 116, 76, + 105, 103, 104, 116, 0, 171, + 171, 171, 1, 0, 3, 0, 1, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 108, 105, 103, 104, 116, 115, - 0, 99, 111, 108, 111, 114, - 0, 171, 171, 171, 1, 0, - 3, 0, 1, 0, 4, 0, + 99, 111, 109, 98, 105, 110, + 101, 100, 77, 97, 116, 0, + 3, 0, 3, 0, 4, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 102, 105, + 114, 115, 116, 76, 105, 103, + 104, 116, 0, 171, 1, 0, + 2, 0, 1, 0, 4, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 112, 111, 115, 105, - 116, 105, 111, 110, 0, 100, - 105, 114, 101, 99, 116, 105, - 111, 110, 0, 171, 27, 1, - 0, 0, 36, 1, 0, 0, - 52, 1, 0, 0, 36, 1, - 0, 0, 61, 1, 0, 0, - 36, 1, 0, 0, 5, 0, - 0, 0, 1, 0, 12, 0, - 8, 0, 3, 0, 72, 1, - 0, 0, 109, 97, 116, 67, - 111, 108, 0, 110, 111, 114, - 109, 97, 108, 77, 97, 116, - 0, 171, 171, 171, 3, 0, - 3, 0, 3, 0, 3, 0, + 0, 0, 102, 111, 103, 68, + 97, 116, 97, 0, 108, 105, + 103, 104, 116, 115, 0, 99, + 111, 108, 111, 114, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 112, 111, 115, 105, 116, 105, + 111, 110, 0, 100, 105, 114, + 101, 99, 116, 105, 111, 110, + 0, 171, 55, 1, 0, 0, + 64, 1, 0, 0, 80, 1, + 0, 0, 64, 1, 0, 0, + 89, 1, 0, 0, 64, 1, + 0, 0, 5, 0, 0, 0, + 1, 0, 12, 0, 8, 0, + 3, 0, 100, 1, 0, 0, + 109, 97, 116, 67, 111, 108, + 0, 110, 111, 114, 109, 97, + 108, 77, 97, 116, 0, 171, + 171, 171, 3, 0, 3, 0, + 3, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 110, 117, 109, 68, 105, 114, + 76, 105, 103, 104, 116, 115, + 0, 171, 171, 171, 0, 0, + 2, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 110, 117, 109, 68, - 105, 114, 76, 105, 103, 104, - 116, 115, 0, 171, 171, 171, - 0, 0, 2, 0, 1, 0, - 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 115, 117, - 114, 102, 80, 114, 111, 112, - 115, 0, 118, 115, 95, 50, - 95, 48, 0, 77, 105, 99, - 114, 111, 115, 111, 102, 116, - 32, 40, 82, 41, 32, 72, - 76, 83, 76, 32, 83, 104, - 97, 100, 101, 114, 32, 67, - 111, 109, 112, 105, 108, 101, - 114, 32, 57, 46, 50, 57, - 46, 57, 53, 50, 46, 51, - 49, 49, 49, 0, 171, 171, - 81, 0, 0, 5, 4, 0, - 15, 160, 0, 0, 64, 64, + 0, 0, 115, 117, 114, 102, + 80, 114, 111, 112, 115, 0, + 118, 115, 95, 50, 95, 48, + 0, 77, 105, 99, 114, 111, + 115, 111, 102, 116, 32, 40, + 82, 41, 32, 72, 76, 83, + 76, 32, 83, 104, 97, 100, + 101, 114, 32, 67, 111, 109, + 112, 105, 108, 101, 114, 32, + 57, 46, 50, 57, 46, 57, + 53, 50, 46, 51, 49, 49, + 49, 0, 171, 171, 81, 0, + 0, 5, 4, 0, 15, 160, + 0, 0, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 81, 0, + 0, 5, 5, 0, 15, 160, 0, 0, 0, 0, 0, 0, - 81, 0, 0, 5, 5, 0, - 15, 160, 0, 0, 0, 0, - 0, 0, 0, 128, 0, 0, - 128, 191, 0, 0, 128, 63, - 31, 0, 0, 2, 0, 0, - 0, 128, 0, 0, 15, 144, - 31, 0, 0, 2, 3, 0, - 0, 128, 1, 0, 15, 144, - 31, 0, 0, 2, 5, 0, - 0, 128, 2, 0, 15, 144, - 31, 0, 0, 2, 10, 0, - 0, 128, 3, 0, 15, 144, - 5, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 85, 144, - 1, 0, 228, 160, 4, 0, - 0, 4, 0, 0, 15, 128, - 0, 0, 228, 160, 0, 0, - 0, 144, 0, 0, 228, 128, - 4, 0, 0, 4, 0, 0, - 15, 128, 2, 0, 228, 160, - 0, 0, 170, 144, 0, 0, - 228, 128, 4, 0, 0, 4, - 0, 0, 15, 192, 3, 0, - 228, 160, 0, 0, 255, 144, - 0, 0, 228, 128, 5, 0, - 0, 3, 0, 0, 7, 128, - 1, 0, 85, 144, 9, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 7, 128, 8, 0, - 228, 160, 1, 0, 0, 144, - 0, 0, 228, 128, 4, 0, - 0, 4, 0, 0, 7, 128, - 10, 0, 228, 160, 1, 0, - 170, 144, 0, 0, 228, 128, - 1, 0, 0, 2, 1, 0, - 1, 128, 5, 0, 0, 160, - 12, 0, 0, 3, 0, 0, - 8, 128, 1, 0, 0, 128, - 13, 0, 255, 160, 2, 0, - 0, 3, 1, 0, 15, 128, - 3, 0, 228, 144, 5, 0, - 149, 160, 4, 0, 0, 4, - 1, 0, 15, 128, 0, 0, - 255, 128, 1, 0, 228, 128, - 5, 0, 192, 160, 1, 0, - 0, 2, 2, 0, 1, 128, - 13, 0, 0, 160, 4, 0, - 0, 4, 2, 0, 7, 128, - 14, 0, 228, 160, 2, 0, - 0, 128, 1, 0, 228, 128, - 1, 0, 0, 2, 1, 0, - 7, 128, 2, 0, 228, 128, - 1, 0, 0, 2, 0, 0, - 8, 128, 5, 0, 0, 160, - 38, 0, 0, 1, 0, 0, - 228, 240, 2, 0, 0, 3, - 2, 0, 8, 128, 0, 0, - 255, 128, 15, 0, 0, 160, - 5, 0, 0, 3, 2, 0, - 8, 128, 2, 0, 255, 128, - 4, 0, 0, 160, 46, 0, - 0, 2, 0, 0, 1, 176, - 2, 0, 255, 128, 8, 0, - 0, 4, 2, 0, 8, 128, - 0, 0, 228, 128, 18, 32, - 228, 161, 0, 0, 0, 176, - 11, 0, 0, 3, 2, 0, - 8, 128, 2, 0, 255, 128, - 5, 0, 0, 160, 5, 0, - 0, 4, 3, 0, 7, 128, - 2, 0, 255, 128, 16, 32, - 228, 160, 0, 0, 0, 176, - 4, 0, 0, 4, 1, 0, - 7, 128, 3, 0, 228, 128, - 13, 0, 170, 160, 1, 0, - 228, 128, 2, 0, 0, 3, - 0, 0, 8, 128, 0, 0, - 255, 128, 5, 0, 255, 160, - 39, 0, 0, 0, 11, 0, + 0, 128, 0, 0, 128, 191, + 0, 0, 128, 63, 31, 0, + 0, 2, 0, 0, 0, 128, + 0, 0, 15, 144, 31, 0, + 0, 2, 3, 0, 0, 128, + 1, 0, 15, 144, 31, 0, + 0, 2, 5, 0, 0, 128, + 2, 0, 15, 144, 31, 0, + 0, 2, 10, 0, 0, 128, + 3, 0, 15, 144, 5, 0, 0, 3, 0, 0, 15, 128, - 1, 0, 228, 128, 5, 0, - 0, 160, 10, 0, 0, 3, + 0, 0, 85, 144, 1, 0, + 228, 160, 4, 0, 0, 4, 0, 0, 15, 128, 0, 0, - 228, 128, 5, 0, 255, 160, + 228, 160, 0, 0, 0, 144, + 0, 0, 228, 128, 4, 0, + 0, 4, 0, 0, 15, 128, + 2, 0, 228, 160, 0, 0, + 170, 144, 0, 0, 228, 128, + 4, 0, 0, 4, 0, 0, + 15, 128, 3, 0, 228, 160, + 0, 0, 255, 144, 0, 0, + 228, 128, 1, 0, 0, 2, + 0, 0, 15, 192, 0, 0, + 228, 128, 5, 0, 0, 3, + 0, 0, 7, 128, 1, 0, + 85, 144, 9, 0, 228, 160, + 4, 0, 0, 4, 0, 0, + 7, 128, 8, 0, 228, 160, + 1, 0, 0, 144, 0, 0, + 228, 128, 4, 0, 0, 4, + 0, 0, 7, 128, 10, 0, + 228, 160, 1, 0, 170, 144, + 0, 0, 228, 128, 1, 0, + 0, 2, 1, 0, 1, 128, + 5, 0, 0, 160, 12, 0, + 0, 3, 1, 0, 1, 128, + 1, 0, 0, 128, 13, 0, + 255, 160, 2, 0, 0, 3, + 2, 0, 15, 128, 3, 0, + 228, 144, 5, 0, 149, 160, + 4, 0, 0, 4, 1, 0, + 15, 128, 1, 0, 0, 128, + 2, 0, 228, 128, 5, 0, + 192, 160, 1, 0, 0, 2, + 2, 0, 1, 128, 13, 0, + 0, 160, 4, 0, 0, 4, + 2, 0, 7, 128, 15, 0, + 228, 160, 2, 0, 0, 128, + 1, 0, 228, 128, 1, 0, + 0, 2, 1, 0, 7, 128, + 2, 0, 228, 128, 1, 0, + 0, 2, 2, 0, 8, 128, + 5, 0, 0, 160, 38, 0, + 0, 1, 0, 0, 228, 240, + 2, 0, 0, 3, 3, 0, + 1, 128, 2, 0, 255, 128, + 16, 0, 0, 160, 5, 0, + 0, 3, 3, 0, 1, 128, + 3, 0, 0, 128, 4, 0, + 0, 160, 46, 0, 0, 2, + 0, 0, 1, 176, 3, 0, + 0, 128, 8, 0, 0, 4, + 3, 0, 1, 128, 0, 0, + 228, 128, 19, 32, 228, 161, + 0, 0, 0, 176, 11, 0, + 0, 3, 3, 0, 1, 128, + 3, 0, 0, 128, 5, 0, + 0, 160, 5, 0, 0, 4, + 3, 0, 7, 128, 3, 0, + 0, 128, 17, 32, 228, 160, + 0, 0, 0, 176, 4, 0, + 0, 4, 1, 0, 7, 128, + 3, 0, 228, 128, 13, 0, + 170, 160, 1, 0, 228, 128, + 2, 0, 0, 3, 2, 0, + 8, 128, 2, 0, 255, 128, + 5, 0, 255, 160, 39, 0, + 0, 0, 11, 0, 0, 3, + 1, 0, 15, 128, 1, 0, + 228, 128, 5, 0, 0, 160, + 10, 0, 0, 3, 1, 0, + 15, 128, 1, 0, 228, 128, + 5, 0, 255, 160, 5, 0, + 0, 3, 0, 0, 15, 208, + 1, 0, 228, 128, 12, 0, + 228, 160, 2, 0, 0, 3, + 0, 0, 1, 128, 0, 0, + 255, 128, 14, 0, 85, 161, 5, 0, 0, 3, 0, 0, - 15, 208, 0, 0, 228, 128, - 12, 0, 228, 160, 1, 0, - 0, 2, 0, 0, 3, 224, - 2, 0, 228, 144, 255, 255, - 0, 0 + 1, 128, 0, 0, 0, 128, + 14, 0, 170, 160, 11, 0, + 0, 3, 0, 0, 1, 128, + 0, 0, 0, 128, 14, 0, + 255, 160, 10, 0, 0, 3, + 0, 0, 4, 224, 0, 0, + 0, 128, 5, 0, 255, 160, + 1, 0, 0, 2, 0, 0, + 3, 224, 2, 0, 228, 144, + 255, 255, 0, 0 }; diff --git a/src/d3d/shaders/default_color_PS.h b/src/d3d/shaders/default_color_PS.h deleted file mode 100644 index dd7336e..0000000 --- a/src/d3d/shaders/default_color_PS.h +++ /dev/null @@ -1,37 +0,0 @@ -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 -// -// fxc /T ps_2_0 /Fh default_color_PS.h default_color_PS.hlsl -// - ps_2_0 - dcl v0 - mov oC0, v0 - -// approximately 1 instruction slot used -#endif - -const BYTE g_ps20_main[] = -{ - 0, 2, 255, 255, 254, 255, - 22, 0, 67, 84, 65, 66, - 28, 0, 0, 0, 35, 0, - 0, 0, 0, 2, 255, 255, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 28, 0, 0, 0, 112, 115, - 95, 50, 95, 48, 0, 77, - 105, 99, 114, 111, 115, 111, - 102, 116, 32, 40, 82, 41, - 32, 72, 76, 83, 76, 32, - 83, 104, 97, 100, 101, 114, - 32, 67, 111, 109, 112, 105, - 108, 101, 114, 32, 57, 46, - 50, 57, 46, 57, 53, 50, - 46, 51, 49, 49, 49, 0, - 31, 0, 0, 2, 0, 0, - 0, 128, 0, 0, 15, 144, - 1, 0, 0, 2, 0, 8, - 15, 128, 0, 0, 228, 144, - 255, 255, 0, 0 -}; diff --git a/src/d3d/shaders/default_color_PS.hlsl b/src/d3d/shaders/default_color_PS.hlsl deleted file mode 100644 index 9048415..0000000 --- a/src/d3d/shaders/default_color_PS.hlsl +++ /dev/null @@ -1,10 +0,0 @@ -struct VS_out { - float4 Position : POSITION; - float2 TexCoord0 : TEXCOORD0; - float4 Color : COLOR0; -}; - -float4 main(VS_out input) : COLOR -{ - return input.Color; -} diff --git a/src/d3d/shaders/default_color_tex_PS.h b/src/d3d/shaders/default_color_tex_PS.h deleted file mode 100644 index c05ad53..0000000 --- a/src/d3d/shaders/default_color_tex_PS.h +++ /dev/null @@ -1,71 +0,0 @@ -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 -// -// fxc /T ps_2_0 /Fh default_color_tex_PS.h default_color_tex_PS.hlsl -// -// -// Parameters: -// -// sampler2D tex0; -// -// -// Registers: -// -// Name Reg Size -// ------------ ----- ---- -// tex0 s0 1 -// - - ps_2_0 - dcl t0.xy - dcl v0 - dcl_2d s0 - texld r0, t0, s0 - mul r0, r0, v0 - mov oC0, r0 - -// approximately 3 instruction slots used (1 texture, 2 arithmetic) -#endif - -const BYTE g_ps20_main[] = -{ - 0, 2, 255, 255, 254, 255, - 33, 0, 67, 84, 65, 66, - 28, 0, 0, 0, 79, 0, - 0, 0, 0, 2, 255, 255, - 1, 0, 0, 0, 28, 0, - 0, 0, 0, 1, 0, 0, - 72, 0, 0, 0, 48, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 2, 0, 56, 0, - 0, 0, 0, 0, 0, 0, - 116, 101, 120, 48, 0, 171, - 171, 171, 4, 0, 12, 0, - 1, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 112, 115, 95, 50, 95, 48, - 0, 77, 105, 99, 114, 111, - 115, 111, 102, 116, 32, 40, - 82, 41, 32, 72, 76, 83, - 76, 32, 83, 104, 97, 100, - 101, 114, 32, 67, 111, 109, - 112, 105, 108, 101, 114, 32, - 57, 46, 50, 57, 46, 57, - 53, 50, 46, 51, 49, 49, - 49, 0, 31, 0, 0, 2, - 0, 0, 0, 128, 0, 0, - 3, 176, 31, 0, 0, 2, - 0, 0, 0, 128, 0, 0, - 15, 144, 31, 0, 0, 2, - 0, 0, 0, 144, 0, 8, - 15, 160, 66, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 176, 0, 8, 228, 160, - 5, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 228, 128, - 0, 0, 228, 144, 1, 0, - 0, 2, 0, 8, 15, 128, - 0, 0, 228, 128, 255, 255, - 0, 0 -}; diff --git a/src/d3d/shaders/default_color_tex_PS.hlsl b/src/d3d/shaders/im2d_PS.hlsl similarity index 62% rename from src/d3d/shaders/default_color_tex_PS.hlsl rename to src/d3d/shaders/im2d_PS.hlsl index 3012dec..a076531 100644 --- a/src/d3d/shaders/default_color_tex_PS.hlsl +++ b/src/d3d/shaders/im2d_PS.hlsl @@ -9,5 +9,9 @@ sampler2D tex0 : register(s0); float4 main(VS_out input) : COLOR { - return tex2D(tex0, input.TexCoord0.xy) * input.Color; + float4 color = input.Color; +#ifdef TEX + color *= tex2D(tex0, input.TexCoord0.xy); +#endif + return color; } diff --git a/src/d3d/shaders/make_default.cmd b/src/d3d/shaders/make_default.cmd index 98c90a2..0c08985 100644 --- a/src/d3d/shaders/make_default.cmd +++ b/src/d3d/shaders/make_default.cmd @@ -3,5 +3,8 @@ "%DXSDK_DIR%\utilities\bin\x86\fxc.exe" /T vs_2_0 /DDIRECTIONALS /Fh default_amb_dir_VS.h default_VS.hlsl "%DXSDK_DIR%\utilities\bin\x86\fxc.exe" /T vs_2_0 /DDIRECTIONALS /DPOINTLIGHTS /DSPOTLIGHTS /Fh default_all_VS.h default_VS.hlsl -"%DXSDK_DIR%\utilities\bin\x86\fxc.exe" /T ps_2_0 /Fh default_color_PS.h default_color_PS.hlsl -"%DXSDK_DIR%\utilities\bin\x86\fxc.exe" /T ps_2_0 /Fh default_color_tex_PS.h default_color_tex_PS.hlsl +"%DXSDK_DIR%\utilities\bin\x86\fxc.exe" /T ps_2_0 /Fh default_PS.h default_PS.hlsl +"%DXSDK_DIR%\utilities\bin\x86\fxc.exe" /T ps_2_0 /DTEX /Fh default_tex_PS.h default_PS.hlsl + +"%DXSDK_DIR%\utilities\bin\x86\fxc.exe" /T ps_2_0 /Fh im2d_PS.h im2d_PS.hlsl +"%DXSDK_DIR%\utilities\bin\x86\fxc.exe" /T ps_2_0 /DTEX /Fh im2d_tex_PS.h im2d_PS.hlsl diff --git a/src/d3d/shaders/matfx_env_PS.h b/src/d3d/shaders/matfx_env_PS.h index 5e37c8f..41d5678 100644 --- a/src/d3d/shaders/matfx_env_PS.h +++ b/src/d3d/shaders/matfx_env_PS.h @@ -9,6 +9,7 @@ // // float4 colorClamp; // sampler2D envTex; +// float4 fogColor; // float shininess; // // @@ -16,90 +17,107 @@ // // Name Reg Size // ------------ ----- ---- -// shininess c0 1 -// colorClamp c1 1 +// fogColor c0 1 +// shininess c1 1 +// colorClamp c2 1 // envTex s1 1 // ps_2_0 + dcl t0.xyz dcl t1.xy dcl v0 dcl_2d s1 texld r0, t1, s1 - max r1.xyz, v0, c1 - mul r1.xyz, r1, c0.x + max r1.xyz, v0, c2 + mul r1.xyz, r1, c1.x mul r0.xyz, r0, r1 - mad r0.xyz, v0, v0.w, r0 + add r1.xyz, v0, -c0 + mad r1.xyz, t0.z, r1, c0 + mad r0.xyz, r1, v0.w, r0 mov r0.w, v0.w mov oC0, r0 -// approximately 7 instruction slots used (1 texture, 6 arithmetic) +// approximately 9 instruction slots used (1 texture, 8 arithmetic) #endif const BYTE g_ps20_main[] = { 0, 2, 255, 255, 254, 255, - 57, 0, 67, 84, 65, 66, - 28, 0, 0, 0, 175, 0, + 64, 0, 67, 84, 65, 66, + 28, 0, 0, 0, 203, 0, 0, 0, 0, 2, 255, 255, - 3, 0, 0, 0, 28, 0, + 4, 0, 0, 0, 28, 0, 0, 0, 0, 1, 0, 0, - 168, 0, 0, 0, 88, 0, - 0, 0, 2, 0, 1, 0, - 1, 0, 6, 0, 100, 0, + 196, 0, 0, 0, 108, 0, + 0, 0, 2, 0, 2, 0, + 1, 0, 10, 0, 120, 0, 0, 0, 0, 0, 0, 0, - 116, 0, 0, 0, 3, 0, + 136, 0, 0, 0, 3, 0, 1, 0, 1, 0, 6, 0, - 124, 0, 0, 0, 0, 0, - 0, 0, 140, 0, 0, 0, + 144, 0, 0, 0, 0, 0, + 0, 0, 160, 0, 0, 0, 2, 0, 0, 0, 1, 0, - 2, 0, 152, 0, 0, 0, - 0, 0, 0, 0, 99, 111, - 108, 111, 114, 67, 108, 97, - 109, 112, 0, 171, 1, 0, - 3, 0, 1, 0, 4, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 101, 110, 118, 84, - 101, 120, 0, 171, 4, 0, - 12, 0, 1, 0, 1, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 115, 104, 105, 110, - 105, 110, 101, 115, 115, 0, - 171, 171, 0, 0, 3, 0, - 1, 0, 1, 0, 1, 0, + 2, 0, 120, 0, 0, 0, + 0, 0, 0, 0, 169, 0, + 0, 0, 2, 0, 1, 0, + 1, 0, 6, 0, 180, 0, 0, 0, 0, 0, 0, 0, - 112, 115, 95, 50, 95, 48, - 0, 77, 105, 99, 114, 111, - 115, 111, 102, 116, 32, 40, - 82, 41, 32, 72, 76, 83, - 76, 32, 83, 104, 97, 100, - 101, 114, 32, 67, 111, 109, - 112, 105, 108, 101, 114, 32, - 57, 46, 50, 57, 46, 57, - 53, 50, 46, 51, 49, 49, - 49, 0, 31, 0, 0, 2, - 0, 0, 0, 128, 1, 0, - 3, 176, 31, 0, 0, 2, - 0, 0, 0, 128, 0, 0, - 15, 144, 31, 0, 0, 2, - 0, 0, 0, 144, 1, 8, - 15, 160, 66, 0, 0, 3, - 0, 0, 15, 128, 1, 0, - 228, 176, 1, 8, 228, 160, - 11, 0, 0, 3, 1, 0, - 7, 128, 0, 0, 228, 144, - 1, 0, 228, 160, 5, 0, + 99, 111, 108, 111, 114, 67, + 108, 97, 109, 112, 0, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 101, 110, + 118, 84, 101, 120, 0, 171, + 4, 0, 12, 0, 1, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 102, 111, + 103, 67, 111, 108, 111, 114, + 0, 115, 104, 105, 110, 105, + 110, 101, 115, 115, 0, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 112, 115, + 95, 50, 95, 48, 0, 77, + 105, 99, 114, 111, 115, 111, + 102, 116, 32, 40, 82, 41, + 32, 72, 76, 83, 76, 32, + 83, 104, 97, 100, 101, 114, + 32, 67, 111, 109, 112, 105, + 108, 101, 114, 32, 57, 46, + 50, 57, 46, 57, 53, 50, + 46, 51, 49, 49, 49, 0, + 31, 0, 0, 2, 0, 0, + 0, 128, 0, 0, 7, 176, + 31, 0, 0, 2, 0, 0, + 0, 128, 1, 0, 3, 176, + 31, 0, 0, 2, 0, 0, + 0, 128, 0, 0, 15, 144, + 31, 0, 0, 2, 0, 0, + 0, 144, 1, 8, 15, 160, + 66, 0, 0, 3, 0, 0, + 15, 128, 1, 0, 228, 176, + 1, 8, 228, 160, 11, 0, 0, 3, 1, 0, 7, 128, + 0, 0, 228, 144, 2, 0, + 228, 160, 5, 0, 0, 3, + 1, 0, 7, 128, 1, 0, + 228, 128, 1, 0, 0, 160, + 5, 0, 0, 3, 0, 0, + 7, 128, 0, 0, 228, 128, + 1, 0, 228, 128, 2, 0, + 0, 3, 1, 0, 7, 128, + 0, 0, 228, 144, 0, 0, + 228, 161, 4, 0, 0, 4, + 1, 0, 7, 128, 0, 0, + 170, 176, 1, 0, 228, 128, + 0, 0, 228, 160, 4, 0, + 0, 4, 0, 0, 7, 128, 1, 0, 228, 128, 0, 0, - 0, 160, 5, 0, 0, 3, - 0, 0, 7, 128, 0, 0, - 228, 128, 1, 0, 228, 128, - 4, 0, 0, 4, 0, 0, - 7, 128, 0, 0, 228, 144, - 0, 0, 255, 144, 0, 0, - 228, 128, 1, 0, 0, 2, - 0, 0, 8, 128, 0, 0, - 255, 144, 1, 0, 0, 2, - 0, 8, 15, 128, 0, 0, - 228, 128, 255, 255, 0, 0 + 255, 144, 0, 0, 228, 128, + 1, 0, 0, 2, 0, 0, + 8, 128, 0, 0, 255, 144, + 1, 0, 0, 2, 0, 8, + 15, 128, 0, 0, 228, 128, + 255, 255, 0, 0 }; diff --git a/src/d3d/shaders/matfx_env_PS.hlsl b/src/d3d/shaders/matfx_env_PS.hlsl index 67936cd..3508351 100644 --- a/src/d3d/shaders/matfx_env_PS.hlsl +++ b/src/d3d/shaders/matfx_env_PS.hlsl @@ -1,6 +1,6 @@ struct VS_out { float4 Position : POSITION; - float2 TexCoord0 : TEXCOORD0; + float3 TexCoord0 : TEXCOORD0; float2 TexCoord1 : TEXCOORD1; float4 Color : COLOR0; }; @@ -8,8 +8,10 @@ struct VS_out { sampler2D diffTex : register(s0); sampler2D envTex : register(s1); -float shininess : register(c0); -float4 colorClamp : register(c1); +float4 fogColor : register(c0); + +float shininess : register(c1); +float4 colorClamp : register(c2); float4 main(VS_out input) : COLOR { @@ -21,6 +23,8 @@ float4 main(VS_out input) : COLOR float4 envColor = max(pass1, colorClamp); float4 pass2 = envColor*shininess*tex2D(envTex, input.TexCoord1.xy); + pass1.rgb = lerp(fogColor.rgb, pass1.rgb, input.TexCoord0.z); + // We simulate drawing this in two passes. // First pass with standard blending, second with addition // We premultiply alpha so render state should be one. diff --git a/src/d3d/shaders/matfx_env_VS.hlsl b/src/d3d/shaders/matfx_env_VS.hlsl index d180e3a..3f49241 100644 --- a/src/d3d/shaders/matfx_env_VS.hlsl +++ b/src/d3d/shaders/matfx_env_VS.hlsl @@ -1,28 +1,6 @@ -float4x4 combinedMat : register(c0); -float4x4 worldMat : register(c4); -float3x3 normalMat : register(c8); -float4 matCol : register(c12); -float4 surfProps : register(c13); -float4 ambientLight : register(c14); +#include "standardConstants.h" -#define surfAmbient (surfProps.x) -#define surfSpecular (surfProps.y) -#define surfDiffuse (surfProps.z) -#define surfPrelight (surfProps.w) - -#include "lighting.h" - -int numDirLights : register(i0); -int numPointLights : register(i1); -int numSpotLights : register(i2); -int4 firstLight : register(c15); -Light lights[8] : register(c16); - -float4x4 texMat : register(c40); - -#define firstDirLight (firstLight.x) -#define firstPointLight (firstLight.y) -#define firstSpotLight (firstLight.z) +float4x4 texMat : register(c41); struct VS_in { @@ -34,7 +12,7 @@ struct VS_in struct VS_out { float4 Position : POSITION; - float2 TexCoord0 : TEXCOORD0; + float3 TexCoord0 : TEXCOORD0; // also fog float2 TexCoord1 : TEXCOORD1; float4 Color : COLOR0; }; @@ -48,7 +26,7 @@ VS_out main(in VS_in input) float3 Vertex = mul(worldMat, input.Position).xyz; float3 Normal = mul(normalMat, input.Normal); - output.TexCoord0 = input.TexCoord; + output.TexCoord0.xy = input.TexCoord; output.TexCoord1 = mul(texMat, float4(Normal, 1.0)).xy; output.Color = float4(0.0, 0.0, 0.0, 1.0); @@ -74,5 +52,7 @@ VS_out main(in VS_in input) output.Color = clamp(output.Color, 0.0, 1.0); output.Color *= matCol; + output.TexCoord0.z = clamp((output.Position.w - fogEnd)*fogRange, fogDisable, 1.0); + return output; } diff --git a/src/d3d/shaders/matfx_env_all_VS.h b/src/d3d/shaders/matfx_env_all_VS.h index 7cd0b6d..1ce35e1 100644 --- a/src/d3d/shaders/matfx_env_all_VS.h +++ b/src/d3d/shaders/matfx_env_all_VS.h @@ -11,6 +11,7 @@ // float4 ambientLight; // float4x4 combinedMat; // int4 firstLight; +// float4 fogData; // // struct // { @@ -42,15 +43,16 @@ // normalMat c8 3 // matCol c12 1 // surfProps c13 1 -// ambientLight c14 1 -// firstLight c15 1 -// lights c16 24 -// texMat c40 4 +// fogData c14 1 +// ambientLight c15 1 +// firstLight c16 1 +// lights c17 24 +// texMat c41 4 // vs_2_0 def c11, 3, 0, 0, 0 - def c44, 0, -0, -1, 1 + def c45, 0, -0, -1, 1 dcl_position v0 dcl_normal v1 dcl_texcoord v2 @@ -58,7 +60,8 @@ mul r0, v0.y, c1 mad r0, c0, v0.x, r0 mad r0, c2, v0.z, r0 - mad oPos, c3, v0.w, r0 + mad r0, c3, v0.w, r0 + mov oPos, r0 mul r0.xyz, v0.y, c5 mad r0.xyz, c4, v0.x, r0 mad r0.xyz, c6, v0.z, r0 @@ -66,443 +69,464 @@ mul r1.xyz, v1.y, c9 mad r1.xyz, c8, v1.x, r1 mad r1.xyz, c10, v1.z, r1 - mov r2.xw, c44 - slt r0.w, r2.x, c13.w - add r3, v3, c44.yyyz - mad r3, r0.w, r3, c44.xxxw + mov r2.xw, c45 + slt r1.w, r2.x, c13.w + add r3, v3, c45.yyyz + mad r3, r1.w, r3, c45.xxxw mov r2.x, c13.x - mad r2.xyz, c14, r2.x, r3 + mad r2.xyz, c15, r2.x, r3 mov r4.xyz, r2 - mov r0.w, c44.x + mov r1.w, c45.x rep i0 - add r1.w, r0.w, c15.x - mul r1.w, r1.w, c11.x - mova a0.x, r1.w - dp3 r1.w, r1, -c18[a0.x] - max r1.w, r1.w, c44.x - mul r5.xyz, r1.w, c16[a0.x] + add r4.w, r1.w, c16.x + mul r4.w, r4.w, c11.x + mova a0.x, r4.w + dp3 r4.w, r1, -c19[a0.x] + max r4.w, r4.w, c45.x + mul r5.xyz, r4.w, c17[a0.x] mad r4.xyz, r5, c13.z, r4 - add r0.w, r0.w, c44.w + add r1.w, r1.w, c45.w endrep mov r2.xyz, r4 - mov r0.w, c44.x + mov r1.w, c45.x rep i1 - add r1.w, r0.w, c15.y - mul r1.w, r1.w, c11.x - mova a0.x, r1.w - add r5.xyz, r0, -c17[a0.x] - dp3 r1.w, r5, r5 - rsq r1.w, r1.w - mul r5.xyz, r1.w, r5 - dp3 r4.w, r1, -r5 - max r4.w, r4.w, c44.x - mul r5.xyz, r4.w, c16[a0.x] - rcp r1.w, r1.w - rcp r4.w, c16[a0.x].w - mad r1.w, r1.w, -r4.w, c44.w - max r1.w, r1.w, c44.x - mul r5.xyz, r1.w, r5 + add r4.w, r1.w, c16.y + mul r4.w, r4.w, c11.x + mova a0.x, r4.w + add r5.xyz, r0, -c18[a0.x] + dp3 r4.w, r5, r5 + rsq r4.w, r4.w + mul r5.xyz, r4.w, r5 + dp3 r5.x, r1, -r5 + max r5.x, r5.x, c45.x + mul r5.xyz, r5.x, c17[a0.x] + rcp r4.w, r4.w + rcp r5.w, c17[a0.x].w + mad r4.w, r4.w, -r5.w, c45.w + max r4.w, r4.w, c45.x + mul r5.xyz, r4.w, r5 mad r2.xyz, r5, c13.z, r2 - add r0.w, r0.w, c44.w + add r1.w, r1.w, c45.w endrep mov r3.xyz, r2 - mov r0.w, c44.x + mov r1.w, c45.x rep i2 - add r1.w, r0.w, c15.z - mul r1.w, r1.w, c11.x - mova a0.x, r1.w - add r4.xyz, r0, -c17[a0.x] - dp3 r1.w, r4, r4 - rsq r1.w, r1.w - mul r4.xyz, r1.w, r4 - dp3 r4.w, r1, -r4 - dp3 r4.x, r4, c18[a0.x] - max r4.y, r4.w, c44.x - add r4.x, r4.x, c17[a0.x].w - add r4.z, r2.w, c17[a0.x].w + add r4.x, r1.w, c16.z + mul r4.x, r4.x, c11.x + mova a0.x, r4.x + add r4.xyz, r0, -c18[a0.x] + dp3 r4.w, r4, r4 + rsq r4.w, r4.w + mul r4.xyz, r4.w, r4 + dp3 r5.x, r1, -r4 + dp3 r4.x, r4, c19[a0.x] + max r4.y, r5.x, c45.x + add r4.x, r4.x, c18[a0.x].w + add r4.z, r2.w, c18[a0.x].w rcp r4.z, r4.z mul r4.x, r4.z, r4.x - slt r4.z, r4.x, c44.x + slt r4.z, r4.x, c45.x mad r4.y, r4.z, -r4.y, r4.y - max r4.x, r4.x, c18[a0.x].w + max r4.x, r4.x, c19[a0.x].w mul r4.x, r4.x, r4.y - mul r4.xyz, r4.x, c16[a0.x] - rcp r1.w, r1.w - rcp r4.w, c16[a0.x].w - mad r1.w, r1.w, -r4.w, c44.w - max r1.w, r1.w, c44.x - mul r4.xyz, r1.w, r4 + mul r4.xyz, r4.x, c17[a0.x] + rcp r4.w, r4.w + rcp r5.x, c17[a0.x].w + mad r4.w, r4.w, -r5.x, c45.w + max r4.w, r4.w, c45.x + mul r4.xyz, r4.w, r4 mad r3.xyz, r4, c13.z, r3 - add r0.w, r0.w, c44.w + add r1.w, r1.w, c45.w endrep - max r0, r3, c44.x - min r0, r0, c44.w - mul oD0, r0, c12 - mul r0.xy, r1.y, c41 - mad r0.xy, c40, r1.x, r0 - mad r0.xy, c42, r1.z, r0 - add oT1.xy, r0, c43 + max r2, r3, c45.x + min r2, r2, c45.w + mul oD0, r2, c12 + mul r0.xy, r1.y, c42 + mad r0.xy, c41, r1.x, r0 + mad r0.xy, c43, r1.z, r0 + add oT1.xy, r0, c44 + add r0.x, r0.w, -c14.y + mul r0.x, r0.x, c14.z + max r0.x, r0.x, c14.w + min oT0.z, r0.x, c45.w mov oT0.xy, v2 -// approximately 97 instruction slots used +// approximately 102 instruction slots used #endif const BYTE g_vs20_main[] = { 0, 2, 254, 255, 254, 255, - 158, 0, 67, 84, 65, 66, - 28, 0, 0, 0, 66, 2, + 165, 0, 67, 84, 65, 66, + 28, 0, 0, 0, 94, 2, 0, 0, 0, 2, 254, 255, - 12, 0, 0, 0, 28, 0, + 13, 0, 0, 0, 28, 0, 0, 0, 0, 1, 0, 0, - 59, 2, 0, 0, 12, 1, - 0, 0, 2, 0, 14, 0, - 1, 0, 58, 0, 28, 1, + 87, 2, 0, 0, 32, 1, + 0, 0, 2, 0, 15, 0, + 1, 0, 62, 0, 48, 1, 0, 0, 0, 0, 0, 0, - 44, 1, 0, 0, 2, 0, + 64, 1, 0, 0, 2, 0, 0, 0, 4, 0, 2, 0, - 56, 1, 0, 0, 0, 0, - 0, 0, 72, 1, 0, 0, - 2, 0, 15, 0, 1, 0, - 62, 0, 84, 1, 0, 0, - 0, 0, 0, 0, 100, 1, - 0, 0, 2, 0, 16, 0, - 24, 0, 66, 0, 176, 1, + 76, 1, 0, 0, 0, 0, + 0, 0, 92, 1, 0, 0, + 2, 0, 16, 0, 1, 0, + 66, 0, 104, 1, 0, 0, + 0, 0, 0, 0, 120, 1, + 0, 0, 2, 0, 14, 0, + 1, 0, 58, 0, 48, 1, 0, 0, 0, 0, 0, 0, - 192, 1, 0, 0, 2, 0, - 12, 0, 1, 0, 50, 0, - 28, 1, 0, 0, 0, 0, - 0, 0, 199, 1, 0, 0, - 2, 0, 8, 0, 3, 0, - 34, 0, 212, 1, 0, 0, - 0, 0, 0, 0, 228, 1, - 0, 0, 1, 0, 0, 0, - 1, 0, 2, 0, 244, 1, + 128, 1, 0, 0, 2, 0, + 17, 0, 24, 0, 70, 0, + 204, 1, 0, 0, 0, 0, + 0, 0, 220, 1, 0, 0, + 2, 0, 12, 0, 1, 0, + 50, 0, 48, 1, 0, 0, + 0, 0, 0, 0, 227, 1, + 0, 0, 2, 0, 8, 0, + 3, 0, 34, 0, 240, 1, 0, 0, 0, 0, 0, 0, - 4, 2, 0, 0, 1, 0, - 1, 0, 1, 0, 6, 0, - 244, 1, 0, 0, 0, 0, - 0, 0, 19, 2, 0, 0, - 1, 0, 2, 0, 1, 0, - 10, 0, 244, 1, 0, 0, - 0, 0, 0, 0, 33, 2, - 0, 0, 2, 0, 13, 0, - 1, 0, 54, 0, 28, 1, - 0, 0, 0, 0, 0, 0, - 43, 2, 0, 0, 2, 0, - 40, 0, 4, 0, 162, 0, - 56, 1, 0, 0, 0, 0, - 0, 0, 50, 2, 0, 0, - 2, 0, 4, 0, 4, 0, - 18, 0, 56, 1, 0, 0, - 0, 0, 0, 0, 97, 109, - 98, 105, 101, 110, 116, 76, - 105, 103, 104, 116, 0, 171, - 171, 171, 1, 0, 3, 0, - 1, 0, 4, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 99, 111, 109, 98, 105, 110, - 101, 100, 77, 97, 116, 0, - 3, 0, 3, 0, 4, 0, - 4, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 102, 105, - 114, 115, 116, 76, 105, 103, - 104, 116, 0, 171, 1, 0, - 2, 0, 1, 0, 4, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 108, 105, 103, 104, - 116, 115, 0, 99, 111, 108, - 111, 114, 0, 171, 171, 171, - 1, 0, 3, 0, 1, 0, - 4, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 112, 111, - 115, 105, 116, 105, 111, 110, - 0, 100, 105, 114, 101, 99, - 116, 105, 111, 110, 0, 171, - 107, 1, 0, 0, 116, 1, - 0, 0, 132, 1, 0, 0, - 116, 1, 0, 0, 141, 1, - 0, 0, 116, 1, 0, 0, - 5, 0, 0, 0, 1, 0, - 12, 0, 8, 0, 3, 0, - 152, 1, 0, 0, 109, 97, - 116, 67, 111, 108, 0, 110, - 111, 114, 109, 97, 108, 77, - 97, 116, 0, 171, 171, 171, - 3, 0, 3, 0, 3, 0, - 3, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 110, 117, - 109, 68, 105, 114, 76, 105, - 103, 104, 116, 115, 0, 171, - 171, 171, 0, 0, 2, 0, + 0, 2, 0, 0, 1, 0, + 0, 0, 1, 0, 2, 0, + 16, 2, 0, 0, 0, 0, + 0, 0, 32, 2, 0, 0, 1, 0, 1, 0, 1, 0, + 6, 0, 16, 2, 0, 0, + 0, 0, 0, 0, 47, 2, + 0, 0, 1, 0, 2, 0, + 1, 0, 10, 0, 16, 2, 0, 0, 0, 0, 0, 0, - 110, 117, 109, 80, 111, 105, - 110, 116, 76, 105, 103, 104, - 116, 115, 0, 110, 117, 109, - 83, 112, 111, 116, 76, 105, - 103, 104, 116, 115, 0, 115, - 117, 114, 102, 80, 114, 111, - 112, 115, 0, 116, 101, 120, - 77, 97, 116, 0, 119, 111, - 114, 108, 100, 77, 97, 116, - 0, 118, 115, 95, 50, 95, - 48, 0, 77, 105, 99, 114, - 111, 115, 111, 102, 116, 32, - 40, 82, 41, 32, 72, 76, - 83, 76, 32, 83, 104, 97, - 100, 101, 114, 32, 67, 111, - 109, 112, 105, 108, 101, 114, - 32, 57, 46, 50, 57, 46, - 57, 53, 50, 46, 51, 49, - 49, 49, 0, 171, 81, 0, - 0, 5, 11, 0, 15, 160, - 0, 0, 64, 64, 0, 0, + 61, 2, 0, 0, 2, 0, + 13, 0, 1, 0, 54, 0, + 48, 1, 0, 0, 0, 0, + 0, 0, 71, 2, 0, 0, + 2, 0, 41, 0, 4, 0, + 166, 0, 76, 1, 0, 0, + 0, 0, 0, 0, 78, 2, + 0, 0, 2, 0, 4, 0, + 4, 0, 18, 0, 76, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 81, 0, - 0, 5, 44, 0, 15, 160, + 97, 109, 98, 105, 101, 110, + 116, 76, 105, 103, 104, 116, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 99, 111, 109, 98, + 105, 110, 101, 100, 77, 97, + 116, 0, 3, 0, 3, 0, + 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 128, 0, 0, 128, 191, - 0, 0, 128, 63, 31, 0, - 0, 2, 0, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 3, 0, 0, 128, - 1, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 0, 128, - 2, 0, 15, 144, 31, 0, - 0, 2, 10, 0, 0, 128, - 3, 0, 15, 144, 5, 0, - 0, 3, 0, 0, 15, 128, - 0, 0, 85, 144, 1, 0, - 228, 160, 4, 0, 0, 4, + 102, 105, 114, 115, 116, 76, + 105, 103, 104, 116, 0, 171, + 1, 0, 2, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 102, 111, + 103, 68, 97, 116, 97, 0, + 108, 105, 103, 104, 116, 115, + 0, 99, 111, 108, 111, 114, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 112, 111, 115, 105, + 116, 105, 111, 110, 0, 100, + 105, 114, 101, 99, 116, 105, + 111, 110, 0, 171, 135, 1, + 0, 0, 144, 1, 0, 0, + 160, 1, 0, 0, 144, 1, + 0, 0, 169, 1, 0, 0, + 144, 1, 0, 0, 5, 0, + 0, 0, 1, 0, 12, 0, + 8, 0, 3, 0, 180, 1, + 0, 0, 109, 97, 116, 67, + 111, 108, 0, 110, 111, 114, + 109, 97, 108, 77, 97, 116, + 0, 171, 171, 171, 3, 0, + 3, 0, 3, 0, 3, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 110, 117, 109, 68, + 105, 114, 76, 105, 103, 104, + 116, 115, 0, 171, 171, 171, + 0, 0, 2, 0, 1, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 110, 117, + 109, 80, 111, 105, 110, 116, + 76, 105, 103, 104, 116, 115, + 0, 110, 117, 109, 83, 112, + 111, 116, 76, 105, 103, 104, + 116, 115, 0, 115, 117, 114, + 102, 80, 114, 111, 112, 115, + 0, 116, 101, 120, 77, 97, + 116, 0, 119, 111, 114, 108, + 100, 77, 97, 116, 0, 118, + 115, 95, 50, 95, 48, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 57, + 46, 50, 57, 46, 57, 53, + 50, 46, 51, 49, 49, 49, + 0, 171, 81, 0, 0, 5, + 11, 0, 15, 160, 0, 0, + 64, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 81, 0, 0, 5, + 45, 0, 15, 160, 0, 0, + 0, 0, 0, 0, 0, 128, + 0, 0, 128, 191, 0, 0, + 128, 63, 31, 0, 0, 2, + 0, 0, 0, 128, 0, 0, + 15, 144, 31, 0, 0, 2, + 3, 0, 0, 128, 1, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 0, 128, 2, 0, + 15, 144, 31, 0, 0, 2, + 10, 0, 0, 128, 3, 0, + 15, 144, 5, 0, 0, 3, 0, 0, 15, 128, 0, 0, - 228, 160, 0, 0, 0, 144, - 0, 0, 228, 128, 4, 0, - 0, 4, 0, 0, 15, 128, - 2, 0, 228, 160, 0, 0, - 170, 144, 0, 0, 228, 128, + 85, 144, 1, 0, 228, 160, 4, 0, 0, 4, 0, 0, - 15, 192, 3, 0, 228, 160, - 0, 0, 255, 144, 0, 0, - 228, 128, 5, 0, 0, 3, - 0, 0, 7, 128, 0, 0, - 85, 144, 5, 0, 228, 160, - 4, 0, 0, 4, 0, 0, - 7, 128, 4, 0, 228, 160, + 15, 128, 0, 0, 228, 160, 0, 0, 0, 144, 0, 0, 228, 128, 4, 0, 0, 4, - 0, 0, 7, 128, 6, 0, + 0, 0, 15, 128, 2, 0, 228, 160, 0, 0, 170, 144, 0, 0, 228, 128, 4, 0, - 0, 4, 0, 0, 7, 128, - 7, 0, 228, 160, 0, 0, + 0, 4, 0, 0, 15, 128, + 3, 0, 228, 160, 0, 0, 255, 144, 0, 0, 228, 128, - 5, 0, 0, 3, 1, 0, - 7, 128, 1, 0, 85, 144, - 9, 0, 228, 160, 4, 0, - 0, 4, 1, 0, 7, 128, - 8, 0, 228, 160, 1, 0, - 0, 144, 1, 0, 228, 128, - 4, 0, 0, 4, 1, 0, - 7, 128, 10, 0, 228, 160, - 1, 0, 170, 144, 1, 0, - 228, 128, 1, 0, 0, 2, - 2, 0, 9, 128, 44, 0, - 228, 160, 12, 0, 0, 3, - 0, 0, 8, 128, 2, 0, - 0, 128, 13, 0, 255, 160, - 2, 0, 0, 3, 3, 0, - 15, 128, 3, 0, 228, 144, - 44, 0, 149, 160, 4, 0, - 0, 4, 3, 0, 15, 128, - 0, 0, 255, 128, 3, 0, - 228, 128, 44, 0, 192, 160, - 1, 0, 0, 2, 2, 0, - 1, 128, 13, 0, 0, 160, - 4, 0, 0, 4, 2, 0, - 7, 128, 14, 0, 228, 160, - 2, 0, 0, 128, 3, 0, - 228, 128, 1, 0, 0, 2, - 4, 0, 7, 128, 2, 0, - 228, 128, 1, 0, 0, 2, - 0, 0, 8, 128, 44, 0, - 0, 160, 38, 0, 0, 1, - 0, 0, 228, 240, 2, 0, - 0, 3, 1, 0, 8, 128, - 0, 0, 255, 128, 15, 0, - 0, 160, 5, 0, 0, 3, - 1, 0, 8, 128, 1, 0, - 255, 128, 11, 0, 0, 160, - 46, 0, 0, 2, 0, 0, - 1, 176, 1, 0, 255, 128, - 8, 0, 0, 4, 1, 0, - 8, 128, 1, 0, 228, 128, - 18, 32, 228, 161, 0, 0, - 0, 176, 11, 0, 0, 3, - 1, 0, 8, 128, 1, 0, - 255, 128, 44, 0, 0, 160, - 5, 0, 0, 4, 5, 0, - 7, 128, 1, 0, 255, 128, - 16, 32, 228, 160, 0, 0, - 0, 176, 4, 0, 0, 4, - 4, 0, 7, 128, 5, 0, - 228, 128, 13, 0, 170, 160, - 4, 0, 228, 128, 2, 0, - 0, 3, 0, 0, 8, 128, - 0, 0, 255, 128, 44, 0, - 255, 160, 39, 0, 0, 0, - 1, 0, 0, 2, 2, 0, - 7, 128, 4, 0, 228, 128, 1, 0, 0, 2, 0, 0, - 8, 128, 44, 0, 0, 160, - 38, 0, 0, 1, 1, 0, + 15, 192, 0, 0, 228, 128, + 5, 0, 0, 3, 0, 0, + 7, 128, 0, 0, 85, 144, + 5, 0, 228, 160, 4, 0, + 0, 4, 0, 0, 7, 128, + 4, 0, 228, 160, 0, 0, + 0, 144, 0, 0, 228, 128, + 4, 0, 0, 4, 0, 0, + 7, 128, 6, 0, 228, 160, + 0, 0, 170, 144, 0, 0, + 228, 128, 4, 0, 0, 4, + 0, 0, 7, 128, 7, 0, + 228, 160, 0, 0, 255, 144, + 0, 0, 228, 128, 5, 0, + 0, 3, 1, 0, 7, 128, + 1, 0, 85, 144, 9, 0, + 228, 160, 4, 0, 0, 4, + 1, 0, 7, 128, 8, 0, + 228, 160, 1, 0, 0, 144, + 1, 0, 228, 128, 4, 0, + 0, 4, 1, 0, 7, 128, + 10, 0, 228, 160, 1, 0, + 170, 144, 1, 0, 228, 128, + 1, 0, 0, 2, 2, 0, + 9, 128, 45, 0, 228, 160, + 12, 0, 0, 3, 1, 0, + 8, 128, 2, 0, 0, 128, + 13, 0, 255, 160, 2, 0, + 0, 3, 3, 0, 15, 128, + 3, 0, 228, 144, 45, 0, + 149, 160, 4, 0, 0, 4, + 3, 0, 15, 128, 1, 0, + 255, 128, 3, 0, 228, 128, + 45, 0, 192, 160, 1, 0, + 0, 2, 2, 0, 1, 128, + 13, 0, 0, 160, 4, 0, + 0, 4, 2, 0, 7, 128, + 15, 0, 228, 160, 2, 0, + 0, 128, 3, 0, 228, 128, + 1, 0, 0, 2, 4, 0, + 7, 128, 2, 0, 228, 128, + 1, 0, 0, 2, 1, 0, + 8, 128, 45, 0, 0, 160, + 38, 0, 0, 1, 0, 0, 228, 240, 2, 0, 0, 3, - 1, 0, 8, 128, 0, 0, - 255, 128, 15, 0, 85, 160, - 5, 0, 0, 3, 1, 0, - 8, 128, 1, 0, 255, 128, + 4, 0, 8, 128, 1, 0, + 255, 128, 16, 0, 0, 160, + 5, 0, 0, 3, 4, 0, + 8, 128, 4, 0, 255, 128, 11, 0, 0, 160, 46, 0, 0, 2, 0, 0, 1, 176, - 1, 0, 255, 128, 2, 0, - 0, 4, 5, 0, 7, 128, - 0, 0, 228, 128, 17, 32, + 4, 0, 255, 128, 8, 0, + 0, 4, 4, 0, 8, 128, + 1, 0, 228, 128, 19, 32, 228, 161, 0, 0, 0, 176, - 8, 0, 0, 3, 1, 0, - 8, 128, 5, 0, 228, 128, - 5, 0, 228, 128, 7, 0, - 0, 2, 1, 0, 8, 128, - 1, 0, 255, 128, 5, 0, - 0, 3, 5, 0, 7, 128, - 1, 0, 255, 128, 5, 0, - 228, 128, 8, 0, 0, 3, - 4, 0, 8, 128, 1, 0, - 228, 128, 5, 0, 228, 129, 11, 0, 0, 3, 4, 0, 8, 128, 4, 0, 255, 128, - 44, 0, 0, 160, 5, 0, + 45, 0, 0, 160, 5, 0, 0, 4, 5, 0, 7, 128, - 4, 0, 255, 128, 16, 32, + 4, 0, 255, 128, 17, 32, 228, 160, 0, 0, 0, 176, - 6, 0, 0, 2, 1, 0, - 8, 128, 1, 0, 255, 128, - 6, 0, 0, 3, 4, 0, - 8, 128, 16, 32, 255, 160, - 0, 0, 0, 176, 4, 0, - 0, 4, 1, 0, 8, 128, - 1, 0, 255, 128, 4, 0, - 255, 129, 44, 0, 255, 160, - 11, 0, 0, 3, 1, 0, - 8, 128, 1, 0, 255, 128, - 44, 0, 0, 160, 5, 0, - 0, 3, 5, 0, 7, 128, - 1, 0, 255, 128, 5, 0, - 228, 128, 4, 0, 0, 4, - 2, 0, 7, 128, 5, 0, - 228, 128, 13, 0, 170, 160, - 2, 0, 228, 128, 2, 0, - 0, 3, 0, 0, 8, 128, - 0, 0, 255, 128, 44, 0, - 255, 160, 39, 0, 0, 0, - 1, 0, 0, 2, 3, 0, - 7, 128, 2, 0, 228, 128, - 1, 0, 0, 2, 0, 0, - 8, 128, 44, 0, 0, 160, - 38, 0, 0, 1, 2, 0, - 228, 240, 2, 0, 0, 3, - 1, 0, 8, 128, 0, 0, - 255, 128, 15, 0, 170, 160, - 5, 0, 0, 3, 1, 0, - 8, 128, 1, 0, 255, 128, - 11, 0, 0, 160, 46, 0, - 0, 2, 0, 0, 1, 176, - 1, 0, 255, 128, 2, 0, - 0, 4, 4, 0, 7, 128, - 0, 0, 228, 128, 17, 32, - 228, 161, 0, 0, 0, 176, - 8, 0, 0, 3, 1, 0, - 8, 128, 4, 0, 228, 128, - 4, 0, 228, 128, 7, 0, - 0, 2, 1, 0, 8, 128, - 1, 0, 255, 128, 5, 0, - 0, 3, 4, 0, 7, 128, - 1, 0, 255, 128, 4, 0, - 228, 128, 8, 0, 0, 3, - 4, 0, 8, 128, 1, 0, - 228, 128, 4, 0, 228, 129, - 8, 0, 0, 4, 4, 0, - 1, 128, 4, 0, 228, 128, - 18, 32, 228, 160, 0, 0, - 0, 176, 11, 0, 0, 3, - 4, 0, 2, 128, 4, 0, - 255, 128, 44, 0, 0, 160, - 2, 0, 0, 4, 4, 0, - 1, 128, 4, 0, 0, 128, - 17, 32, 255, 160, 0, 0, - 0, 176, 2, 0, 0, 4, - 4, 0, 4, 128, 2, 0, - 255, 128, 17, 32, 255, 160, - 0, 0, 0, 176, 6, 0, - 0, 2, 4, 0, 4, 128, - 4, 0, 170, 128, 5, 0, - 0, 3, 4, 0, 1, 128, - 4, 0, 170, 128, 4, 0, - 0, 128, 12, 0, 0, 3, - 4, 0, 4, 128, 4, 0, - 0, 128, 44, 0, 0, 160, 4, 0, 0, 4, 4, 0, - 2, 128, 4, 0, 170, 128, - 4, 0, 85, 129, 4, 0, - 85, 128, 11, 0, 0, 4, - 4, 0, 1, 128, 4, 0, - 0, 128, 18, 32, 255, 160, - 0, 0, 0, 176, 5, 0, - 0, 3, 4, 0, 1, 128, - 4, 0, 0, 128, 4, 0, - 85, 128, 5, 0, 0, 4, - 4, 0, 7, 128, 4, 0, - 0, 128, 16, 32, 228, 160, - 0, 0, 0, 176, 6, 0, - 0, 2, 1, 0, 8, 128, - 1, 0, 255, 128, 6, 0, - 0, 3, 4, 0, 8, 128, - 16, 32, 255, 160, 0, 0, - 0, 176, 4, 0, 0, 4, - 1, 0, 8, 128, 1, 0, - 255, 128, 4, 0, 255, 129, - 44, 0, 255, 160, 11, 0, - 0, 3, 1, 0, 8, 128, - 1, 0, 255, 128, 44, 0, - 0, 160, 5, 0, 0, 3, - 4, 0, 7, 128, 1, 0, - 255, 128, 4, 0, 228, 128, - 4, 0, 0, 4, 3, 0, - 7, 128, 4, 0, 228, 128, - 13, 0, 170, 160, 3, 0, + 7, 128, 5, 0, 228, 128, + 13, 0, 170, 160, 4, 0, 228, 128, 2, 0, 0, 3, - 0, 0, 8, 128, 0, 0, - 255, 128, 44, 0, 255, 160, - 39, 0, 0, 0, 11, 0, - 0, 3, 0, 0, 15, 128, - 3, 0, 228, 128, 44, 0, - 0, 160, 10, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 128, 44, 0, 255, 160, - 5, 0, 0, 3, 0, 0, - 15, 208, 0, 0, 228, 128, - 12, 0, 228, 160, 5, 0, - 0, 3, 0, 0, 3, 128, - 1, 0, 85, 128, 41, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 3, 128, 40, 0, - 228, 160, 1, 0, 0, 128, - 0, 0, 228, 128, 4, 0, - 0, 4, 0, 0, 3, 128, - 42, 0, 228, 160, 1, 0, - 170, 128, 0, 0, 228, 128, + 1, 0, 8, 128, 1, 0, + 255, 128, 45, 0, 255, 160, + 39, 0, 0, 0, 1, 0, + 0, 2, 2, 0, 7, 128, + 4, 0, 228, 128, 1, 0, + 0, 2, 1, 0, 8, 128, + 45, 0, 0, 160, 38, 0, + 0, 1, 1, 0, 228, 240, + 2, 0, 0, 3, 4, 0, + 8, 128, 1, 0, 255, 128, + 16, 0, 85, 160, 5, 0, + 0, 3, 4, 0, 8, 128, + 4, 0, 255, 128, 11, 0, + 0, 160, 46, 0, 0, 2, + 0, 0, 1, 176, 4, 0, + 255, 128, 2, 0, 0, 4, + 5, 0, 7, 128, 0, 0, + 228, 128, 18, 32, 228, 161, + 0, 0, 0, 176, 8, 0, + 0, 3, 4, 0, 8, 128, + 5, 0, 228, 128, 5, 0, + 228, 128, 7, 0, 0, 2, + 4, 0, 8, 128, 4, 0, + 255, 128, 5, 0, 0, 3, + 5, 0, 7, 128, 4, 0, + 255, 128, 5, 0, 228, 128, + 8, 0, 0, 3, 5, 0, + 1, 128, 1, 0, 228, 128, + 5, 0, 228, 129, 11, 0, + 0, 3, 5, 0, 1, 128, + 5, 0, 0, 128, 45, 0, + 0, 160, 5, 0, 0, 4, + 5, 0, 7, 128, 5, 0, + 0, 128, 17, 32, 228, 160, + 0, 0, 0, 176, 6, 0, + 0, 2, 4, 0, 8, 128, + 4, 0, 255, 128, 6, 0, + 0, 3, 5, 0, 8, 128, + 17, 32, 255, 160, 0, 0, + 0, 176, 4, 0, 0, 4, + 4, 0, 8, 128, 4, 0, + 255, 128, 5, 0, 255, 129, + 45, 0, 255, 160, 11, 0, + 0, 3, 4, 0, 8, 128, + 4, 0, 255, 128, 45, 0, + 0, 160, 5, 0, 0, 3, + 5, 0, 7, 128, 4, 0, + 255, 128, 5, 0, 228, 128, + 4, 0, 0, 4, 2, 0, + 7, 128, 5, 0, 228, 128, + 13, 0, 170, 160, 2, 0, + 228, 128, 2, 0, 0, 3, + 1, 0, 8, 128, 1, 0, + 255, 128, 45, 0, 255, 160, + 39, 0, 0, 0, 1, 0, + 0, 2, 3, 0, 7, 128, + 2, 0, 228, 128, 1, 0, + 0, 2, 1, 0, 8, 128, + 45, 0, 0, 160, 38, 0, + 0, 1, 2, 0, 228, 240, + 2, 0, 0, 3, 4, 0, + 1, 128, 1, 0, 255, 128, + 16, 0, 170, 160, 5, 0, + 0, 3, 4, 0, 1, 128, + 4, 0, 0, 128, 11, 0, + 0, 160, 46, 0, 0, 2, + 0, 0, 1, 176, 4, 0, + 0, 128, 2, 0, 0, 4, + 4, 0, 7, 128, 0, 0, + 228, 128, 18, 32, 228, 161, + 0, 0, 0, 176, 8, 0, + 0, 3, 4, 0, 8, 128, + 4, 0, 228, 128, 4, 0, + 228, 128, 7, 0, 0, 2, + 4, 0, 8, 128, 4, 0, + 255, 128, 5, 0, 0, 3, + 4, 0, 7, 128, 4, 0, + 255, 128, 4, 0, 228, 128, + 8, 0, 0, 3, 5, 0, + 1, 128, 1, 0, 228, 128, + 4, 0, 228, 129, 8, 0, + 0, 4, 4, 0, 1, 128, + 4, 0, 228, 128, 19, 32, + 228, 160, 0, 0, 0, 176, + 11, 0, 0, 3, 4, 0, + 2, 128, 5, 0, 0, 128, + 45, 0, 0, 160, 2, 0, + 0, 4, 4, 0, 1, 128, + 4, 0, 0, 128, 18, 32, + 255, 160, 0, 0, 0, 176, + 2, 0, 0, 4, 4, 0, + 4, 128, 2, 0, 255, 128, + 18, 32, 255, 160, 0, 0, + 0, 176, 6, 0, 0, 2, + 4, 0, 4, 128, 4, 0, + 170, 128, 5, 0, 0, 3, + 4, 0, 1, 128, 4, 0, + 170, 128, 4, 0, 0, 128, + 12, 0, 0, 3, 4, 0, + 4, 128, 4, 0, 0, 128, + 45, 0, 0, 160, 4, 0, + 0, 4, 4, 0, 2, 128, + 4, 0, 170, 128, 4, 0, + 85, 129, 4, 0, 85, 128, + 11, 0, 0, 4, 4, 0, + 1, 128, 4, 0, 0, 128, + 19, 32, 255, 160, 0, 0, + 0, 176, 5, 0, 0, 3, + 4, 0, 1, 128, 4, 0, + 0, 128, 4, 0, 85, 128, + 5, 0, 0, 4, 4, 0, + 7, 128, 4, 0, 0, 128, + 17, 32, 228, 160, 0, 0, + 0, 176, 6, 0, 0, 2, + 4, 0, 8, 128, 4, 0, + 255, 128, 6, 0, 0, 3, + 5, 0, 1, 128, 17, 32, + 255, 160, 0, 0, 0, 176, + 4, 0, 0, 4, 4, 0, + 8, 128, 4, 0, 255, 128, + 5, 0, 0, 129, 45, 0, + 255, 160, 11, 0, 0, 3, + 4, 0, 8, 128, 4, 0, + 255, 128, 45, 0, 0, 160, + 5, 0, 0, 3, 4, 0, + 7, 128, 4, 0, 255, 128, + 4, 0, 228, 128, 4, 0, + 0, 4, 3, 0, 7, 128, + 4, 0, 228, 128, 13, 0, + 170, 160, 3, 0, 228, 128, 2, 0, 0, 3, 1, 0, - 3, 224, 0, 0, 228, 128, - 43, 0, 228, 160, 1, 0, - 0, 2, 0, 0, 3, 224, - 2, 0, 228, 144, 255, 255, - 0, 0 + 8, 128, 1, 0, 255, 128, + 45, 0, 255, 160, 39, 0, + 0, 0, 11, 0, 0, 3, + 2, 0, 15, 128, 3, 0, + 228, 128, 45, 0, 0, 160, + 10, 0, 0, 3, 2, 0, + 15, 128, 2, 0, 228, 128, + 45, 0, 255, 160, 5, 0, + 0, 3, 0, 0, 15, 208, + 2, 0, 228, 128, 12, 0, + 228, 160, 5, 0, 0, 3, + 0, 0, 3, 128, 1, 0, + 85, 128, 42, 0, 228, 160, + 4, 0, 0, 4, 0, 0, + 3, 128, 41, 0, 228, 160, + 1, 0, 0, 128, 0, 0, + 228, 128, 4, 0, 0, 4, + 0, 0, 3, 128, 43, 0, + 228, 160, 1, 0, 170, 128, + 0, 0, 228, 128, 2, 0, + 0, 3, 1, 0, 3, 224, + 0, 0, 228, 128, 44, 0, + 228, 160, 2, 0, 0, 3, + 0, 0, 1, 128, 0, 0, + 255, 128, 14, 0, 85, 161, + 5, 0, 0, 3, 0, 0, + 1, 128, 0, 0, 0, 128, + 14, 0, 170, 160, 11, 0, + 0, 3, 0, 0, 1, 128, + 0, 0, 0, 128, 14, 0, + 255, 160, 10, 0, 0, 3, + 0, 0, 4, 224, 0, 0, + 0, 128, 45, 0, 255, 160, + 1, 0, 0, 2, 0, 0, + 3, 224, 2, 0, 228, 144, + 255, 255, 0, 0 }; diff --git a/src/d3d/shaders/matfx_env_amb_VS.h b/src/d3d/shaders/matfx_env_amb_VS.h index 293bc96..bcaaa2f 100644 --- a/src/d3d/shaders/matfx_env_amb_VS.h +++ b/src/d3d/shaders/matfx_env_amb_VS.h @@ -9,6 +9,7 @@ // // float4 ambientLight; // float4x4 combinedMat; +// float4 fogData; // float4 matCol; // float3x3 normalMat; // float4 surfProps; @@ -23,8 +24,9 @@ // normalMat c8 3 // matCol c12 1 // surfProps c13 1 -// ambientLight c14 1 -// texMat c40 4 +// fogData c14 1 +// ambientLight c15 1 +// texMat c41 4 // vs_2_0 @@ -33,113 +35,110 @@ dcl_normal v1 dcl_texcoord v2 dcl_color v3 - mul r0, v0.y, c1 - mad r0, c0, v0.x, r0 - mad r0, c2, v0.z, r0 - mad oPos, c3, v0.w, r0 mul r0.xyz, v1.y, c9 mad r0.xyz, c8, v1.x, r0 mad r0.xyz, c10, v1.z, r0 - mul r0.yw, r0.y, c41.xxzy - mad r0.xy, c40, r0.x, r0.ywzw - mad r0.xy, c42, r0.z, r0 - add oT1.xy, r0, c43 + mul r0.yw, r0.y, c42.xxzy + mad r0.xy, c41, r0.x, r0.ywzw + mad r0.xy, c43, r0.z, r0 + add oT1.xy, r0, c44 mov r0.x, c4.x slt r0.x, r0.x, c13.w add r1, v3, c4.yyyz mad r0, r0.x, r1, c4.xxxw mov r1.x, c13.x - mad r0.xyz, c14, r1.x, r0 + mad r0.xyz, c15, r1.x, r0 max r0, r0, c4.x min r0, r0, c4.w mul oD0, r0, c12 + mul r0, v0.y, c1 + mad r0, c0, v0.x, r0 + mad r0, c2, v0.z, r0 + mad r0, c3, v0.w, r0 + add r1.x, r0.w, -c14.y + mov oPos, r0 + mul r0.x, r1.x, c14.z + max r0.x, r0.x, c14.w + min oT0.z, r0.x, c4.w mov oT0.xy, v2 -// approximately 21 instruction slots used +// approximately 26 instruction slots used #endif const BYTE g_vs20_main[] = { 0, 2, 254, 255, 254, 255, - 81, 0, 67, 84, 65, 66, - 28, 0, 0, 0, 12, 1, + 88, 0, 67, 84, 65, 66, + 28, 0, 0, 0, 40, 1, 0, 0, 0, 2, 254, 255, - 6, 0, 0, 0, 28, 0, + 7, 0, 0, 0, 28, 0, 0, 0, 0, 1, 0, 0, - 5, 1, 0, 0, 148, 0, - 0, 0, 2, 0, 14, 0, - 1, 0, 58, 0, 164, 0, + 33, 1, 0, 0, 168, 0, + 0, 0, 2, 0, 15, 0, + 1, 0, 62, 0, 184, 0, 0, 0, 0, 0, 0, 0, - 180, 0, 0, 0, 2, 0, + 200, 0, 0, 0, 2, 0, 0, 0, 4, 0, 2, 0, - 192, 0, 0, 0, 0, 0, - 0, 0, 208, 0, 0, 0, - 2, 0, 12, 0, 1, 0, - 50, 0, 164, 0, 0, 0, - 0, 0, 0, 0, 215, 0, - 0, 0, 2, 0, 8, 0, - 3, 0, 34, 0, 228, 0, + 212, 0, 0, 0, 0, 0, + 0, 0, 228, 0, 0, 0, + 2, 0, 14, 0, 1, 0, + 58, 0, 184, 0, 0, 0, + 0, 0, 0, 0, 236, 0, + 0, 0, 2, 0, 12, 0, + 1, 0, 50, 0, 184, 0, 0, 0, 0, 0, 0, 0, - 244, 0, 0, 0, 2, 0, - 13, 0, 1, 0, 54, 0, - 164, 0, 0, 0, 0, 0, - 0, 0, 254, 0, 0, 0, - 2, 0, 40, 0, 4, 0, - 162, 0, 192, 0, 0, 0, - 0, 0, 0, 0, 97, 109, - 98, 105, 101, 110, 116, 76, - 105, 103, 104, 116, 0, 171, - 171, 171, 1, 0, 3, 0, - 1, 0, 4, 0, 1, 0, + 243, 0, 0, 0, 2, 0, + 8, 0, 3, 0, 34, 0, + 0, 1, 0, 0, 0, 0, + 0, 0, 16, 1, 0, 0, + 2, 0, 13, 0, 1, 0, + 54, 0, 184, 0, 0, 0, + 0, 0, 0, 0, 26, 1, + 0, 0, 2, 0, 41, 0, + 4, 0, 166, 0, 212, 0, 0, 0, 0, 0, 0, 0, - 99, 111, 109, 98, 105, 110, - 101, 100, 77, 97, 116, 0, - 3, 0, 3, 0, 4, 0, - 4, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 109, 97, - 116, 67, 111, 108, 0, 110, - 111, 114, 109, 97, 108, 77, - 97, 116, 0, 171, 171, 171, + 97, 109, 98, 105, 101, 110, + 116, 76, 105, 103, 104, 116, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 99, 111, 109, 98, + 105, 110, 101, 100, 77, 97, + 116, 0, 3, 0, 3, 0, + 4, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 102, 111, 103, 68, 97, 116, + 97, 0, 109, 97, 116, 67, + 111, 108, 0, 110, 111, 114, + 109, 97, 108, 77, 97, 116, + 0, 171, 171, 171, 3, 0, 3, 0, 3, 0, 3, 0, - 3, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 115, 117, - 114, 102, 80, 114, 111, 112, - 115, 0, 116, 101, 120, 77, - 97, 116, 0, 118, 115, 95, - 50, 95, 48, 0, 77, 105, - 99, 114, 111, 115, 111, 102, - 116, 32, 40, 82, 41, 32, - 72, 76, 83, 76, 32, 83, - 104, 97, 100, 101, 114, 32, - 67, 111, 109, 112, 105, 108, - 101, 114, 32, 57, 46, 50, - 57, 46, 57, 53, 50, 46, - 51, 49, 49, 49, 0, 171, - 171, 171, 81, 0, 0, 5, - 4, 0, 15, 160, 0, 0, - 0, 0, 0, 0, 0, 128, - 0, 0, 128, 191, 0, 0, - 128, 63, 31, 0, 0, 2, + 1, 0, 0, 0, 0, 0, + 0, 0, 115, 117, 114, 102, + 80, 114, 111, 112, 115, 0, + 116, 101, 120, 77, 97, 116, + 0, 118, 115, 95, 50, 95, + 48, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 57, 46, 50, 57, 46, + 57, 53, 50, 46, 51, 49, + 49, 49, 0, 171, 171, 171, + 81, 0, 0, 5, 4, 0, + 15, 160, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, - 15, 144, 31, 0, 0, 2, - 3, 0, 0, 128, 1, 0, - 15, 144, 31, 0, 0, 2, - 5, 0, 0, 128, 2, 0, - 15, 144, 31, 0, 0, 2, - 10, 0, 0, 128, 3, 0, - 15, 144, 5, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 85, 144, 1, 0, 228, 160, - 4, 0, 0, 4, 0, 0, - 15, 128, 0, 0, 228, 160, - 0, 0, 0, 144, 0, 0, - 228, 128, 4, 0, 0, 4, - 0, 0, 15, 128, 2, 0, - 228, 160, 0, 0, 170, 144, - 0, 0, 228, 128, 4, 0, - 0, 4, 0, 0, 15, 192, - 3, 0, 228, 160, 0, 0, - 255, 144, 0, 0, 228, 128, + 128, 191, 0, 0, 128, 63, + 31, 0, 0, 2, 0, 0, + 0, 128, 0, 0, 15, 144, + 31, 0, 0, 2, 3, 0, + 0, 128, 1, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 0, 128, 2, 0, 15, 144, + 31, 0, 0, 2, 10, 0, + 0, 128, 3, 0, 15, 144, 5, 0, 0, 3, 0, 0, 7, 128, 1, 0, 85, 144, 9, 0, 228, 160, 4, 0, @@ -151,16 +150,16 @@ const BYTE g_vs20_main[] = 1, 0, 170, 144, 0, 0, 228, 128, 5, 0, 0, 3, 0, 0, 10, 128, 0, 0, - 85, 128, 41, 0, 96, 160, + 85, 128, 42, 0, 96, 160, 4, 0, 0, 4, 0, 0, - 3, 128, 40, 0, 228, 160, + 3, 128, 41, 0, 228, 160, 0, 0, 0, 128, 0, 0, 237, 128, 4, 0, 0, 4, - 0, 0, 3, 128, 42, 0, + 0, 0, 3, 128, 43, 0, 228, 160, 0, 0, 170, 128, 0, 0, 228, 128, 2, 0, 0, 3, 1, 0, 3, 224, - 0, 0, 228, 128, 43, 0, + 0, 0, 228, 128, 44, 0, 228, 160, 1, 0, 0, 2, 0, 0, 1, 128, 4, 0, 0, 160, 12, 0, 0, 3, @@ -175,7 +174,7 @@ const BYTE g_vs20_main[] = 1, 0, 0, 2, 1, 0, 1, 128, 13, 0, 0, 160, 4, 0, 0, 4, 0, 0, - 7, 128, 14, 0, 228, 160, + 7, 128, 15, 0, 228, 160, 1, 0, 0, 128, 0, 0, 228, 128, 11, 0, 0, 3, 0, 0, 15, 128, 0, 0, @@ -185,7 +184,33 @@ const BYTE g_vs20_main[] = 4, 0, 255, 160, 5, 0, 0, 3, 0, 0, 15, 208, 0, 0, 228, 128, 12, 0, - 228, 160, 1, 0, 0, 2, - 0, 0, 3, 224, 2, 0, - 228, 144, 255, 255, 0, 0 + 228, 160, 5, 0, 0, 3, + 0, 0, 15, 128, 0, 0, + 85, 144, 1, 0, 228, 160, + 4, 0, 0, 4, 0, 0, + 15, 128, 0, 0, 228, 160, + 0, 0, 0, 144, 0, 0, + 228, 128, 4, 0, 0, 4, + 0, 0, 15, 128, 2, 0, + 228, 160, 0, 0, 170, 144, + 0, 0, 228, 128, 4, 0, + 0, 4, 0, 0, 15, 128, + 3, 0, 228, 160, 0, 0, + 255, 144, 0, 0, 228, 128, + 2, 0, 0, 3, 1, 0, + 1, 128, 0, 0, 255, 128, + 14, 0, 85, 161, 1, 0, + 0, 2, 0, 0, 15, 192, + 0, 0, 228, 128, 5, 0, + 0, 3, 0, 0, 1, 128, + 1, 0, 0, 128, 14, 0, + 170, 160, 11, 0, 0, 3, + 0, 0, 1, 128, 0, 0, + 0, 128, 14, 0, 255, 160, + 10, 0, 0, 3, 0, 0, + 4, 224, 0, 0, 0, 128, + 4, 0, 255, 160, 1, 0, + 0, 2, 0, 0, 3, 224, + 2, 0, 228, 144, 255, 255, + 0, 0 }; diff --git a/src/d3d/shaders/matfx_env_amb_dir_VS.h b/src/d3d/shaders/matfx_env_amb_dir_VS.h index d59aedf..9685c25 100644 --- a/src/d3d/shaders/matfx_env_amb_dir_VS.h +++ b/src/d3d/shaders/matfx_env_amb_dir_VS.h @@ -10,6 +10,7 @@ // float4 ambientLight; // float4x4 combinedMat; // int4 firstLight; +// float4 fogData; // // struct // { @@ -35,10 +36,11 @@ // normalMat c8 3 // matCol c12 1 // surfProps c13 1 -// ambientLight c14 1 -// firstLight c15 1 -// lights c16 24 -// texMat c40 4 +// fogData c14 1 +// ambientLight c15 1 +// firstLight c16 1 +// lights c17 24 +// texMat c41 4 // vs_2_0 @@ -51,236 +53,259 @@ mul r0, v0.y, c1 mad r0, c0, v0.x, r0 mad r0, c2, v0.z, r0 - mad oPos, c3, v0.w, r0 + mad r0, c3, v0.w, r0 + mov oPos, r0 mul r0.xyz, v1.y, c9 mad r0.xyz, c8, v1.x, r0 mad r0.xyz, c10, v1.z, r0 mov r1.x, c5.x - slt r0.w, r1.x, c13.w - add r1, v3, c5.yyyz - mad r1, r0.w, r1, c5.xxxw + slt r1.x, r1.x, c13.w + add r2, v3, c5.yyyz + mad r1, r1.x, r2, c5.xxxw mov r2.x, c13.x - mad r2.xyz, c14, r2.x, r1 + mad r2.xyz, c15, r2.x, r1 mov r1.xyz, r2 - mov r0.w, c5.x + mov r2.w, c5.x rep i0 - add r2.w, r0.w, c15.x - mul r2.w, r2.w, c4.x - mova a0.x, r2.w - dp3 r2.w, r0, -c18[a0.x] - max r2.w, r2.w, c5.x - mul r3.xyz, r2.w, c16[a0.x] + add r3.x, r2.w, c16.x + mul r3.x, r3.x, c4.x + mova a0.x, r3.x + dp3 r3.x, r0, -c19[a0.x] + max r3.x, r3.x, c5.x + mul r3.xyz, r3.x, c17[a0.x] mad r1.xyz, r3, c13.z, r1 - add r0.w, r0.w, c5.w + add r2.w, r2.w, c5.w endrep max r1, r1, c5.x min r1, r1, c5.w mul oD0, r1, c12 - mul r0.yw, r0.y, c41.xxzy - mad r0.xy, c40, r0.x, r0.ywzw - mad r0.xy, c42, r0.z, r0 - add oT1.xy, r0, c43 + mul r1.xy, r0.y, c42 + mad r0.xy, c41, r0.x, r1 + mad r0.xy, c43, r0.z, r0 + add oT1.xy, r0, c44 + add r0.x, r0.w, -c14.y + mul r0.x, r0.x, c14.z + max r0.x, r0.x, c14.w + min oT0.z, r0.x, c5.w mov oT0.xy, v2 -// approximately 36 instruction slots used +// approximately 41 instruction slots used #endif const BYTE g_vs20_main[] = { 0, 2, 254, 255, 254, 255, - 134, 0, 67, 84, 65, 66, - 28, 0, 0, 0, 224, 1, + 141, 0, 67, 84, 65, 66, + 28, 0, 0, 0, 252, 1, 0, 0, 0, 2, 254, 255, - 9, 0, 0, 0, 28, 0, + 10, 0, 0, 0, 28, 0, 0, 0, 0, 1, 0, 0, - 217, 1, 0, 0, 208, 0, - 0, 0, 2, 0, 14, 0, - 1, 0, 58, 0, 224, 0, + 245, 1, 0, 0, 228, 0, + 0, 0, 2, 0, 15, 0, + 1, 0, 62, 0, 244, 0, 0, 0, 0, 0, 0, 0, - 240, 0, 0, 0, 2, 0, + 4, 1, 0, 0, 2, 0, 0, 0, 4, 0, 2, 0, - 252, 0, 0, 0, 0, 0, - 0, 0, 12, 1, 0, 0, - 2, 0, 15, 0, 1, 0, - 62, 0, 24, 1, 0, 0, - 0, 0, 0, 0, 40, 1, - 0, 0, 2, 0, 16, 0, - 24, 0, 66, 0, 116, 1, + 16, 1, 0, 0, 0, 0, + 0, 0, 32, 1, 0, 0, + 2, 0, 16, 0, 1, 0, + 66, 0, 44, 1, 0, 0, + 0, 0, 0, 0, 60, 1, + 0, 0, 2, 0, 14, 0, + 1, 0, 58, 0, 244, 0, 0, 0, 0, 0, 0, 0, - 132, 1, 0, 0, 2, 0, - 12, 0, 1, 0, 50, 0, - 224, 0, 0, 0, 0, 0, - 0, 0, 139, 1, 0, 0, - 2, 0, 8, 0, 3, 0, - 34, 0, 152, 1, 0, 0, - 0, 0, 0, 0, 168, 1, - 0, 0, 1, 0, 0, 0, - 1, 0, 2, 0, 184, 1, + 68, 1, 0, 0, 2, 0, + 17, 0, 24, 0, 70, 0, + 144, 1, 0, 0, 0, 0, + 0, 0, 160, 1, 0, 0, + 2, 0, 12, 0, 1, 0, + 50, 0, 244, 0, 0, 0, + 0, 0, 0, 0, 167, 1, + 0, 0, 2, 0, 8, 0, + 3, 0, 34, 0, 180, 1, 0, 0, 0, 0, 0, 0, - 200, 1, 0, 0, 2, 0, - 13, 0, 1, 0, 54, 0, - 224, 0, 0, 0, 0, 0, - 0, 0, 210, 1, 0, 0, - 2, 0, 40, 0, 4, 0, - 162, 0, 252, 0, 0, 0, - 0, 0, 0, 0, 97, 109, - 98, 105, 101, 110, 116, 76, - 105, 103, 104, 116, 0, 171, - 171, 171, 1, 0, 3, 0, - 1, 0, 4, 0, 1, 0, + 196, 1, 0, 0, 1, 0, + 0, 0, 1, 0, 2, 0, + 212, 1, 0, 0, 0, 0, + 0, 0, 228, 1, 0, 0, + 2, 0, 13, 0, 1, 0, + 54, 0, 244, 0, 0, 0, + 0, 0, 0, 0, 238, 1, + 0, 0, 2, 0, 41, 0, + 4, 0, 166, 0, 16, 1, 0, 0, 0, 0, 0, 0, - 99, 111, 109, 98, 105, 110, - 101, 100, 77, 97, 116, 0, - 3, 0, 3, 0, 4, 0, - 4, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 102, 105, - 114, 115, 116, 76, 105, 103, - 104, 116, 0, 171, 1, 0, - 2, 0, 1, 0, 4, 0, + 97, 109, 98, 105, 101, 110, + 116, 76, 105, 103, 104, 116, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 4, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 108, 105, 103, 104, - 116, 115, 0, 99, 111, 108, - 111, 114, 0, 171, 171, 171, - 1, 0, 3, 0, 1, 0, + 0, 0, 99, 111, 109, 98, + 105, 110, 101, 100, 77, 97, + 116, 0, 3, 0, 3, 0, + 4, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 102, 105, 114, 115, 116, 76, + 105, 103, 104, 116, 0, 171, + 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 112, 111, - 115, 105, 116, 105, 111, 110, - 0, 100, 105, 114, 101, 99, - 116, 105, 111, 110, 0, 171, - 47, 1, 0, 0, 56, 1, - 0, 0, 72, 1, 0, 0, - 56, 1, 0, 0, 81, 1, - 0, 0, 56, 1, 0, 0, - 5, 0, 0, 0, 1, 0, - 12, 0, 8, 0, 3, 0, - 92, 1, 0, 0, 109, 97, - 116, 67, 111, 108, 0, 110, - 111, 114, 109, 97, 108, 77, - 97, 116, 0, 171, 171, 171, + 0, 0, 0, 0, 102, 111, + 103, 68, 97, 116, 97, 0, + 108, 105, 103, 104, 116, 115, + 0, 99, 111, 108, 111, 114, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 112, 111, 115, 105, + 116, 105, 111, 110, 0, 100, + 105, 114, 101, 99, 116, 105, + 111, 110, 0, 171, 75, 1, + 0, 0, 84, 1, 0, 0, + 100, 1, 0, 0, 84, 1, + 0, 0, 109, 1, 0, 0, + 84, 1, 0, 0, 5, 0, + 0, 0, 1, 0, 12, 0, + 8, 0, 3, 0, 120, 1, + 0, 0, 109, 97, 116, 67, + 111, 108, 0, 110, 111, 114, + 109, 97, 108, 77, 97, 116, + 0, 171, 171, 171, 3, 0, 3, 0, 3, 0, 3, 0, - 3, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 110, 117, - 109, 68, 105, 114, 76, 105, - 103, 104, 116, 115, 0, 171, - 171, 171, 0, 0, 2, 0, - 1, 0, 1, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 110, 117, 109, 68, + 105, 114, 76, 105, 103, 104, + 116, 115, 0, 171, 171, 171, + 0, 0, 2, 0, 1, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 115, 117, + 114, 102, 80, 114, 111, 112, + 115, 0, 116, 101, 120, 77, + 97, 116, 0, 118, 115, 95, + 50, 95, 48, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 57, 46, 50, + 57, 46, 57, 53, 50, 46, + 51, 49, 49, 49, 0, 171, + 171, 171, 81, 0, 0, 5, + 4, 0, 15, 160, 0, 0, + 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 115, 117, 114, 102, 80, 114, - 111, 112, 115, 0, 116, 101, - 120, 77, 97, 116, 0, 118, - 115, 95, 50, 95, 48, 0, - 77, 105, 99, 114, 111, 115, - 111, 102, 116, 32, 40, 82, - 41, 32, 72, 76, 83, 76, - 32, 83, 104, 97, 100, 101, - 114, 32, 67, 111, 109, 112, - 105, 108, 101, 114, 32, 57, - 46, 50, 57, 46, 57, 53, - 50, 46, 51, 49, 49, 49, - 0, 171, 171, 171, 81, 0, - 0, 5, 4, 0, 15, 160, - 0, 0, 64, 64, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 81, 0, - 0, 5, 5, 0, 15, 160, - 0, 0, 0, 0, 0, 0, - 0, 128, 0, 0, 128, 191, - 0, 0, 128, 63, 31, 0, - 0, 2, 0, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 3, 0, 0, 128, - 1, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 0, 128, - 2, 0, 15, 144, 31, 0, - 0, 2, 10, 0, 0, 128, - 3, 0, 15, 144, 5, 0, - 0, 3, 0, 0, 15, 128, - 0, 0, 85, 144, 1, 0, - 228, 160, 4, 0, 0, 4, + 0, 0, 81, 0, 0, 5, + 5, 0, 15, 160, 0, 0, + 0, 0, 0, 0, 0, 128, + 0, 0, 128, 191, 0, 0, + 128, 63, 31, 0, 0, 2, + 0, 0, 0, 128, 0, 0, + 15, 144, 31, 0, 0, 2, + 3, 0, 0, 128, 1, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 0, 128, 2, 0, + 15, 144, 31, 0, 0, 2, + 10, 0, 0, 128, 3, 0, + 15, 144, 5, 0, 0, 3, 0, 0, 15, 128, 0, 0, - 228, 160, 0, 0, 0, 144, + 85, 144, 1, 0, 228, 160, + 4, 0, 0, 4, 0, 0, + 15, 128, 0, 0, 228, 160, + 0, 0, 0, 144, 0, 0, + 228, 128, 4, 0, 0, 4, + 0, 0, 15, 128, 2, 0, + 228, 160, 0, 0, 170, 144, 0, 0, 228, 128, 4, 0, 0, 4, 0, 0, 15, 128, - 2, 0, 228, 160, 0, 0, - 170, 144, 0, 0, 228, 128, + 3, 0, 228, 160, 0, 0, + 255, 144, 0, 0, 228, 128, + 1, 0, 0, 2, 0, 0, + 15, 192, 0, 0, 228, 128, + 5, 0, 0, 3, 0, 0, + 7, 128, 1, 0, 85, 144, + 9, 0, 228, 160, 4, 0, + 0, 4, 0, 0, 7, 128, + 8, 0, 228, 160, 1, 0, + 0, 144, 0, 0, 228, 128, 4, 0, 0, 4, 0, 0, - 15, 192, 3, 0, 228, 160, - 0, 0, 255, 144, 0, 0, - 228, 128, 5, 0, 0, 3, - 0, 0, 7, 128, 1, 0, - 85, 144, 9, 0, 228, 160, - 4, 0, 0, 4, 0, 0, - 7, 128, 8, 0, 228, 160, - 1, 0, 0, 144, 0, 0, - 228, 128, 4, 0, 0, 4, - 0, 0, 7, 128, 10, 0, - 228, 160, 1, 0, 170, 144, - 0, 0, 228, 128, 1, 0, - 0, 2, 1, 0, 1, 128, - 5, 0, 0, 160, 12, 0, - 0, 3, 0, 0, 8, 128, - 1, 0, 0, 128, 13, 0, - 255, 160, 2, 0, 0, 3, - 1, 0, 15, 128, 3, 0, - 228, 144, 5, 0, 149, 160, - 4, 0, 0, 4, 1, 0, - 15, 128, 0, 0, 255, 128, - 1, 0, 228, 128, 5, 0, - 192, 160, 1, 0, 0, 2, - 2, 0, 1, 128, 13, 0, - 0, 160, 4, 0, 0, 4, - 2, 0, 7, 128, 14, 0, - 228, 160, 2, 0, 0, 128, - 1, 0, 228, 128, 1, 0, - 0, 2, 1, 0, 7, 128, - 2, 0, 228, 128, 1, 0, - 0, 2, 0, 0, 8, 128, - 5, 0, 0, 160, 38, 0, - 0, 1, 0, 0, 228, 240, + 7, 128, 10, 0, 228, 160, + 1, 0, 170, 144, 0, 0, + 228, 128, 1, 0, 0, 2, + 1, 0, 1, 128, 5, 0, + 0, 160, 12, 0, 0, 3, + 1, 0, 1, 128, 1, 0, + 0, 128, 13, 0, 255, 160, 2, 0, 0, 3, 2, 0, - 8, 128, 0, 0, 255, 128, - 15, 0, 0, 160, 5, 0, - 0, 3, 2, 0, 8, 128, - 2, 0, 255, 128, 4, 0, - 0, 160, 46, 0, 0, 2, - 0, 0, 1, 176, 2, 0, - 255, 128, 8, 0, 0, 4, - 2, 0, 8, 128, 0, 0, - 228, 128, 18, 32, 228, 161, - 0, 0, 0, 176, 11, 0, + 15, 128, 3, 0, 228, 144, + 5, 0, 149, 160, 4, 0, + 0, 4, 1, 0, 15, 128, + 1, 0, 0, 128, 2, 0, + 228, 128, 5, 0, 192, 160, + 1, 0, 0, 2, 2, 0, + 1, 128, 13, 0, 0, 160, + 4, 0, 0, 4, 2, 0, + 7, 128, 15, 0, 228, 160, + 2, 0, 0, 128, 1, 0, + 228, 128, 1, 0, 0, 2, + 1, 0, 7, 128, 2, 0, + 228, 128, 1, 0, 0, 2, + 2, 0, 8, 128, 5, 0, + 0, 160, 38, 0, 0, 1, + 0, 0, 228, 240, 2, 0, + 0, 3, 3, 0, 1, 128, + 2, 0, 255, 128, 16, 0, + 0, 160, 5, 0, 0, 3, + 3, 0, 1, 128, 3, 0, + 0, 128, 4, 0, 0, 160, + 46, 0, 0, 2, 0, 0, + 1, 176, 3, 0, 0, 128, + 8, 0, 0, 4, 3, 0, + 1, 128, 0, 0, 228, 128, + 19, 32, 228, 161, 0, 0, + 0, 176, 11, 0, 0, 3, + 3, 0, 1, 128, 3, 0, + 0, 128, 5, 0, 0, 160, + 5, 0, 0, 4, 3, 0, + 7, 128, 3, 0, 0, 128, + 17, 32, 228, 160, 0, 0, + 0, 176, 4, 0, 0, 4, + 1, 0, 7, 128, 3, 0, + 228, 128, 13, 0, 170, 160, + 1, 0, 228, 128, 2, 0, 0, 3, 2, 0, 8, 128, 2, 0, 255, 128, 5, 0, - 0, 160, 5, 0, 0, 4, - 3, 0, 7, 128, 2, 0, - 255, 128, 16, 32, 228, 160, - 0, 0, 0, 176, 4, 0, - 0, 4, 1, 0, 7, 128, - 3, 0, 228, 128, 13, 0, - 170, 160, 1, 0, 228, 128, - 2, 0, 0, 3, 0, 0, - 8, 128, 0, 0, 255, 128, - 5, 0, 255, 160, 39, 0, - 0, 0, 11, 0, 0, 3, - 1, 0, 15, 128, 1, 0, - 228, 128, 5, 0, 0, 160, - 10, 0, 0, 3, 1, 0, + 255, 160, 39, 0, 0, 0, + 11, 0, 0, 3, 1, 0, 15, 128, 1, 0, 228, 128, - 5, 0, 255, 160, 5, 0, - 0, 3, 0, 0, 15, 208, - 1, 0, 228, 128, 12, 0, - 228, 160, 5, 0, 0, 3, - 0, 0, 10, 128, 0, 0, - 85, 128, 41, 0, 96, 160, + 5, 0, 0, 160, 10, 0, + 0, 3, 1, 0, 15, 128, + 1, 0, 228, 128, 5, 0, + 255, 160, 5, 0, 0, 3, + 0, 0, 15, 208, 1, 0, + 228, 128, 12, 0, 228, 160, + 5, 0, 0, 3, 1, 0, + 3, 128, 0, 0, 85, 128, + 42, 0, 228, 160, 4, 0, + 0, 4, 0, 0, 3, 128, + 41, 0, 228, 160, 0, 0, + 0, 128, 1, 0, 228, 128, 4, 0, 0, 4, 0, 0, - 3, 128, 40, 0, 228, 160, - 0, 0, 0, 128, 0, 0, - 237, 128, 4, 0, 0, 4, - 0, 0, 3, 128, 42, 0, - 228, 160, 0, 0, 170, 128, - 0, 0, 228, 128, 2, 0, - 0, 3, 1, 0, 3, 224, - 0, 0, 228, 128, 43, 0, - 228, 160, 1, 0, 0, 2, - 0, 0, 3, 224, 2, 0, - 228, 144, 255, 255, 0, 0 + 3, 128, 43, 0, 228, 160, + 0, 0, 170, 128, 0, 0, + 228, 128, 2, 0, 0, 3, + 1, 0, 3, 224, 0, 0, + 228, 128, 44, 0, 228, 160, + 2, 0, 0, 3, 0, 0, + 1, 128, 0, 0, 255, 128, + 14, 0, 85, 161, 5, 0, + 0, 3, 0, 0, 1, 128, + 0, 0, 0, 128, 14, 0, + 170, 160, 11, 0, 0, 3, + 0, 0, 1, 128, 0, 0, + 0, 128, 14, 0, 255, 160, + 10, 0, 0, 3, 0, 0, + 4, 224, 0, 0, 0, 128, + 5, 0, 255, 160, 1, 0, + 0, 2, 0, 0, 3, 224, + 2, 0, 228, 144, 255, 255, + 0, 0 }; diff --git a/src/d3d/shaders/matfx_env_tex_PS.h b/src/d3d/shaders/matfx_env_tex_PS.h index 819b6ce..4559954 100644 --- a/src/d3d/shaders/matfx_env_tex_PS.h +++ b/src/d3d/shaders/matfx_env_tex_PS.h @@ -10,6 +10,7 @@ // float4 colorClamp; // sampler2D diffTex; // sampler2D envTex; +// float4 fogColor; // float shininess; // // @@ -17,109 +18,123 @@ // // Name Reg Size // ------------ ----- ---- -// shininess c0 1 -// colorClamp c1 1 +// fogColor c0 1 +// shininess c1 1 +// colorClamp c2 1 // diffTex s0 1 // envTex s1 1 // ps_2_0 - dcl t0.xy + dcl t0.xyz dcl t1.xy dcl v0 dcl_2d s0 dcl_2d s1 - texld r0, t1, s1 - texld r1, t0, s0 - mul r1, r1, v0 - max r2.xyz, r1, c1 - mul r2.xyz, r2, c0.x - mul r0.xyz, r0, r2 - mad r1.xyz, r1, r1.w, r0 - mov oC0, r1 + texld r0, t0, s0 + texld r1, t1, s1 + mad r2.xyz, v0, r0, -c0 + mul r0, r0, v0 + mad r2.xyz, t0.z, r2, c0 + max r3.xyz, r0, c2 + mul r3.xyz, r3, c1.x + mul r1.xyz, r1, r3 + mad r0.xyz, r2, r0.w, r1 + mov oC0, r0 -// approximately 8 instruction slots used (2 texture, 6 arithmetic) +// approximately 10 instruction slots used (2 texture, 8 arithmetic) #endif const BYTE g_ps20_main[] = { 0, 2, 255, 255, 254, 255, - 68, 0, 67, 84, 65, 66, - 28, 0, 0, 0, 219, 0, + 75, 0, 67, 84, 65, 66, + 28, 0, 0, 0, 247, 0, 0, 0, 0, 2, 255, 255, - 4, 0, 0, 0, 28, 0, + 5, 0, 0, 0, 28, 0, 0, 0, 0, 1, 0, 0, - 212, 0, 0, 0, 108, 0, - 0, 0, 2, 0, 1, 0, - 1, 0, 6, 0, 120, 0, + 240, 0, 0, 0, 128, 0, + 0, 0, 2, 0, 2, 0, + 1, 0, 10, 0, 140, 0, 0, 0, 0, 0, 0, 0, - 136, 0, 0, 0, 3, 0, + 156, 0, 0, 0, 3, 0, 0, 0, 1, 0, 2, 0, - 144, 0, 0, 0, 0, 0, - 0, 0, 160, 0, 0, 0, + 164, 0, 0, 0, 0, 0, + 0, 0, 180, 0, 0, 0, 3, 0, 1, 0, 1, 0, - 6, 0, 168, 0, 0, 0, - 0, 0, 0, 0, 184, 0, + 6, 0, 188, 0, 0, 0, + 0, 0, 0, 0, 204, 0, 0, 0, 2, 0, 0, 0, - 1, 0, 2, 0, 196, 0, + 1, 0, 2, 0, 140, 0, 0, 0, 0, 0, 0, 0, - 99, 111, 108, 111, 114, 67, - 108, 97, 109, 112, 0, 171, - 1, 0, 3, 0, 1, 0, - 4, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 100, 105, - 102, 102, 84, 101, 120, 0, - 4, 0, 12, 0, 1, 0, - 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 101, 110, - 118, 84, 101, 120, 0, 171, - 4, 0, 12, 0, 1, 0, - 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 115, 104, - 105, 110, 105, 110, 101, 115, - 115, 0, 171, 171, 0, 0, - 3, 0, 1, 0, 1, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 112, 115, 95, 50, - 95, 48, 0, 77, 105, 99, - 114, 111, 115, 111, 102, 116, - 32, 40, 82, 41, 32, 72, - 76, 83, 76, 32, 83, 104, - 97, 100, 101, 114, 32, 67, - 111, 109, 112, 105, 108, 101, - 114, 32, 57, 46, 50, 57, - 46, 57, 53, 50, 46, 51, - 49, 49, 49, 0, 31, 0, - 0, 2, 0, 0, 0, 128, - 0, 0, 3, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 1, 0, 3, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 0, 0, 0, 144, - 0, 8, 15, 160, 31, 0, - 0, 2, 0, 0, 0, 144, - 1, 8, 15, 160, 66, 0, - 0, 3, 0, 0, 15, 128, - 1, 0, 228, 176, 1, 8, - 228, 160, 66, 0, 0, 3, - 1, 0, 15, 128, 0, 0, + 213, 0, 0, 0, 2, 0, + 1, 0, 1, 0, 6, 0, + 224, 0, 0, 0, 0, 0, + 0, 0, 99, 111, 108, 111, + 114, 67, 108, 97, 109, 112, + 0, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 100, 105, 102, 102, 84, 101, + 120, 0, 4, 0, 12, 0, + 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 101, 110, 118, 84, 101, 120, + 0, 171, 4, 0, 12, 0, + 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 102, 111, 103, 67, 111, 108, + 111, 114, 0, 115, 104, 105, + 110, 105, 110, 101, 115, 115, + 0, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 112, 115, 95, 50, 95, 48, + 0, 77, 105, 99, 114, 111, + 115, 111, 102, 116, 32, 40, + 82, 41, 32, 72, 76, 83, + 76, 32, 83, 104, 97, 100, + 101, 114, 32, 67, 111, 109, + 112, 105, 108, 101, 114, 32, + 57, 46, 50, 57, 46, 57, + 53, 50, 46, 51, 49, 49, + 49, 0, 31, 0, 0, 2, + 0, 0, 0, 128, 0, 0, + 7, 176, 31, 0, 0, 2, + 0, 0, 0, 128, 1, 0, + 3, 176, 31, 0, 0, 2, + 0, 0, 0, 128, 0, 0, + 15, 144, 31, 0, 0, 2, + 0, 0, 0, 144, 0, 8, + 15, 160, 31, 0, 0, 2, + 0, 0, 0, 144, 1, 8, + 15, 160, 66, 0, 0, 3, + 0, 0, 15, 128, 0, 0, 228, 176, 0, 8, 228, 160, - 5, 0, 0, 3, 1, 0, - 15, 128, 1, 0, 228, 128, - 0, 0, 228, 144, 11, 0, - 0, 3, 2, 0, 7, 128, - 1, 0, 228, 128, 1, 0, - 228, 160, 5, 0, 0, 3, - 2, 0, 7, 128, 2, 0, - 228, 128, 0, 0, 0, 160, + 66, 0, 0, 3, 1, 0, + 15, 128, 1, 0, 228, 176, + 1, 8, 228, 160, 4, 0, + 0, 4, 2, 0, 7, 128, + 0, 0, 228, 144, 0, 0, + 228, 128, 0, 0, 228, 161, 5, 0, 0, 3, 0, 0, + 15, 128, 0, 0, 228, 128, + 0, 0, 228, 144, 4, 0, + 0, 4, 2, 0, 7, 128, + 0, 0, 170, 176, 2, 0, + 228, 128, 0, 0, 228, 160, + 11, 0, 0, 3, 3, 0, 7, 128, 0, 0, 228, 128, - 2, 0, 228, 128, 4, 0, - 0, 4, 1, 0, 7, 128, - 1, 0, 228, 128, 1, 0, - 255, 128, 0, 0, 228, 128, - 1, 0, 0, 2, 0, 8, - 15, 128, 1, 0, 228, 128, - 255, 255, 0, 0 + 2, 0, 228, 160, 5, 0, + 0, 3, 3, 0, 7, 128, + 3, 0, 228, 128, 1, 0, + 0, 160, 5, 0, 0, 3, + 1, 0, 7, 128, 1, 0, + 228, 128, 3, 0, 228, 128, + 4, 0, 0, 4, 0, 0, + 7, 128, 2, 0, 228, 128, + 0, 0, 255, 128, 1, 0, + 228, 128, 1, 0, 0, 2, + 0, 8, 15, 128, 0, 0, + 228, 128, 255, 255, 0, 0 };