Remove 1 BPP support from cfx_agg_devicedriver.cpp

Since CFX_AggDeviceDriver asserts its bitmap is never 1 BPP, the
internal CFX_AggRenderer class will never need to handle 1 BPP bitmaps.
Remove that code. Along the way, upgrade cheap DCHECKs to CHECKs.

Change-Id: Iaa62ad97fde57e775057275b23f786f7f904f17a
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/123152
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Tom Sepez <tsepez@google.com>
diff --git a/core/fxge/agg/cfx_agg_devicedriver.cpp b/core/fxge/agg/cfx_agg_devicedriver.cpp
index e9931c0..ec86ba1 100644
--- a/core/fxge/agg/cfx_agg_devicedriver.cpp
+++ b/core/fxge/agg/cfx_agg_devicedriver.cpp
@@ -390,15 +390,6 @@
                      int clip_right,
                      const uint8_t* clip_scan);
 
-  void CompositeSpan1bpp(uint8_t* dest_scan,
-                         int Bpp,
-                         int span_left,
-                         int span_len,
-                         const uint8_t* cover_scan,
-                         int clip_left,
-                         int clip_right,
-                         const uint8_t* clip_scan);
-
   void CompositeSpanGray(uint8_t* dest_scan,
                          int Bpp,
                          int span_left,
@@ -426,21 +417,17 @@
                         int clip_right,
                         const uint8_t* clip_scan);
 
-  void CompositeSpan1bppHelper(uint8_t* dest_scan,
-                               int col_start,
-                               int col_end,
-                               const uint8_t* cover_scan,
-                               const uint8_t* clip_scan,
-                               int span_left);
-
   static CompositeSpanFunc GetCompositeSpanFunc(
       const RetainPtr<CFX_DIBitmap>& device) {
-    if (device->GetBPP() == 1)
-      return &CFX_AggRenderer::CompositeSpan1bpp;
-    if (device->GetBPP() == 8)
+    CHECK_NE(device->GetBPP(), 1);
+    if (device->GetBPP() == 8) {
       return &CFX_AggRenderer::CompositeSpanGray;
-    if (device->GetFormat() == FXDIB_Format::kArgb)
+    }
+    const FXDIB_Format format = device->GetFormat();
+    if (format == FXDIB_Format::kArgb) {
       return &CFX_AggRenderer::CompositeSpanARGB;
+    }
+    CHECK(format == FXDIB_Format::kRgb || format == FXDIB_Format::kRgb32);
     return &CFX_AggRenderer::CompositeSpanRGB;
   }
 
