Make CFX_RenderDevice::GetDIBits() take RetainPtrs by value
More consistently pass bitmaps around by value, with move semantics,
rather than by const-ref. Change related code in the call stack to do
the same. Also change variable names to follow the style guide.
Change-Id: Ibd38c658d9836a030d163d1163636cd666f689e3
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/115813
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Thomas Sepez <tsepez@google.com>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fpdfapi/render/cpdf_renderstatus.cpp b/core/fpdfapi/render/cpdf_renderstatus.cpp
index 0daefe3..4adfb5b 100644
--- a/core/fpdfapi/render/cpdf_renderstatus.cpp
+++ b/core/fpdfapi/render/cpdf_renderstatus.cpp
@@ -717,33 +717,33 @@
bool bBackAlphaRequired) {
int width = bbox.Width();
int height = bbox.Height();
- auto pBackdrop = pdfium::MakeRetain<CFX_DIBitmap>();
+ auto backdrop = pdfium::MakeRetain<CFX_DIBitmap>();
if (bBackAlphaRequired && !m_bDropObjects) {
- if (!pBackdrop->Create(width, height, FXDIB_Format::kArgb)) {
+ if (!backdrop->Create(width, height, FXDIB_Format::kArgb)) {
return nullptr;
}
} else {
- if (!m_pDevice->CreateCompatibleBitmap(pBackdrop, width, height)) {
+ if (!m_pDevice->CreateCompatibleBitmap(backdrop, width, height)) {
return nullptr;
}
}
const int cap_to_check =
- pBackdrop->IsAlphaFormat() ? FXRC_ALPHA_OUTPUT : FXRC_GET_BITS;
+ backdrop->IsAlphaFormat() ? FXRC_ALPHA_OUTPUT : FXRC_GET_BITS;
if (m_pDevice->GetRenderCaps() & cap_to_check) {
- m_pDevice->GetDIBits(pBackdrop, bbox.left, bbox.top);
- return pBackdrop;
+ m_pDevice->GetDIBits(backdrop, bbox.left, bbox.top);
+ return backdrop;
}
CFX_Matrix FinalMatrix = m_DeviceMatrix;
FinalMatrix.Translate(-bbox.left, -bbox.top);
- if (!pBackdrop->IsAlphaFormat()) {
- pBackdrop->Clear(0xffffffff);
+ if (!backdrop->IsAlphaFormat()) {
+ backdrop->Clear(0xffffffff);
}
CFX_DefaultRenderDevice device;
- device.Attach(pBackdrop);
+ device.Attach(backdrop);
m_pContext->Render(&device, pObj, &m_Options, &FinalMatrix);
- return pBackdrop;
+ return backdrop;
}
std::unique_ptr<CPDF_GraphicStates> CPDF_RenderStatus::CloneObjStates(
diff --git a/core/fxge/agg/fx_agg_driver.cpp b/core/fxge/agg/fx_agg_driver.cpp
index 49f9090..cf147a7 100644
--- a/core/fxge/agg/fx_agg_driver.cpp
+++ b/core/fxge/agg/fx_agg_driver.cpp
@@ -1268,14 +1268,13 @@
return true;
}
-bool CFX_AggDeviceDriver::GetDIBits(const RetainPtr<CFX_DIBitmap>& pBitmap,
+bool CFX_AggDeviceDriver::GetDIBits(RetainPtr<CFX_DIBitmap> bitmap,
int left,
int top) {
if (m_pBitmap->GetBuffer().empty())
return true;
- FX_RECT rect(left, top, left + pBitmap->GetWidth(),
- top + pBitmap->GetHeight());
+ FX_RECT rect(left, top, left + bitmap->GetWidth(), top + bitmap->GetHeight());
RetainPtr<CFX_DIBitmap> pBack;
if (m_pBackdropBitmap) {
pBack = m_pBackdropBitmap->ClipTo(rect);
@@ -1293,12 +1292,12 @@
left = std::min(left, 0);
top = std::min(top, 0);
if (m_bRgbByteOrder) {
- RgbByteOrderTransferBitmap(std::move(pBitmap), rect.Width(), rect.Height(),
+ RgbByteOrderTransferBitmap(std::move(bitmap), rect.Width(), rect.Height(),
std::move(pBack), left, top);
return true;
}
- return pBitmap->TransferBitmap(0, 0, rect.Width(), rect.Height(),
- std::move(pBack), left, top);
+ return bitmap->TransferBitmap(0, 0, rect.Width(), rect.Height(),
+ std::move(pBack), left, top);
}
RetainPtr<CFX_DIBitmap> CFX_AggDeviceDriver::GetBackDrop() {
diff --git a/core/fxge/agg/fx_agg_driver.h b/core/fxge/agg/fx_agg_driver.h
index 47281c8..39b2ac2 100644
--- a/core/fxge/agg/fx_agg_driver.h
+++ b/core/fxge/agg/fx_agg_driver.h
@@ -63,9 +63,7 @@
uint32_t fill_color,
BlendMode blend_type) override;
bool GetClipBox(FX_RECT* pRect) override;
- bool GetDIBits(const RetainPtr<CFX_DIBitmap>& pBitmap,
- int left,
- int top) override;
+ bool GetDIBits(RetainPtr<CFX_DIBitmap> bitmap, int left, int top) override;
RetainPtr<CFX_DIBitmap> GetBackDrop() override;
bool SetDIBits(RetainPtr<const CFX_DIBBase> bitmap,
uint32_t argb,
diff --git a/core/fxge/cfx_renderdevice.cpp b/core/fxge/cfx_renderdevice.cpp
index 2617e0d..de59d3d 100644
--- a/core/fxge/cfx_renderdevice.cpp
+++ b/core/fxge/cfx_renderdevice.cpp
@@ -877,11 +877,11 @@
path_options, blend_type);
}
-bool CFX_RenderDevice::GetDIBits(const RetainPtr<CFX_DIBitmap>& pBitmap,
+bool CFX_RenderDevice::GetDIBits(RetainPtr<CFX_DIBitmap> bitmap,
int left,
int top) {
return (m_RenderCaps & FXRC_GET_BITS) &&
- m_pDeviceDriver->GetDIBits(pBitmap, left, top);
+ m_pDeviceDriver->GetDIBits(std::move(bitmap), left, top);
}
bool CFX_RenderDevice::SetDIBits(RetainPtr<const CFX_DIBBase> bitmap,
diff --git a/core/fxge/cfx_renderdevice.h b/core/fxge/cfx_renderdevice.h
index de0a84b..96dd1b7 100644
--- a/core/fxge/cfx_renderdevice.h
+++ b/core/fxge/cfx_renderdevice.h
@@ -94,7 +94,7 @@
}
RetainPtr<CFX_DIBitmap> GetBackDrop();
- bool GetDIBits(const RetainPtr<CFX_DIBitmap>& pBitmap, int left, int top);
+ bool GetDIBits(RetainPtr<CFX_DIBitmap> bitmap, int left, int top);
bool SetDIBits(RetainPtr<const CFX_DIBBase> bitmap, int left, int top);
bool SetDIBitsWithBlend(RetainPtr<const CFX_DIBBase> bitmap,
int left,
diff --git a/core/fxge/renderdevicedriver_iface.cpp b/core/fxge/renderdevicedriver_iface.cpp
index e9db61a..5d71e0e 100644
--- a/core/fxge/renderdevicedriver_iface.cpp
+++ b/core/fxge/renderdevicedriver_iface.cpp
@@ -34,7 +34,7 @@
return false;
}
-bool RenderDeviceDriverIface::GetDIBits(const RetainPtr<CFX_DIBitmap>& pBitmap,
+bool RenderDeviceDriverIface::GetDIBits(RetainPtr<CFX_DIBitmap> bitmap,
int left,
int top) {
return false;
diff --git a/core/fxge/renderdevicedriver_iface.h b/core/fxge/renderdevicedriver_iface.h
index d391a23..3239946 100644
--- a/core/fxge/renderdevicedriver_iface.h
+++ b/core/fxge/renderdevicedriver_iface.h
@@ -68,9 +68,7 @@
BlendMode blend_type);
virtual bool GetClipBox(FX_RECT* pRect) = 0;
- virtual bool GetDIBits(const RetainPtr<CFX_DIBitmap>& pBitmap,
- int left,
- int top);
+ virtual bool GetDIBits(RetainPtr<CFX_DIBitmap> bitmap, int left, int top);
virtual RetainPtr<CFX_DIBitmap> GetBackDrop();
virtual bool SetDIBits(RetainPtr<const CFX_DIBBase> bitmap,
uint32_t color,
diff --git a/core/fxge/skia/fx_skia_device.cpp b/core/fxge/skia/fx_skia_device.cpp
index 7b252de..e4dbbf9 100644
--- a/core/fxge/skia/fx_skia_device.cpp
+++ b/core/fxge/skia/fx_skia_device.cpp
@@ -1358,7 +1358,7 @@
return true;
}
-bool CFX_SkiaDeviceDriver::GetDIBits(const RetainPtr<CFX_DIBitmap>& pBitmap,
+bool CFX_SkiaDeviceDriver::GetDIBits(RetainPtr<CFX_DIBitmap> bitmap,
int left,
int top) {
const uint8_t* input_buffer = m_pBitmap->GetBuffer().data();
@@ -1366,7 +1366,7 @@
return true;
}
- uint8_t* output_buffer = pBitmap->GetWritableBuffer().data();
+ uint8_t* output_buffer = bitmap->GetWritableBuffer().data();
DCHECK(output_buffer);
SkImageInfo input_info =
@@ -1377,10 +1377,10 @@
/*rasterReleaseProc=*/nullptr, /*releaseContext=*/nullptr);
SkImageInfo output_info = SkImageInfo::Make(
- pBitmap->GetWidth(), pBitmap->GetHeight(),
+ bitmap->GetWidth(), bitmap->GetHeight(),
Get32BitSkColorType(m_bRgbByteOrder), kPremul_SkAlphaType);
sk_sp<SkSurface> output =
- SkSurfaces::WrapPixels(output_info, output_buffer, pBitmap->GetPitch());
+ SkSurfaces::WrapPixels(output_info, output_buffer, bitmap->GetPitch());
output->getCanvas()->drawImage(input, left, top, SkSamplingOptions());
return true;
diff --git a/core/fxge/skia/fx_skia_device.h b/core/fxge/skia/fx_skia_device.h
index 3f9503e..298f3f6 100644
--- a/core/fxge/skia/fx_skia_device.h
+++ b/core/fxge/skia/fx_skia_device.h
@@ -89,9 +89,7 @@
bool GetClipBox(FX_RECT* pRect) override;
/** Load device buffer into a DIB */
- bool GetDIBits(const RetainPtr<CFX_DIBitmap>& pBitmap,
- int left,
- int top) override;
+ bool GetDIBits(RetainPtr<CFX_DIBitmap> bitmap, int left, int top) override;
RetainPtr<CFX_DIBitmap> GetBackDrop() override;
diff --git a/core/fxge/win32/cgdi_display_driver.cpp b/core/fxge/win32/cgdi_display_driver.cpp
index 30baf9e..23c998f 100644
--- a/core/fxge/win32/cgdi_display_driver.cpp
+++ b/core/fxge/win32/cgdi_display_driver.cpp
@@ -34,12 +34,12 @@
return CGdiDeviceDriver::GetDeviceCaps(caps_id);
}
-bool CGdiDisplayDriver::GetDIBits(const RetainPtr<CFX_DIBitmap>& pBitmap,
+bool CGdiDisplayDriver::GetDIBits(RetainPtr<CFX_DIBitmap> bitmap,
int left,
int top) {
bool ret = false;
- int width = pBitmap->GetWidth();
- int height = pBitmap->GetHeight();
+ int width = bitmap->GetWidth();
+ int height = bitmap->GetHeight();
HBITMAP hbmp = CreateCompatibleBitmap(m_hDC, width, height);
HDC hDCMemory = CreateCompatibleDC(m_hDC);
HBITMAP holdbmp = (HBITMAP)SelectObject(hDCMemory, hbmp);
@@ -48,13 +48,13 @@
BITMAPINFO bmi;
memset(&bmi, 0, sizeof bmi);
bmi.bmiHeader.biSize = sizeof bmi.bmiHeader;
- bmi.bmiHeader.biBitCount = pBitmap->GetBPP();
+ bmi.bmiHeader.biBitCount = bitmap->GetBPP();
bmi.bmiHeader.biHeight = -height;
bmi.bmiHeader.biPlanes = 1;
bmi.bmiHeader.biWidth = width;
- if (pBitmap->GetBPP() > 8) {
+ if (bitmap->GetBPP() > 8) {
ret = ::GetDIBits(hDCMemory, hbmp, 0, height,
- pBitmap->GetWritableBuffer().data(), &bmi,
+ bitmap->GetWritableBuffer().data(), &bmi,
DIB_RGB_COLORS) == height;
} else {
auto rgb_bitmap = pdfium::MakeRetain<CFX_DIBitmap>();
@@ -62,14 +62,15 @@
bmi.bmiHeader.biBitCount = 24;
::GetDIBits(hDCMemory, hbmp, 0, height,
rgb_bitmap->GetWritableBuffer().data(), &bmi, DIB_RGB_COLORS);
- ret = pBitmap->TransferBitmap(0, 0, width, height, std::move(rgb_bitmap),
- 0, 0);
+ ret = bitmap->TransferBitmap(0, 0, width, height, std::move(rgb_bitmap),
+ 0, 0);
} else {
ret = false;
}
}
- if (ret && pBitmap->IsAlphaFormat())
- pBitmap->SetUniformOpaqueAlpha();
+ if (ret && bitmap->IsAlphaFormat()) {
+ bitmap->SetUniformOpaqueAlpha();
+ }
DeleteObject(hbmp);
DeleteObject(hDCMemory);
diff --git a/core/fxge/win32/cgdi_display_driver.h b/core/fxge/win32/cgdi_display_driver.h
index 27b982f..b819793 100644
--- a/core/fxge/win32/cgdi_display_driver.h
+++ b/core/fxge/win32/cgdi_display_driver.h
@@ -27,9 +27,7 @@
private:
// CGdiDisplayDriver:
int GetDeviceCaps(int caps_id) const override;
- bool GetDIBits(const RetainPtr<CFX_DIBitmap>& pBitmap,
- int left,
- int top) override;
+ bool GetDIBits(RetainPtr<CFX_DIBitmap> bitmap, int left, int top) override;
bool SetDIBits(RetainPtr<const CFX_DIBBase> bitmap,
uint32_t color,
const FX_RECT& src_rect,