michael@0: // michael@0: // Copyright (c) 2012 The ANGLE Project Authors. All rights reserved. michael@0: // Use of this source code is governed by a BSD-style license that can be michael@0: // found in the LICENSE file. michael@0: // michael@0: michael@0: sampler2D tex : s0; michael@0: michael@0: uniform float4 mode : c0; michael@0: michael@0: // Passthrough Pixel Shader michael@0: // Outputs texture 0 sampled at texcoord 0. michael@0: float4 passthroughps(float4 texcoord : TEXCOORD0) : COLOR michael@0: { michael@0: return tex2D(tex, texcoord.xy); michael@0: }; michael@0: michael@0: // Luminance Conversion Pixel Shader michael@0: // Outputs sample(tex0, tc0).rrra. michael@0: // For LA output (pass A) set C0.X = 1, C0.Y = 0. michael@0: // For L output (A = 1) set C0.X = 0, C0.Y = 1. michael@0: float4 luminanceps(float4 texcoord : TEXCOORD0) : COLOR michael@0: { michael@0: float4 tmp = tex2D(tex, texcoord.xy); michael@0: tmp.w = tmp.w * mode.x + mode.y; michael@0: return tmp.xxxw; michael@0: }; michael@0: michael@0: // RGB/A Component Mask Pixel Shader michael@0: // Outputs sample(tex0, tc0) with options to force RGB = 0 and/or A = 1. michael@0: // To force RGB = 0, set C0.X = 0, otherwise C0.X = 1. michael@0: // To force A = 1, set C0.Z = 0, C0.W = 1, otherwise C0.Z = 1, C0.W = 0. michael@0: float4 componentmaskps(float4 texcoord : TEXCOORD0) : COLOR michael@0: { michael@0: float4 tmp = tex2D(tex, texcoord.xy); michael@0: tmp.xyz = tmp.xyz * mode.x; michael@0: tmp.w = tmp.w * mode.z + mode.w; michael@0: return tmp; michael@0: };