OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006 Apple Computer, Inc. All rights reserved. | 2 * Copyright (C) 2006 Apple Computer, Inc. All rights reserved. |
3 * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved. | 3 * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
7 * are met: | 7 * are met: |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 23 matching lines...) Expand all Loading... |
34 #include "platform/graphics/ImageSource.h" | 34 #include "platform/graphics/ImageSource.h" |
35 #include "platform/image-decoders/ImageFrame.h" | 35 #include "platform/image-decoders/ImageFrame.h" |
36 #include "public/platform/Platform.h" | 36 #include "public/platform/Platform.h" |
37 #include "wtf/Assertions.h" | 37 #include "wtf/Assertions.h" |
38 #include "wtf/RefPtr.h" | 38 #include "wtf/RefPtr.h" |
39 #include "wtf/Vector.h" | 39 #include "wtf/Vector.h" |
40 #include "wtf/text/WTFString.h" | 40 #include "wtf/text/WTFString.h" |
41 | 41 |
42 #if USE(QCMSLIB) | 42 #if USE(QCMSLIB) |
43 #include "qcms.h" | 43 #include "qcms.h" |
44 #if OS(MACOSX) | |
45 #include <ApplicationServices/ApplicationServices.h> | |
46 #include "wtf/RetainPtr.h" | |
47 #endif | |
48 #endif | 44 #endif |
49 | 45 |
50 namespace blink { | 46 namespace blink { |
51 | 47 |
52 // ImagePlanes can be used to decode color components into provided buffers inst
ead of using an ImageFrame. | 48 // ImagePlanes can be used to decode color components into provided buffers inst
ead of using an ImageFrame. |
53 class PLATFORM_EXPORT ImagePlanes { | 49 class PLATFORM_EXPORT ImagePlanes { |
54 public: | 50 public: |
55 ImagePlanes(); | 51 ImagePlanes(); |
56 ImagePlanes(void* planes[3], size_t rowBytes[3]); | 52 ImagePlanes(void* planes[3], size_t rowBytes[3]); |
57 | 53 |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
192 | 188 |
193 return !memcmp(&profileData[12], "mntr", 4) || !memcmp(&profileData[12],
"scnr", 4); | 189 return !memcmp(&profileData[12], "mntr", 4) || !memcmp(&profileData[12],
"scnr", 4); |
194 } | 190 } |
195 | 191 |
196 class OutputDeviceProfile { | 192 class OutputDeviceProfile { |
197 public: | 193 public: |
198 OutputDeviceProfile() | 194 OutputDeviceProfile() |
199 : m_outputDeviceProfile(0) | 195 : m_outputDeviceProfile(0) |
200 { | 196 { |
201 // FIXME: Add optional ICCv4 support. | 197 // FIXME: Add optional ICCv4 support. |
202 #if OS(MACOSX) | |
203 RetainPtr<CGColorSpaceRef> monitorColorSpace(AdoptCF, CGDisplayCopyC
olorSpace(CGMainDisplayID())); | |
204 CFDataRef iccProfile(CGColorSpaceCopyICCProfile(monitorColorSpace.ge
t())); | |
205 if (iccProfile) { | |
206 size_t length = CFDataGetLength(iccProfile); | |
207 const unsigned char* systemProfile = CFDataGetBytePtr(iccProfile
); | |
208 m_outputDeviceProfile = qcms_profile_from_memory(systemProfile,
length); | |
209 CFRelease(iccProfile); | |
210 } | |
211 #else | |
212 // FIXME: add support for multiple monitors. | 198 // FIXME: add support for multiple monitors. |
213 ColorProfile profile; | 199 ColorProfile profile; |
214 screenColorProfile(profile); | 200 screenColorProfile(profile); |
215 if (!profile.isEmpty()) | 201 if (!profile.isEmpty()) |
216 m_outputDeviceProfile = qcms_profile_from_memory(profile.data(),
profile.size()); | 202 m_outputDeviceProfile = qcms_profile_from_memory(profile.data(),
profile.size()); |
217 #endif | |
218 if (m_outputDeviceProfile && qcms_profile_is_bogus(m_outputDevicePro
file)) { | 203 if (m_outputDeviceProfile && qcms_profile_is_bogus(m_outputDevicePro
file)) { |
219 qcms_profile_release(m_outputDeviceProfile); | 204 qcms_profile_release(m_outputDeviceProfile); |
220 m_outputDeviceProfile = 0; | 205 m_outputDeviceProfile = 0; |
221 } | 206 } |
222 if (!m_outputDeviceProfile) | 207 if (!m_outputDeviceProfile) |
223 m_outputDeviceProfile = qcms_profile_sRGB(); | 208 m_outputDeviceProfile = qcms_profile_sRGB(); |
224 if (m_outputDeviceProfile) | 209 if (m_outputDeviceProfile) |
225 qcms_profile_precache_output_transform(m_outputDeviceProfile); | 210 qcms_profile_precache_output_transform(m_outputDeviceProfile); |
226 } | 211 } |
227 | 212 |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
323 | 308 |
324 IntSize m_size; | 309 IntSize m_size; |
325 bool m_sizeAvailable; | 310 bool m_sizeAvailable; |
326 bool m_isAllDataReceived; | 311 bool m_isAllDataReceived; |
327 bool m_failed; | 312 bool m_failed; |
328 }; | 313 }; |
329 | 314 |
330 } // namespace blink | 315 } // namespace blink |
331 | 316 |
332 #endif | 317 #endif |
OLD | NEW |