Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
blend_unittest.cpp
Go to the documentation of this file.
1// Copyright 2023 The PDFium Authors
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "core/fxge/dib/blend.h"
6
7#include "core/fxge/dib/fx_dib.h"
8#include "testing/gtest/include/gtest/gtest.h"
9
10namespace fxge {
11
13 EXPECT_EQ(0, Blend(BlendMode::kNormal, 0, 0));
14 EXPECT_EQ(0, Blend(BlendMode::kNormal, 99, 0));
15 EXPECT_EQ(0, Blend(BlendMode::kNormal, 255, 0));
16 EXPECT_EQ(99, Blend(BlendMode::kNormal, 0, 99));
17 EXPECT_EQ(99, Blend(BlendMode::kNormal, 99, 99));
18 EXPECT_EQ(99, Blend(BlendMode::kNormal, 255, 99));
19 EXPECT_EQ(255, Blend(BlendMode::kNormal, 0, 255));
20 EXPECT_EQ(255, Blend(BlendMode::kNormal, 99, 255));
21 EXPECT_EQ(255, Blend(BlendMode::kNormal, 255, 255));
22}
23
27 EXPECT_EQ(0, Blend(BlendMode::kMultiply, 255, 0));
29 EXPECT_EQ(38, Blend(BlendMode::kMultiply, 99, 99));
30 EXPECT_EQ(99, Blend(BlendMode::kMultiply, 255, 99));
31 EXPECT_EQ(0, Blend(BlendMode::kMultiply, 0, 255));
32 EXPECT_EQ(99, Blend(BlendMode::kMultiply, 99, 255));
33 EXPECT_EQ(255, Blend(BlendMode::kMultiply, 255, 255));
34}
35
37 EXPECT_EQ(0, Blend(BlendMode::kScreen, 0, 0));
38 EXPECT_EQ(99, Blend(BlendMode::kScreen, 99, 0));
39 EXPECT_EQ(255, Blend(BlendMode::kScreen, 255, 0));
40 EXPECT_EQ(99, Blend(BlendMode::kScreen, 0, 99));
41 EXPECT_EQ(160, Blend(BlendMode::kScreen, 99, 99));
42 EXPECT_EQ(255, Blend(BlendMode::kScreen, 255, 99));
43 EXPECT_EQ(255, Blend(BlendMode::kScreen, 0, 255));
44 EXPECT_EQ(255, Blend(BlendMode::kScreen, 99, 255));
45 EXPECT_EQ(255, Blend(BlendMode::kScreen, 255, 255));
46}
47
50 EXPECT_EQ(0, Blend(BlendMode::kOverlay, 99, 0));
51 EXPECT_EQ(143, Blend(BlendMode::kOverlay, 199, 0));
52 EXPECT_EQ(255, Blend(BlendMode::kOverlay, 255, 0));
53 EXPECT_EQ(0, Blend(BlendMode::kOverlay, 0, 99));
54 EXPECT_EQ(76, Blend(BlendMode::kOverlay, 99, 99));
55 EXPECT_EQ(187, Blend(BlendMode::kOverlay, 199, 99));
56 EXPECT_EQ(255, Blend(BlendMode::kOverlay, 255, 99));
57 EXPECT_EQ(0, Blend(BlendMode::kOverlay, 0, 199));
58 EXPECT_EQ(154, Blend(BlendMode::kOverlay, 99, 199));
59 EXPECT_EQ(231, Blend(BlendMode::kOverlay, 199, 199));
60 EXPECT_EQ(255, Blend(BlendMode::kOverlay, 255, 199));
61 EXPECT_EQ(0, Blend(BlendMode::kOverlay, 0, 255));
62 EXPECT_EQ(198, Blend(BlendMode::kOverlay, 99, 255));
63 EXPECT_EQ(255, Blend(BlendMode::kOverlay, 199, 255));
64 EXPECT_EQ(255, Blend(BlendMode::kOverlay, 255, 255));
65}
66
68 EXPECT_EQ(0, Blend(BlendMode::kDarken, 0, 0));
69 EXPECT_EQ(0, Blend(BlendMode::kDarken, 99, 0));
70 EXPECT_EQ(0, Blend(BlendMode::kDarken, 255, 0));
71 EXPECT_EQ(0, Blend(BlendMode::kDarken, 0, 99));
72 EXPECT_EQ(99, Blend(BlendMode::kDarken, 99, 99));
73 EXPECT_EQ(99, Blend(BlendMode::kDarken, 255, 99));
74 EXPECT_EQ(0, Blend(BlendMode::kDarken, 0, 255));
75 EXPECT_EQ(99, Blend(BlendMode::kDarken, 99, 255));
76 EXPECT_EQ(255, Blend(BlendMode::kDarken, 255, 255));
77}
78
81 EXPECT_EQ(99, Blend(BlendMode::kLighten, 99, 0));
82 EXPECT_EQ(255, Blend(BlendMode::kLighten, 255, 0));
83 EXPECT_EQ(99, Blend(BlendMode::kLighten, 0, 99));
84 EXPECT_EQ(99, Blend(BlendMode::kLighten, 99, 99));
85 EXPECT_EQ(255, Blend(BlendMode::kLighten, 255, 99));
86 EXPECT_EQ(255, Blend(BlendMode::kLighten, 0, 255));
87 EXPECT_EQ(255, Blend(BlendMode::kLighten, 99, 255));
88 EXPECT_EQ(255, Blend(BlendMode::kLighten, 255, 255));
89}
90
94 EXPECT_EQ(255, Blend(BlendMode::kColorDodge, 255, 0));
96 EXPECT_EQ(161, Blend(BlendMode::kColorDodge, 99, 99));
97 EXPECT_EQ(255, Blend(BlendMode::kColorDodge, 255, 99));
98 EXPECT_EQ(255, Blend(BlendMode::kColorDodge, 0, 255));
99 EXPECT_EQ(255, Blend(BlendMode::kColorDodge, 99, 255));
100 EXPECT_EQ(255, Blend(BlendMode::kColorDodge, 255, 255));
101}
102
105 EXPECT_EQ(0, Blend(BlendMode::kColorBurn, 99, 0));
106 EXPECT_EQ(0, Blend(BlendMode::kColorBurn, 255, 0));
107 EXPECT_EQ(0, Blend(BlendMode::kColorBurn, 0, 99));
108 EXPECT_EQ(0, Blend(BlendMode::kColorBurn, 99, 99));
109 EXPECT_EQ(255, Blend(BlendMode::kColorBurn, 255, 99));
110 EXPECT_EQ(0, Blend(BlendMode::kColorBurn, 0, 255));
111 EXPECT_EQ(99, Blend(BlendMode::kColorBurn, 99, 255));
112 EXPECT_EQ(255, Blend(BlendMode::kColorBurn, 255, 255));
113}
114
117 EXPECT_EQ(0, Blend(BlendMode::kHardLight, 99, 0));
118 EXPECT_EQ(0, Blend(BlendMode::kHardLight, 255, 0));
119 EXPECT_EQ(0, Blend(BlendMode::kHardLight, 0, 99));
120 EXPECT_EQ(76, Blend(BlendMode::kHardLight, 99, 99));
121 EXPECT_EQ(198, Blend(BlendMode::kHardLight, 255, 99));
122 EXPECT_EQ(143, Blend(BlendMode::kHardLight, 0, 199));
123 EXPECT_EQ(187, Blend(BlendMode::kHardLight, 99, 199));
124 EXPECT_EQ(255, Blend(BlendMode::kHardLight, 255, 199));
125 EXPECT_EQ(255, Blend(BlendMode::kHardLight, 0, 255));
126 EXPECT_EQ(255, Blend(BlendMode::kHardLight, 99, 255));
127 EXPECT_EQ(255, Blend(BlendMode::kHardLight, 255, 255));
128}
129
132 EXPECT_EQ(39, Blend(BlendMode::kSoftLight, 99, 0));
133 EXPECT_EQ(255, Blend(BlendMode::kSoftLight, 255, 0));
134 EXPECT_EQ(0, Blend(BlendMode::kSoftLight, 0, 99));
135 EXPECT_EQ(86, Blend(BlendMode::kSoftLight, 99, 99));
136 EXPECT_EQ(255, Blend(BlendMode::kSoftLight, 255, 99));
137 EXPECT_EQ(0, Blend(BlendMode::kSoftLight, 0, 199));
138 EXPECT_EQ(81, Blend(BlendMode::kSoftLight, 47, 199));
139 EXPECT_EQ(132, Blend(BlendMode::kSoftLight, 99, 199));
140 EXPECT_EQ(255, Blend(BlendMode::kSoftLight, 255, 199));
141 EXPECT_EQ(0, Blend(BlendMode::kSoftLight, 0, 255));
142 EXPECT_EQ(109, Blend(BlendMode::kSoftLight, 47, 255));
143 EXPECT_EQ(159, Blend(BlendMode::kSoftLight, 99, 255));
144 EXPECT_EQ(255, Blend(BlendMode::kSoftLight, 255, 255));
145}
146
149 EXPECT_EQ(99, Blend(BlendMode::kDifference, 99, 0));
150 EXPECT_EQ(255, Blend(BlendMode::kDifference, 255, 0));
151 EXPECT_EQ(99, Blend(BlendMode::kDifference, 0, 99));
152 EXPECT_EQ(0, Blend(BlendMode::kDifference, 99, 99));
153 EXPECT_EQ(156, Blend(BlendMode::kDifference, 255, 99));
154 EXPECT_EQ(255, Blend(BlendMode::kDifference, 0, 255));
155 EXPECT_EQ(156, Blend(BlendMode::kDifference, 99, 255));
156 EXPECT_EQ(0, Blend(BlendMode::kDifference, 255, 255));
157}
158
161 EXPECT_EQ(99, Blend(BlendMode::kExclusion, 99, 0));
162 EXPECT_EQ(255, Blend(BlendMode::kExclusion, 255, 0));
163 EXPECT_EQ(99, Blend(BlendMode::kExclusion, 0, 99));
164 EXPECT_EQ(122, Blend(BlendMode::kExclusion, 99, 99));
165 EXPECT_EQ(156, Blend(BlendMode::kExclusion, 255, 99));
166 EXPECT_EQ(255, Blend(BlendMode::kExclusion, 0, 255));
167 EXPECT_EQ(156, Blend(BlendMode::kExclusion, 99, 255));
168 EXPECT_EQ(0, Blend(BlendMode::kExclusion, 255, 255));
169}
170
171} // namespace fxge
TEST(Blend, Normal)