Как отобразить геометрию пути без дескриптора окна с помощью Магазина Windows C++

В моем приложении для Магазина Windows я должен нарисовать геометрию пути, используя Direct2D на C++. В моем сценарии вместо использования основных Polyline объект, я иду на Direct2D для лучшей производительности в моем приложении. Таким образом, мое приложение C# будет взаимодействовать с компонентом C++ для рисования Direct2D.

Эта ссылка помогла получить больше информации о рисовании Direct2D для PathGeometry, Но он рисует геометрию в дескрипторе окна, но вместо того, чтобы использовать дескриптор окна, мне нужно сделать рисование, как в обычном UIElement рендеринг. Есть ли в сети образец для решения моей проблемы?

2 ответа

Решение

Мы должны использовать фабрику, которая создала SurfaceImageSource; Мы не должны создавать новую фабрику. Так что у нас будет такой код:

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

Наконец это решило мою проблему.

Существуют примеры для интеграции DirectX/XAML, и я думаю, что может даже существовать шаблон проекта VS для их интеграции, который включает в себя код Direct2D, хотя, возможно, в одном приложении C++ проекта natice, тогда как вам нужно будет создать собственный компонент WinRT, который предоставляет C++/CX API для вашего приложения, чтобы положить в SwapChainPanel (лучший вариант, но требует Windows 8.1), SwapChainBackgroundPanel (хороший вариант, но только в полноэкранном режиме) или SurfaceImageSource,

Другие вопросы по тегам