如何在没有D3DImage和HwndHost的情况下在WPF中托管C ++ Direct2D?

时间:2015-04-02 14:59:01

标签: c++ wpf directx direct3d direct2d

背景

我有一个传统的C ++控制台GUI应用程序,我希望在没有任何空域问题和VM / RDP支持的情况下集成到WPF中。

我的应用程序在C ++中使用Direct3D9,其中表面通过P / Invoke集成到WPF中,并用作D3DImage的后台缓冲区。

标准

  1. 能够在旧版应用上叠加WPF控件。
  2. 必须适用于虚拟机和RDP(无硬件加速/ HAL)
  3. 问题

    标准2 - 我的很多客户端连接到Windows Server 2008 R2 VM,因此无法访问HAL D3D设备类型(D3DDEVTYPE_HAL)。我被迫使用D3DDEVTYPE_REF,这是如此之慢,无法使用。

    您的想法?

    我已经想到将Direct3D引擎转换为Direct2D以获得更好的RDP / VM支持,但是由于D3DImage从根本上需要Direct3D9Ex设备,因此Direct2D和Direct3D之间的互操作性再次与需求相关联。 HAL设备类型。我被迫创建我的Direct3D9Ex设备作为D3DDEVTYPE_REF,我想这会给性能不佳。如有必要,我愿意使用GDI +。

0 个答案:

没有答案