mirror of
https://github.com/mpv-player/mpv
synced 2024-12-23 07:12:39 +00:00
d4bdd0473d
Tis drops the silly lib prefixes, and attempts to organize the tree in a more logical way. Make the top-level directory less cluttered as well. Renames the following directories: libaf -> audio/filter libao2 -> audio/out libvo -> video/out libmpdemux -> demux Split libmpcodecs: vf* -> video/filter vd*, dec_video.* -> video/decode mp_image*, img_format*, ... -> video/ ad*, dec_audio.* -> audio/decode libaf/format.* is moved to audio/ - this is similar to how mp_image.* is located in video/. Move most top-level .c/.h files to core. (talloc.c/.h is left on top- level, because it's external.) Park some of the more annoying files in compat/. Some of these are relicts from the time mplayer used ffmpeg internals. sub/ is not split, because it's too much of a mess (subtitle code is mixed with OSD display and rendering). Maybe the organization of core is not ideal: it mixes playback core (like mplayer.c) and utility helpers (like bstr.c/h). Should the need arise, the playback core will be moved somewhere else, while core contains all helper and common code.
45 lines
1.1 KiB
HLSL
45 lines
1.1 KiB
HLSL
// Compile with:
|
|
// fxc.exe /Tps_2_0 /Fhd3d_shader_yuv.h d3d_shader_yuv.hlsl /Vnd3d_shader_yuv
|
|
// fxc.exe /Tps_2_0 /Fhd3d_shader_yuv_2ch.h d3d_shader_yuv.hlsl /Vnd3d_shader_yuv_2ch /DUSE_2CH=1
|
|
|
|
// Be careful with this shader. You can't use constant slots, since we don't
|
|
// load the shader with D3DX. All uniform variables are mapped to hardcoded
|
|
// constant slots.
|
|
|
|
sampler2D tex0 : register(s0);
|
|
sampler2D tex1 : register(s1);
|
|
sampler2D tex2 : register(s2);
|
|
|
|
uniform float4x4 colormatrix : register(c0);
|
|
uniform float2 depth : register(c5);
|
|
|
|
#ifdef USE_2CH
|
|
|
|
float1 sample(sampler2D tex, float2 t)
|
|
{
|
|
// Sample from A8L8 format as if we sampled a single value from L16.
|
|
// We compute the 2 channel values back into one.
|
|
return dot(tex2D(tex, t).xw, depth);
|
|
}
|
|
|
|
#else
|
|
|
|
float1 sample(sampler2D tex, float2 t)
|
|
{
|
|
return tex2D(tex, t).x;
|
|
}
|
|
|
|
#endif
|
|
|
|
float4 main(float2 t0 : TEXCOORD0,
|
|
float2 t1 : TEXCOORD1,
|
|
float2 t2 : TEXCOORD2)
|
|
: COLOR
|
|
{
|
|
float4 c = float4(sample(tex0, t0),
|
|
sample(tex1, t1),
|
|
sample(tex2, t2),
|
|
1);
|
|
return mul(c, colormatrix);
|
|
}
|