Does anyone know of a good way to do HSL-based transformations? I'm looking for two specific things: Ways to palette-swap an image by sliding the Hue value around, and ways to change the saturation of the entire image on-screen (fade-to-gray).

When I ask in graphics-related forums, people say "look at shaders." When I look at shaders, though, I find that they won't work for what I'm trying to do, since as far as I can tell, shaders are completely canned algorithms, and I need to be able to input an arbitrary value to use at runtime. (Although this may be totally inaccurate. It just looks that way.) Anyone know anything that might help?

Mason