Shouldn't we clamp all values separately? E.g. (r=-10, g=50, b=100) should be (r=0, g=50, b=100), or do we want to force the error/off state in this case? Also, do we need to limit them to 255 as upper limit?