| 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 |