我试图使用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]
或者,源纹理可能确实被翻转和旋转,并且只是在管道的其他地方被纠正(例如,通过在顶点着色器中旋转)。