Что означает код HRESULT 0x88990016 (D2DERR_PUSH_POP_UNBALANCED)?

 
Предыдущий Следующий
D2DERR_WRONG_RESOURCE_DOMAIN D2DERR_RENDER_TARGET_HAS_LAYER_OR_CLIPRECT

D2DERR_PUSH_POP_UNBALANCED

Как диагностировать D2DERR_PUSH_POP_UNBALANCED

D2DERR_PUSH_POP_UNBALANCED — В последовательности команд Direct2D нарушен баланс операций сохранения и восстановления состояния: одному Push не соответствует Pop либо наоборот.

Этот HRESULT возвращён Direct2D.

В регрессионном тесте depth счётчик layer/clip должен возвращаться к исходному значению на каждом пути до EndDraw, включая ветви с ошибкой.

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

Практическая граница ошибки

К моменту завершения draw sequence стек layer/clip оказался несбалансированным. Инструментируйте каждый PushLayer/PushAxisAlignedClip и соответствующий Pop с depth counter. Ошибка может проявиться только на одной ветке rendering, поэтому проверяйте все early-exit paths перед EndDraw.


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