summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/angle/src/libGLESv2/renderer/d3d9/shaders/Blit.ps
blob: dcb3bd0e76ba92a28e776888c62904c0c3f05f3c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//
// Copyright (c) 2012 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//

sampler2D tex : s0;

uniform float4 mode : c0;

// Passthrough Pixel Shader
// Outputs texture 0 sampled at texcoord 0.
float4 passthroughps(float4 texcoord : TEXCOORD0) : COLOR
{
	return tex2D(tex, texcoord.xy);
};

// Luminance Conversion Pixel Shader
// Outputs sample(tex0, tc0).rrra.
// For LA output (pass A) set C0.X = 1, C0.Y = 0.
// For L output (A = 1) set C0.X = 0, C0.Y = 1.
float4 luminanceps(float4 texcoord : TEXCOORD0) : COLOR
{
	float4 tmp = tex2D(tex, texcoord.xy);
	tmp.w = tmp.w * mode.x + mode.y;
	return tmp.xxxw;
};

// RGB/A Component Mask Pixel Shader
// Outputs sample(tex0, tc0) with options to force RGB = 0 and/or A = 1.
// To force RGB = 0, set C0.X = 0, otherwise C0.X = 1.
// To force A = 1, set C0.Z = 0, C0.W = 1, otherwise C0.Z = 1, C0.W = 0.
float4 componentmaskps(float4 texcoord : TEXCOORD0) : COLOR
{
	float4 tmp = tex2D(tex, texcoord.xy);
	tmp.xyz = tmp.xyz * mode.x;
	tmp.w = tmp.w * mode.z + mode.w;
	return tmp;
};