Site icon EfmSoft

Что означает код HRESULT 0x88990013 (D2DERR_LAYER_ALREADY_IN_USE)?

 
Предыдущий Следующий
D2DERR_WRONG_FACTORY D2DERR_POP_CALL_DID_NOT_MATCH_PUSH

D2DERR_LAYER_ALREADY_IN_USE

Что означает результат

D2DERR_LAYER_ALREADY_IN_USE: Direct2D отклонил PushLayer, потому что тот же ID2D1Layer уже активен в незавершённой паре PushLayer/PopLayer. Код описывает занятость конкретного layer resource, а не «уже существующий объект» вообще.

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

  • Зафиксируйте первый PushLayer для этого ID2D1Layer и стек вызовов второй попытки.
  • Проверьте баланс PushLayer/PopLayer на всех ветках, включая ранний return и обработку ошибок.
  • Для действительно вложенных слоёв используйте другой ID2D1Layer либо завершите использование текущего перед повторным PushLayer.
  • Проверьте, не разделяется ли один layer resource между несколькими участками рисования без синхронизации.

Диагностика и исправление

Исправьте владение и парность PushLayer/PopLayer. Повторное создание произвольных Direct2D-объектов не требуется: конфликт относится именно к уже активному layer resource.

Ссылки по этому результату


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

Exit mobile version