Give variables better names in CPDF_ImageRenderer Rename many variables so their names more accurately describe what they do. Also make some tweaks like changing CalculateDrawImage() to take references, and removing spurious casts. Change-Id: Ic084f716fc0d9586bd10065a061868d241fd932d Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/115731 Reviewed-by: Tom Sepez <tsepez@chromium.org> Reviewed-by: Thomas Sepez <tsepez@google.com> Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdfapi/render/cpdf_imagerenderer.cpp b/core/fpdfapi/render/cpdf_imagerenderer.cpp index ae8fff5..9ab7075 100644 --- a/core/fpdfapi/render/cpdf_imagerenderer.cpp +++ b/core/fpdfapi/render/cpdf_imagerenderer.cpp
@@ -222,21 +222,20 @@ } void CPDF_ImageRenderer::CalculateDrawImage( - CFX_DefaultRenderDevice* pBitmapDevice1, - CFX_DefaultRenderDevice* pBitmapDevice2, + CFX_DefaultRenderDevice& bitmap_device, + CFX_DefaultRenderDevice& mask_device, RetainPtr<CFX_DIBBase> pDIBBase, const CFX_Matrix& mtNewMatrix, const FX_RECT& rect) const { - CPDF_RenderStatus bitmap_render(m_pRenderStatus->GetContext(), - pBitmapDevice2); - bitmap_render.SetDropObjects(m_pRenderStatus->GetDropObjects()); - bitmap_render.SetStdCS(true); - bitmap_render.Initialize(nullptr, nullptr); + CPDF_RenderStatus mask_status(m_pRenderStatus->GetContext(), &mask_device); + mask_status.SetDropObjects(m_pRenderStatus->GetDropObjects()); + mask_status.SetStdCS(true); + mask_status.Initialize(nullptr, nullptr); - CPDF_ImageRenderer image_render(&bitmap_render); - if (image_render.Start(std::move(pDIBBase), 0xffffffff, mtNewMatrix, - m_ResampleOptions, true)) { - image_render.Continue(nullptr); + CPDF_ImageRenderer mask_renderer(&mask_status); + if (mask_renderer.Start(std::move(pDIBBase), 0xffffffff, mtNewMatrix, + m_ResampleOptions, true)) { + mask_renderer.Continue(nullptr); } if (m_pLoader->MatteColor() == 0xffffffff) return; @@ -245,9 +244,8 @@ int matte_b = FXARGB_B(m_pLoader->MatteColor()); for (int row = 0; row < rect.Height(); row++) { uint8_t* dest_scan = - pBitmapDevice1->GetBitmap()->GetWritableScanline(row).data(); - const uint8_t* mask_scan = - pBitmapDevice2->GetBitmap()->GetScanline(row).data(); + bitmap_device.GetBitmap()->GetWritableScanline(row).data(); + const uint8_t* mask_scan = mask_device.GetBitmap()->GetScanline(row).data(); for (int col = 0; col < rect.Width(); col++) { int alpha = *mask_scan++; if (!alpha) { @@ -280,42 +278,40 @@ return false; CFX_Matrix new_matrix = GetDrawMatrix(rect); - CFX_DefaultRenderDevice bitmap_device1; - if (!bitmap_device1.Create(rect.Width(), rect.Height(), FXDIB_Format::kArgb, - nullptr)) { + CFX_DefaultRenderDevice bitmap_device; + if (!bitmap_device.Create(rect.Width(), rect.Height(), FXDIB_Format::kArgb, + nullptr)) { return true; } - CPDF_RenderStatus bitmap_render(m_pRenderStatus->GetContext(), - &bitmap_device1); - bitmap_render.SetOptions(GetRenderOptions()); - bitmap_render.SetDropObjects(m_pRenderStatus->GetDropObjects()); - bitmap_render.SetStdCS(true); - bitmap_render.Initialize(nullptr, nullptr); + CPDF_RenderStatus bitmap_status(m_pRenderStatus->GetContext(), + &bitmap_device); + bitmap_status.SetOptions(GetRenderOptions()); + bitmap_status.SetDropObjects(m_pRenderStatus->GetDropObjects()); + bitmap_status.SetStdCS(true); + bitmap_status.Initialize(nullptr, nullptr); - CFX_Matrix patternDevice = m_mtObj2Device; - patternDevice.Translate(static_cast<float>(-rect.left), - static_cast<float>(-rect.top)); + CFX_Matrix pattern_matrix = m_mtObj2Device; + pattern_matrix.Translate(-rect.left, -rect.top); if (CPDF_TilingPattern* pTilingPattern = m_pPattern->AsTilingPattern()) { - bitmap_render.DrawTilingPattern(pTilingPattern, m_pImageObject, - patternDevice, false); + bitmap_status.DrawTilingPattern(pTilingPattern, m_pImageObject, + pattern_matrix, false); } else if (CPDF_ShadingPattern* pShadingPattern = m_pPattern->AsShadingPattern()) { - bitmap_render.DrawShadingPattern(pShadingPattern, m_pImageObject, - patternDevice, false); + bitmap_status.DrawShadingPattern(pShadingPattern, m_pImageObject, + pattern_matrix, false); } - CFX_DefaultRenderDevice bitmap_device2; - if (!bitmap_device2.Create(rect.Width(), rect.Height(), - FXDIB_Format::k8bppRgb, nullptr)) { + CFX_DefaultRenderDevice mask_device; + if (!mask_device.Create(rect.Width(), rect.Height(), FXDIB_Format::k8bppRgb, + nullptr)) { return true; } - CalculateDrawImage(&bitmap_device1, &bitmap_device2, m_pDIBBase, new_matrix, - rect); - bitmap_device2.GetBitmap()->ConvertFormat(FXDIB_Format::k8bppMask); - bitmap_device1.GetBitmap()->MultiplyAlphaMask(bitmap_device2.GetBitmap()); + CalculateDrawImage(bitmap_device, mask_device, m_pDIBBase, new_matrix, rect); + mask_device.GetBitmap()->ConvertFormat(FXDIB_Format::k8bppMask); + bitmap_device.GetBitmap()->MultiplyAlphaMask(mask_device.GetBitmap()); m_pRenderStatus->GetRenderDevice()->SetDIBitsWithBlend( - bitmap_device1.GetBitmap(), rect.left, rect.top, m_BlendType); + bitmap_device.GetBitmap(), rect.left, rect.top, m_BlendType); return false; } @@ -330,42 +326,43 @@ return false; CFX_Matrix new_matrix = GetDrawMatrix(rect); - CFX_DefaultRenderDevice bitmap_device1; - if (!bitmap_device1.Create(rect.Width(), rect.Height(), FXDIB_Format::kRgb32, - nullptr)) { + CFX_DefaultRenderDevice bitmap_device; + if (!bitmap_device.Create(rect.Width(), rect.Height(), FXDIB_Format::kRgb32, + nullptr)) { return true; } - bitmap_device1.Clear(0xffffffff); - CPDF_RenderStatus bitmap_render(m_pRenderStatus->GetContext(), - &bitmap_device1); - bitmap_render.SetDropObjects(m_pRenderStatus->GetDropObjects()); - bitmap_render.SetStdCS(true); - bitmap_render.Initialize(nullptr, nullptr); - CPDF_ImageRenderer image_render(&bitmap_render); - if (image_render.Start(m_pDIBBase, 0, new_matrix, m_ResampleOptions, true)) { - image_render.Continue(nullptr); + bitmap_device.Clear(0xffffffff); + CPDF_RenderStatus bitmap_status(m_pRenderStatus->GetContext(), + &bitmap_device); + bitmap_status.SetDropObjects(m_pRenderStatus->GetDropObjects()); + bitmap_status.SetStdCS(true); + bitmap_status.Initialize(nullptr, nullptr); + CPDF_ImageRenderer bitmap_renderer(&bitmap_status); + if (bitmap_renderer.Start(m_pDIBBase, 0, new_matrix, m_ResampleOptions, + true)) { + bitmap_renderer.Continue(nullptr); } - CFX_DefaultRenderDevice bitmap_device2; - if (!bitmap_device2.Create(rect.Width(), rect.Height(), - FXDIB_Format::k8bppRgb, nullptr)) { + CFX_DefaultRenderDevice mask_device; + if (!mask_device.Create(rect.Width(), rect.Height(), FXDIB_Format::k8bppRgb, + nullptr)) { return true; } - CalculateDrawImage(&bitmap_device1, &bitmap_device2, m_pLoader->GetMask(), + CalculateDrawImage(bitmap_device, mask_device, m_pLoader->GetMask(), new_matrix, rect); - DCHECK(!bitmap_device2.GetBitmap()->HasPalette()); - bitmap_device2.GetBitmap()->ConvertFormat(FXDIB_Format::k8bppMask); + DCHECK(!mask_device.GetBitmap()->HasPalette()); + mask_device.GetBitmap()->ConvertFormat(FXDIB_Format::k8bppMask); #if defined(PDF_USE_SKIA) if (CFX_DefaultRenderDevice::UseSkiaRenderer() && m_pRenderStatus->GetRenderDevice()->SetBitsWithMask( - bitmap_device1.GetBitmap(), bitmap_device2.GetBitmap(), rect.left, + bitmap_device.GetBitmap(), mask_device.GetBitmap(), rect.left, rect.top, m_Alpha, m_BlendType)) { return false; } #endif - bitmap_device1.GetBitmap()->MultiplyAlphaMask(bitmap_device2.GetBitmap()); - bitmap_device1.GetBitmap()->MultiplyAlpha(m_Alpha); + bitmap_device.GetBitmap()->MultiplyAlphaMask(mask_device.GetBitmap()); + bitmap_device.GetBitmap()->MultiplyAlpha(m_Alpha); m_pRenderStatus->GetRenderDevice()->SetDIBitsWithBlend( - bitmap_device1.GetBitmap(), rect.left, rect.top, m_BlendType); + bitmap_device.GetBitmap(), rect.left, rect.top, m_BlendType); return false; }
diff --git a/core/fpdfapi/render/cpdf_imagerenderer.h b/core/fpdfapi/render/cpdf_imagerenderer.h index a4203f5..2a8585c 100644 --- a/core/fpdfapi/render/cpdf_imagerenderer.h +++ b/core/fpdfapi/render/cpdf_imagerenderer.h
@@ -64,8 +64,8 @@ bool NotDrawing() const; FX_RECT GetDrawRect() const; CFX_Matrix GetDrawMatrix(const FX_RECT& rect) const; - void CalculateDrawImage(CFX_DefaultRenderDevice* pBitmapDevice1, - CFX_DefaultRenderDevice* pBitmapDevice2, + void CalculateDrawImage(CFX_DefaultRenderDevice& bitmap_device, + CFX_DefaultRenderDevice& mask_device, RetainPtr<CFX_DIBBase> pDIBBase, const CFX_Matrix& mtNewMatrix, const FX_RECT& rect) const;