我可以在Windows 7下的Direct3D中模拟DXGI_FORMAT_NV12吗?

时间:2014-02-23 12:21:49

标签: directx direct3d yuv render-to-texture dxgi

我需要将RGB纹理转换为视频编解码器理解的NV12格式(Y平面紧跟UV平面)。 DXGI_FORMAT_NV12提供了一个简单的视图格式映射,使用R8表示Y和R8G8表示UV,因此我使用两个带有NV12纹理的像素着色器。不幸的是,这仅适用于Windows 8.我可以以某种方式创建一个在Windows 7上同时具有R8和R8G8着色器资源视图的纹理吗?或者还有另一种方法可以渲染YUV数据吗?

1 个答案:

答案 0 :(得分:0)

使用以下D3DFORMAT

创建CreateOffscreenPlainSurface()
(D3DFORMAT)MAKEFOURCC('N', 'V', '1', '2') //842094158

我的git repo提供了更详细的源代码:

https://github.com/sailfish009/sample_direct3d_nv12