LCOV - code coverage report
Current view: top level - gfx/skia/skia/src/core - SkXfermode_proccoeff.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 8 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 4 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       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 SkXfermode_proccoeff_DEFINED
       9             : #define SkXfermode_proccoeff_DEFINED
      10             : 
      11             : #include "SkReadBuffer.h"
      12             : #include "SkWriteBuffer.h"
      13             : 
      14             : struct ProcCoeff {
      15             :     SkXfermodeProc      fProc;
      16             :     SkXfermodeProc4f    fProc4f;
      17             :     SkXfermode::Coeff   fSC;
      18             :     SkXfermode::Coeff   fDC;
      19             : };
      20             : 
      21             : #define CANNOT_USE_COEFF    SkXfermode::Coeff(-1)
      22             : 
      23           0 : class SK_API SkProcCoeffXfermode : public SkXfermode {
      24             : public:
      25           0 :     SkProcCoeffXfermode(const ProcCoeff& rec, SkBlendMode mode) {
      26           0 :         fMode = mode;
      27           0 :         fProc = rec.fProc;
      28             :         // these may be valid, or may be CANNOT_USE_COEFF
      29           0 :         fSrcCoeff = rec.fSC;
      30           0 :         fDstCoeff = rec.fDC;
      31           0 :     }
      32             : 
      33             :     void xfer32(SkPMColor dst[], const SkPMColor src[], int count,
      34             :                 const SkAlpha aa[]) const override;
      35             :     void xfer16(uint16_t dst[], const SkPMColor src[], int count,
      36             :                 const SkAlpha aa[]) const override;
      37             :     void xferA8(SkAlpha dst[], const SkPMColor src[], int count,
      38             :                 const SkAlpha aa[]) const override;
      39             : 
      40             :     bool asMode(Mode* mode) const override;
      41             : 
      42             :     bool supportsCoverageAsAlpha() const override;
      43             : 
      44             :     bool isOpaque(SkXfermode::SrcColorOpacity opacityType) const override;
      45             : 
      46             : #if SK_SUPPORT_GPU
      47             :     sk_sp<GrFragmentProcessor> makeFragmentProcessorForImageFilter(
      48             :                                                         sk_sp<GrFragmentProcessor>) const override;
      49             :     const GrXPFactory* asXPFactory() const override;
      50             : #endif
      51             : 
      52             :     SK_TO_STRING_OVERRIDE()
      53           0 :     SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkProcCoeffXfermode)
      54             : 
      55             : protected:
      56             :     void flatten(SkWriteBuffer& buffer) const override;
      57             : 
      58             :     SkBlendMode getMode() const { return fMode; }
      59             : 
      60             :     SkXfermodeProc getProc() const { return fProc; }
      61             : 
      62             : private:
      63             :     SkXfermodeProc  fProc;
      64             :     SkBlendMode     fMode;
      65             :     Coeff           fSrcCoeff, fDstCoeff;
      66             : 
      67             :     friend class SkXfermode;
      68             : 
      69             :     typedef SkXfermode INHERITED;
      70             : };
      71             : 
      72             : #endif // #ifndef SkXfermode_proccoeff_DEFINED

Generated by: LCOV version 1.13