| 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 "core/fpdfapi/fpdf_render/render_int.h" | 7 #include "core/fpdfapi/fpdf_render/render_int.h" |
| 8 | 8 |
| 9 #include "core/fpdfapi/fpdf_page/cpdf_graphicstates.h" | 9 #include "core/fpdfapi/fpdf_page/cpdf_graphicstates.h" |
| 10 #include "core/fpdfapi/fpdf_page/cpdf_meshstream.h" | 10 #include "core/fpdfapi/fpdf_page/cpdf_meshstream.h" |
| (...skipping 841 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 852 pColorSpace->GetRGB(comps, R, G, B); | 852 pColorSpace->GetRGB(comps, R, G, B); |
| 853 background = ArgbEncode(255, (int32_t)(R * 255), (int32_t)(G * 255), | 853 background = ArgbEncode(255, (int32_t)(R * 255), (int32_t)(G * 255), |
| 854 (int32_t)(B * 255)); | 854 (int32_t)(B * 255)); |
| 855 } | 855 } |
| 856 } | 856 } |
| 857 if (pDict->KeyExist("BBox")) { | 857 if (pDict->KeyExist("BBox")) { |
| 858 CFX_FloatRect rect = pDict->GetRectBy("BBox"); | 858 CFX_FloatRect rect = pDict->GetRectBy("BBox"); |
| 859 rect.Transform(pMatrix); | 859 rect.Transform(pMatrix); |
| 860 clip_rect.Intersect(rect.GetOutterRect()); | 860 clip_rect.Intersect(rect.GetOutterRect()); |
| 861 } | 861 } |
| 862 if (m_pDevice->GetDeviceCaps(FXDC_RENDER_CAPS) & FXRC_SHADING && |
| 863 m_pDevice->GetDeviceDriver()->DrawShading(pPattern, pMatrix, alpha, |
| 864 bAlphaMode)) { |
| 865 return; |
| 866 } |
| 862 CPDF_DeviceBuffer buffer; | 867 CPDF_DeviceBuffer buffer; |
| 863 buffer.Initialize(m_pContext, m_pDevice, &clip_rect, m_pCurObj, 150); | 868 buffer.Initialize(m_pContext, m_pDevice, &clip_rect, m_pCurObj, 150); |
| 864 CFX_Matrix FinalMatrix = *pMatrix; | 869 CFX_Matrix FinalMatrix = *pMatrix; |
| 865 FinalMatrix.Concat(*buffer.GetMatrix()); | 870 FinalMatrix.Concat(*buffer.GetMatrix()); |
| 866 CFX_DIBitmap* pBitmap = buffer.GetBitmap(); | 871 CFX_DIBitmap* pBitmap = buffer.GetBitmap(); |
| 867 if (!pBitmap->GetBuffer()) { | 872 if (!pBitmap->GetBuffer()) { |
| 868 return; | 873 return; |
| 869 } | 874 } |
| 870 pBitmap->Clear(background); | 875 pBitmap->Clear(background); |
| 871 int fill_mode = m_Options.m_Flags; | 876 int fill_mode = m_Options.m_Flags; |
| (...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1207 } | 1212 } |
| 1208 } | 1213 } |
| 1209 if (bStroke) { | 1214 if (bStroke) { |
| 1210 CPDF_Color& StrokeColor = *pPathObj->m_ColorState.GetStrokeColor(); | 1215 CPDF_Color& StrokeColor = *pPathObj->m_ColorState.GetStrokeColor(); |
| 1211 if (StrokeColor.m_pCS && StrokeColor.m_pCS->GetFamily() == PDFCS_PATTERN) { | 1216 if (StrokeColor.m_pCS && StrokeColor.m_pCS->GetFamily() == PDFCS_PATTERN) { |
| 1212 DrawPathWithPattern(pPathObj, pObj2Device, &StrokeColor, TRUE); | 1217 DrawPathWithPattern(pPathObj, pObj2Device, &StrokeColor, TRUE); |
| 1213 bStroke = FALSE; | 1218 bStroke = FALSE; |
| 1214 } | 1219 } |
| 1215 } | 1220 } |
| 1216 } | 1221 } |
| OLD | NEW |