/* * Copyright 2014 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef SkMaskCache_DEFINED #define SkMaskCache_DEFINED #include "SkBlurTypes.h" #include "SkCachedData.h" #include "SkMask.h" #include "SkRect.h" #include "SkResourceCache.h" #include "SkRRect.h" class SkMaskCache { public: /** * On success, return a ref to the SkCachedData that holds the pixels, and have mask * already point to that memory. * * On failure, return nullptr. */ static SkCachedData* FindAndRef(SkScalar sigma, SkBlurStyle style, const SkRRect& rrect, SkMask* mask, SkResourceCache* localCache = nullptr); static SkCachedData* FindAndRef(SkScalar sigma, SkBlurStyle style, const SkRect rects[], int count, SkMask* mask, SkResourceCache* localCache = nullptr); /** * Add a mask and its pixel-data to the cache. */ static void Add(SkScalar sigma, SkBlurStyle style, const SkRRect& rrect, const SkMask& mask, SkCachedData* data, SkResourceCache* localCache = nullptr); static void Add(SkScalar sigma, SkBlurStyle style, const SkRect rects[], int count, const SkMask& mask, SkCachedData* data, SkResourceCache* localCache = nullptr); }; #endif