DirectX每个控件的多个设备和对象

问题描述 投票:0回答:1

所以我有多个控件我想渲染场景。我为每个控件都有一个Device实例,还有一些其他对象,比如我需要为每个控件编译着色器,依此类推。

我想知道这是一个很好的方法来拥有多个设备和每个控件的所有对象?

不过,我的表现相当不错。这只是我想节省内存和设置时间。因为例如着色器对于每个实例都是相同的,并且每次都需要加载和编译。我不能静态地拥有它们,因为当我尝试时它们被限制在相同的设备上。我试图使设备静态,所以我也可以使着色器对象静态,但我似乎在上下文被破坏的问题中运行,即使只有一个线程执行它们。也许是因为我不能依赖GUI线程总是完成上下文(所有控件静态使用)状态并在进入下一个之前渲染,这会破坏我的状态。

所以我的问题和关注更多的是它所需的内存和加载时间(感觉非常慢和重),而不是绘图的性能(非常好和令人满意)。我读到一般没有“最佳实践”,但也许你们中的一些人有一些我可以改进的提示。

谢谢你的帮助

c# directx sharpdx
1个回答
0
投票

我认为不是为每个控件创建不同的设备,而是为每个控件创建不同的交换链,并且所有控件/交换链由同一设备共享/创建。

© www.soinside.com 2019 - 2024. All rights reserved.