@@ -493,17 +480,13 @@
                                     int clip_left,
                                     int clip_right,
                                     const uint8_t* clip_scan) {
+  CHECK(Bpp);
   int col_start = GetColStart(span_left, clip_left);
   int col_end = GetColEnd(span_left, span_len, clip_right);
   const auto& bgr = GetBGR();
   UNSAFE_TODO({
-    if (Bpp) {
-      dest_scan += col_start * Bpp;
-      backdrop_scan += col_start * Bpp;
-    } else {
-      dest_scan += col_start / 8;
-      backdrop_scan += col_start / 8;
-    }
+    dest_scan += col_start * Bpp;
+    backdrop_scan += col_start * Bpp;
     if (m_bRgbByteOrder) {
       if (Bpp == 4 && bDestAlpha) {
         for (int col = col_start; col < col_end; col++) {
@@ -614,42 +597,21 @@
       }
       return;
     }
-    if (Bpp == 1) {
-      const int gray = GetGray();
-      for (int col = col_start; col < col_end; col++) {
-        int src_alpha = GetSrcAlpha(clip_scan, col);
-        if (m_bFullCover) {
-          *dest_scan = FXDIB_ALPHA_MERGE(*backdrop_scan++, gray, src_alpha);
-          continue;
-        }
-        int gray_merged = FXDIB_ALPHA_MERGE(*backdrop_scan++, gray, src_alpha);
-        *dest_scan =
-            FXDIB_ALPHA_MERGE(*dest_scan, gray_merged, cover_scan[col]);
-        dest_scan++;
+    CHECK_EQ(Bpp, 1);
+    const int gray = GetGray();
+    for (int col = col_start; col < col_end; col++) {
+      int src_alpha = GetSrcAlpha(clip_scan, col);
+      if (m_bFullCover) {
+        *dest_scan = FXDIB_ALPHA_MERGE(*backdrop_scan++, gray, src_alpha);
+        continue;
       }
-      return;
+      int gray_merged = FXDIB_ALPHA_MERGE(*backdrop_scan++, gray, src_alpha);
+      *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, gray_merged, cover_scan[col]);
+      dest_scan++;
     }
-    CompositeSpan1bppHelper(dest_scan, col_start, col_end, cover_scan,
-                            clip_scan, span_left);
   });
 }
 
-void CFX_AggRenderer::CompositeSpan1bpp(uint8_t* dest_scan,
-                                        int Bpp,
-                                        int span_left,
-                                        int span_len,
-                                        const uint8_t* cover_scan,
-                                        int clip_left,
-                                        int clip_right,
-                                        const uint8_t* clip_scan) {
-  DCHECK(!m_bRgbByteOrder);
-  int col_start = GetColStart(span_left, clip_left);
-  int col_end = GetColEnd(span_left, span_len, clip_right);
-  UNSAFE_TODO(dest_scan += col_start / 8);
-  CompositeSpan1bppHelper(dest_scan, col_start, col_end, cover_scan, clip_scan,
-                          span_left);
-}
-
 void CFX_AggRenderer::CompositeSpanGray(uint8_t* dest_scan,
                                         int Bpp,
                                         int span_left,
@@ -862,7 +824,8 @@
                         .subspan(m_pBackdropDevice->GetPitch() * y)
                         .data();
   }
-  int Bpp = m_pDevice->GetBPP() / 8;
+  const int Bpp = m_pDevice->GetBPP() / 8;
+  CHECK_NE(Bpp, 0);
   bool bDestAlpha = m_pDevice->IsAlphaFormat() || m_pDevice->IsMaskFormat();
   unsigned num_spans = sl.num_spans();
   typename Scanline::const_iterator span = sl.begin();
@@ -873,15 +836,9 @@
       }
 
       int x = span->x;
-      uint8_t* dest_pos = nullptr;
-      const uint8_t* backdrop_pos = nullptr;
-      if (Bpp) {
-        backdrop_pos = backdrop_scan ? backdrop_scan + x * Bpp : nullptr;
-        dest_pos = dest_scan + x * Bpp;
-      } else {
-        dest_pos = dest_scan + x / 8;
-        backdrop_pos = backdrop_scan ? backdrop_scan + x / 8 : nullptr;
-      }
+      uint8_t* dest_pos = dest_scan + x * Bpp;
+      const uint8_t* backdrop_pos =
+          backdrop_scan ? backdrop_scan + x * Bpp : nullptr;
       const uint8_t* clip_pos = nullptr;
       if (m_pClipMask) {
         // TODO(crbug.com/1382604): use subspan arithmetic.
@@ -905,37 +862,6 @@
   });
 }
 
-void CFX_AggRenderer::CompositeSpan1bppHelper(uint8_t* dest_scan,
-                                              int col_start,
-                                              int col_end,
-                                              const uint8_t* cover_scan,
-                                              const uint8_t* clip_scan,
-                                              int span_left) {
-  int index = 0;
-  if (m_pDevice->HasPalette()) {
-    for (int i = 0; i < 2; i++) {
-      if (m_pDevice->GetPaletteSpan()[i] == m_Color)
-        index = i;
-    }
-  } else {
-    index = (static_cast<uint8_t>(m_Color) == 0xff) ? 1 : 0;
-  }
-  uint8_t* dest_scan1 = dest_scan;
-  UNSAFE_TODO({
-    for (int col = col_start; col < col_end; col++) {
-      int src_alpha = GetSourceAlpha(cover_scan, clip_scan, col);
-      if (src_alpha) {
-        if (!index) {
-          *dest_scan1 &= ~(1 << (7 - (col + span_left) % 8));
-        } else {
-          *dest_scan1 |= 1 << (7 - (col + span_left) % 8);
-        }
-      }
-      dest_scan1 = dest_scan + (span_left % 8 + col - col_start + 1) / 8;
-    }
-  });
-}
-
 template <class BaseRenderer>
 class RendererScanLineAaOffset {
  public:
@@ -1031,9 +957,9 @@
       m_bRgbByteOrder(bRgbByteOrder),
       m_bGroupKnockout(bGroupKnockout),
       m_pBackdropBitmap(std::move(pBackdropBitmap)) {
-  DCHECK(m_pBitmap);
-  DCHECK_NE(m_pBitmap->GetFormat(), FXDIB_Format::k1bppMask);
-  DCHECK_NE(m_pBitmap->GetFormat(), FXDIB_Format::k1bppRgb);
+  CHECK(m_pBitmap);
+  CHECK_NE(m_pBitmap->GetFormat(), FXDIB_Format::k1bppMask);
+  CHECK_NE(m_pBitmap->GetFormat(), FXDIB_Format::k1bppRgb);
   InitPlatform();
 }