在我的Windows应用商店应用中,我必须使用C ++中的Direct2D绘制路径几何。在我的场景中,我没有使用基本的Polyline
对象,而是在我的应用程序中使用Direct2D以获得更好的性能。因此,我的C#应用程序将与用于Direct2D绘图的C ++组件进行通信。
This链接有助于获取有关PathGeometry
的Direct2D绘图的更多信息。但是它在Window Handle中绘制几何图形,而不是使用Window句柄,我需要像普通的UIElement
渲染一样完成绘图。网上是否有可用的样本来解决我的问题?
答案 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);
最后它解决了我的问题。