| Предыдущий | Следующий |
| 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.
Ссылки по этому результату
Нужно найти другой код? Найти другой код состояния или ошибки.