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 871 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
882 break; | 882 break; |
883 case kAxialShading: | 883 case kAxialShading: |
884 DrawAxialShading(pBitmap, &FinalMatrix, pDict, pFuncs, nFuncs, | 884 DrawAxialShading(pBitmap, &FinalMatrix, pDict, pFuncs, nFuncs, |
885 pColorSpace, alpha); | 885 pColorSpace, alpha); |
886 break; | 886 break; |
887 case kRadialShading: | 887 case kRadialShading: |
888 DrawRadialShading(pBitmap, &FinalMatrix, pDict, pFuncs, nFuncs, | 888 DrawRadialShading(pBitmap, &FinalMatrix, pDict, pFuncs, nFuncs, |
889 pColorSpace, alpha); | 889 pColorSpace, alpha); |
890 break; | 890 break; |
891 case kFreeFormGouraudTriangleMeshShading: { | 891 case kFreeFormGouraudTriangleMeshShading: { |
892 DrawFreeGouraudShading(pBitmap, &FinalMatrix, | 892 // The shading object can be a stream or a dictionary. We do not handle |
893 ToStream(pPattern->m_pShadingObj), pFuncs, nFuncs, | 893 // the case of dictionary at the moment. |
894 pColorSpace, alpha); | 894 if (CPDF_Stream* pStream = ToStream(pPattern->m_pShadingObj)) { |
| 895 DrawFreeGouraudShading(pBitmap, &FinalMatrix, pStream, pFuncs, nFuncs, |
| 896 pColorSpace, alpha); |
| 897 } |
895 } break; | 898 } break; |
896 case kLatticeFormGouraudTriangleMeshShading: { | 899 case kLatticeFormGouraudTriangleMeshShading: { |
897 DrawLatticeGouraudShading(pBitmap, &FinalMatrix, | 900 // The shading object can be a stream or a dictionary. We do not handle |
898 ToStream(pPattern->m_pShadingObj), pFuncs, | 901 // the case of dictionary at the moment. |
899 nFuncs, pColorSpace, alpha); | 902 if (CPDF_Stream* pStream = ToStream(pPattern->m_pShadingObj)) { |
| 903 DrawLatticeGouraudShading(pBitmap, &FinalMatrix, pStream, pFuncs, |
| 904 nFuncs, pColorSpace, alpha); |
| 905 } |
900 } break; | 906 } break; |
901 case kCoonsPatchMeshShading: | 907 case kCoonsPatchMeshShading: |
902 case kTensorProductPatchMeshShading: { | 908 case kTensorProductPatchMeshShading: { |
903 DrawCoonPatchMeshes( | 909 // The shading object can be a stream or a dictionary. We do not handle |
904 pPattern->m_ShadingType == kTensorProductPatchMeshShading, pBitmap, | 910 // the case of dictionary at the moment. |
905 &FinalMatrix, ToStream(pPattern->m_pShadingObj), pFuncs, nFuncs, | 911 if (CPDF_Stream* pStream = ToStream(pPattern->m_pShadingObj)) { |
906 pColorSpace, fill_mode, alpha); | 912 DrawCoonPatchMeshes( |
| 913 pPattern->m_ShadingType == kTensorProductPatchMeshShading, pBitmap, |
| 914 &FinalMatrix, pStream, pFuncs, nFuncs, pColorSpace, fill_mode, |
| 915 alpha); |
| 916 } |
907 } break; | 917 } break; |
908 } | 918 } |
909 if (bAlphaMode) { | 919 if (bAlphaMode) { |
910 pBitmap->LoadChannel(FXDIB_Red, pBitmap, FXDIB_Alpha); | 920 pBitmap->LoadChannel(FXDIB_Red, pBitmap, FXDIB_Alpha); |
911 } | 921 } |
912 if (m_Options.m_ColorMode == RENDER_COLOR_GRAY) { | 922 if (m_Options.m_ColorMode == RENDER_COLOR_GRAY) { |
913 pBitmap->ConvertColorScale(m_Options.m_ForeColor, m_Options.m_BackColor); | 923 pBitmap->ConvertColorScale(m_Options.m_ForeColor, m_Options.m_BackColor); |
914 } | 924 } |
915 buffer.OutputToDevice(); | 925 buffer.OutputToDevice(); |
916 } | 926 } |
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1210 } | 1220 } |
1211 } | 1221 } |
1212 if (bStroke) { | 1222 if (bStroke) { |
1213 CPDF_Color& StrokeColor = *pPathObj->m_ColorState.GetStrokeColor(); | 1223 CPDF_Color& StrokeColor = *pPathObj->m_ColorState.GetStrokeColor(); |
1214 if (StrokeColor.m_pCS && StrokeColor.m_pCS->GetFamily() == PDFCS_PATTERN) { | 1224 if (StrokeColor.m_pCS && StrokeColor.m_pCS->GetFamily() == PDFCS_PATTERN) { |
1215 DrawPathWithPattern(pPathObj, pObj2Device, &StrokeColor, TRUE); | 1225 DrawPathWithPattern(pPathObj, pObj2Device, &StrokeColor, TRUE); |
1216 bStroke = FALSE; | 1226 bStroke = FALSE; |
1217 } | 1227 } |
1218 } | 1228 } |
1219 } | 1229 } |
OLD | NEW |