Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1593)

Side by Side Diff: third_party/WebKit/Source/platform/graphics/ImageSource.h

Issue 1309393007: [poc] redecode Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: resetColorProfileForTesting rename Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2004, 2005, 2006 Apple Computer, Inc. All rights reserved. 2 * Copyright (C) 2004, 2005, 2006 Apple Computer, 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
11 * documentation and/or other materials provided with the distribution. 11 * documentation and/or other materials provided with the distribution.
12 * 12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY 13 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */ 24 */
25 25
26 #ifndef ImageSource_h 26 #ifndef ImageSource_h
27 #define ImageSource_h 27 #define ImageSource_h
28 28
29 #include "platform/PlatformExport.h" 29 #include "platform/PlatformExport.h"
30 #include "platform/graphics/ColorSpaceProfile.h"
30 #include "platform/graphics/ImageOrientation.h" 31 #include "platform/graphics/ImageOrientation.h"
31 #include "wtf/Forward.h" 32 #include "wtf/Forward.h"
32 #include "wtf/Noncopyable.h" 33 #include "wtf/Noncopyable.h"
33 #include "wtf/OwnPtr.h" 34 #include "wtf/OwnPtr.h"
35 #include "wtf/RefPtr.h"
34 36
35 class SkImage; 37 class SkImage;
36 38
37 namespace blink { 39 namespace blink {
38 40
39 class DeferredImageDecoder; 41 class DeferredImageDecoder;
40 class ImageOrientation; 42 class ImageOrientation;
41 class IntPoint; 43 class IntPoint;
42 class IntSize; 44 class IntSize;
43 class SharedBuffer; 45 class SharedBuffer;
(...skipping 20 matching lines...) Expand all
64 // Implementations may elect to preserve more frames than the one requested 66 // Implementations may elect to preserve more frames than the one requested
65 // here if doing so is likely to save CPU time in the future, but will pay 67 // here if doing so is likely to save CPU time in the future, but will pay
66 // an increased memory cost to do so. 68 // an increased memory cost to do so.
67 // 69 //
68 // Returns the number of bytes of frame data actually cleared. 70 // Returns the number of bytes of frame data actually cleared.
69 size_t clearCacheExceptFrame(size_t); 71 size_t clearCacheExceptFrame(size_t);
70 72
71 void setData(SharedBuffer& data, bool allDataReceived); 73 void setData(SharedBuffer& data, bool allDataReceived);
72 String filenameExtension() const; 74 String filenameExtension() const;
73 75
76 void resetDecoder();
74 bool isSizeAvailable(); 77 bool isSizeAvailable();
75 bool hasColorProfile() const; 78 bool hasColorProfile() const;
79 PassRefPtr<ColorSpaceProfile> colorProfile() const;
80 void setDeviceProfile(ColorSpaceProfile*);
81 ColorSpaceProfile* deviceProfile() const { return m_deviceProfile.get(); }
76 IntSize size(RespectImageOrientationEnum = DoNotRespectImageOrientation) con st; 82 IntSize size(RespectImageOrientationEnum = DoNotRespectImageOrientation) con st;
77 IntSize frameSizeAtIndex(size_t, RespectImageOrientationEnum = DoNotRespectI mageOrientation) const; 83 IntSize frameSizeAtIndex(size_t, RespectImageOrientationEnum = DoNotRespectI mageOrientation) const;
78 84
79 bool getHotSpot(IntPoint&) const; 85 bool getHotSpot(IntPoint&) const;
80 int repetitionCount(); 86 int repetitionCount();
81 87
82 size_t frameCount() const; 88 size_t frameCount() const;
83 89
84 // Attempts to create the requested frame. 90 // Attempts to create the requested frame.
85 PassRefPtr<SkImage> createFrameAtIndex(size_t); 91 PassRefPtr<SkImage> createFrameAtIndex(size_t);
86 92
87 float frameDurationAtIndex(size_t) const; 93 float frameDurationAtIndex(size_t) const;
88 bool frameHasAlphaAtIndex(size_t) const; // Whether or not the frame actuall y used any alpha. 94 bool frameHasAlphaAtIndex(size_t) const; // Whether or not the frame actuall y used any alpha.
89 bool frameIsCompleteAtIndex(size_t) const; // Whether or not the frame is fu lly received. 95 bool frameIsCompleteAtIndex(size_t) const; // Whether or not the frame is fu lly received.
90 ImageOrientation orientationAtIndex(size_t) const; // EXIF image orientation 96 ImageOrientation orientationAtIndex(size_t) const; // EXIF image orientation
91 97
92 // Returns the number of bytes in the decoded frame. May return 0 if the 98 // Returns the number of bytes in the decoded frame. May return 0 if the
93 // frame has not yet begun to decode. 99 // frame has not yet begun to decode.
94 size_t frameBytesAtIndex(size_t) const; 100 size_t frameBytesAtIndex(size_t) const;
95 101
96 private: 102 private:
97 OwnPtr<DeferredImageDecoder> m_decoder; 103 OwnPtr<DeferredImageDecoder> m_decoder;
104 RefPtr<ColorSpaceProfile> m_deviceProfile;
98 }; 105 };
99 106
100 } // namespace blink 107 } // namespace blink
101 108
102 #endif 109 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698