<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'><div style="text-align: left;">Oops,<br><br>That surface creation part of the function in my last email should be generalized like so:<br><br>SDL_Surface* colorSwapSingle(SDL_Surface* surface, Uint32 oldColor, Uint32 newColor)<br>{<br>SDL_SetColorKey(surface, SDL_SRCCOLORKEY, oldColor);<br>#if SDL_BYTEORDER == SDL_BIG_ENDIAN<br>       
SDL_Surface* result =
SDL_CreateRGBSurface(SDL_SWSURFACE,surface->w,surface->h,surface->format->BytesPerPixel, surface->format->Rmask, surface->format->Gmask, surface->format->Bmask, surface->format->Amask);<br>    #else<br>       
SDL_Surface* result =
SDL_CreateRGBSurface(SDL_SWSURFACE,surface->w,surface->h,surface->format->BytesPerPixel, surface->format->Rmask, surface->format->Gmask, surface->format->Bmask, surface->format->Amask);<br>    #endif<br>SDL_FillRect(result, NULL, newColor);<br>SDL_BlitSurface(surface, NULL, result, NULL);<br>return result;<br>}<br><br><br><br>Jonny D<br><br><br></div><br><br><br><blockquote><hr id="EC_stopSpelling">From: grimfang4@hotmail.com<br>To: sdl@lists.libsdl.org<br>Date: Mon, 4 Feb 2008 18:55:46 -0500<br>Subject: Re: [SDL] SDL Color-masking Blitting?<br><br>

<meta http-equiv="Content-Type" content="text/html; charset=unicode">
<meta name="Generator" content="Microsoft SafeHTML">
<style>
.ExternalClass .EC_hmmessage P
{padding:0px;}
.ExternalClass EC_body.hmmessage
{font-size:10pt;font-family:Tahoma;}
</style>

<div style="text-align: left;">Hey Taylor,<br><br>There are at least two ways about this.  If you are restricting yourself to a single-color swap like black for dark magenta, you should use a colorkeyed surface:<br><br>SDL_Surface* colorSwapSingle(SDL_Surface* surface, Uint32 oldColor, Uint32 newColor)<br>{<br>SDL_SetColorKey(surface, SDL_SRCCOLORKEY, oldColor);<br>#if SDL_BYTEORDER == SDL_BIG_ENDIAN<br>        SDL_Surface* result = SDL_CreateRGBSurface(SDL_SWSURFACE,surface->w,surface->h,32, 0xFF000000, 0x00FF0000, 0x0000FF00, 0x000000FF);<br>    #else<br>        SDL_Surface* result = SDL_CreateRGBSurface(SDL_SWSURFACE,surface->w,surface->h,32, 0x000000FF, 0x0000FF00, 0x00FF0000, 0xFF000000);<br>    #endif<br>SDL_FillRect(result, NULL, newColor);<br>SDL_BlitSurface(surface, NULL, result, NULL);<br>return result;<br>}<br><br><br>Otherwise, attached is some code for a very slow blitter that you can tweak to fit your needs.  I think I included all the code you need.  It's all in SPriG at http://pubpages.unh.edu/~jmb97 in case you're interested in that.  If there are any problems, just tell me.<br><br>Jonny D<br></div><br><br><br><blockquote><hr id="EC_EC_stopSpelling">From: terinfire@hotmail.com<br>To: sdl@lists.libsdl.org<br>Date: Mon, 4 Feb 2008 10:58:33 -0600<br>Subject: [SDL] SDL Color-masking Blitting?<br><br>



<style>
.ExternalClass .EC_hmmessage P
{padding:0px;}
.ExternalClass EC_body.hmmessage
{font-size:10pt;font-family:Tahoma;}
</style>


I was curious if there was a built-in way to mask a surface and then blit it.  Basically, say I have a font or an image, and it is black and white -- nothing else.  I want to be able to mask the image (say with color 255,0,128, so I have a kind of dark red-magenta), and then blit it.  Is there a way that is built in?  If not, then am I basically just needing to write my own specialized Blit function to do this?  Or if anyone's already done this and is kind and doesn't mind divulging some open-source code, that'd be pretty cool too!<br><br><hr>Need to know the score, the latest news, or you need your Hotmail®-get your "fix". <a href="http://www.msnmobilefix.com/Default.aspx" target="_blank">Check it out.</a>
</blockquote><br><hr>Need to know the score, the latest news, or you need your Hotmail®-get your "fix". <a href="http://www.msnmobilefix.com/Default.aspx" target="_blank">Check it out.</a>
</blockquote><br /><hr />Helping your favorite cause is as easy as instant messaging. You IM, we give. <a href='http://im.live.com/Messenger/IM/Home/?source=text_hotmail_join' target='_new'>Learn more.</a></body>
</html>