| /* | 
 |  * 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; | 
 |  | 
 | class SkPaintPriv { | 
 | public: | 
 |     enum ShaderOverrideOpacity { | 
 |         kNone_ShaderOverrideOpacity,        //!< there is no overriding shader (bitmap or image) | 
 |         kOpaque_ShaderOverrideOpacity,      //!< the overriding shader is opaque | 
 |         kNotOpaque_ShaderOverrideOpacity,   //!< the overriding shader may not be opaque | 
 |     }; | 
 |  | 
 |     /** | 
 |      *  Returns true if drawing with this paint (or nullptr) will ovewrite all affected pixels. | 
 |      * | 
 |      *  Note: returns conservative true, meaning it may return false even though the paint might | 
 |      *        in fact overwrite its pixels. | 
 |      */ | 
 |     static bool Overwrites(const SkPaint* paint, ShaderOverrideOpacity); | 
 |  | 
 |     static bool Overwrites(const SkPaint& paint) { | 
 |         return Overwrites(&paint, kNone_ShaderOverrideOpacity); | 
 |     } | 
 |  | 
 |     /** | 
 |      *  Returns true if drawing this bitmap with this paint (or nullptr) will ovewrite all affected | 
 |      *  pixels. | 
 |      */ | 
 |     static bool Overwrites(const SkBitmap&, const SkPaint* paint); | 
 |  | 
 |     /** | 
 |      *  Returns true if drawing this image with this paint (or nullptr) will ovewrite all affected | 
 |      *  pixels. | 
 |      */ | 
 |     static bool Overwrites(const SkImage*, const SkPaint* paint); | 
 | }; | 
 |  | 
 | #endif |