| Index: core/fpdfapi/fpdf_render/fpdf_render_image.cpp
|
| diff --git a/core/fpdfapi/fpdf_render/fpdf_render_image.cpp b/core/fpdfapi/fpdf_render/fpdf_render_image.cpp
|
| index d3fbb7990cb353f6c5b59102b39a2ce9e8556a8c..acfb20314a23b88429c62c78245ddb0b48085351 100644
|
| --- a/core/fpdfapi/fpdf_render/fpdf_render_image.cpp
|
| +++ b/core/fpdfapi/fpdf_render/fpdf_render_image.cpp
|
| @@ -48,7 +48,15 @@ void CPDF_RenderStatus::CompositeDIBitmap(CFX_DIBitmap* pDIBitmap,
|
| if (blend_mode == FXDIB_BLEND_NORMAL) {
|
| if (!pDIBitmap->IsAlphaMask()) {
|
| if (bitmap_alpha < 255) {
|
| +#ifdef _SKIA_SUPPORT_
|
| + void* dummy;
|
| + CFX_Matrix m(pDIBitmap->GetWidth(), 0, 0, -pDIBitmap->GetHeight(), left,
|
| + top + pDIBitmap->GetHeight());
|
| + m_pDevice->StartDIBits(pDIBitmap, bitmap_alpha, 0, &m, 0, dummy);
|
| + return;
|
| +#else
|
| pDIBitmap->MultiplyAlpha(bitmap_alpha);
|
| +#endif
|
| }
|
| if (m_pDevice->SetDIBits(pDIBitmap, left, top)) {
|
| return;
|
| @@ -693,6 +701,9 @@ FX_BOOL CPDF_ImageRenderer::DrawMaskedImage() {
|
| }
|
| bitmap_device2.GetBitmap()->ConvertFormat(FXDIB_8bppMask);
|
| bitmap_device1.GetBitmap()->MultiplyAlpha(bitmap_device2.GetBitmap());
|
| +#ifdef _SKIA_SUPPORT_
|
| + bitmap_device1.PreMultiply(); // convert unpremultiplied to premultiplied
|
| +#endif
|
| if (m_BitmapAlpha < 255) {
|
| bitmap_device1.GetBitmap()->MultiplyAlpha(m_BitmapAlpha);
|
| }
|
|
|