Home | History | Annotate | Download | only in dm
      1 /*
      2  * Copyright 2015 Google Inc.
      3  *
      4  * Use of this source code is governed by a BSD-style license that can be
      5  * found in the LICENSE file.
      6  */
      7 
      8 #ifndef DMSrcSinkAndroid_DEFINED
      9 #define DMSrcSinkAndroid_DEFINED
     10 
     11 #ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
     12 
     13 #include "DMSrcSink.h"
     14 
     15 namespace DM {
     16 
     17 /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
     18 
     19 // Draws to the Android Framework's HWUI API.
     20 
     21 class HWUISink : public Sink {
     22 public:
     23     HWUISink() { }
     24 
     25     Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override;
     26     int enclave() const override { return kGPU_Enclave; }
     27     const char* fileExtension() const override { return "png"; }
     28 };
     29 
     30 /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
     31 
     32 // Trims draw commands to only include those supported by the Android Framework's HWUI API.
     33 
     34 class ViaAndroidSDK : public Sink {
     35 public:
     36     explicit ViaAndroidSDK(Sink*);
     37 
     38     Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override;
     39     int enclave() const override { return fSink->enclave(); }
     40     const char* fileExtension() const override { return fSink->fileExtension(); }
     41 
     42 private:
     43     SkAutoTDelete<Sink> fSink;
     44 };
     45 
     46 /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
     47 
     48 }  // namespace DM
     49 
     50 #endif  // SK_BUILD_FOR_ANDROID_FRAMEWORK
     51 
     52 #endif  // DMSrcSinkAndroid_DEFINED
     53