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 |