/* * 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 #include "SkTypes.h" class SkBitmap; class SkImage; class SkPaint; enum SkPaintBitmapOpacity { // No content replaces the paint's color kNoBitmap_SkPaintBitmapOpacity = 0, // The color replacement is known to be opaque kOpaque_SkPaintBitmapOpacity = 1, // We have no information about the color or it is transparent kUnknown_SkPaintBitmapOpacity = 2 }; /** 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 contentType The type of the content that will be drawn, kNoBitmap_SkPaintBitmapOpacity if there is no content in adition to the paint. @return true if paint is opaque */ bool isPaintOpaque(const SkPaint* paint, SkPaintBitmapOpacity contentType); /** 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); bool isPaintOpaque(const SkPaint* paint, const SkImage* image); #endif