Поделиться через


D1120: недопустимая попытка нарисовать растровое изображение

Операция завершилась сбоем, так как растровое изображение имеет параметр D2D1_BITMAP_OPTIONS_CANNOT_DRAW.

 

Возможные причины

Это сообщение возникает, когда приложение пытается нарисовать точечный рисунок, помеченный D2D1_BITMAP_OPTIONS_CANNOT_DRAW. Сюда входят прямые вызовы DrawBitmap, а также рисование примитивов с помощью кисти растрового рисунка.

Возможные исправления

Флаг CANNOT_DRAW используется для правильной аннотации ресурсов, которые можно использовать только в качестве целевых объектов, таких как backbuffers цепочки буферов. Однако также разрешено пропускать флаг CANNOT_DRAW для некоторых целевых растровых изображений, если они также могут использоваться в качестве источника. В этом случае просто опустите флаг CANNOT_DRAW. Если растровое изображение должно быть помечено CANNOT_DRAW из-за его монопольного использования в качестве целевого объекта или для обеспечения возможности блокировки ЦП, рассмотрите возможность использования промежуточной текстуры с тем же размером, что и нужный источник, но без обозначения CANNOT_DRAW. Скопируйте в промежуточную текстуру с помощью ID3D11DeviceContext::CopyResource и используйте промежуточную текстуру в качестве источника для операции рисования. Использование промежуточной текстуры приводит к повышению производительности; Они могут быть приемлемыми, если исходное растровое изображение меняется редко.