Direct3d 在一个程序中处理多个D3D设备

Direct3d 在一个程序中处理多个D3D设备,direct3d,Direct3d,我有一个通过D3D进行渲染的控制台应用程序。现在,我创建了一个ConsoleCollection类,它可以容纳和呈现这样的控制台的多个实例。不幸的是,现在我得到一个错误,说在DrawPrimitives阶段尝试读/写受保护内存,我怀疑这是由于创建了多个设备,但不确定 有人能建议我如何解决这个问题吗?您的应用程序是单线程的吗?您使用的D3D版本是什么?Afaik多线程渲染是DX11的一项功能,在较低版本中,您不应同时从不同线程访问d3d设备。我使用的是MDX,我假设它支持DX9。您是否对所有渲染器

我有一个通过D3D进行渲染的控制台应用程序。现在,我创建了一个ConsoleCollection类,它可以容纳和呈现这样的控制台的多个实例。不幸的是,现在我得到一个错误,说在DrawPrimitives阶段尝试读/写受保护内存,我怀疑这是由于创建了多个设备,但不确定


有人能建议我如何解决这个问题吗?

您的应用程序是单线程的吗?您使用的D3D版本是什么?Afaik多线程渲染是DX11的一项功能,在较低版本中,您不应同时从不同线程访问d3d设备。我使用的是MDX,我假设它支持DX9。您是否对所有渲染器使用d3d设备的单个实例?在DX9中从多个线程使用同一设备肯定是不安全的。您应该创建多个设备,并且不要在它们之间共享资源。可以创建多个设备。请张贴一些屏幕blit代码