OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2003, 2004, 2005, 2006, 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2003, 2004, 2005, 2006, 2008 Apple Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
187 return parseHexColor(name.characters8() + 1, name.length() - 1, m_color)
; | 187 return parseHexColor(name.characters8() + 1, name.length() - 1, m_color)
; |
188 return parseHexColor(name.characters16() + 1, name.length() - 1, m_color); | 188 return parseHexColor(name.characters16() + 1, name.length() - 1, m_color); |
189 } | 189 } |
190 | 190 |
191 String Color::serializedAsCSSComponentValue() const | 191 String Color::serializedAsCSSComponentValue() const |
192 { | 192 { |
193 StringBuilder result; | 193 StringBuilder result; |
194 result.reserveCapacity(32); | 194 result.reserveCapacity(32); |
195 bool colorHasAlpha = hasAlpha(); | 195 bool colorHasAlpha = hasAlpha(); |
196 if (colorHasAlpha) | 196 if (colorHasAlpha) |
197 result.append("rgba(", 5); | 197 result.appendLiteral("rgba("); |
198 else | 198 else |
199 result.append("rgb(", 4); | 199 result.appendLiteral("rgb("); |
200 | 200 |
201 result.appendNumber(static_cast<unsigned char>(red())); | 201 result.appendNumber(static_cast<unsigned char>(red())); |
202 result.append(", ", 2); | 202 result.appendLiteral(", "); |
203 | 203 |
204 result.appendNumber(static_cast<unsigned char>(green())); | 204 result.appendNumber(static_cast<unsigned char>(green())); |
205 result.append(", ", 2); | 205 result.appendLiteral(", "); |
206 | 206 |
207 result.appendNumber(static_cast<unsigned char>(blue())); | 207 result.appendNumber(static_cast<unsigned char>(blue())); |
208 if (colorHasAlpha) { | 208 if (colorHasAlpha) { |
209 result.append(", ", 2); | 209 result.appendLiteral(", "); |
210 | 210 |
211 NumberToStringBuffer buffer; | 211 NumberToStringBuffer buffer; |
212 const char* alphaString = numberToFixedPrecisionString(alpha() / 255.0f,
6, buffer, true); | 212 const char* alphaString = numberToFixedPrecisionString(alpha() / 255.0f,
6, buffer, true); |
213 result.append(alphaString, strlen(alphaString)); | 213 result.append(alphaString, strlen(alphaString)); |
214 } | 214 } |
215 | 215 |
216 result.append(')'); | 216 result.append(')'); |
217 return result.toString(); | 217 return result.toString(); |
218 } | 218 } |
219 | 219 |
220 String Color::serialized() const | 220 String Color::serialized() const |
221 { | 221 { |
222 if (!hasAlpha()) { | 222 if (!hasAlpha()) { |
223 StringBuilder builder; | 223 StringBuilder builder; |
224 builder.reserveCapacity(7); | 224 builder.reserveCapacity(7); |
225 builder.append('#'); | 225 builder.append('#'); |
226 appendByteAsHex(red(), builder, Lowercase); | 226 appendByteAsHex(red(), builder, Lowercase); |
227 appendByteAsHex(green(), builder, Lowercase); | 227 appendByteAsHex(green(), builder, Lowercase); |
228 appendByteAsHex(blue(), builder, Lowercase); | 228 appendByteAsHex(blue(), builder, Lowercase); |
229 return builder.toString(); | 229 return builder.toString(); |
230 } | 230 } |
231 | 231 |
232 StringBuilder result; | 232 StringBuilder result; |
233 result.reserveCapacity(28); | 233 result.reserveCapacity(28); |
234 const char commaSpace[] = ", "; | |
235 const char rgbaParen[] = "rgba("; | |
236 | 234 |
237 result.append(rgbaParen, 5); | 235 result.appendLiteral("rgba("); |
238 result.appendNumber(red()); | 236 result.appendNumber(red()); |
239 result.append(commaSpace, 2); | 237 result.appendLiteral(", "); |
240 result.appendNumber(green()); | 238 result.appendNumber(green()); |
241 result.append(commaSpace, 2); | 239 result.appendLiteral(", "); |
242 result.appendNumber(blue()); | 240 result.appendNumber(blue()); |
243 result.append(commaSpace, 2); | 241 result.appendLiteral(", "); |
244 | 242 |
245 if (!alpha()) | 243 if (!alpha()) |
246 result.append('0'); | 244 result.append('0'); |
247 else { | 245 else { |
248 result.append(Decimal::fromDouble(alpha() / 255.0).toString()); | 246 result.append(Decimal::fromDouble(alpha() / 255.0).toString()); |
249 } | 247 } |
250 | 248 |
251 result.append(')'); | 249 result.append(')'); |
252 return result.toString(); | 250 return result.toString(); |
253 } | 251 } |
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
458 (color.green() * alpha + 254) / 255, | 456 (color.green() * alpha + 254) / 255, |
459 (color.blue() * alpha + 254) / 255, | 457 (color.blue() * alpha + 254) / 255, |
460 alpha).rgb(); | 458 alpha).rgb(); |
461 } else | 459 } else |
462 pixelColor = color.rgb(); | 460 pixelColor = color.rgb(); |
463 | 461 |
464 return pixelColor; | 462 return pixelColor; |
465 } | 463 } |
466 | 464 |
467 } // namespace blink | 465 } // namespace blink |
OLD | NEW |