]> git.sesse.net Git - casparcg/blob - core/mixer/image/blend_modes.cpp
2.0. image_mixer: Refactored blend-modes.
[casparcg] / core / mixer / image / blend_modes.cpp
1 #include "../../StdAfx.h"\r
2 \r
3 #include "blend_modes.h"\r
4 \r
5 #include <boost/algorithm/string.hpp>\r
6 \r
7 namespace caspar { namespace core {\r
8                 \r
9 blend_mode::type get_blend_mode(const std::wstring& str)\r
10 {\r
11         if(boost::iequals(str, L"normal"))\r
12                 return blend_mode::normal;\r
13         else if(boost::iequals(str, L"lighten"))\r
14                 return blend_mode::lighten;\r
15         else if(boost::iequals(str, L"darken"))\r
16                 return blend_mode::darken;\r
17         else if(boost::iequals(str, L"multiply"))\r
18                 return blend_mode::multiply;\r
19         else if(boost::iequals(str, L"average"))\r
20                 return blend_mode::average;\r
21         else if(boost::iequals(str, L"add"))\r
22                 return blend_mode::add;\r
23         else if(boost::iequals(str, L"subtract"))\r
24                 return blend_mode::subtract;\r
25         else if(boost::iequals(str, L"difference"))\r
26                 return blend_mode::difference;\r
27         else if(boost::iequals(str, L"negation"))\r
28                 return blend_mode::negation;\r
29         else if(boost::iequals(str, L"exclusion"))\r
30                 return blend_mode::exclusion;\r
31         else if(boost::iequals(str, L"screen"))\r
32                 return blend_mode::screen;\r
33         else if(boost::iequals(str, L"overlay"))\r
34                 return blend_mode::overlay;\r
35         else if(boost::iequals(str, L"soft_light"))\r
36                 return blend_mode::soft_light;\r
37         else if(boost::iequals(str, L"hard_light"))\r
38                 return blend_mode::hard_light;\r
39         else if(boost::iequals(str, L"color_dodge"))\r
40                 return blend_mode::color_dodge;\r
41         else if(boost::iequals(str, L"color_burn"))\r
42                 return blend_mode::color_burn;\r
43         else if(boost::iequals(str, L"linear_dodge"))\r
44                 return blend_mode::linear_dodge;\r
45         else if(boost::iequals(str, L"linear_burn"))\r
46                 return blend_mode::linear_burn;\r
47         else if(boost::iequals(str, L"linear_light"))\r
48                 return blend_mode::linear_light;\r
49         else if(boost::iequals(str, L"vivid_light"))\r
50                 return blend_mode::vivid_light;\r
51         else if(boost::iequals(str, L"pin_light"))\r
52                 return blend_mode::pin_light;\r
53         else if(boost::iequals(str, L"hard_mix"))\r
54                 return blend_mode::hard_mix;\r
55         else if(boost::iequals(str, L"reflect"))\r
56                 return blend_mode::reflect;\r
57         else if(boost::iequals(str, L"glow"))\r
58                 return blend_mode::glow;\r
59         else if(boost::iequals(str, L"phoenix"))\r
60                 return blend_mode::phoenix;\r
61         else if(boost::iequals(str, L"contrast"))\r
62                 return blend_mode::contrast;\r
63         else if(boost::iequals(str, L"saturation"))\r
64                 return blend_mode::saturation;\r
65         else if(boost::iequals(str, L"color"))\r
66                 return blend_mode::color;\r
67         else if(boost::iequals(str, L"luminosity"))\r
68                 return blend_mode::luminosity;\r
69                 \r
70         return blend_mode::normal;\r
71 }\r
72 \r
73 }}