- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
正如标题所说,我在循环中执行 CopySubresourceRegion,在某个时候我需要强制等待直到它完成。从 MSDN 的文档来看,我似乎可以调用 ID3D11DeviceContext::Flush
,然后调用 ID3D11DeviceContext::GetData
由 ID3D11Device::CreateQuery
创建的事件查询> 使用 D3D11_QUERY_EVENT
。
我已经尝试过了,到目前为止它似乎在我的测试中起作用,但有些事情我不确定。
如果我在循环开始之前只调用一次 CreateQuery
并在每次 GetData
调用中重复使用该查询,它会正常工作吗?
我应该在创建查询后销毁它以防止泄漏查询吗?似乎没有DestroyQuery
方法,所以也许可以在我的ID3D11Query*
上免费调用?
如果我可以在需要等待复制完成之前调用 ID3D11DeviceContext::Map
或 Unmap,我还需要 Flush 吗?
最佳答案
为什么需要显式等待完成? D3D11 已经在飞行中使用的整个生命周期内进行了内部屏蔽。如果您调用 Map
,系统会确保为您等待完成。
通常这是我们想要的相反的行为,能够以非阻塞的方式查询完成,以知道何时可以安全地调用 Map
,通过使用查询。
对于 2. 查询就像 D3D11 中的任何其他资源一样,您可以通过调用 Release
销毁它们,您可以重用它们,创建一个查询池,在使用时将它们标记为已使用,然后将它们标记为可用再次使用 GetData
关于c++ - 我有一个调用 ID3D11DeviceContext::CopySubresourceRegion 的循环。我怎么能强制等待呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45950352/
我从来没有做过任何 GDI 编程,尽管在黑暗中拍了几张照片并搜索了文档,但我还没有找到将一个 DC 的内容复制到另一个 DC 的正确方法。 我现在的代码如下。我不明白为什么它不起作用(创建后窗口仍然空
我有一个指向 COLORREF 缓冲区的指针,类似于:COLORREF* buf = new COLORREF[x*y]; 一个子程序用颜色信息填充这个缓冲区。每个 COLORREF 代表一个像素。
发生的事情是 ClearRenderTarget 在我的代码上不断崩溃,我想知道为什么。 这是我初始化 directX 及其所有代码的代码: #include "d3d.h" D3DClass::D3
我不明白为什么允许这样做: void Renderer::UpdateTextureFromArray(unsigned int* colors, unsigned int size, Texture
请帮助我处理 HDC 中的 alpha channel 。我让 HDC dc 抛出 CreateCompatibleDC。比调用 CreateDIBSection 可以在内存中找到图像字节。比调用 D
我在 Blender 中加载了一个 3D 场景。现在我想获取一些信息,例如场景中的对象、相机视角等。此外,我想获取 opengl 设备上下文和渲染上下文。类似于结构上的指针。 是否可以使用用 c/c+
我是一名优秀的程序员,十分优秀!