1fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot/*
2fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * Copyright 2014 Google Inc.
3fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot *
4fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * Use of this source code is governed by a BSD-style license that can be
5fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * found in the LICENSE file.
6fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot */
7fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
8fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#ifndef SkMaskCache_DEFINED
9fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#define SkMaskCache_DEFINED
10fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
11fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkBlurTypes.h"
12fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkCachedData.h"
13fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkMask.h"
14fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkRect.h"
15fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkResourceCache.h"
16fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkRRect.h"
17fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
18fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotclass SkMaskCache {
19fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotpublic:
20fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    /**
21fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot     * On success, return a ref to the SkCachedData that holds the pixels, and have mask
22fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot     * already point to that memory.
23fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot     *
24fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot     * On failure, return nullptr.
25fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot     */
26fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    static SkCachedData* FindAndRef(SkScalar sigma, SkBlurStyle style, SkBlurQuality quality,
27fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot                                    const SkRRect& rrect, SkMask* mask,
28fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot                                    SkResourceCache* localCache = nullptr);
29fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    static SkCachedData* FindAndRef(SkScalar sigma, SkBlurStyle style, SkBlurQuality quality,
30fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot                                    const SkRect rects[], int count, SkMask* mask,
31fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot                                    SkResourceCache* localCache = nullptr);
32fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
33fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    /**
34fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot     * Add a mask and its pixel-data to the cache.
35fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot     */
36fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    static void Add(SkScalar sigma, SkBlurStyle style, SkBlurQuality quality,
37fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot                    const SkRRect& rrect, const SkMask& mask, SkCachedData* data,
38fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot                    SkResourceCache* localCache = nullptr);
39fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    static void Add(SkScalar sigma, SkBlurStyle style, SkBlurQuality quality,
40fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot                    const SkRect rects[], int count, const SkMask& mask, SkCachedData* data,
41fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot                    SkResourceCache* localCache = nullptr);
42fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot};
43fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
44fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#endif
45