Summary:  Simplify Color::light() and Color::dark()  

Product:  WebKit  Reporter:  mitz  
Component:  Layout and Rendering  Assignee:  Nobody <webkitunassigned>  
Status:  RESOLVED FIXED  
Severity:  Trivial  
Priority:  P3  
Version:  523.x (Safari 3)  
Hardware:  Macintosh  
OS:  OS X 10.4  
Attachments: 

Description
mitz
20070523 07:10:16 PDT
Created attachment 14683 [details]
Simpler implementation
Created attachment 14684 [details]
Simpler implementation
Comment on attachment 14684 [details]
Simpler implementation
Does this really give the same values as before? If so, seems fine. But I was under the impression that scaling value didn't affect the 3 channels equally.
I don't think dark() properly handles the case where all three of r, g, and b are zero. So review because of that. Otherwise, would be r=me.
Comment on attachment 14684 [details] Simpler implementation (In reply to comment #3) > (From update of attachment 14684 [details] [edit]) > Does this really give the same values as before? If so, seems fine. But I was > under the impression that scaling value didn't affect the 3 channels equally. If you look at convertHSVToRGB() you'll see that its result can be expressed as "v times some vector x whose components do not depend on v", so indeed for given h and s components, scaling v affects the 3 channels equally. (IIRC in the HSL space, L doesn't affect all channels equally, since L=1.0 maps to white). > I don't think dark() properly handles the case where all three of r, g, and b > are zero. I verified that in that case (v  0.33f) / v is inf and therefore the multiplier is 0, so the result is <0,0,0,alpha>, which is what I would expect. Comment on attachment 14684 [details]
Simpler implementation
r=me
