1d9aac34eceeb197c5551f38583670be7729dd00aqiankun.miao/* 2d9aac34eceeb197c5551f38583670be7729dd00aqiankun.miao * Copyright 2014 Google Inc. 3d9aac34eceeb197c5551f38583670be7729dd00aqiankun.miao * 4d9aac34eceeb197c5551f38583670be7729dd00aqiankun.miao * Use of this source code is governed by a BSD-style license that can be 5d9aac34eceeb197c5551f38583670be7729dd00aqiankun.miao * found in the LICENSE file. 6d9aac34eceeb197c5551f38583670be7729dd00aqiankun.miao */ 7d9aac34eceeb197c5551f38583670be7729dd00aqiankun.miao 8d9aac34eceeb197c5551f38583670be7729dd00aqiankun.miao#ifndef SkMaskCache_DEFINED 9d9aac34eceeb197c5551f38583670be7729dd00aqiankun.miao#define SkMaskCache_DEFINED 10d9aac34eceeb197c5551f38583670be7729dd00aqiankun.miao 11d9aac34eceeb197c5551f38583670be7729dd00aqiankun.miao#include "SkBlurTypes.h" 12d9aac34eceeb197c5551f38583670be7729dd00aqiankun.miao#include "SkCachedData.h" 13d9aac34eceeb197c5551f38583670be7729dd00aqiankun.miao#include "SkMask.h" 14d9aac34eceeb197c5551f38583670be7729dd00aqiankun.miao#include "SkRect.h" 15d9aac34eceeb197c5551f38583670be7729dd00aqiankun.miao#include "SkResourceCache.h" 16d9aac34eceeb197c5551f38583670be7729dd00aqiankun.miao#include "SkRRect.h" 17d9aac34eceeb197c5551f38583670be7729dd00aqiankun.miao 18d9aac34eceeb197c5551f38583670be7729dd00aqiankun.miaoclass SkMaskCache { 19d9aac34eceeb197c5551f38583670be7729dd00aqiankun.miaopublic: 20d9aac34eceeb197c5551f38583670be7729dd00aqiankun.miao /** 21d9aac34eceeb197c5551f38583670be7729dd00aqiankun.miao * On success, return a ref to the SkCachedData that holds the pixels, and have mask 22d9aac34eceeb197c5551f38583670be7729dd00aqiankun.miao * already point to that memory. 23d9aac34eceeb197c5551f38583670be7729dd00aqiankun.miao * 242880df2609eba09b555ca37be04b6ad89290c765Tom Hudson * On failure, return nullptr. 25d9aac34eceeb197c5551f38583670be7729dd00aqiankun.miao */ 264dca7a829635b552be369186ff508a94aba6a903reed static SkCachedData* FindAndRef(SkScalar sigma, SkBlurStyle style, SkBlurQuality quality, 274dca7a829635b552be369186ff508a94aba6a903reed const SkRRect& rrect, SkMask* mask, 282880df2609eba09b555ca37be04b6ad89290c765Tom Hudson SkResourceCache* localCache = nullptr); 294dca7a829635b552be369186ff508a94aba6a903reed static SkCachedData* FindAndRef(SkScalar sigma, SkBlurStyle style, SkBlurQuality quality, 304dca7a829635b552be369186ff508a94aba6a903reed const SkRect rects[], int count, SkMask* mask, 312880df2609eba09b555ca37be04b6ad89290c765Tom Hudson SkResourceCache* localCache = nullptr); 32d9aac34eceeb197c5551f38583670be7729dd00aqiankun.miao 33d9aac34eceeb197c5551f38583670be7729dd00aqiankun.miao /** 34d9aac34eceeb197c5551f38583670be7729dd00aqiankun.miao * Add a mask and its pixel-data to the cache. 35d9aac34eceeb197c5551f38583670be7729dd00aqiankun.miao */ 364dca7a829635b552be369186ff508a94aba6a903reed static void Add(SkScalar sigma, SkBlurStyle style, SkBlurQuality quality, 374dca7a829635b552be369186ff508a94aba6a903reed const SkRRect& rrect, const SkMask& mask, SkCachedData* data, 382880df2609eba09b555ca37be04b6ad89290c765Tom Hudson SkResourceCache* localCache = nullptr); 394dca7a829635b552be369186ff508a94aba6a903reed static void Add(SkScalar sigma, SkBlurStyle style, SkBlurQuality quality, 404dca7a829635b552be369186ff508a94aba6a903reed const SkRect rects[], int count, const SkMask& mask, SkCachedData* data, 412880df2609eba09b555ca37be04b6ad89290c765Tom Hudson SkResourceCache* localCache = nullptr); 42d9aac34eceeb197c5551f38583670be7729dd00aqiankun.miao}; 43d9aac34eceeb197c5551f38583670be7729dd00aqiankun.miao 44d9aac34eceeb197c5551f38583670be7729dd00aqiankun.miao#endif 45