¿Qué significa el código HRESULT 0x8899001C (D2DERR_TEXT_RENDERER_NOT_RELEASED)?

 
Anterior Siguiente
D2DERR_TEXT_EFFECT_IS_WRONG_TYPE D2DERR_EXCEEDS_MAX_BITMAP_SIZE

D2DERR_TEXT_RENDERER_NOT_RELEASED

Qué significa D2DERR_TEXT_RENDERER_NOT_RELEASED

D2DERR_TEXT_RENDERER_NOT_RELEASED (-2003238884, 0x8899001C) — La aplicación sigue conservando una referencia a IDWriteTextRenderer después de que DrawText o DrawTextLayout haya devuelto el control. Esta instancia de IDWriteTextRenderer ya no es válida.

La ruta de texto combina DirectWrite, glyph runs, renderers y efectos. Hay que conservar font face, glyph indices, rendering mode y tipo del objeto de efecto sin registrar innecesariamente el contenido del documento.

Qué demuestra este HRESULT

La condición específica es text renderer conserva referencias que deberían haberse liberado. Instrumenta AddRef/Release del renderer y callbacks de DirectWrite, especialmente rutas de excepción. Libera el renderer cuando termina el draw y comprueba que no queda capturado por layouts o closures.

Aísla datos tipográficos de estado del renderer

Guarda font face identity, glyph indices, rendering mode y tipo del effect/renderer, pero evita registrar texto sensible. Reproduce con el mismo glyph run y luego con uno mínimo; esa comparación distingue datos de fuente, cache y lifecycle del renderer.

Referencias técnicas


¿Buscas un código diferente? Buscar otro código de estado o error.