1 // Aseprite Document Library
2 // Copyright (c) 2001-2017 David Capello
3 //
4 // This file is released under the terms of the MIT license.
5 // Read LICENSE.txt for more information.
6 
7 #ifndef DOC_BLEND_MODE_H_INCLUDED
8 #define DOC_BLEND_MODE_H_INCLUDED
9 #pragma once
10 
11 #include <string>
12 
13 namespace doc {
14 
15   enum class BlendMode {
16     // Special internal/undocumented alpha compositing and blend modes
17     UNSPECIFIED     = -1,
18     SRC             = -2,
19     MERGE           = -3,
20     NEG_BW          = -4,       // Negative Black & White
21     RED_TINT        = -5,
22     BLUE_TINT       = -6,
23 
24     // Aseprite (.ase files) blend modes
25     NORMAL          = 0,
26     MULTIPLY        = 1,
27     SCREEN          = 2,
28     OVERLAY         = 3,
29     DARKEN          = 4,
30     LIGHTEN         = 5,
31     COLOR_DODGE     = 6,
32     COLOR_BURN      = 7,
33     HARD_LIGHT      = 8,
34     SOFT_LIGHT      = 9,
35     DIFFERENCE      = 10,
36     EXCLUSION       = 11,
37     HSL_HUE         = 12,
38     HSL_SATURATION  = 13,
39     HSL_COLOR       = 14,
40     HSL_LUMINOSITY  = 15,
41     ADDITION        = 16,
42     SUBTRACT        = 17,
43     DIVIDE          = 18
44   };
45 
46   std::string blend_mode_to_string(BlendMode blendMode);
47 
48 } // namespace doc
49 
50 #endif
51