/*
* Copyright 2013 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef SkPaintPriv_DEFINED
#define SkPaintPriv_DEFINED
class SkBitmap;
class SkPaint;
#include "SkTypes.h"
/** Returns true if draw calls that use the paint will completely occlude
canvas contents that are covered by the draw.
@param paint The paint to be analyzed, NULL is equivalent to
the default paint.
@param bmpReplacesShader a bitmap to be used in place of the paint's
shader.
@return true if paint is opaque
*/
bool isPaintOpaque(const SkPaint* paint,
const SkBitmap* bmpReplacesShader = NULL);
/** Returns true if the provided paint has fields which are not
immutable (and will thus require deep copying).
@param paint the paint to be analyzed
@return true if the paint requires a deep copy
*/
bool NeedsDeepCopy(const SkPaint& paint);
#endif