¿b_nocolorkey no me funciona?

Started by osk, August 16, 2009, 02:56:11 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

osk

Hola.
Tengo una duda sobre map_xput y su constante b_colorkey.
En el código que os paso adjunto, cargo una imagen de 32 bits con transparencia (que la llamo "contrans.png"), genero en memoria una imagen igual pero sin transparencia (con map_xput y el flag b_colorkey) y la grabo en disco llamándola "sintrans.png". Yo tenía entendido que si le quitas la transparencia, deberían salir a la vista todos los píxeles (anteriormente invisibles) pintados de negro.
Pero no, la imagen final continúa teniendo las mismas zonas transparentes -al menos, visualmente- que la original. ¿Es el comportamiento correcto y soy yo el que anda errado? ¿O hay algún detalle que se me escapa?

Gracias!

P.D: Por otro lado, otra duda rápida que no tiene nada que ver: ahora en 32 bits, ya que gozamos de transparencia, no sería necesario utilizar para nada drawing_alpha en el dibujado de primitivas transparentes, ¿verdad?. Con drawing_color y rgba ya bastaría, no? Venga, gracias otra vez.

SplinterGU

el b_colorkey significa que el grafico se copia sobre otro tal cual es, sin hacer transparencias con respecto al fondo... esto es... si en grafico destino tenemos un pixel de "color A" y en el grafico source tenemos un pixel (para esa misma posicion) "color transparente/semi-transparente", al hacer el put, en esa posicion vamos tener el mismo pixel de "color transparente/semi-transparente".
resumiendo:

normal  (con transparencia)
destino = destino + source

normal  (sin transparencia)
destino = source

b_colorkey  (con o sin transparecia)
destino = source

con respecto al drawing_alpha, no... porque el drawing_alpha no invalida el alpha del pixel, sino que actua sobre este (incrementa el alpha del pixel)
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

osk