Add simpler CFX_DefaultRenderDevice::Create()
Rename the existing 4-param CFX_DefaultRenderDevice::Create() to
CreateWithBackdrop(). Then add a 3-param Create() that assumes there is
no backdrop. Then most callers can pass in 1 fewer argument.
Change-Id: I55bd09ffce45c7c99462da06676bb44b40ec37cd
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/121430
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Tom 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 d68fb29..a979aad 100644
--- a/core/fpdfapi/render/cpdf_imagerenderer.cpp
+++ b/core/fpdfapi/render/cpdf_imagerenderer.cpp
@@ -296,8 +296,7 @@
CFX_Matrix new_matrix = GetDrawMatrix(rect);
CFX_DefaultRenderDevice bitmap_device;
- if (!bitmap_device.Create(rect.Width(), rect.Height(), FXDIB_Format::kArgb,
- nullptr)) {
+ if (!bitmap_device.Create(rect.Width(), rect.Height(), FXDIB_Format::kArgb)) {
return true;
}
@@ -343,8 +342,8 @@
CFX_Matrix new_matrix = GetDrawMatrix(rect);
CFX_DefaultRenderDevice bitmap_device;
- if (!bitmap_device.Create(rect.Width(), rect.Height(), FXDIB_Format::kRgb32,
- nullptr)) {
+ if (!bitmap_device.Create(rect.Width(), rect.Height(),
+ FXDIB_Format::kRgb32)) {
return true;
}
bitmap_device.Clear(0xffffffff);
diff --git a/core/fpdfapi/render/cpdf_renderstatus.cpp b/core/fpdfapi/render/cpdf_renderstatus.cpp
index e65eb96..18da44b 100644
--- a/core/fpdfapi/render/cpdf_renderstatus.cpp
+++ b/core/fpdfapi/render/cpdf_renderstatus.cpp
@@ -633,8 +633,10 @@
return true;
m_pDevice->GetDIBits(backdrop, rect.left, rect.top);
}
- if (!bitmap_device.Create(width, height, FXDIB_Format::kArgb, backdrop))
+ if (!bitmap_device.CreateWithBackdrop(width, height, FXDIB_Format::kArgb,
+ backdrop)) {
return true;
+ }
CFX_Matrix new_matrix = mtObj2Device;
new_matrix.Translate(-rect.left, -rect.top);
@@ -955,7 +957,7 @@
CFX_DefaultRenderDevice bitmap_device;
if (!bitmap_device.Create(rect.Width(), rect.Height(),
- FXDIB_Format::kArgb, nullptr)) {
+ FXDIB_Format::kArgb)) {
return true;
}
CPDF_RenderStatus status(m_pContext, &bitmap_device);
@@ -1350,7 +1352,7 @@
const int width = clip_rect.Width();
const int height = clip_rect.Height();
const FXDIB_Format format = GetFormatForLuminosity(bLuminosity);
- if (!bitmap_device.Create(width, height, format, nullptr)) {
+ if (!bitmap_device.Create(width, height, format)) {
return nullptr;
}
diff --git a/core/fpdfapi/render/cpdf_scaledrenderbuffer.cpp b/core/fpdfapi/render/cpdf_scaledrenderbuffer.cpp
index bcfb6e7..6cc52bf 100644
--- a/core/fpdfapi/render/cpdf_scaledrenderbuffer.cpp
+++ b/core/fpdfapi/render/cpdf_scaledrenderbuffer.cpp
@@ -52,7 +52,7 @@
return false;
if (pitch_size.value().size <= kImageSizeLimitBytes &&
- m_pBitmapDevice->Create(width, height, dibFormat, nullptr)) {
+ m_pBitmapDevice->Create(width, height, dibFormat)) {
break;
}
m_Matrix.Scale(0.5f, 0.5f);
diff --git a/core/fxge/cfx_defaultrenderdevice.cpp b/core/fxge/cfx_defaultrenderdevice.cpp
index a1148b5..ce34219 100644
--- a/core/fxge/cfx_defaultrenderdevice.cpp
+++ b/core/fxge/cfx_defaultrenderdevice.cpp
@@ -79,14 +79,21 @@
bool CFX_DefaultRenderDevice::Create(int width,
int height,
- FXDIB_Format format,
- RetainPtr<CFX_DIBitmap> pBackdropBitmap) {
+ FXDIB_Format format) {
+ return CreateWithBackdrop(width, height, format, nullptr);
+}
+
+bool CFX_DefaultRenderDevice::CreateWithBackdrop(
+ int width,
+ int height,
+ FXDIB_Format format,
+ RetainPtr<CFX_DIBitmap> backdrop) {
#if defined(PDF_USE_SKIA)
if (UseSkiaRenderer()) {
- return CreateSkia(width, height, format, pBackdropBitmap);
+ return CreateSkia(width, height, format, backdrop);
}
#endif
- return CreateAgg(width, height, format, pBackdropBitmap);
+ return CreateAgg(width, height, format, backdrop);
}
void CFX_DefaultRenderDevice::Clear(uint32_t color) {
diff --git a/core/fxge/cfx_defaultrenderdevice.h b/core/fxge/cfx_defaultrenderdevice.h
index 5f0bd38..b63e7d9 100644
--- a/core/fxge/cfx_defaultrenderdevice.h
+++ b/core/fxge/cfx_defaultrenderdevice.h
@@ -27,16 +27,18 @@
RetainPtr<CFX_DIBitmap> pBitmap,
RetainPtr<CFX_DIBitmap> pBackdropBitmap,
bool bGroupKnockout);
- bool Create(int width,
- int height,
- FXDIB_Format format,
- RetainPtr<CFX_DIBitmap> pBackdropBitmap);
- void Clear(uint32_t color);
-
#if defined(PDF_USE_SKIA)
bool AttachCanvas(SkCanvas* canvas);
#endif
+ bool Create(int width, int height, FXDIB_Format format);
+ bool CreateWithBackdrop(int width,
+ int height,
+ FXDIB_Format format,
+ RetainPtr<CFX_DIBitmap> backdrop);
+
+ void Clear(uint32_t color);
+
// Runtime check to see if Skia is the renderer variant in use.
static bool UseSkiaRenderer();
diff --git a/core/fxge/cfx_defaultrenderdevice_unittest.cpp b/core/fxge/cfx_defaultrenderdevice_unittest.cpp
index 9304a8c..0eb8b43 100644
--- a/core/fxge/cfx_defaultrenderdevice_unittest.cpp
+++ b/core/fxge/cfx_defaultrenderdevice_unittest.cpp
@@ -15,8 +15,7 @@
TEST(CFX_DefaultRenderDeviceTest, GetClipBox_Default) {
CFX_DefaultRenderDevice device;
- ASSERT_TRUE(device.Create(/*width=*/16, /*height=*/16, FXDIB_Format::kArgb,
- /*pBackdropBitmap=*/nullptr));
+ ASSERT_TRUE(device.Create(/*width=*/16, /*height=*/16, FXDIB_Format::kArgb));
EXPECT_EQ(FX_RECT(0, 0, 16, 16), device.GetClipBox());
}
@@ -30,8 +29,7 @@
CFX_FillRenderOptions::FillType::kEvenOdd);
CFX_DefaultRenderDevice device;
- ASSERT_TRUE(device.Create(/*width=*/16, /*height=*/16, FXDIB_Format::kArgb,
- /*pBackdropBitmap=*/nullptr));
+ ASSERT_TRUE(device.Create(/*width=*/16, /*height=*/16, FXDIB_Format::kArgb));
CFX_Path path;
path.AppendRect(2, 4, 14, 12);
@@ -48,8 +46,7 @@
const CFX_GraphStateData graphics_state;
CFX_DefaultRenderDevice device;
- ASSERT_TRUE(device.Create(/*width=*/16, /*height=*/16, FXDIB_Format::kArgb,
- /*pBackdropBitmap=*/nullptr));
+ ASSERT_TRUE(device.Create(/*width=*/16, /*height=*/16, FXDIB_Format::kArgb));
CFX_Path path;
path.AppendRect(2, 4, 14, 12);
@@ -61,8 +58,7 @@
TEST(CFX_DefaultRenderDeviceTest, GetClipBox_Rect) {
CFX_DefaultRenderDevice device;
- ASSERT_TRUE(device.Create(/*width=*/16, /*height=*/16, FXDIB_Format::kArgb,
- /*pBackdropBitmap=*/nullptr));
+ ASSERT_TRUE(device.Create(/*width=*/16, /*height=*/16, FXDIB_Format::kArgb));
EXPECT_TRUE(device.SetClip_Rect({2, 4, 14, 12}));
@@ -71,8 +67,7 @@
TEST(CFX_DefaultRenderDeviceTest, GetClipBox_Empty) {
CFX_DefaultRenderDevice device;
- ASSERT_TRUE(device.Create(/*width=*/16, /*height=*/16, FXDIB_Format::kArgb,
- /*pBackdropBitmap=*/nullptr));
+ ASSERT_TRUE(device.Create(/*width=*/16, /*height=*/16, FXDIB_Format::kArgb));
EXPECT_TRUE(device.SetClip_Rect({2, 8, 14, 8}));