Что означает код HRESULT 0x8899001D (D2DERR_EXCEEDS_MAX_BITMAP_SIZE)?

 
Предыдущий Следующий
D2DERR_TEXT_RENDERER_NOT_RELEASED D2DERR_INVALID_GRAPH_CONFIGURATION

D2DERR_EXCEEDS_MAX_BITMAP_SIZE

Что означает D2DERR_EXCEEDS_MAX_BITMAP_SIZE

D2DERR_EXCEEDS_MAX_BITMAP_SIZE означает, что ширина или высота создаваемого bitmap превышает предел для текущего графического устройства.

Что проверить

Сравните фактические размеры в пикселях с максимальным размером bitmap, который сообщает устройство. Учитывайте масштабирование и DPI: логический размер интерфейса может превратиться в существенно больший буфер в физических пикселях.

  • Логируйте ширину, высоту, формат пикселя и ожидаемый объём памяти.
  • Проверьте, не возникло ли переполнение при вычислении размера или масштаба.
  • Для действительно больших изображений используйте разбиение на плитки или уменьшение разрешения, а не повторное создание того же чрезмерного ресурса.

Как подтвердить исправление

Создайте bitmap с рассчитанными допустимыми размерами и проверьте рисование на том же устройстве и при том же DPI.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.