Что означает код 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 — HRESULT, относящийся к области Direct2D. Размер создаваемого Direct2D bitmap превышает гарантированный предел для текущего уровня возможностей Direct3D.

Применительно к D2DERR_EXCEEDS_MAX_BITMAP_SIZE этот HRESULT возвращён Direct2D. В случае D2DERR_EXCEEDS_MAX_BITMAP_SIZE для диагностики важны factory/resource domain, параметры bitmap/brush/layer и состояние цели между BeginDraw и EndDraw.

Практический вывод для D2DERR_EXCEEDS_MAX_BITMAP_SIZE: этот HRESULT фиксирует описанное условие, но сам по себе не показывает, какой участник операции первым нарушил контракт. Для D2DERR_EXCEEDS_MAX_BITMAP_SIZE найдите первый вызов, вернувший статус, и только после этого меняйте конфигурацию подсистемы Direct2D.

Как читать имя D2DERR_EXCEEDS_MAX_BITMAP_SIZE

Имя D2DERR_EXCEEDS_MAX_BITMAP_SIZE помогает сузить поиск: EXCEEDS — технический маркер «exceeds»; MAX — предельное значение; BITMAP — растровое изображение; SIZE — размер. Эти части имени не заменяют документацию API, но позволяют проверить, что журнал и код относятся к одному и тому же условию.

Что проверить в первую очередь

Применительно к D2DERR_EXCEEDS_MAX_BITMAP_SIZE ошибка связана с размером или диапазоном. В случае D2DERR_EXCEEDS_MAX_BITMAP_SIZE разделяйте размер выделенного буфера, фактическую длину данных, требуемую длину и единицы измерения.

  • Для D2DERR_EXCEEDS_MAX_BITMAP_SIZE запишите переданный и требуемый размеры, тип счётчика и единицы — байты, символы, элементы или блоки.
  • При разборе D2DERR_EXCEEDS_MAX_BITMAP_SIZE пересоздайте device-dependent resources после потери устройства вместо повторного использования старых объектов.
  • При разборе D2DERR_EXCEEDS_MAX_BITMAP_SIZE запишите метод Direct2D, параметры ресурса, factory и render target, которым принадлежат участвующие объекты.
  • При разборе D2DERR_EXCEEDS_MAX_BITMAP_SIZE проверьте баланс BeginDraw/EndDraw, Push/Pop, активные layer/clip и текущую target bitmap.
  • При разборе D2DERR_EXCEEDS_MAX_BITMAP_SIZE сверьте размеры текстур и поддерживаемые форматы с feature level и возможностями графического адаптера.

Как локализовать источник

  • Для D2DERR_EXCEEDS_MAX_BITMAP_SIZE проверяйте исправление как на аппаратном, так и на программном WARP-рендерере, если это допустимо.
  • Для D2DERR_EXCEEDS_MAX_BITMAP_SIZE включите Direct2D debug layer и сохраните первое диагностическое сообщение перед HRESULT.
  • Для D2DERR_EXCEEDS_MAX_BITMAP_SIZE создайте минимальную сцену с теми же ресурсами и последовательностью вызовов.

Проверка после изменения

Применительно к D2DERR_EXCEEDS_MAX_BITMAP_SIZE исправление D2DERR_EXCEEDS_MAX_BITMAP_SIZE подтверждено, когда исходный сценарий завершается ожидаемо, журналы больше не содержат этого статуса, а отдельный отрицательный тест по-прежнему корректно обнаруживает описанное условие.

Ссылки по D2DERR_EXCEEDS_MAX_BITMAP_SIZE


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