/* * 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, //!< [0, 0] kSrc, //!< [Sa, Sc] kDst, //!< [Da, Dc] kSrcOver, //!< [Sa + Da * (1 - Sa), Sc + Dc * (1 - Sa)] kDstOver, //!< [Da + Sa * (1 - Da), Dc + Sc * (1 - Da)] kSrcIn, //!< [Sa * Da, Sc * Da] kDstIn, //!< [Da * Sa, Dc * Sa] kSrcOut, //!< [Sa * (1 - Da), Sc * (1 - Da)] kDstOut, //!< [Da * (1 - Sa), Dc * (1 - Sa)] kSrcATop, //!< [Da, Sc * Da + Dc * (1 - Sa)] kDstATop, //!< [Sa, Dc * Sa + Sc * (1 - Da)] kXor, //!< [Sa + Da - 2 * Sa * Da, Sc * (1 - Da) + Dc * (1 - Sa)] kPlus, //!< [Sa + Da, Sc + Dc] kModulate, // multiplies all components (= alpha and color) // Following blend modes are defined in the CSS Compositing standard: // https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#blending kScreen, kLastCoeffMode = kScreen, kOverlay, kDarken, kLighten, kColorDodge, kColorBurn, kHardLight, kSoftLight, kDifference, kExclusion, kMultiply, kLastSeparableMode = kMultiply, kHue, kSaturation, kColor, kLuminosity, kLastMode = kLuminosity, }; /** * Return the (c-string) name of the blendmode. */ SK_API const char* SkBlendMode_Name(SkBlendMode blendMode); #endif