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}));