| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | 
							- uniform float4x4 ViewProj;
 
- uniform float4x4 color_matrix;
 
- uniform float3 color_range_min = {0.0, 0.0, 0.0};
 
- uniform float3 color_range_max = {1.0, 1.0, 1.0};
 
- uniform texture2d image;
 
- sampler_state def_sampler {
 
- 	Filter   = Linear;
 
- 	AddressU = Clamp;
 
- 	AddressV = Clamp;
 
- };
 
- struct VertInOut {
 
- 	float4 pos : POSITION;
 
- 	float2 uv  : TEXCOORD0;
 
- };
 
- VertInOut VSDefault(VertInOut vert_in)
 
- {
 
- 	VertInOut vert_out;
 
- 	vert_out.pos = mul(float4(vert_in.pos.xyz, 1.0), ViewProj);
 
- 	vert_out.uv  = vert_in.uv;
 
- 	return vert_out;
 
- }
 
- float4 PSDrawBare(VertInOut vert_in) : TARGET
 
- {
 
- 	return image.Sample(def_sampler, vert_in.uv);
 
- }
 
- float4 PSDrawMatrix(VertInOut vert_in) : TARGET
 
- {
 
- 	float4 yuv = image.Sample(def_sampler, vert_in.uv);
 
- 	yuv.xyz = clamp(yuv.xyz, color_range_min, color_range_max);
 
- 	return saturate(mul(float4(yuv.xyz, 1.0), color_matrix));
 
- }
 
- technique Draw
 
- {
 
- 	pass
 
- 	{
 
- 		vertex_shader = VSDefault(vert_in);
 
- 		pixel_shader  = PSDrawBare(vert_in);
 
- 	}
 
- }
 
- technique DrawMatrix
 
- {
 
- 	pass
 
- 	{
 
- 		vertex_shader = VSDefault(vert_in);
 
- 		pixel_shader  = PSDrawMatrix(vert_in);
 
- 	}
 
- }
 
 
  |