Index: core/fpdfapi/fpdf_render/fpdf_render_pattern.cpp |
diff --git a/core/fpdfapi/fpdf_render/fpdf_render_pattern.cpp b/core/fpdfapi/fpdf_render/fpdf_render_pattern.cpp |
index 6ac380e43a3890f8a8d1e8ebad3b31bf709b4588..aa7abfd873025a32a8deb7a5006750ef655136bd 100644 |
--- a/core/fpdfapi/fpdf_render/fpdf_render_pattern.cpp |
+++ b/core/fpdfapi/fpdf_render/fpdf_render_pattern.cpp |
@@ -889,21 +889,33 @@ void CPDF_RenderStatus::DrawShading(CPDF_ShadingPattern* pPattern, |
pColorSpace, alpha); |
break; |
case kFreeFormGouraudTriangleMeshShading: { |
- DrawFreeGouraudShading(pBitmap, &FinalMatrix, |
- ToStream(pPattern->m_pShadingObj), pFuncs, nFuncs, |
- pColorSpace, alpha); |
+ // The shading object can be a stream or a dictionary. We do not handle |
+ // the case of dictionary at the moment. |
+ 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.
|
+ DrawFreeGouraudShading(pBitmap, &FinalMatrix, |
+ 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.
|
+ nFuncs, pColorSpace, alpha); |
+ } |
} break; |
case kLatticeFormGouraudTriangleMeshShading: { |
- DrawLatticeGouraudShading(pBitmap, &FinalMatrix, |
- ToStream(pPattern->m_pShadingObj), pFuncs, |
- nFuncs, pColorSpace, alpha); |
+ // The shading object can be a stream or a dictionary. We do not handle |
+ // the case of dictionary at the moment. |
+ if (pPattern->m_pShadingObj->IsStream()) { |
+ DrawLatticeGouraudShading(pBitmap, &FinalMatrix, |
+ ToStream(pPattern->m_pShadingObj), pFuncs, |
+ nFuncs, pColorSpace, alpha); |
+ } |
} break; |
case kCoonsPatchMeshShading: |
case kTensorProductPatchMeshShading: { |
- DrawCoonPatchMeshes( |
- pPattern->m_ShadingType == kTensorProductPatchMeshShading, pBitmap, |
- &FinalMatrix, ToStream(pPattern->m_pShadingObj), pFuncs, nFuncs, |
- pColorSpace, fill_mode, alpha); |
+ // The shading object can be a stream or a dictionary. We do not handle |
+ // the case of dictionary at the moment. |
+ if (pPattern->m_pShadingObj->IsStream()) { |
+ DrawCoonPatchMeshes( |
+ pPattern->m_ShadingType == kTensorProductPatchMeshShading, pBitmap, |
+ &FinalMatrix, ToStream(pPattern->m_pShadingObj), pFuncs, nFuncs, |
+ pColorSpace, fill_mode, alpha); |
+ } |
} break; |
} |
if (bAlphaMode) { |