Chromium Code Reviews| 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 (pPattern->m_pShadingObj->IsStream()) { |
|
Tom Sepez
2016/04/21 16:24:24
nit: maybe if (CPFD_Stream* pStream = pPattern->m_
dsinclair
2016/04/21 16:56:00
Done.
| |
| 895 DrawFreeGouraudShading(pBitmap, &FinalMatrix, | |
| 896 ToStream(pPattern->m_pShadingObj), pFuncs, | |
|
Tom Sepez
2016/04/21 16:24:24
nit: then you can write
pStream, pFuncts,
and
dsinclair
2016/04/21 16:56:00
Done.
| |
| 897 nFuncs, pColorSpace, alpha); | |
| 898 } | |
| 895 } break; | 899 } break; |
| 896 case kLatticeFormGouraudTriangleMeshShading: { | 900 case kLatticeFormGouraudTriangleMeshShading: { |
| 897 DrawLatticeGouraudShading(pBitmap, &FinalMatrix, | 901 // The shading object can be a stream or a dictionary. We do not handle |
| 898 ToStream(pPattern->m_pShadingObj), pFuncs, | 902 // the case of dictionary at the moment. |
| 899 nFuncs, pColorSpace, alpha); | 903 if (pPattern->m_pShadingObj->IsStream()) { |
| 904 DrawLatticeGouraudShading(pBitmap, &FinalMatrix, | |
| 905 ToStream(pPattern->m_pShadingObj), pFuncs, | |
| 906 nFuncs, pColorSpace, alpha); | |
| 907 } | |
| 900 } break; | 908 } break; |
| 901 case kCoonsPatchMeshShading: | 909 case kCoonsPatchMeshShading: |
| 902 case kTensorProductPatchMeshShading: { | 910 case kTensorProductPatchMeshShading: { |
| 903 DrawCoonPatchMeshes( | 911 // The shading object can be a stream or a dictionary. We do not handle |
| 904 pPattern->m_ShadingType == kTensorProductPatchMeshShading, pBitmap, | 912 // the case of dictionary at the moment. |
| 905 &FinalMatrix, ToStream(pPattern->m_pShadingObj), pFuncs, nFuncs, | 913 if (pPattern->m_pShadingObj->IsStream()) { |
| 906 pColorSpace, fill_mode, alpha); | 914 DrawCoonPatchMeshes( |
| 915 pPattern->m_ShadingType == kTensorProductPatchMeshShading, pBitmap, | |
| 916 &FinalMatrix, ToStream(pPattern->m_pShadingObj), pFuncs, nFuncs, | |
| 917 pColorSpace, fill_mode, alpha); | |
| 918 } | |
| 907 } break; | 919 } break; |
| 908 } | 920 } |
| 909 if (bAlphaMode) { | 921 if (bAlphaMode) { |
| 910 pBitmap->LoadChannel(FXDIB_Red, pBitmap, FXDIB_Alpha); | 922 pBitmap->LoadChannel(FXDIB_Red, pBitmap, FXDIB_Alpha); |
| 911 } | 923 } |
| 912 if (m_Options.m_ColorMode == RENDER_COLOR_GRAY) { | 924 if (m_Options.m_ColorMode == RENDER_COLOR_GRAY) { |
| 913 pBitmap->ConvertColorScale(m_Options.m_ForeColor, m_Options.m_BackColor); | 925 pBitmap->ConvertColorScale(m_Options.m_ForeColor, m_Options.m_BackColor); |
| 914 } | 926 } |
| 915 buffer.OutputToDevice(); | 927 buffer.OutputToDevice(); |
| 916 } | 928 } |
| (...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1210 } | 1222 } |
| 1211 } | 1223 } |
| 1212 if (bStroke) { | 1224 if (bStroke) { |
| 1213 CPDF_Color& StrokeColor = *pPathObj->m_ColorState.GetStrokeColor(); | 1225 CPDF_Color& StrokeColor = *pPathObj->m_ColorState.GetStrokeColor(); |
| 1214 if (StrokeColor.m_pCS && StrokeColor.m_pCS->GetFamily() == PDFCS_PATTERN) { | 1226 if (StrokeColor.m_pCS && StrokeColor.m_pCS->GetFamily() == PDFCS_PATTERN) { |
| 1215 DrawPathWithPattern(pPathObj, pObj2Device, &StrokeColor, TRUE); | 1227 DrawPathWithPattern(pPathObj, pObj2Device, &StrokeColor, TRUE); |
| 1216 bStroke = FALSE; | 1228 bStroke = FALSE; |
| 1217 } | 1229 } |
| 1218 } | 1230 } |
| 1219 } | 1231 } |
| OLD | NEW |