OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2015 Google Inc. | 2 * Copyright 2015 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #ifndef DMSrcSink_DEFINED | 8 #ifndef DMSrcSink_DEFINED |
9 #define DMSrcSink_DEFINED | 9 #define DMSrcSink_DEFINED |
10 | 10 |
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
282 int enclave() const override { return kAnyThread_Enclave; } | 282 int enclave() const override { return kAnyThread_Enclave; } |
283 const char* fileExtension() const override { return "svg"; } | 283 const char* fileExtension() const override { return "svg"; } |
284 SinkFlags flags() const override { return SinkFlags{ SinkFlags::kVector, Sin
kFlags::kDirect }; } | 284 SinkFlags flags() const override { return SinkFlags{ SinkFlags::kVector, Sin
kFlags::kDirect }; } |
285 }; | 285 }; |
286 | 286 |
287 | 287 |
288 /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~*/ | 288 /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~*/ |
289 | 289 |
290 class Via : public Sink { | 290 class Via : public Sink { |
291 public: | 291 public: |
292 explicit Via(Sink* sink) : fSink(sink) {} | 292 explicit Via(Name name, Sink* sink) : fName(name), fSink(sink) {} |
293 const char* fileExtension() const override { return fSink->fileExtension();
} | 293 const char* fileExtension() const override { return fSink->fileExtension();
} |
294 int enclave() const override { return fSink->enclave(); } | 294 int enclave() const override { return fSink->enclave(); } |
| 295 Name decorateName(const Src& src) const { |
| 296 return SkStringPrintf("%s-%s", src.name().c_str(), fName.c_str()); |
| 297 } |
295 SinkFlags flags() const override { | 298 SinkFlags flags() const override { |
296 SinkFlags flags = fSink->flags(); | 299 SinkFlags flags = fSink->flags(); |
297 flags.approach = SinkFlags::kIndirect; | 300 flags.approach = SinkFlags::kIndirect; |
298 return flags; | 301 return flags; |
299 } | 302 } |
300 protected: | 303 protected: |
| 304 Name fName; |
301 SkAutoTDelete<Sink> fSink; | 305 SkAutoTDelete<Sink> fSink; |
302 }; | 306 }; |
303 | 307 |
304 class ViaMatrix : public Via { | 308 class ViaMatrix : public Via { |
305 public: | 309 public: |
306 ViaMatrix(SkMatrix, Sink*); | 310 ViaMatrix(Name, SkMatrix, Sink*); |
307 Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override; | 311 Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override; |
308 private: | 312 private: |
309 const SkMatrix fMatrix; | 313 const SkMatrix fMatrix; |
310 }; | 314 }; |
311 | 315 |
312 class ViaUpright : public Via { | 316 class ViaUpright : public Via { |
313 public: | 317 public: |
314 ViaUpright(SkMatrix, Sink*); | 318 ViaUpright(Name, SkMatrix, Sink*); |
315 Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override; | 319 Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override; |
316 private: | 320 private: |
317 const SkMatrix fMatrix; | 321 const SkMatrix fMatrix; |
318 }; | 322 }; |
319 | 323 |
320 class ViaPipe : public Via { | 324 class ViaPipe : public Via { |
321 public: | 325 public: |
322 explicit ViaPipe(Sink* sink) : Via(sink) {} | 326 explicit ViaPipe(Name name, Sink* sink) : Via(name, sink) {} |
323 Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override; | 327 Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override; |
324 }; | 328 }; |
325 | 329 |
326 class ViaRemote : public Via { | 330 class ViaRemote : public Via { |
327 public: | 331 public: |
328 ViaRemote(bool cache, Sink* sink) : Via(sink), fCache(cache) {} | 332 ViaRemote(Name name, bool cache, Sink* sink) : Via(name, sink), fCache(cache
) {} |
329 Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override; | 333 Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override; |
330 private: | 334 private: |
331 bool fCache; | 335 bool fCache; |
332 }; | 336 }; |
333 | 337 |
334 class ViaSerialization : public Via { | 338 class ViaSerialization : public Via { |
335 public: | 339 public: |
336 explicit ViaSerialization(Sink* sink) : Via(sink) {} | 340 explicit ViaSerialization(Name name, Sink* sink) : Via(name, sink) {} |
337 Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override; | 341 Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override; |
338 }; | 342 }; |
339 | 343 |
340 class ViaTiles : public Via { | 344 class ViaTiles : public Via { |
341 public: | 345 public: |
342 ViaTiles(int w, int h, SkBBHFactory*, Sink*); | 346 ViaTiles(Name, int w, int h, SkBBHFactory*, Sink*); |
343 Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override; | 347 Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override; |
344 private: | 348 private: |
345 const int fW, fH; | 349 const int fW, fH; |
346 SkAutoTDelete<SkBBHFactory> fFactory; | 350 SkAutoTDelete<SkBBHFactory> fFactory; |
347 }; | 351 }; |
348 | 352 |
349 class ViaSecondPicture : public Via { | 353 class ViaSecondPicture : public Via { |
350 public: | 354 public: |
351 explicit ViaSecondPicture(Sink* sink) : Via(sink) {} | 355 explicit ViaSecondPicture(Name name, Sink* sink) : Via(name, sink) {} |
352 Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override; | 356 Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override; |
353 }; | 357 }; |
354 | 358 |
355 class ViaSingletonPictures : public Via { | 359 class ViaSingletonPictures : public Via { |
356 public: | 360 public: |
357 explicit ViaSingletonPictures(Sink* sink) : Via(sink) {} | 361 explicit ViaSingletonPictures(Name name, Sink* sink) : Via(name, sink) {} |
358 Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override; | 362 Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override; |
359 }; | 363 }; |
360 | 364 |
361 class ViaTwice : public Via { | 365 class ViaTwice : public Via { |
362 public: | 366 public: |
363 explicit ViaTwice(Sink* sink) : Via(sink) {} | 367 explicit ViaTwice(Name name, Sink* sink) : Via(name, sink) {} |
364 Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override; | 368 Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override; |
365 }; | 369 }; |
366 | 370 |
367 } // namespace DM | 371 } // namespace DM |
368 | 372 |
369 #endif//DMSrcSink_DEFINED | 373 #endif//DMSrcSink_DEFINED |
OLD | NEW |