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 d4dd8ec211317006ca1c0914506365449c4c8f46..94f38c5186abe97f724101fa7577b100f26f095f 100644 |
--- a/core/fpdfapi/fpdf_render/fpdf_render_pattern.cpp |
+++ b/core/fpdfapi/fpdf_render/fpdf_render_pattern.cpp |
@@ -859,6 +859,11 @@ void CPDF_RenderStatus::DrawShading(CPDF_ShadingPattern* pPattern, |
rect.Transform(pMatrix); |
clip_rect.Intersect(rect.GetOutterRect()); |
} |
+ if (m_pDevice->GetDeviceCaps(FXDC_RENDER_CAPS) & FXRC_SHADING && |
+ m_pDevice->GetDeviceDriver()->DrawShading(pPattern, pMatrix, alpha, |
+ bAlphaMode)) { |
+ return; |
+ } |
CPDF_DeviceBuffer buffer; |
buffer.Initialize(m_pContext, m_pDevice, &clip_rect, m_pCurObj, 150); |
CFX_Matrix FinalMatrix = *pMatrix; |