【发布时间】:2014-01-25 06:32:50
【问题描述】:
理想情况下,我希望有多个工作线程能够渲染到屏幕外渲染目标,然后将渲染的内容“传输”到屏幕上的目标。使用 hwnd 渲染目标,这似乎不是问题(msdn 有一个例子)。
当屏幕渲染目标基于 DXGI 交换链时,我不太确定该怎么做。据我所知,每个窗口只能有一个交换链。因此,我只能有一个基于交换链的渲染目标。这意味着屏幕上的渲染只能通过那个单一的渲染目标来完成。
如果我的上述假设是正确的,那么处理多线程渲染的最佳方法是什么?我需要序列化对屏幕目标的访问吗?工作线程应该共享一个多线程 d2d 工厂吗?如果有适当的锁定机制,屏幕目标的 BeginDraw/EndDraw/Present 是否可以在工作线程(即未创建屏幕目标的线程)上执行?
我将不胜感激任何建议。 谢谢。
【问题讨论】:
标签: direct2d