/* * Copyright 2016 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef SkBlendMode_DEFINED #define SkBlendMode_DEFINED #include "SkTypes.h" enum class SkBlendMode { kClear, //!< replaces destination with zero: fully transparent kSrc, //!< replaces destination kDst, //!< preserves destination kSrcOver, //!< source over destination kDstOver, //!< destination over source kSrcIn, //!< source trimmed inside destination kDstIn, //!< destination trimmed by source kSrcOut, //!< source trimmed outside destination kDstOut, //!< destination trimmed outside source kSrcATop, //!< source inside destination blended with destination kDstATop, //!< destination inside source blended with source kXor, //!< each of source and destination trimmed outside the other kPlus, //!< sum of colors kModulate, //!< product of premultiplied colors; darkens destination kScreen, //!< multiply inverse of pixels, inverting result; brightens destination kLastCoeffMode = kScreen, //!< last porter duff blend mode kOverlay, //!< multiply or screen, depending on destination kDarken, //!< darker of source and destination kLighten, //!< lighter of source and destination kColorDodge, //!< brighten destination to reflect source kColorBurn, //!< darken destination to reflect source kHardLight, //!< multiply or screen, depending on source kSoftLight, //!< lighten or darken, depending on source kDifference, //!< subtract darker from lighter with higher contrast kExclusion, //!< subtract darker from lighter with lower contrast kMultiply, //!< multiply source with destination, darkening image kLastSeparableMode = kMultiply, //!< last blend mode operating separately on components kHue, //!< hue of source with saturation and luminosity of destination kSaturation, //!< saturation of source with hue and luminosity of destination kColor, //!< hue and saturation of source with luminosity of destination kLuminosity, //!< luminosity of source with hue and saturation of destination kLastMode = kLuminosity, //!< last valid value }; /** Returns name of blendMode as null-terminated C string. @param blendMode one of: SkBlendMode::kClear, SkBlendMode::kSrc, SkBlendMode::kDst, SkBlendMode::kSrcOver, SkBlendMode::kDstOver, SkBlendMode::kSrcIn, SkBlendMode::kDstIn, SkBlendMode::kSrcOut, SkBlendMode::kDstOut, SkBlendMode::kSrcATop, SkBlendMode::kDstATop, SkBlendMode::kXor, SkBlendMode::kPlus, SkBlendMode::kModulate, SkBlendMode::kScreen, SkBlendMode::kOverlay, SkBlendMode::kDarken, SkBlendMode::kLighten, SkBlendMode::kColorDodge, SkBlendMode::kColorBurn, SkBlendMode::kHardLight, SkBlendMode::kSoftLight, SkBlendMode::kDifference, SkBlendMode::kExclusion, SkBlendMode::kMultiply, SkBlendMode::kHue, SkBlendMode::kSaturation, SkBlendMode::kColor, SkBlendMode::kLuminosity @return C string */ SK_API const char* SkBlendMode_Name(SkBlendMode blendMode); #endif