问题描述
virtual void STDMETHODCALLTYPE CopyResource(
/* [annotation] */
_In_ ID3D11Resource *pDstResource,/* [annotation] */
_In_ ID3D11Resource *pSrcResource);
-
我对此功能有疑问,尤其是在pDstResource上立即有读写操作时,例如以下代码,由于异步,我能否确保每次pDstResource都是新渲染的图像而不是black_color ?
-
这种怀疑是因为在使用IDXGIOutputDuplication :: AcquireNextFrame获取第一帧并调用CopyResource之前,需要很短的时间进入Sleep才能看到复制了pDstResource(根据渲染输出判断)。>
-
参考performance considerations,我仍然不知道这里的原理,是否是WinB要访问pDstResource_shared时,Direct3D会在内部进行同步(即执行CopyResource命令)?担心误会。
for(;;) { 1, WinA_Clear(black_color) 2, WinA_DrawRedTriangleOnTexture(pSrcResource) 3,WinA_CopyResource(pDstResource_shared,pSrcResource) 4,WinB_Clear(white_color) 5,WinB_RenderTexture(pDstResource_shared) }
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)