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

Side by Side Diff: dm/DMSrcSink.h

Issue 894013002: patch from issue 886233004 at patchset 40001 (http://crrev.com/886233004#ps40001) (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: rebase Created 5 years, 10 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
« no previous file with comments | « dm/DMGpuSupport.h ('k') | dm/DMSrcSink.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #ifndef DMSrcSink_DEFINED 1 #ifndef DMSrcSink_DEFINED
2 #define DMSrcSink_DEFINED 2 #define DMSrcSink_DEFINED
3 3
4 #include "DMGpuSupport.h" 4 #include "DMGpuSupport.h"
5 #include "SkBBHFactory.h" 5 #include "SkBBHFactory.h"
6 #include "SkBBoxHierarchy.h" 6 #include "SkBBoxHierarchy.h"
7 #include "SkBitmap.h" 7 #include "SkBitmap.h"
8 #include "SkCanvas.h" 8 #include "SkCanvas.h"
9 #include "SkData.h" 9 #include "SkData.h"
10 #include "SkGPipe.h" 10 #include "SkGPipe.h"
(...skipping 15 matching lines...) Expand all
26 struct Src { 26 struct Src {
27 // All Srcs must be thread safe. 27 // All Srcs must be thread safe.
28 virtual ~Src() {} 28 virtual ~Src() {}
29 virtual Error SK_WARN_UNUSED_RESULT draw(SkCanvas*) const = 0; 29 virtual Error SK_WARN_UNUSED_RESULT draw(SkCanvas*) const = 0;
30 virtual SkISize size() const = 0; 30 virtual SkISize size() const = 0;
31 virtual Name name() const = 0; 31 virtual Name name() const = 0;
32 }; 32 };
33 33
34 struct Sink { 34 struct Sink {
35 virtual ~Sink() {} 35 virtual ~Sink() {}
36 // You may write to either the bitmap or stream. 36 // You may write to either the bitmap or stream. If you write to log, we'll print that out.
37 virtual Error SK_WARN_UNUSED_RESULT draw(const Src&, SkBitmap*, SkWStream*) const 37 virtual Error SK_WARN_UNUSED_RESULT draw(const Src&, SkBitmap*, SkWStream*, SkString* log)
38 = 0; 38 const = 0;
39 // Sinks in the same enclave (except kAnyThread_Enclave) will run serially o n the same thread. 39 // Sinks in the same enclave (except kAnyThread_Enclave) will run serially o n the same thread.
40 virtual int enclave() const = 0; 40 virtual int enclave() const = 0;
41 41
42 // File extension for the content draw() outputs, e.g. "png", "pdf". 42 // File extension for the content draw() outputs, e.g. "png", "pdf".
43 virtual const char* fileExtension() const = 0; 43 virtual const char* fileExtension() const = 0;
44 }; 44 };
45 45
46 enum { kAnyThread_Enclave, kGPU_Enclave, kPDFSink_Enclave }; 46 enum { kAnyThread_Enclave, kGPU_Enclave, kPDFSink_Enclave };
47 static const int kNumEnclaves = kPDFSink_Enclave + 1; 47 static const int kNumEnclaves = kPDFSink_Enclave + 1;
48 48
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 private: 83 private:
84 Path fPath; 84 Path fPath;
85 }; 85 };
86 86
87 /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~*/ 87 /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~*/
88 88
89 class GPUSink : public Sink { 89 class GPUSink : public Sink {
90 public: 90 public:
91 GPUSink(GrContextFactory::GLContextType, GrGLStandard, int samples, bool dfT ext, bool threaded); 91 GPUSink(GrContextFactory::GLContextType, GrGLStandard, int samples, bool dfT ext, bool threaded);
92 92
93 Error draw(const Src&, SkBitmap*, SkWStream*) const SK_OVERRIDE; 93 Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const SK_OVERRIDE;
94 int enclave() const SK_OVERRIDE; 94 int enclave() const SK_OVERRIDE;
95 const char* fileExtension() const SK_OVERRIDE { return "png"; } 95 const char* fileExtension() const SK_OVERRIDE { return "png"; }
96 private: 96 private:
97 GrContextFactory::GLContextType fContextType; 97 GrContextFactory::GLContextType fContextType;
98 GrGLStandard fGpuAPI; 98 GrGLStandard fGpuAPI;
99 int fSampleCount; 99 int fSampleCount;
100 bool fUseDFText; 100 bool fUseDFText;
101 bool fThreaded; 101 bool fThreaded;
102 }; 102 };
103 103
104 class PDFSink : public Sink { 104 class PDFSink : public Sink {
105 public: 105 public:
106 PDFSink(); 106 PDFSink();
107 107
108 Error draw(const Src&, SkBitmap*, SkWStream*) const SK_OVERRIDE; 108 Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const SK_OVERRIDE;
109 int enclave() const SK_OVERRIDE { return kPDFSink_Enclave; } 109 int enclave() const SK_OVERRIDE { return kPDFSink_Enclave; }
110 const char* fileExtension() const SK_OVERRIDE { return "pdf"; } 110 const char* fileExtension() const SK_OVERRIDE { return "pdf"; }
111 }; 111 };
112 112
113 class RasterSink : public Sink { 113 class RasterSink : public Sink {
114 public: 114 public:
115 explicit RasterSink(SkColorType); 115 explicit RasterSink(SkColorType);
116 116
117 Error draw(const Src&, SkBitmap*, SkWStream*) const SK_OVERRIDE; 117 Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const SK_OVERRIDE;
118 int enclave() const SK_OVERRIDE { return kAnyThread_Enclave; } 118 int enclave() const SK_OVERRIDE { return kAnyThread_Enclave; }
119 const char* fileExtension() const SK_OVERRIDE { return "png"; } 119 const char* fileExtension() const SK_OVERRIDE { return "png"; }
120 private: 120 private:
121 SkColorType fColorType; 121 SkColorType fColorType;
122 }; 122 };
123 123
124 class SKPSink : public Sink { 124 class SKPSink : public Sink {
125 public: 125 public:
126 SKPSink(); 126 SKPSink();
127 127
128 Error draw(const Src&, SkBitmap*, SkWStream*) const SK_OVERRIDE; 128 Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const SK_OVERRIDE;
129 int enclave() const SK_OVERRIDE { return kAnyThread_Enclave; } 129 int enclave() const SK_OVERRIDE { return kAnyThread_Enclave; }
130 const char* fileExtension() const SK_OVERRIDE { return "skp"; } 130 const char* fileExtension() const SK_OVERRIDE { return "skp"; }
131 }; 131 };
132 132
133 class SVGSink : public Sink { 133 class SVGSink : public Sink {
134 public: 134 public:
135 SVGSink(); 135 SVGSink();
136 136
137 Error draw(const Src&, SkBitmap*, SkWStream*) const SK_OVERRIDE; 137 Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const SK_OVERRIDE;
138 int enclave() const SK_OVERRIDE { return kAnyThread_Enclave; } 138 int enclave() const SK_OVERRIDE { return kAnyThread_Enclave; }
139 const char* fileExtension() const SK_OVERRIDE { return "svg"; } 139 const char* fileExtension() const SK_OVERRIDE { return "svg"; }
140 }; 140 };
141 141
142 142
143 /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~*/ 143 /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~*/
144 144
145 class ViaMatrix : public Sink { 145 class ViaMatrix : public Sink {
146 public: 146 public:
147 ViaMatrix(SkMatrix, Sink*); 147 ViaMatrix(SkMatrix, Sink*);
148 148
149 Error draw(const Src&, SkBitmap*, SkWStream*) const SK_OVERRIDE; 149 Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const SK_OVERRIDE;
150 int enclave() const SK_OVERRIDE { return fSink->enclave(); } 150 int enclave() const SK_OVERRIDE { return fSink->enclave(); }
151 const char* fileExtension() const SK_OVERRIDE { return fSink->fileExtension( ); } 151 const char* fileExtension() const SK_OVERRIDE { return fSink->fileExtension( ); }
152 private: 152 private:
153 SkMatrix fMatrix; 153 SkMatrix fMatrix;
154 SkAutoTDelete<Sink> fSink; 154 SkAutoTDelete<Sink> fSink;
155 }; 155 };
156 156
157 class ViaPipe : public Sink { 157 class ViaPipe : public Sink {
158 public: 158 public:
159 explicit ViaPipe(Sink*); 159 explicit ViaPipe(Sink*);
160 160
161 Error draw(const Src&, SkBitmap*, SkWStream*) const SK_OVERRIDE; 161 Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const SK_OVERRIDE;
162 int enclave() const SK_OVERRIDE { return fSink->enclave(); } 162 int enclave() const SK_OVERRIDE { return fSink->enclave(); }
163 const char* fileExtension() const SK_OVERRIDE { return fSink->fileExtension( ); } 163 const char* fileExtension() const SK_OVERRIDE { return fSink->fileExtension( ); }
164 private: 164 private:
165 SkAutoTDelete<Sink> fSink; 165 SkAutoTDelete<Sink> fSink;
166 }; 166 };
167 167
168 class ViaSerialization : public Sink { 168 class ViaSerialization : public Sink {
169 public: 169 public:
170 explicit ViaSerialization(Sink*); 170 explicit ViaSerialization(Sink*);
171 171
172 Error draw(const Src&, SkBitmap*, SkWStream*) const SK_OVERRIDE; 172 Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const SK_OVERRIDE;
173 int enclave() const SK_OVERRIDE { return fSink->enclave(); } 173 int enclave() const SK_OVERRIDE { return fSink->enclave(); }
174 const char* fileExtension() const SK_OVERRIDE { return fSink->fileExtension( ); } 174 const char* fileExtension() const SK_OVERRIDE { return fSink->fileExtension( ); }
175 private: 175 private:
176 SkAutoTDelete<Sink> fSink; 176 SkAutoTDelete<Sink> fSink;
177 }; 177 };
178 178
179 class ViaTiles : public Sink { 179 class ViaTiles : public Sink {
180 public: 180 public:
181 ViaTiles(int w, int h, SkBBHFactory*, Sink*); 181 ViaTiles(int w, int h, SkBBHFactory*, Sink*);
182 182
183 Error draw(const Src&, SkBitmap*, SkWStream*) const SK_OVERRIDE; 183 Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const SK_OVERRIDE;
184 int enclave() const SK_OVERRIDE { return fSink->enclave(); } 184 int enclave() const SK_OVERRIDE { return fSink->enclave(); }
185 const char* fileExtension() const SK_OVERRIDE { return fSink->fileExtension( ); } 185 const char* fileExtension() const SK_OVERRIDE { return fSink->fileExtension( ); }
186 private: 186 private:
187 const int fW, fH; 187 const int fW, fH;
188 SkAutoTDelete<SkBBHFactory> fFactory; 188 SkAutoTDelete<SkBBHFactory> fFactory;
189 SkAutoTDelete<Sink> fSink; 189 SkAutoTDelete<Sink> fSink;
190 }; 190 };
191 191
192 class NullSink : public Sink { 192 class NullSink : public Sink {
193 public: 193 public:
194 Error draw(const Src& src, SkBitmap*, SkWStream* out) const SK_OVERRIDE { 194 Error draw(const Src& src, SkBitmap*, SkWStream*, SkString*) const SK_OVERRI DE {
195 return src.draw(SkCreateNullCanvas()); 195 return src.draw(SkCreateNullCanvas());
196 } 196 }
197 int enclave() const SK_OVERRIDE { return kAnyThread_Enclave; } 197 int enclave() const SK_OVERRIDE { return kAnyThread_Enclave; }
198 const char* fileExtension() const SK_OVERRIDE { return ""; } 198 const char* fileExtension() const SK_OVERRIDE { return ""; }
199 }; 199 };
200 200
201 } // namespace DM 201 } // namespace DM
202 202
203 #endif//DMSrcSink_DEFINED 203 #endif//DMSrcSink_DEFINED
OLDNEW
« no previous file with comments | « dm/DMGpuSupport.h ('k') | dm/DMSrcSink.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698