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 "xfa/fxgraphics/include/cfx_graphics.h" | 7 #include "xfa/fxgraphics/include/cfx_graphics.h" |
8 | 8 |
9 #include <memory> | 9 #include <memory> |
10 | 10 |
(...skipping 1325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1336 CFX_DIBitmap mask; | 1336 CFX_DIBitmap mask; |
1337 mask.Create(data.width, data.height, FXDIB_1bppMask); | 1337 mask.Create(data.width, data.height, FXDIB_1bppMask); |
1338 FXSYS_memcpy(mask.GetBuffer(), data.maskBits, mask.GetPitch() * data.height); | 1338 FXSYS_memcpy(mask.GetBuffer(), data.maskBits, mask.GetPitch() * data.height); |
1339 CFX_FloatRect rectf = path->GetPathData()->GetBoundingBox(); | 1339 CFX_FloatRect rectf = path->GetPathData()->GetBoundingBox(); |
1340 if (matrix) { | 1340 if (matrix) { |
1341 rectf.Transform((const CFX_Matrix*)matrix); | 1341 rectf.Transform((const CFX_Matrix*)matrix); |
1342 } | 1342 } |
1343 FX_RECT rect(FXSYS_round(rectf.left), FXSYS_round(rectf.top), | 1343 FX_RECT rect(FXSYS_round(rectf.left), FXSYS_round(rectf.top), |
1344 FXSYS_round(rectf.right), FXSYS_round(rectf.bottom)); | 1344 FXSYS_round(rectf.right), FXSYS_round(rectf.bottom)); |
1345 CFX_FxgeDevice device; | 1345 CFX_FxgeDevice device; |
1346 device.Attach(&bmp); | 1346 device.Attach(&bmp, false, nullptr, false); |
1347 device.FillRect(&rect, m_info.fillColor->m_info.pattern->m_backArgb); | 1347 device.FillRect(&rect, m_info.fillColor->m_info.pattern->m_backArgb); |
1348 for (int32_t j = rect.bottom; j < rect.top; j += mask.GetHeight()) { | 1348 for (int32_t j = rect.bottom; j < rect.top; j += mask.GetHeight()) { |
1349 for (int32_t i = rect.left; i < rect.right; i += mask.GetWidth()) { | 1349 for (int32_t i = rect.left; i < rect.right; i += mask.GetWidth()) { |
1350 device.SetBitMask(&mask, i, j, | 1350 device.SetBitMask(&mask, i, j, |
1351 m_info.fillColor->m_info.pattern->m_foreArgb); | 1351 m_info.fillColor->m_info.pattern->m_foreArgb); |
1352 } | 1352 } |
1353 } | 1353 } |
1354 | 1354 |
1355 m_renderDevice->SaveState(); | 1355 m_renderDevice->SaveState(); |
1356 m_renderDevice->SetClip_PathFill(path->GetPathData(), (CFX_Matrix*)matrix, | 1356 m_renderDevice->SetClip_PathFill(path->GetPathData(), (CFX_Matrix*)matrix, |
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1565 CTM = other.CTM; | 1565 CTM = other.CTM; |
1566 isActOnDash = other.isActOnDash; | 1566 isActOnDash = other.isActOnDash; |
1567 strokeColor = other.strokeColor; | 1567 strokeColor = other.strokeColor; |
1568 fillColor = other.fillColor; | 1568 fillColor = other.fillColor; |
1569 font = other.font; | 1569 font = other.font; |
1570 fontSize = other.fontSize; | 1570 fontSize = other.fontSize; |
1571 fontHScale = other.fontHScale; | 1571 fontHScale = other.fontHScale; |
1572 fontSpacing = other.fontSpacing; | 1572 fontSpacing = other.fontSpacing; |
1573 return *this; | 1573 return *this; |
1574 } | 1574 } |
OLD | NEW |