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 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
191 return parseHexColor(name.characters8() + 1, name.length() - 1, m_color)
; | 191 return parseHexColor(name.characters8() + 1, name.length() - 1, m_color)
; |
192 return parseHexColor(name.characters16() + 1, name.length() - 1, m_color); | 192 return parseHexColor(name.characters16() + 1, name.length() - 1, m_color); |
193 } | 193 } |
194 | 194 |
195 String Color::serializedAsCSSComponentValue() const | 195 String Color::serializedAsCSSComponentValue() const |
196 { | 196 { |
197 StringBuilder result; | 197 StringBuilder result; |
198 result.reserveCapacity(32); | 198 result.reserveCapacity(32); |
199 bool colorHasAlpha = hasAlpha(); | 199 bool colorHasAlpha = hasAlpha(); |
200 if (colorHasAlpha) | 200 if (colorHasAlpha) |
201 result.appendLiteral("rgba("); | 201 result.append("rgba("); |
202 else | 202 else |
203 result.appendLiteral("rgb("); | 203 result.append("rgb("); |
204 | 204 |
205 result.appendNumber(static_cast<unsigned char>(red())); | 205 result.appendNumber(static_cast<unsigned char>(red())); |
206 result.appendLiteral(", "); | 206 result.append(", "); |
207 | 207 |
208 result.appendNumber(static_cast<unsigned char>(green())); | 208 result.appendNumber(static_cast<unsigned char>(green())); |
209 result.appendLiteral(", "); | 209 result.append(", "); |
210 | 210 |
211 result.appendNumber(static_cast<unsigned char>(blue())); | 211 result.appendNumber(static_cast<unsigned char>(blue())); |
212 if (colorHasAlpha) { | 212 if (colorHasAlpha) { |
213 result.appendLiteral(", "); | 213 result.append(", "); |
214 | 214 |
215 NumberToStringBuffer buffer; | 215 NumberToStringBuffer buffer; |
216 const char* alphaString = numberToFixedPrecisionString(alpha() / 255.0f,
6, buffer, true); | 216 const char* alphaString = numberToFixedPrecisionString(alpha() / 255.0f,
6, buffer, true); |
217 result.append(alphaString, strlen(alphaString)); | 217 result.append(alphaString, strlen(alphaString)); |
218 } | 218 } |
219 | 219 |
220 result.append(')'); | 220 result.append(')'); |
221 return result.toString(); | 221 return result.toString(); |
222 } | 222 } |
223 | 223 |
224 String Color::serialized() const | 224 String Color::serialized() const |
225 { | 225 { |
226 if (!hasAlpha()) { | 226 if (!hasAlpha()) { |
227 StringBuilder builder; | 227 StringBuilder builder; |
228 builder.reserveCapacity(7); | 228 builder.reserveCapacity(7); |
229 builder.append('#'); | 229 builder.append('#'); |
230 appendByteAsHex(red(), builder, Lowercase); | 230 appendByteAsHex(red(), builder, Lowercase); |
231 appendByteAsHex(green(), builder, Lowercase); | 231 appendByteAsHex(green(), builder, Lowercase); |
232 appendByteAsHex(blue(), builder, Lowercase); | 232 appendByteAsHex(blue(), builder, Lowercase); |
233 return builder.toString(); | 233 return builder.toString(); |
234 } | 234 } |
235 | 235 |
236 StringBuilder result; | 236 StringBuilder result; |
237 result.reserveCapacity(28); | 237 result.reserveCapacity(28); |
238 | 238 |
239 result.appendLiteral("rgba("); | 239 result.append("rgba("); |
240 result.appendNumber(red()); | 240 result.appendNumber(red()); |
241 result.appendLiteral(", "); | 241 result.append(", "); |
242 result.appendNumber(green()); | 242 result.appendNumber(green()); |
243 result.appendLiteral(", "); | 243 result.append(", "); |
244 result.appendNumber(blue()); | 244 result.appendNumber(blue()); |
245 result.appendLiteral(", "); | 245 result.append(", "); |
246 | 246 |
247 if (!alpha()) | 247 if (!alpha()) |
248 result.append('0'); | 248 result.append('0'); |
249 else { | 249 else { |
250 result.append(Decimal::fromDouble(alpha() / 255.0).toString()); | 250 result.append(Decimal::fromDouble(alpha() / 255.0).toString()); |
251 } | 251 } |
252 | 252 |
253 result.append(')'); | 253 result.append(')'); |
254 return result.toString(); | 254 return result.toString(); |
255 } | 255 } |
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
462 (color.green() * alpha + 254) / 255, | 462 (color.green() * alpha + 254) / 255, |
463 (color.blue() * alpha + 254) / 255, | 463 (color.blue() * alpha + 254) / 255, |
464 alpha).rgb(); | 464 alpha).rgb(); |
465 } else | 465 } else |
466 pixelColor = color.rgb(); | 466 pixelColor = color.rgb(); |
467 | 467 |
468 return pixelColor; | 468 return pixelColor; |
469 } | 469 } |
470 | 470 |
471 } // namespace blink | 471 } // namespace blink |
OLD | NEW |