| Anterior | Siguiente |
| D2DERR_WRONG_RESOURCE_DOMAIN | D2DERR_RENDER_TARGET_HAS_LAYER_OR_CLIPRECT |
D2DERR_PUSH_POP_UNBALANCED
Qué significa D2DERR_PUSH_POP_UNBALANCED
D2DERR_PUSH_POP_UNBALANCED (-2003238890, 0x88990016) — El número de llamadas push y pop no está equilibrado.
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 pila de layers/clips no queda equilibrada al terminar el dibujo. Instrumenta profundidad de stack al entrar/salir de cada rutina de dibujo y revisa early returns/exceptions. EndDraw debe ver la misma profundidad inicial; añadir Pops genéricos al final puede ocultar qué rama creó el desbalance.
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_POP_CALL_DID_NOT_MATCH_PUSH se aísla por Pop no corresponde al último Push de la pila Direct2D. Aquí debe demostrarse pila de layers/clips no queda equilibrada al terminar el dibujo; 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.