我正在尝试使用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);
由于
答案 0 :(得分:1)
您的代码看起来很好。您很可能只是错误地解释了结果数据。纹理数据从左上角开始向右然后向下。例如,4x2纹理的布局如下所示:
[0][1][2][3]
[4][5][6][7]
或者,源纹理可能确实被翻转和旋转,并且只是在管道中的其他位置进行校正(例如,通过在顶点着色器中旋转)。