如何使用Windows Store C ++在没有窗口句柄的情况下渲染路径几何体

时间:2013-07-31 13:34:54

标签: c# c++ xaml windows-store-apps direct2d

在我的Windows应用商店应用中,我必须使用C ++中的Direct2D绘制路径几何。在我的场景中,我没有使用基本的Polyline对象,而是在我的应用程序中使用Direct2D以获得更好的性能。因此,我的C#应用​​程序将与用于Direct2D绘图的C ++组件进行通信。

This链接有助于获取有关PathGeometry的Direct2D绘图的更多信息。但是它在Window Handle中绘制几何图形,而不是使用Window句柄,我需要像普通的UIElement渲染一样完成绘图。网上是否有可用的样本来解决我的问题?

2 个答案:

答案 0 :(得分:1)

有一些DirectX / XAML集成示例,我认为甚至可能有一个VS项目模板来集成这些包含Direct2D代码的模板,尽管可能在单个项目的natice C ++应用程序中,而您需要创建一个本机WinRT组件向您的应用程序公开C ++ / CX API以放入SwapChainPanel(最佳选项,但需要Windows 8.1),SwapChainBackgroundPanel(选项不错,但仅限全屏)或{{1 }}

答案 1 :(得分:0)

我们必须使用创建SurfaceImageSource的工厂;我们不应该创建一个新工厂。所以我们会有这样的代码:

 ID2D1Factory *pFactory=nullptr;
 d2dDevice->GetFactory(&pFactory);
 ID2D1GeometrySink *pSink = NULL;
 ID2D1PathGeometry *pPathGeometry=NULL;
 // Create a path geometry.
 HRESULT hr = pFactory->CreatePathGeometry(&pPathGeometry);

最后它解决了我的问题。