Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: Haddd en 07 de Diciembre de 2002, 03:54:26 PM

Título: Copiar de una surface de DX8 a un DC
Publicado por: Haddd en 07 de Diciembre de 2002, 03:54:26 PM
                                Estoy utilizando MFC y quiero copiar de una surface a un CDC de la función OnPaint de MFC.

¿Cómo puedo hacerlo?                                
Título: Copiar de una surface de DX8 a un DC
Publicado por: Haddd en 09 de Diciembre de 2002, 03:25:00 PM
                                Lo preguntaré de otro forma:

¿Cómo puedo obtener el DC de una surface de DX8?                                
Título: Copiar de una surface de DX8 a un DC
Publicado por: fiero en 11 de Diciembre de 2002, 03:47:25 AM
                                Hola Haddd,
parece que nadie contesta, por lo que deduzco que nadie se plantea estas cosas o que no se puede hacer con DX8.1 :-?

Como parece ser que han eliminado la función GetDC, ya que pertenecía a DirectDraw, ya no se puede obtener directamente.

Lo único que se me ocurre es usar IDirect3DDevice8::GetBackBuffer y luego IDirect3DSurface8::LockRect para sacar los datos "a mano" a un CDC, creado con cdc.CreateCompatibleDC() y CreateDIBSection(...). Pero claro, esto implicaria tener el backBuffer en memoria de sistema para poder hacer el Lock...

Yo usaba GetDC() con DX7 para sacar texto por pantalla, con la función CDC.TextOut, ¿Esto ya no se puede hacer con DX8.1? :-?

un saludo                                
Título: Copiar de una surface de DX8 a un DC
Publicado por: Haddd en 11 de Diciembre de 2002, 10:22:20 AM
                                Creo que con DX9 esto se solventa, porque vaya....!!!!¡Jodienda!!! En fin, habrá que esperar.                                
Título: Copiar de una surface de DX8 a un DC
Publicado por: fiero en 24 de Diciembre de 2002, 08:42:29 PM
                                Tal como decias Haddd, la clase IDirect3DSurface9 trae un metodo GetDC(), parece que se han dado cuenta de lo util que puede ser  :D

un saludo