@@ -1779,6 +1779,33 @@ inline XMVECTOR XM_CALLCONV XMColorYUVToRGB_HD(FXMVECTOR yuv) noexcept
17791779
17801780// ------------------------------------------------------------------------------
17811781
1782+ inline XMVECTOR XM_CALLCONV XMColorRGBToYUV_UHD (FXMVECTOR rgb) noexcept
1783+ {
1784+ static const XMVECTORF32 Scale0 = { { { 0 .2627f , -0 .1215f , 0 .6150f , 0 .0f } } };
1785+ static const XMVECTORF32 Scale1 = { { { 0 .6780f , -0 .3136f , -0 .5655f , 0 .0f } } };
1786+ static const XMVECTORF32 Scale2 = { { { 0 .0593f , 0 .4351f , -0 .0495f , 0 .0f } } };
1787+
1788+ XMMATRIX M (Scale0, Scale1, Scale2, g_XMZero);
1789+ XMVECTOR clr = XMVector3Transform (rgb, M);
1790+
1791+ return XMVectorSelect (rgb, clr, g_XMSelect1110);
1792+ }
1793+
1794+ // ------------------------------------------------------------------------------
1795+
1796+ inline XMVECTOR XM_CALLCONV XMColorYUVToRGB_UHD (FXMVECTOR yuv) noexcept
1797+ {
1798+ static const XMVECTORF32 Scale1 = { { { 0 .0f , -0 .1891f , 2 .1620f , 0 .0f } } };
1799+ static const XMVECTORF32 Scale2 = { { { 1 .1989f , -0 .4645f , 0 .0f , 0 .0f } } };
1800+
1801+ XMMATRIX M (g_XMOne, Scale1, Scale2, g_XMZero);
1802+ XMVECTOR clr = XMVector3Transform (yuv, M);
1803+
1804+ return XMVectorSelect (yuv, clr, g_XMSelect1110);
1805+ }
1806+
1807+ // ------------------------------------------------------------------------------
1808+
17821809inline XMVECTOR XM_CALLCONV XMColorRGBToXYZ (FXMVECTOR rgb) noexcept
17831810{
17841811 static const XMVECTORF32 Scale0 = { { { 0 .4887180f , 0 .1762044f , 0 .0000000f , 0 .0f } } };
0 commit comments