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

Side by Side Diff: Source/platform/graphics/Pattern.h

Issue 453653003: [SVG] DisplayList-based patterns. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: 9 tests marked for rebaseline Created 6 years, 4 months 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006, 2007, 2008 Apple Computer, Inc. All rights reserved. 2 * Copyright (C) 2006, 2007, 2008 Apple Computer, Inc. All rights reserved.
3 * Copyright (C) 2008 Eric Seidel <eric@webkit.org> 3 * Copyright (C) 2008 Eric Seidel <eric@webkit.org>
4 * Copyright (C) 2007-2008 Torch Mobile, Inc. 4 * Copyright (C) 2007-2008 Torch Mobile, Inc.
5 * Copyright (C) 2013 Google, Inc. All rights reserved. 5 * Copyright (C) 2013 Google, Inc. All rights reserved.
6 * 6 *
7 * Redistribution and use in source and binary forms, with or without 7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions 8 * modification, are permitted provided that the following conditions
9 * are met: 9 * are met:
10 * 1. Redistributions of source code must retain the above copyright 10 * 1. Redistributions of source code must retain the above copyright
(...skipping 11 matching lines...) Expand all
22 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 22 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
23 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 23 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
24 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */ 27 */
28 28
29 #ifndef Pattern_h 29 #ifndef Pattern_h
30 #define Pattern_h 30 #define Pattern_h
31 31
32 #include "SkShader.h"
33 #include "platform/PlatformExport.h" 32 #include "platform/PlatformExport.h"
34 #include "platform/graphics/Image.h"
35 #include "platform/transforms/AffineTransform.h" 33 #include "platform/transforms/AffineTransform.h"
36 34
37 #include "wtf/PassRefPtr.h" 35 #include "wtf/PassRefPtr.h"
38 #include "wtf/RefCounted.h" 36 #include "wtf/RefCounted.h"
39 #include "wtf/RefPtr.h" 37 #include "wtf/RefPtr.h"
40 38
39 class SkShader;
40
41 namespace blink { 41 namespace blink {
42 42
43 class DisplayList;
44 class Image;
45 class NativeImageSkia;
46
43 class PLATFORM_EXPORT Pattern : public RefCounted<Pattern> { 47 class PLATFORM_EXPORT Pattern : public RefCounted<Pattern> {
44 public: 48 public:
45 enum RepeatMode { 49 enum RepeatMode {
46 RepeatModeX = 1 << 0, 50 RepeatModeX = 1 << 0,
47 RepeatModeY = 1 << 1, 51 RepeatModeY = 1 << 1,
48 52
49 RepeatModeNone = 0, 53 RepeatModeNone = 0,
50 RepeatModeXY = RepeatModeX | RepeatModeY 54 RepeatModeXY = RepeatModeX | RepeatModeY
51 }; 55 };
52 56
53 static PassRefPtr<Pattern> createBitmapPattern(PassRefPtr<Image> tileImage, 57 static PassRefPtr<Pattern> createBitmapPattern(PassRefPtr<Image> tileImage,
54 RepeatMode = RepeatModeXY); 58 RepeatMode = RepeatModeXY);
59 static PassRefPtr<Pattern> createDisplayListPattern(PassRefPtr<DisplayList>,
60 RepeatMode = RepeatModeXY);
55 ~Pattern(); 61 ~Pattern();
56 62
57 SkShader* shader(); 63 SkShader* shader();
58 64
59 void setPatternSpaceTransform(const AffineTransform& patternSpaceTransformat ion); 65 void setPatternSpaceTransform(const AffineTransform& patternSpaceTransformat ion);
60 66
61 private: 67 private:
62 Pattern(PassRefPtr<Image>, RepeatMode); 68 Pattern(PassRefPtr<Image>, RepeatMode);
69 Pattern(PassRefPtr<DisplayList>, RepeatMode);
63 70
64 RefPtr<NativeImageSkia> m_tileImage; 71 RefPtr<NativeImageSkia> m_tileImage;
72 RefPtr<DisplayList> m_tileDisplayList;
65 RepeatMode m_repeatMode; 73 RepeatMode m_repeatMode;
66 AffineTransform m_patternSpaceTransformation; 74 AffineTransform m_patternSpaceTransformation;
67 RefPtr<SkShader> m_pattern; 75 RefPtr<SkShader> m_pattern;
68 int m_externalMemoryAllocated; 76 int m_externalMemoryAllocated;
69 }; 77 };
70 78
71 } //namespace 79 } //namespace
72 80
73 #endif 81 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698