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

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

Issue 358893002: Use newImageSnapshot() to get an image from a Canvas (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Again in StaticBitmapPattern Created 6 years, 2 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
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" 33 #include "platform/graphics/Image.h"
35 #include "platform/transforms/AffineTransform.h" 34 #include "platform/transforms/AffineTransform.h"
36 35
37 #include "wtf/PassRefPtr.h" 36 #include "wtf/PassRefPtr.h"
38 #include "wtf/RefCounted.h" 37 #include "wtf/RefCounted.h"
39 #include "wtf/RefPtr.h" 38 #include "wtf/RefPtr.h"
40 39
40 class SkShader;
41
41 namespace blink { 42 namespace blink {
42 43
43 class PLATFORM_EXPORT Pattern : public RefCounted<Pattern> { 44 class PLATFORM_EXPORT Pattern : public RefCounted<Pattern> {
44 public: 45 public:
45 enum RepeatMode { 46 enum RepeatMode {
46 RepeatModeX = 1 << 0, 47 RepeatModeX = 1 << 0,
47 RepeatModeY = 1 << 1, 48 RepeatModeY = 1 << 1,
48 49
49 RepeatModeNone = 0, 50 RepeatModeNone = 0,
50 RepeatModeXY = RepeatModeX | RepeatModeY 51 RepeatModeXY = RepeatModeX | RepeatModeY
51 }; 52 };
52 53
53 static PassRefPtr<Pattern> createBitmapPattern(PassRefPtr<Image> tileImage, 54 static PassRefPtr<Pattern> createBitmapPattern(PassRefPtr<Image> tileImage,
54 RepeatMode = RepeatModeXY); 55 RepeatMode = RepeatModeXY);
55 ~Pattern(); 56 virtual ~Pattern();
56 57
57 SkShader* shader(); 58 SkShader* shader();
58 59
59 void setPatternSpaceTransform(const AffineTransform& patternSpaceTransformat ion); 60 void setPatternSpaceTransform(const AffineTransform& patternSpaceTransformat ion);
60 61
61 private: 62 bool isRepeatX() { return m_repeatMode & RepeatModeX; }
62 Pattern(PassRefPtr<Image>, RepeatMode); 63 bool isRepeatY() { return m_repeatMode & RepeatModeY; }
64 bool isRepeatXY() { return (m_repeatMode & RepeatModeXY) == RepeatModeXY; }
Justin Novosad 2014/09/30 17:37:56 This could just be "return m_repeatMode == RepeatM
Rémi Piotaix 2014/09/30 17:48:12 Done.
63 65
64 RefPtr<NativeImageSkia> m_tileImage; 66 protected:
67 virtual PassRefPtr<SkShader> createShader() = 0;
68
69 void adjustExternalMemoryAllocated(int64_t delta);
70
65 RepeatMode m_repeatMode; 71 RepeatMode m_repeatMode;
66 AffineTransform m_patternSpaceTransformation; 72 AffineTransform m_patternSpaceTransformation;
73
74 Pattern(RepeatMode, int64_t externalMemoryAllocated = 0);
75
76 private:
67 RefPtr<SkShader> m_pattern; 77 RefPtr<SkShader> m_pattern;
68 int m_externalMemoryAllocated; 78 int64_t m_externalMemoryAllocated;
69 }; 79 };
70 80
71 } // namespace blink 81 } // namespace blink
72 82
73 #endif 83 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698