Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
这是我的问题...有一种方法可以检查应用程序何时在 DXGI (DX10/11) 中全屏显示。对于全屏显示,我的意思是系统已完成模式更改。因为我的应用程序需要它来防止死锁和调整时间。(我有一个多线程引擎,并且 Present 不在消息泵线程上,导致模式更改随机死锁))实际上我让它等待 1 秒,继续在消息泵线程上处理消息并且它可以工作,但我想要更多DETERMINISTIC 对我说“嘿,模式更改已完成,您现在处于全屏模式”。:D
任何的想法?
是否有任何理由不能将渲染和消息泵线程作为同一个线程运行?
根据文档,没有什么可以告诉您更改已完成。
但奇怪的是,DXGI 依赖于从内部 SendMessage 调用(通过多线程环境中的消息泵发生)返回响应。因此,我看不到延迟消息泵如何解决问题。它所要做的就是让 DXGI 多等一秒钟,然后再继续做它的事情。死锁通常意味着您正在做的事情导致消息泵阻塞等待渲染线程做某事。