When adding colours and the result goes out-of-range, I would like to be able to specify that the clamp performed on the result should preserve the hue of the result, rather that saturating each colour-channel seperately. Ie:

max_intensity = max(r,max(g,b));
r /= max_intensity;
g /= max_intensity;
b /= max_intensity;

I ran into this problem when compositing dynamic lighting on top of lightmaps; a yellow spot travelling across a yellow lightmap ends up as white.