DirectDraw (ddraw.dll) es una API que solía ser parte de la API DirectX de Microsoft . DirectDraw se utiliza para acelerar la representación de gráficos 2D en aplicaciones. DirectDraw también permite que las aplicaciones se ejecuten en pantalla completa o incrustadas en una ventana como la mayoría de las otras aplicaciones de MS Windows. DirectDraw utiliza aceleración de hardware si está disponible en la computadora del cliente . DirectDraw permite el acceso directo a la memoria de video , superposiciones de hardware , blitters de hardware y cambio de página . Su administrador de memoria de video puede manipular la memoria de video con facilidad, aprovechando al máximo las capacidades de blitting y descompresión de color de diferentes tipos de adaptadores de pantalla .
Debido a que DirectDraw es una API 2D , contiene comandos para renderizado 2D y no admite aceleración de hardware 3D . Un programador podría usar DirectDraw para dibujar gráficos 3D, pero el renderizado sería lento en comparación con una API como Direct3D que sí admite aceleración de hardware 3D.
DirectDraw se introdujo para Windows Mobile en Windows Mobile 5.0, reemplazando el componente gráfico de GAPI, que entonces quedó obsoleto. [1]
Con el lanzamiento de la versión 8.0 de DirectX, DirectDraw se fusionó en un nuevo paquete llamado DirectX Graphics , que amplió Direct3D con algunas adiciones a la API de DirectDraw. Los programadores aún pueden usar DirectDraw, pero deben usar interfaces de DirectX más antiguas (DirectX 7 y anteriores).
En junio de 2010, DirectDraw se eliminó del paquete DirectX SDK, [2] pero en 2012, el DirectX SDK se fusionó con el Windows Platform SDK y DirectDraw se incluyó nuevamente.
Reemplazo
Se ha producido un deterioro de la compatibilidad de Windows con los juegos antiguos que dependen de DirectDraw, entre los que se encuentran Command & Conquer , Warcraft 2 y Theme Hospital . En las versiones más nuevas de Windows, algunos juegos se niegan a ejecutarse con una profundidad de bits de 32 bits ( por ejemplo, Dangerous Waters ), mientras que otros muestran una pantalla negra o fallan al cambiar de versión. Se ha observado que la reimplementación de DirectDraw soluciona estos problemas de compatibilidad. Los reemplazos más utilizados son:
- WineD3D de Wine , que se traduce a OpenGL . [3]
- cnc-ddraw y ts-ddraw de CnCNet, una red multijugador de Command & Conquer . Se traduce a GDI , OpenGL (con soporte GLSL ) o Direct3D 9. [4]
- DDrawCompat, un contenedor para el ddraw original que corrige llamadas problemáticas. [5] ddwrapper es un contenedor anterior, no relacionado, que hace lo mismo. [6]
Véase también
Referencias
- ^ Saffitz, Michael. "¿Ya has migrado a DirectDraw?". Blog del equipo de Windows Mobile . Consultado el 23 de abril de 2019 .
- ^ "Gráficos y vídeo de DirectX 8: un nuevo comienzo". gamedev.net. 2000-11-30. Archivado desde el original el 2007-06-04 . Consultado el 2019-04-23 .
- ^ Dossena, Federico. «WineD3D para Windows». Federico Dossena . Consultado el 23 de abril de 2019 .
- ^ CnCNet (21 de abril de 2019). «cnc-ddraw: reimplementación de la API DirectDraw para juegos clásicos en GDI, OpenGL y Direct3D 9 para una mejor compatibilidad con Windows XP, Vista, 7, 8, 10 y Wine». GitHub . Consultado el 23 de abril de 2019 .
- ^ narzoul (21 de abril de 2019). «DDrawCompat: compatibilidad con DirectDraw y mejoras de rendimiento para Windows Vista, 7, 8 y 10». GitHub . Consultado el 23 de abril de 2019 .
- ^ Aqrit. "ddwrapper". bitpatch.com .
Enlaces externos
- Referencia de API de Microsoft para DirectDraw
- Descripción general de la API de Microsoft para DirectDraw