// // 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; };