Pregunta sobre Programación con DirectX (DirectDraw)

Temas relacionados con la programación y la actualización audiovisual
User avatar
masoftware
Usuario veterano
Posts: 45
Joined: Mon Oct 13, 2003 5:55 pm
Contact:

Pregunta sobre Programación con DirectX (DirectDraw)

Postby masoftware » Sat Nov 01, 2003 10:55 am

Hola amigos.
Tengo una duda a ver si alguno de vosotros ha resuelto esto.
La función BitBlt del interfaz IDirectDrawSurface, en teoría permite
hacer AlphaBlend, es decir, permite que se pinte un grafico - indicando
mediente uno de los argumentos de la estructura de Efectos -, con cierta
transparencia, de forma que cuento menor sea el valor especificado
más opaco es el grafico (original) y cuando mayor sea el valor, más
trasparente se vuelve el grafico.

Pero esto es segun la documentacion, sin embargo, no he conseguido
hacer que esto funcione. Tampoco he encontrado en ningun sitio un ejemplo
claro de como hacer esto. :oops:

¿Alguno de vosotros lo ha hecho?.
¿Podríais enviarme o decirme donde encontrar algun ejemplo claro de esto?.

Muchas Gracias
M. Angel.
User avatar
addax
Administrador
Posts: 905
Joined: Mon Mar 31, 2003 10:17 pm
Location: Madrid
Contact:

Postby addax » Sat Nov 01, 2003 7:43 pm

Hola,
Pues me parece que SÓLO funciona sobre 32 bits de color (quizás también sobre 24 :roll: )... pero el que mejor nos puede informar sobre eso es Slàinte, que me estuvo echando una mano sobre este mismo tema de transparencias y sombras :wink:
Last edited by addax on Sun Nov 02, 2003 12:29 am, edited 1 time in total.
Salu2,
Alex
User avatar
masoftware
Usuario veterano
Posts: 45
Joined: Mon Oct 13, 2003 5:55 pm
Contact:

Postby masoftware » Sun Nov 02, 2003 12:18 am

Gracias Addax.
¿Puedes decirme la direccion de esa persona?, o decirme como contactar con el.

Saludos.
M. Angel.
User avatar
addax
Administrador
Posts: 905
Joined: Mon Mar 31, 2003 10:17 pm
Location: Madrid
Contact:

Postby addax » Sun Nov 02, 2003 12:27 am

Es usuario del foro y hablo con él casi todos los días, así que se lo comentaré y supongo que podrá encontrar un hueco para darnos algunas claves aquí mismo...

Pero si quieres su dirección de correo:
http://www.remakeszone.com/gente/quien. ... es%20quién
Guest

Postby Guest » Mon Nov 03, 2003 9:40 am

Como tu le conoces ya, espero a que le comentes el tema, y cuando ya sepa
del asunto, entonces me pongo en contacto con el..

Gracias..
M. Angel.
User avatar
Slàinte
Usuario avanzado
Posts: 135
Joined: Thu May 08, 2003 8:54 pm
Location: Barcelona
Contact:

Postby Slàinte » Mon Nov 03, 2003 10:13 am

Vamos a ver si me aclaro :)

Hablamos de que DDraw concretamente? IDirectDrawSurface3 que es la unica referencia que ahora mismo tengo a mano indica que no existe ninguna funcion llamada BitBlt (que me aparece como parte de GDI)

En una DDraw surface el parametro de efectos tiene efecto cuando se cumplen las condiciones adecuadas de blit:

Para alpha blend: usar un formato con canal alfa (usease... ARGB) o tener una superficie de canal alpha añadida con IDirectDrawSurface3::AddAttachedSurface con una surface que tenga los valores de alpha (8 bits) para cada pixel

Entonces para blitear necesitas marcar el flag DDBLT_ALPHADEST o DDBLT_ALPHASRC en función de que canal alpha quieras usar ... normalmente sera el de origen en conjunto a DDBLT_ALPHASRCNEG para que a mayor valor mayor transparencia...

Si usas otra version de DX habria que mirarlo aparte... el sistema por surface añadida no es tan rápido como el otro y requiere tener mas memoria ocupada y la máscara de transparencia aparte... la verdad es que no te he hecho pruebas de esto... y hace mucho que no uso DX a pelo (desde la version 6... ) y lo tengo bastante oxidado :P maravilloso poder usar wrappers ;) pero bueno, diria que por ahí te va el tema
Proyecto Fenix 1.0
http://fenix.divsite.net
Small Pixels Group
Image
http://pixelation.swoo.net

Return to “Desarrollo”

Who is online

Users browsing this forum: No registered users and 2 guests