1/*
2 * Copyright 2013 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 SkPaintPriv_DEFINED
9#define SkPaintPriv_DEFINED
10
11class SkBitmap;
12class SkPaint;
13
14#include "SkTypes.h"
15/** Returns true if draw calls that use the paint will completely occlude
16    canvas contents that are covered by the draw.
17    @param paint The paint to be analyzed, NULL is equivalent to
18        the default paint.
19    @param bmpReplacesShader a bitmap to be used in place of the paint's
20        shader.
21    @return true if paint is opaque
22*/
23bool isPaintOpaque(const SkPaint* paint,
24                   const SkBitmap* bmpReplacesShader = NULL);
25
26/** Returns true if the provided paint has fields which are not
27    immutable (and will thus require deep copying).
28    @param paint the paint to be analyzed
29    @return true if the paint requires a deep copy
30*/
31bool NeedsDeepCopy(const SkPaint& paint);
32#endif
33