В моем приложении для Магазина Windows я должен нарисовать геометрию пути, используя Direct2D на C ++. В моем сценарии вместо использования основных Polyline
объект, я иду на Direct2D для лучшей производительности в моем приложении. Поэтому мое приложение C # будет взаимодействовать с компонентом C ++ для рисования Direct2D.
это ссылка помогла получить больше информации о рисовании Direct2D для PathGeometry
, Но он рисует геометрию в дескрипторе окна, но вместо того, чтобы использовать дескриптор окна, мне нужно сделать рисование, как в обычном UIElement
рендеринг. Есть ли в сети образец для решения моей проблемы?
Существуют примеры для интеграции DirectX / XAML, и я думаю, что может даже существовать шаблон проекта VS для их интеграции, который включает в себя код Direct2D, хотя, возможно, в одном приложении C ++ проекта natice, тогда как вам нужно будет создать собственный компонент WinRT, который предоставляет C ++ / CX API для вашего приложения, чтобы положить в SwapChainPanel
(лучший вариант, но требует Windows 8.1), SwapChainBackgroundPanel
(хороший вариант, но только в полноэкранном режиме) или SurfaceImageSource
,
Мы должны использовать фабрику, которая создала SurfaceImageSource; Мы не должны создавать новую фабрику. Так что у нас будет такой код:
ID2D1Factory *pFactory=nullptr;
d2dDevice->GetFactory(&pFactory);
ID2D1GeometrySink *pSink = NULL;
ID2D1PathGeometry *pPathGeometry=NULL;
// Create a path geometry.
HRESULT hr = pFactory->CreatePathGeometry(&pPathGeometry);
Наконец это решило мою проблему.