1 /* 2 * Copyright 2015 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #ifndef GrCustomXfermode_DEFINED 9 #define GrCustomXfermode_DEFINED 10 11 #include "SkXfermode.h" 12 13 class GrFragmentProcessor; 14 class GrTexture; 15 16 /** 17 * Custom Xfer modes are used for blending when the blend mode cannot be represented using blend 18 * coefficients. It is assumed that all blending is done within the processors' emit code. For each 19 * blend mode there should be a matching fragment processor (used when blending with a background 20 * texture) and xfer processor. 21 */ 22 namespace GrCustomXfermode { 23 bool IsSupportedMode(SkXfermode::Mode mode); 24 25 GrFragmentProcessor* CreateFP(SkXfermode::Mode mode, GrTexture* background); 26 27 GrXPFactory* CreateXPFactory(SkXfermode::Mode mode); 28 }; 29 30 #endif 31