Home | History | Annotate | Download | only in core
      1 /*
      2  * Copyright 2014 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 SkMaskCache_DEFINED
      9 #define SkMaskCache_DEFINED
     10 
     11 #include "SkBlurTypes.h"
     12 #include "SkCachedData.h"
     13 #include "SkMask.h"
     14 #include "SkRect.h"
     15 #include "SkResourceCache.h"
     16 #include "SkRRect.h"
     17 
     18 class SkMaskCache {
     19 public:
     20     /**
     21      * On success, return a ref to the SkCachedData that holds the pixels, and have mask
     22      * already point to that memory.
     23      *
     24      * On failure, return nullptr.
     25      */
     26     static SkCachedData* FindAndRef(SkScalar sigma, SkBlurStyle style, SkBlurQuality quality,
     27                                     const SkRRect& rrect, SkMask* mask,
     28                                     SkResourceCache* localCache = nullptr);
     29     static SkCachedData* FindAndRef(SkScalar sigma, SkBlurStyle style, SkBlurQuality quality,
     30                                     const SkRect rects[], int count, SkMask* mask,
     31                                     SkResourceCache* localCache = nullptr);
     32 
     33     /**
     34      * Add a mask and its pixel-data to the cache.
     35      */
     36     static void Add(SkScalar sigma, SkBlurStyle style, SkBlurQuality quality,
     37                     const SkRRect& rrect, const SkMask& mask, SkCachedData* data,
     38                     SkResourceCache* localCache = nullptr);
     39     static void Add(SkScalar sigma, SkBlurStyle style, SkBlurQuality quality,
     40                     const SkRect rects[], int count, const SkMask& mask, SkCachedData* data,
     41                     SkResourceCache* localCache = nullptr);
     42 };
     43 
     44 #endif
     45