¿Qué significa el código HRESULT 0x8899000C (D2DERR_RECREATE_TARGET)?

 
Anterior Siguiente
D2DERR_NO_HARDWARE_DEVICE D2DERR_TOO_MANY_SHADER_ELEMENTS

D2DERR_RECREATE_TARGET

Qué significa D2DERR_RECREATE_TARGET

D2DERR_RECREATE_TARGET (-2003238900, 0x8899000C) — Se produjo un error de presentación potencialmente recuperable. Debe volver a crearse el destino, volver a renderizar todo el fotograma e intentar de nuevo la presentación.

Render targets y bitmaps tienen roles y lifetimes concretos. Un bitmap que sirve como target, una superficie GDI o un target perdido no puede usarse indistintamente como fuente; la operación exacta y el binding actual son parte del diagnóstico.

Qué demuestra este HRESULT

La condición específica es render target perdido y que debe recrearse. Trata el target y todos sus device-dependent resources como inválidos después de EndDraw/Flush. Conserva la causa de device/display transition, crea target nuevo y vuelve a materializar brushes/bitmaps necesarios desde estado de aplicación.

Conserva binding y generación del target

Registra SetTarget, BeginDraw/EndDraw y cualquier recreate/resize junto con un generation ID. Los recursos dependientes deben pertenecer al target/device actual; una referencia COM que sigue viva después de device loss no garantiza que siga siendo utilizable.

No confundir con un resultado cercano

D2DERR_INVALID_TARGET se aísla por objeto seleccionado como render target que no es válido para la operación. Aquí debe demostrarse render target perdido y que debe recrearse; son fronteras distintas aunque ambas aparezcan en el mismo render loop.

Referencias técnicas


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