OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved. | 2 * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved. |
3 * | 3 * |
4 * This library is free software; you can redistribute it and/or | 4 * This library is free software; you can redistribute it and/or |
5 * modify it under the terms of the GNU Library General Public | 5 * modify it under the terms of the GNU Library General Public |
6 * License as published by the Free Software Foundation; either | 6 * License as published by the Free Software Foundation; either |
7 * version 2 of the License, or (at your option) any later version. | 7 * version 2 of the License, or (at your option) any later version. |
8 * | 8 * |
9 * This library is distributed in the hope that it will be useful, | 9 * This library is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
237 // this frame is a blank frame, so it can again be decoded alone. | 237 // this frame is a blank frame, so it can again be decoded alone. |
238 // Otherwise, the previous frame contributes to this frame. | 238 // Otherwise, the previous frame contributes to this frame. |
239 return (prevBuffer->originalFrameRect().contains(IntRect(IntPoint(), siz
e())) | 239 return (prevBuffer->originalFrameRect().contains(IntRect(IntPoint(), siz
e())) |
240 || (prevBuffer->requiredPreviousFrameIndex() == kNotFound)) ? kNotFo
und : prevFrame; | 240 || (prevBuffer->requiredPreviousFrameIndex() == kNotFound)) ? kNotFo
und : prevFrame; |
241 default: | 241 default: |
242 ASSERT_NOT_REACHED(); | 242 ASSERT_NOT_REACHED(); |
243 return kNotFound; | 243 return kNotFound; |
244 } | 244 } |
245 } | 245 } |
246 | 246 |
| 247 #if USE(QCMSLIB) |
| 248 ImageDecoder::OutputDeviceProfile::OutputDeviceProfile() : m_outputDeviceProfile
(0) |
| 249 { |
| 250 ColorProfileStatus status = ColorProfileSuccess; |
| 251 |
| 252 ColorProfile profile = screenColorProfile(); |
| 253 if (!profile.isEmpty()) { |
| 254 if (ImageDecoder::isICCv4(profile.data(), profile.size())) { |
| 255 status = ColorProfileIsV4; |
| 256 } else { |
| 257 m_outputDeviceProfile = qcms_profile_from_memory(profile.data(), pro
file.size()); |
| 258 if (!m_outputDeviceProfile) { |
| 259 status = ColorProfileFailedDecode; |
| 260 } else { |
| 261 if (qcms_profile_is_bogus(m_outputDeviceProfile)) { |
| 262 status = ColorProfileIsBogus; |
| 263 qcms_profile_release(m_outputDeviceProfile); |
| 264 m_outputDeviceProfile = 0; |
| 265 } |
| 266 } |
| 267 } |
| 268 } else { |
| 269 status = ColorProfileNone; |
| 270 } |
| 271 |
| 272 Platform::current()->histogramEnumeration("ColorManagement.ScreenColorProfil
eStatus", status, ColorProfileStatus::ValueCount); |
| 273 |
| 274 if (!m_outputDeviceProfile) |
| 275 m_outputDeviceProfile = qcms_profile_sRGB(); |
| 276 if (m_outputDeviceProfile) |
| 277 qcms_profile_precache_output_transform(m_outputDeviceProfile); |
| 278 } |
| 279 #endif |
| 280 |
247 ImagePlanes::ImagePlanes() | 281 ImagePlanes::ImagePlanes() |
248 { | 282 { |
249 for (int i = 0; i < 3; ++i) { | 283 for (int i = 0; i < 3; ++i) { |
250 m_planes[i] = 0; | 284 m_planes[i] = 0; |
251 m_rowBytes[i] = 0; | 285 m_rowBytes[i] = 0; |
252 } | 286 } |
253 } | 287 } |
254 | 288 |
255 ImagePlanes::ImagePlanes(void* planes[3], size_t rowBytes[3]) | 289 ImagePlanes::ImagePlanes(void* planes[3], size_t rowBytes[3]) |
256 { | 290 { |
257 for (int i = 0; i < 3; ++i) { | 291 for (int i = 0; i < 3; ++i) { |
258 m_planes[i] = planes[i]; | 292 m_planes[i] = planes[i]; |
259 m_rowBytes[i] = rowBytes[i]; | 293 m_rowBytes[i] = rowBytes[i]; |
260 } | 294 } |
261 } | 295 } |
262 | 296 |
263 void* ImagePlanes::plane(int i) | 297 void* ImagePlanes::plane(int i) |
264 { | 298 { |
265 ASSERT((i >= 0) && i < 3); | 299 ASSERT((i >= 0) && i < 3); |
266 return m_planes[i]; | 300 return m_planes[i]; |
267 } | 301 } |
268 | 302 |
269 size_t ImagePlanes::rowBytes(int i) const | 303 size_t ImagePlanes::rowBytes(int i) const |
270 { | 304 { |
271 ASSERT((i >= 0) && i < 3); | 305 ASSERT((i >= 0) && i < 3); |
272 return m_rowBytes[i]; | 306 return m_rowBytes[i]; |
273 } | 307 } |
274 | 308 |
275 } // namespace blink | 309 } // namespace blink |
OLD | NEW |