I’m not quite sure what the problem is… If you use alpha, you just
use the alpha channel to specify how transparent each pixel should be
- including totally transparent pixels. So, just erase the black
pixels in GIMP, PhotoShop or whatever you’re using, enable
SDL_SRCALPHA after loading the surface, and that’s it!
You can get antialiazing (which is basically semi-transparent pixels
around the otherwise jagged edges) as en extra bonus while you’re at
it. Just let GIMP/PhotoShop/… do it’s usual stuff. (Most such
applications require that you work in RGB mode to get AA.)
(You can use colorkey together with [full surface] alpha blending,
which is useful in some special cases - but I’m not totally sure you
can use colorkey with an alpha channel. Why would you, anyway? Alpha
is the more powerful method handling transparency, so if you’re using
that, why bother using colorkey?)
//David Olofson - Programmer, Composer, Open Source Advocate
.------- http://olofson.net - Games, SDL examples -------.
| http://zeespace.net - 2.5D rendering engine |
| http://audiality.org - Music/audio engine |
| http://eel.olofson.net - Real time scripting |
’-- http://www.reologica.se - Rheology instrumentation --'On Sunday 17 September 2006 20:03, Ismael Barros wrote:
Hi,
I’m pretty new to SDL, and I don’t know if it’s possible to do this,
but I wanted to blit a 3-color surface, with a transparent color, an
opaque color and a semi-transparent (alpha=128) color.
The surface I’m trying to blit is a window created with tiles
extracted from this palete:
http://img356.imageshack.us/img356/5391/windowbiggr4.png
Black color (0, 0, 0) must be transparent, the blue of the border
must be opaque and the other blue (deeper) must have alpha=128
The effect I’m trying to achieve is this:
http://img516.imageshack.us/img516/2704/scnv9.png
I also can split the window in two surfaces, the opaque border and
the content, but I wanted to know if there is a cleaner way to do
it.
Any idea?