Hash :
437cca5a
Author :
Date :
2016-04-20T14:21:17
Add support for CHROMIUM_copy_texture with D3D9. BUG=angleproject:1356 Change-Id: If63779e39609083deb6bb72dc8c29eaaa90c698c Reviewed-on: https://chromium-review.googlesource.com/339813 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
//
// 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 mult : c0;
uniform float4 add : c1;
// 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
// Performs a mad operation using the LA data from the texture with mult.xw and add.xw.
// Returns data in the form of llla
float4 luminanceps(float4 texcoord : TEXCOORD0) : COLOR
{
return (tex2D(tex, texcoord.xy).xw * mult.xw + add.xw).xxxy;
};
float4 luminancepremultps(float4 texcoord : TEXCOORD0) : COLOR
{
float4 luma = (tex2D(tex, texcoord.xy).xw * mult.xw + add.xw).xxxy;
luma.rgb *= luma.a;
return luma;
};
float4 luminanceunmultps(float4 texcoord : TEXCOORD0) : COLOR
{
float4 luma = (tex2D(tex, texcoord.xy).xw * mult.xw + add.xw).xxxy;
if (luma.a > 0.0f)
{
luma.rgb /= luma.a;
}
return luma;
};
// RGB/A Component Mask Pixel Shader
// Performs a mad operation using the texture's RGBA data with mult.xyzw and add.xyzw.
// Returns data in the form of rgba
float4 componentmaskps(float4 texcoord : TEXCOORD0) : COLOR
{
return tex2D(tex, texcoord.xy) * mult + add;
};
float4 componentmaskpremultps(float4 texcoord : TEXCOORD0) : COLOR
{
float4 color = tex2D(tex, texcoord.xy) * mult + add;
color.rgb *= color.a;
return color;
};
float4 componentmaskunmultps(float4 texcoord : TEXCOORD0) : COLOR
{
float4 color = tex2D(tex, texcoord.xy) * mult + add;
if (color.a > 0.0f)
{
color.rgb /= color.a;
}
return color;
};