Конструктор SharpDX/SolidColorBrush с DeviceContext?

Я изучаю Direct2D для приложения (в C# с использованием sharpdx), но мне трудно найти, какой современный способ работы..

Вот моя текущая проблема:

Сначала я использовал Direct2D только с D2D1Factory, как описано в "быстром старте" MSDN. Но при поиске оптимизации производительности мне кажется, что я должен рисовать, используя ID2D1DeviceContext, чтобы иметь доступ к некоторому механизму кэширования. Поэтому я следовал этой статье MSDN, чтобы обновить свое приложение.

Но конструктор SharpDX SolidColorBrush принимает только RenderTarget в качестве первого параметра, у него нет конструктора, принимающего DeviceContext. Но раньше он был, я нашел пример кода SharpDX с ним.

Этот метод ослаблен? Почему SharpDX удалил этот конструктор? Потому что мне нужно инициализировать кисти из DeviceContext, чтобы использовать их с моими вызовами отрисовки DeviceContext.

Создание RenderTarget из ID2D1Factory для создания моих кистей, а затем попытка использовать их с ID2D1DeviceContext.Draw_something() вызывает исключение ресурсов DirectX (что кажется логикой...)

Кто-нибудь может зажечь меня, пожалуйста?

Большое спасибо.

1 ответ

Решение

Согласно SDK ID2D1DeviceContext сам является целью рендеринга, он наследуется от ID2D1RenderTarget. Таким образом, вы должны иметь возможность использовать указатель контекста устройства в качестве значения аргумента целевого указателя рендеринга.

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