1/**************************************************************************
2 *
3 * Copyright 2010 Luca Barbieri
4 *
5 * Permission is hereby granted, free of charge, to any person obtaining
6 * a copy of this software and associated documentation files (the
7 * "Software"), to deal in the Software without restriction, including
8 * without limitation the rights to use, copy, modify, merge, publish,
9 * distribute, sublicense, and/or sell copies of the Software, and to
10 * permit persons to whom the Software is furnished to do so, subject to
11 * the following conditions:
12 *
13 * The above copyright notice and this permission notice (including the
14 * next paragraph) shall be included in all copies or substantial
15 * portions of the Software.
16 *
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
20 * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
21 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
22 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
23 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24 *
25 **************************************************************************/
26
27Texture2D tex0;
28Texture2D tex1;
29sampler samp0;
30sampler samp1;
31
32struct IA2VS
33{
34	float4 position : POSITION;
35	float2 texcoord : TEXCOORD;
36};
37
38struct VS2PS
39{
40	float4 position : SV_POSITION;
41	float2 texcoord : TEXCOORD;
42	float4 factors : FACTORS;
43};
44
45VS2PS vs(IA2VS input)
46{
47	VS2PS result;
48	result.position = input.position;
49	result.texcoord = input.texcoord * 8;
50	result.factors.xy = input.texcoord;
51	result.factors.zw = 1 - input.texcoord;
52	return result;
53}
54
55float4 ps(VS2PS input) : SV_TARGET
56{
57	float4 a0 = tex0.Sample(samp0, input.texcoord);
58	float4 a1 = tex0.Sample(samp1, input.texcoord);
59	float4 a = a0 * input.factors.z + a1 * input.factors.x;
60
61	float4 b0 = tex1.Sample(samp0, input.texcoord);
62	float4 b1 = tex1.Sample(samp1, input.texcoord);
63	float4 b = b0 * input.factors.z + b1 * input.factors.x;
64
65	return a * input.factors.w + b * input.factors.y;
66}
67