| Anterior | Siguiente |
| D2DERR_LAYER_ALREADY_IN_USE | D2DERR_WRONG_RESOURCE_DOMAIN |
D2DERR_POP_CALL_DID_NOT_MATCH_PUSH
Qué significa D2DERR_POP_CALL_DID_NOT_MATCH_PUSH
D2DERR_POP_CALL_DID_NOT_MATCH_PUSH (-2003238892, 0x88990014) — La llamada pop no coincide con su llamada push asociada.
Direct2D mantiene pilas lógicas de layers y clips. Push y Pop deben estar equilibrados dentro de la misma secuencia de dibujo y sobre el mismo render target; el error suele aparecer más tarde que la llamada que rompió el balance.
Qué demuestra este HRESULT
La condición específica es Pop no corresponde al último Push de la pila Direct2D. Registra cada PushAxisAlignedClip/PushLayer con un stack ID y cada Pop. Reproduce hasta el primer desbalance y corrige esa rama de control; el lugar donde falla Pop suele ser posterior al error lógico.
Instrumenta la profundidad de la pila
Incrementa un contador en cada Push y decrementa en el Pop correspondiente, incluyendo excepciones y early returns. Guarda target y tipo de entrada en cada nivel; el primer cambio que rompe la profundidad esperada suele estar antes de la API que finalmente devuelve el HRESULT.
No confundir con un resultado cercano
D2DERR_PUSH_POP_UNBALANCED se aísla por pila de layers/clips no queda equilibrada al terminar el dibujo. Aquí debe demostrarse Pop no corresponde al último Push de la pila Direct2D; son fronteras distintas aunque ambas aparezcan en el mismo render loop.
Referencias técnicas
- Microsoft Learn: documentación oficial de Direct2D relacionada con este resultado
- Microsoft Learn: documentación oficial de Direct2D relacionada con este resultado
- Microsoft Learn: documentación oficial de Direct2D relacionada con este resultado
- Microsoft Learn: documentación oficial de Direct2D relacionada con este resultado
¿Buscas un código diferente? Buscar otro código de estado o error.