OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
| 7 #include "fpdfsdk/include/pdfwindow/PWL_Utils.h" |
| 8 |
| 9 #include <algorithm> |
| 10 |
7 #include "fpdfsdk/include/pdfwindow/PWL_Icon.h" | 11 #include "fpdfsdk/include/pdfwindow/PWL_Icon.h" |
8 #include "fpdfsdk/include/pdfwindow/PWL_Utils.h" | |
9 #include "fpdfsdk/include/pdfwindow/PWL_Wnd.h" | 12 #include "fpdfsdk/include/pdfwindow/PWL_Wnd.h" |
10 | 13 |
11 #define IsFloatZero(f) ((f) < 0.0001 && (f) > -0.0001) | 14 #define IsFloatZero(f) ((f) < 0.0001 && (f) > -0.0001) |
12 #define IsFloatBigger(fa, fb) ((fa) > (fb) && !IsFloatZero((fa) - (fb))) | 15 #define IsFloatBigger(fa, fb) ((fa) > (fb) && !IsFloatZero((fa) - (fb))) |
13 #define IsFloatSmaller(fa, fb) ((fa) < (fb) && !IsFloatZero((fa) - (fb))) | 16 #define IsFloatSmaller(fa, fb) ((fa) < (fb) && !IsFloatZero((fa) - (fb))) |
14 #define IsFloatEqual(fa, fb) IsFloatZero((fa) - (fb)) | 17 #define IsFloatEqual(fa, fb) IsFloatZero((fa) - (fb)) |
15 | 18 |
16 CFX_ByteString CPWL_Utils::GetAppStreamFromArray(const CPWL_PathData* pPathData, | 19 CFX_ByteString CPWL_Utils::GetAppStreamFromArray(const CPWL_PathData* pPathData, |
17 int32_t nCount) { | 20 int32_t nCount) { |
18 CFX_ByteTextBuf csAP; | 21 CFX_ByteTextBuf csAP; |
(...skipping 1230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1249 } | 1252 } |
1250 | 1253 |
1251 void CPWL_Utils::ConvertCMYK2GRAY(FX_FLOAT dC, | 1254 void CPWL_Utils::ConvertCMYK2GRAY(FX_FLOAT dC, |
1252 FX_FLOAT dM, | 1255 FX_FLOAT dM, |
1253 FX_FLOAT dY, | 1256 FX_FLOAT dY, |
1254 FX_FLOAT dK, | 1257 FX_FLOAT dK, |
1255 FX_FLOAT& dGray) { | 1258 FX_FLOAT& dGray) { |
1256 if (dC < 0 || dC > 1 || dM < 0 || dM > 1 || dY < 0 || dY > 1 || dK < 0 || | 1259 if (dC < 0 || dC > 1 || dM < 0 || dM > 1 || dY < 0 || dY > 1 || dK < 0 || |
1257 dK > 1) | 1260 dK > 1) |
1258 return; | 1261 return; |
1259 dGray = 1.0f - FX_MIN(1.0f, 0.3f * dC + 0.59f * dM + 0.11f * dY + dK); | 1262 dGray = 1.0f - std::min(1.0f, 0.3f * dC + 0.59f * dM + 0.11f * dY + dK); |
1260 } | 1263 } |
1261 | 1264 |
1262 void CPWL_Utils::ConvertGRAY2CMYK(FX_FLOAT dGray, | 1265 void CPWL_Utils::ConvertGRAY2CMYK(FX_FLOAT dGray, |
1263 FX_FLOAT& dC, | 1266 FX_FLOAT& dC, |
1264 FX_FLOAT& dM, | 1267 FX_FLOAT& dM, |
1265 FX_FLOAT& dY, | 1268 FX_FLOAT& dY, |
1266 FX_FLOAT& dK) { | 1269 FX_FLOAT& dK) { |
1267 if (dGray < 0 || dGray > 1) | 1270 if (dGray < 0 || dGray > 1) |
1268 return; | 1271 return; |
1269 dC = 0.0f; | 1272 dC = 0.0f; |
(...skipping 25 matching lines...) Expand all Loading... |
1295 void CPWL_Utils::ConvertCMYK2RGB(FX_FLOAT dC, | 1298 void CPWL_Utils::ConvertCMYK2RGB(FX_FLOAT dC, |
1296 FX_FLOAT dM, | 1299 FX_FLOAT dM, |
1297 FX_FLOAT dY, | 1300 FX_FLOAT dY, |
1298 FX_FLOAT dK, | 1301 FX_FLOAT dK, |
1299 FX_FLOAT& dR, | 1302 FX_FLOAT& dR, |
1300 FX_FLOAT& dG, | 1303 FX_FLOAT& dG, |
1301 FX_FLOAT& dB) { | 1304 FX_FLOAT& dB) { |
1302 if (dC < 0 || dC > 1 || dM < 0 || dM > 1 || dY < 0 || dY > 1 || dK < 0 || | 1305 if (dC < 0 || dC > 1 || dM < 0 || dM > 1 || dY < 0 || dY > 1 || dK < 0 || |
1303 dK > 1) | 1306 dK > 1) |
1304 return; | 1307 return; |
1305 dR = 1.0f - FX_MIN(1.0f, dC + dK); | 1308 dR = 1.0f - std::min(1.0f, dC + dK); |
1306 dG = 1.0f - FX_MIN(1.0f, dM + dK); | 1309 dG = 1.0f - std::min(1.0f, dM + dK); |
1307 dB = 1.0f - FX_MIN(1.0f, dY + dK); | 1310 dB = 1.0f - std::min(1.0f, dY + dK); |
1308 } | 1311 } |
1309 | 1312 |
1310 void CPWL_Utils::ConvertRGB2CMYK(FX_FLOAT dR, | 1313 void CPWL_Utils::ConvertRGB2CMYK(FX_FLOAT dR, |
1311 FX_FLOAT dG, | 1314 FX_FLOAT dG, |
1312 FX_FLOAT dB, | 1315 FX_FLOAT dB, |
1313 FX_FLOAT& dC, | 1316 FX_FLOAT& dC, |
1314 FX_FLOAT& dM, | 1317 FX_FLOAT& dM, |
1315 FX_FLOAT& dY, | 1318 FX_FLOAT& dY, |
1316 FX_FLOAT& dK) { | 1319 FX_FLOAT& dK) { |
1317 if (dR < 0 || dR > 1 || dG < 0 || dG > 1 || dB < 0 || dB > 1) | 1320 if (dR < 0 || dR > 1 || dG < 0 || dG > 1 || dB < 0 || dB > 1) |
1318 return; | 1321 return; |
1319 | 1322 |
1320 dC = 1.0f - dR; | 1323 dC = 1.0f - dR; |
1321 dM = 1.0f - dG; | 1324 dM = 1.0f - dG; |
1322 dY = 1.0f - dB; | 1325 dY = 1.0f - dB; |
1323 dK = FX_MIN(dC, FX_MIN(dM, dY)); | 1326 dK = std::min(dC, std::min(dM, dY)); |
1324 } | 1327 } |
1325 | 1328 |
1326 void CPWL_Utils::PWLColorToARGB(const CPWL_Color& color, | 1329 void CPWL_Utils::PWLColorToARGB(const CPWL_Color& color, |
1327 int32_t& alpha, | 1330 int32_t& alpha, |
1328 FX_FLOAT& red, | 1331 FX_FLOAT& red, |
1329 FX_FLOAT& green, | 1332 FX_FLOAT& green, |
1330 FX_FLOAT& blue) { | 1333 FX_FLOAT& blue) { |
1331 switch (color.nColorType) { | 1334 switch (color.nColorType) { |
1332 case COLORTYPE_TRANSPARENT: { | 1335 case COLORTYPE_TRANSPARENT: { |
1333 alpha = 0; | 1336 alpha = 0; |
(...skipping 2340 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3674 break; | 3677 break; |
3675 case COLORTYPE_RGB: | 3678 case COLORTYPE_RGB: |
3676 CPWL_Utils::ConvertCMYK2RGB(fColor1, fColor2, fColor3, fColor4, | 3679 CPWL_Utils::ConvertCMYK2RGB(fColor1, fColor2, fColor3, fColor4, |
3677 fColor1, fColor2, fColor3); | 3680 fColor1, fColor2, fColor3); |
3678 break; | 3681 break; |
3679 } | 3682 } |
3680 break; | 3683 break; |
3681 } | 3684 } |
3682 nColorType = other_nColorType; | 3685 nColorType = other_nColorType; |
3683 } | 3686 } |
OLD | NEW |