Нужно ли заново создавать разделяемые ресурсы Direct2D? - PullRequest
1 голос
/ 21 марта 2011

Согласно документации, даже зависящие от устройства ресурсы разделяются среди целей рендеринга, когда эти цели рендеринга удовлетворяют некоторым условиям.

Предположим, у меня есть две цели RenderTarget (RT1 и RT2), которые удовлетворяют этим условиям. Я использую RT1 для создания нового зависимого от устройства ресурса (ResourceA), а RT1 и RT2 используют этот ресурс для рисования.

Теперь, когда я закончу с RT1, я получу D2DERR_RECREATE_TARGET, что означает, что мне нужно пересоздать RT1 и снова рисовать.

У меня вопрос: нужно ли заново создавать ResourceA, созданный RT1?

1 Ответ

3 голосов
/ 24 декабря 2011

Краткий ответ: Да, любой ресурс, созданный с использованием RT1, необходимо будет воссоздать при обнаружении D2DERR_RECREATE_TARGET.

Длинный ответ: ресурсы D2D могут совместно использоваться всеми объектами RenderTarget, пришедшими из той же фабрики, что и фабрика d2d поддерживает внутренние соединения с базовым устройством D3D и его ресурсами. ID2D1RenderTargets на самом деле просто ID3DTexture2Ds. Таким образом, когда текстура d3d была признана недействительной, все ресурсы, созданные с использованием базового устройства d3d, также должны быть воссозданы.

...