Complete.Org: Mailing Lists: Archives: freeciv-dev: March 2004:
[Freeciv-Dev] (PR#8215) win32 client: draw_fog_part doesn't use a mask
Home

[Freeciv-Dev] (PR#8215) win32 client: draw_fog_part doesn't use a mask

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: undisclosed-recipients: ;
Subject: [Freeciv-Dev] (PR#8215) win32 client: draw_fog_part doesn't use a mask
From: "James Canete" <use_less@xxxxxxxxxxx>
Date: Wed, 24 Mar 2004 16:06:06 -0800
Reply-to: rt@xxxxxxxxxxx

<URL: http://rt.freeciv.org/Ticket/Display.html?id=8215 >

> [jdorje - Wed Mar 24 15:57:12 2004]:
> 
> James Canete wrote:
> 
> > I actually wanted to use the new crop_sprite() to combine the old
> > fog_sprite with sprite_mask, but my first attempt didn't work and I
> > figured it's faster as is anyway.
> 
> This is a possible solution.  The drawback is that you need almost twice 
> as many sprites since each mapview sprite has a regular and a fog sprite.
> 
> The advantage is that you can fog via alpha-layer drawing rather than 
> via stippling.  Just draw a 50% (or so) alpha-layer black rectangle over 
> the entire sprite, without changing the mask.  This is what gui-SDL does 
> (except it *doesn't* duplicate the sprites but uses a hack to do the 
> drawing).
> 

There is an AlphaBlend() function in Windows GDI, but according to MSDN
it's not supported under Windows 95.  I could write a function to alpha
blend pixel by pixel, but it'd probably be very slow.  Though it'd only
be slow when creating the fog sprites.

On a related note, are we going to move on to an alpha layer with
sprites, as opposed to a mask?  So we'd be able to have translucent
areas of sprites and translucent edges, for pseudo edge antialiasing?

Also, does the current CVS client work on Win95?  I don't have it
installed to test with.

-James Canete


[Prev in Thread] Current Thread [Next in Thread]