D3D输出填充和旋转



我试图使用ID3D11DeviceContext::Map()函数获得D3D捕获。但是输出是翻转和旋转的。这是默认行为吗?解决这个问题的最简单/有效的方法是什么?

    D3D11_MAPPED_SUBRESOURCE desc;
    hr = context->Map(pRes, subres , D3D11_MAP_READ_WRITE, 0, &desc);
    // use desc.pData
    context->Unmap(target, subres);

谢谢

您的代码看起来很好。更有可能的是,您只是错误地解释了结果数据。纹理数据从左上角开始,然后向右,然后向下。例如,4x2纹理的布局看起来像这样:

[0][1][2][3]
[4][5][6][7]

或者,源纹理可能确实被翻转和旋转,并且只是在管道的其他地方被纠正(例如,通过在顶点着色器中旋转)。

最新更新