Remove `FXDIB_Format::kRgba`.

No code ever creates bitmaps of this format, so any code that handles
this format is dead code.

Change-Id: Ib23691698fc6200c1a2b622e8440f92096a33e3d
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/75533
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fxge/dib/cfx_dibbase.cpp b/core/fxge/dib/cfx_dibbase.cpp
index e8662f2..0a973ad 100644
--- a/core/fxge/dib/cfx_dibbase.cpp
+++ b/core/fxge/dib/cfx_dibbase.cpp
@@ -1167,8 +1167,7 @@
       }
       return false;
     }
-    case FXDIB_Format::kRgb:
-    case FXDIB_Format::kRgba: {
+    case FXDIB_Format::kRgb: {
       return ConvertBuffer_Rgb(bpp, dest_format, dest_buf, dest_pitch, width,
                                height, pSrcBitmap, src_left, src_top);
     }
diff --git a/core/fxge/dib/cfx_dibitmap.cpp b/core/fxge/dib/cfx_dibitmap.cpp
index 6ce40bb..98abe25 100644
--- a/core/fxge/dib/cfx_dibitmap.cpp
+++ b/core/fxge/dib/cfx_dibitmap.cpp
@@ -135,8 +135,7 @@
       memset(pBuffer, index, m_Pitch * m_Height);
       break;
     }
-    case FXDIB_Format::kRgb:
-    case FXDIB_Format::kRgba: {
+    case FXDIB_Format::kRgb: {
       int a;
       int r;
       int g;
@@ -547,7 +546,6 @@
       return HasPalette() ? GetPaletteSpan()[*pos]
                           : (0xff000000 | ((*pos) * 0x10101));
     case FXDIB_Format::kRgb:
-    case FXDIB_Format::kRgba:
     case FXDIB_Format::kRgb32:
       return FXARGB_GETDIB(pos) | 0xff000000;
     case FXDIB_Format::kArgb:
@@ -617,12 +615,6 @@
       pos[2] = (FXARGB_R(color) * alpha + pos[2] * (255 - alpha)) / 255;
       break;
     }
-    case FXDIB_Format::kRgba: {
-      pos[0] = FXARGB_B(color);
-      pos[1] = FXARGB_G(color);
-      pos[2] = FXARGB_R(color);
-      break;
-    }
     case FXDIB_Format::kArgb:
       FXARGB_SETDIB(pos, color);
       break;
diff --git a/core/fxge/dib/cfx_imagetransformer.cpp b/core/fxge/dib/cfx_imagetransformer.cpp
index ebf898f..4604955 100644
--- a/core/fxge/dib/cfx_imagetransformer.cpp
+++ b/core/fxge/dib/cfx_imagetransformer.cpp
@@ -101,24 +101,8 @@
   v_w[3] = SDP_Table[512 - res_y];
 }
 
-FXDIB_Format GetTransformedFormat(const RetainPtr<CFX_DIBBase>& pDrc) {
-  if (pDrc->IsMask())
-    return FXDIB_Format::k8bppMask;
-
-  FXDIB_Format format = pDrc->GetFormat();
-  if (HasNoFlags(format) || format == FXDIB_Format::kArgb)
-    return FXDIB_Format::kArgb;
-  return FXDIB_Format::kRgba;
-}
-
-void WriteMonoResult(uint32_t r_bgra_cmyk, FXDIB_Format format, uint8_t* dest) {
-  if (format == FXDIB_Format::kRgba) {
-    dest[0] = static_cast<uint8_t>(r_bgra_cmyk >> 24);
-    dest[1] = static_cast<uint8_t>(r_bgra_cmyk >> 16);
-    dest[2] = static_cast<uint8_t>(r_bgra_cmyk >> 8);
-  } else {
-    *reinterpret_cast<uint32_t*>(dest) = r_bgra_cmyk;
-  }
+FXDIB_Format GetTransformedFormat(const RetainPtr<CFX_DIBBase>& pSrc) {
+  return pSrc->IsMask() ? FXDIB_Format::k8bppMask : FXDIB_Format::kArgb;
 }
 
 // Let the compiler deduce the type for |func|, which cheaper than specifying it
@@ -136,10 +120,6 @@
   if (bHasAlpha) {
     if (format == FXDIB_Format::kArgb) {
       *dest32 = ArgbEncode(func(3), red_y, green_m, blue_c);
-    } else if (format == FXDIB_Format::kRgba) {
-      dest[0] = blue_c;
-      dest[1] = green_m;
-      dest[2] = red_y;
     } else {
       *dest32 = FXCMYK_TODIB(CmykEncode(blue_c, green_m, red_y, func(3)));
     }
@@ -518,30 +498,27 @@
   }
   int destBpp = cdata.bitmap->GetBPP() / 8;
   if (IsBilinear()) {
-    auto func = [&cdata, format, &argb](const BilinearData& data,
-                                        uint8_t* dest) {
+    auto func = [&cdata, &argb](const BilinearData& data, uint8_t* dest) {
       uint8_t idx = bilinear_interpol(
           cdata.buf, data.row_offset_l, data.row_offset_r, data.src_col_l,
           data.src_col_r, data.res_x, data.res_y, 1, 0);
       uint32_t r_bgra_cmyk = argb[idx];
-      WriteMonoResult(r_bgra_cmyk, format, dest);
+      *reinterpret_cast<uint32_t*>(dest) = r_bgra_cmyk;
     };
     DoBilinearLoop(cdata, m_result, m_StretchClip, destBpp, func);
   } else if (IsBiCubic()) {
-    auto func = [&cdata, format, &argb](const BicubicData& data,
-                                        uint8_t* dest) {
+    auto func = [&cdata, &argb](const BicubicData& data, uint8_t* dest) {
       uint32_t r_bgra_cmyk = argb[bicubic_interpol(
           cdata.buf, cdata.pitch, data.pos_pixel, data.u_w, data.v_w,
           data.res_x, data.res_y, 1, 0)];
-      WriteMonoResult(r_bgra_cmyk, format, dest);
+      *reinterpret_cast<uint32_t*>(dest) = r_bgra_cmyk;
     };
     DoBicubicLoop(cdata, m_result, m_StretchClip, destBpp, func);
   } else {
-    auto func = [&cdata, format, &argb](const DownSampleData& data,
-                                        uint8_t* dest) {
+    auto func = [&cdata, &argb](const DownSampleData& data, uint8_t* dest) {
       uint32_t r_bgra_cmyk =
           argb[cdata.buf[data.src_row * cdata.pitch + data.src_col]];
-      WriteMonoResult(r_bgra_cmyk, format, dest);
+      *reinterpret_cast<uint32_t*>(dest) = r_bgra_cmyk;
     };
     DoDownSampleLoop(cdata, m_result, m_StretchClip, destBpp, func);
   }
diff --git a/core/fxge/dib/cfx_scanlinecompositor.cpp b/core/fxge/dib/cfx_scanlinecompositor.cpp
index 8c49e29..cb116ea 100644
--- a/core/fxge/dib/cfx_scanlinecompositor.cpp
+++ b/core/fxge/dib/cfx_scanlinecompositor.cpp
@@ -1558,73 +1558,6 @@
   }
 }
 
-void CompositeRow_ByteMask2Rgba(uint8_t* dest_scan,
-                                const uint8_t* src_scan,
-                                int mask_alpha,
-                                int src_r,
-                                int src_g,
-                                int src_b,
-                                int pixel_count,
-                                BlendMode blend_type,
-                                const uint8_t* clip_scan,
-                                uint8_t* dest_alpha_scan) {
-  for (int col = 0; col < pixel_count; col++) {
-    int src_alpha = GetAlphaWithSrc(mask_alpha, clip_scan, src_scan, col);
-    uint8_t back_alpha = *dest_alpha_scan;
-    if (back_alpha == 0) {
-      *dest_scan++ = src_b;
-      *dest_scan++ = src_g;
-      *dest_scan++ = src_r;
-      *dest_alpha_scan++ = src_alpha;
-      continue;
-    }
-    if (src_alpha == 0) {
-      dest_scan += 3;
-      dest_alpha_scan++;
-      continue;
-    }
-    uint8_t dest_alpha = back_alpha + src_alpha - back_alpha * src_alpha / 255;
-    *dest_alpha_scan++ = dest_alpha;
-    int alpha_ratio = src_alpha * 255 / dest_alpha;
-    if (IsNonSeparableBlendMode(blend_type)) {
-      int blended_colors[3];
-      uint8_t scan[3] = {static_cast<uint8_t>(src_b),
-                         static_cast<uint8_t>(src_g),
-                         static_cast<uint8_t>(src_r)};
-      RGB_Blend(blend_type, scan, dest_scan, blended_colors);
-      *dest_scan =
-          FXDIB_ALPHA_MERGE(*dest_scan, blended_colors[0], alpha_ratio);
-      dest_scan++;
-      *dest_scan =
-          FXDIB_ALPHA_MERGE(*dest_scan, blended_colors[1], alpha_ratio);
-      dest_scan++;
-      *dest_scan =
-          FXDIB_ALPHA_MERGE(*dest_scan, blended_colors[2], alpha_ratio);
-      dest_scan++;
-    } else if (blend_type != BlendMode::kNormal) {
-      int blended = Blend(blend_type, *dest_scan, src_b);
-      blended = FXDIB_ALPHA_MERGE(src_b, blended, back_alpha);
-      *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, blended, alpha_ratio);
-      dest_scan++;
-      blended = Blend(blend_type, *dest_scan, src_g);
-      blended = FXDIB_ALPHA_MERGE(src_g, blended, back_alpha);
-      *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, blended, alpha_ratio);
-      dest_scan++;
-      blended = Blend(blend_type, *dest_scan, src_r);
-      blended = FXDIB_ALPHA_MERGE(src_r, blended, back_alpha);
-      *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, blended, alpha_ratio);
-      dest_scan++;
-    } else {
-      *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, src_b, alpha_ratio);
-      dest_scan++;
-      *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, src_g, alpha_ratio);
-      dest_scan++;
-      *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, src_r, alpha_ratio);
-      dest_scan++;
-    }
-  }
-}
-
 void CompositeRow_ByteMask2Rgb(uint8_t* dest_scan,
                                const uint8_t* src_scan,
                                int mask_alpha,
@@ -3120,10 +3053,6 @@
     CompositeRow_ByteMask2Rgb(dest_scan, src_scan, m_MaskAlpha, m_MaskRed,
                               m_MaskGreen, m_MaskBlue, width, m_BlendType,
                               GetCompsFromFormat(m_DestFormat), clip_scan);
-  } else if (m_DestFormat == FXDIB_Format::kRgba) {
-    CompositeRow_ByteMask2Rgba(dest_scan, src_scan, m_MaskAlpha, m_MaskRed,
-                               m_MaskGreen, m_MaskBlue, width, m_BlendType,
-                               clip_scan, dst_extra_alpha);
   }
 }
 
diff --git a/core/fxge/dib/cstretchengine.cpp b/core/fxge/dib/cstretchengine.cpp
index 819496e..4649009 100644
--- a/core/fxge/dib/cstretchengine.cpp
+++ b/core/fxge/dib/cstretchengine.cpp
@@ -491,15 +491,9 @@
             int pixel_weight = *pWeight;
             pixel_weight = pixel_weight * src_scan_mask[j] / 255;
             unsigned long argb_cmyk = m_pSrcPalette[src_scan[j]];
-            if (m_DestFormat == FXDIB_Format::kRgba) {
-              dest_r_y += pixel_weight * static_cast<uint8_t>(argb_cmyk >> 16);
-              dest_g_m += pixel_weight * static_cast<uint8_t>(argb_cmyk >> 8);
-              dest_b_c += pixel_weight * static_cast<uint8_t>(argb_cmyk);
-            } else {
-              dest_b_c += pixel_weight * static_cast<uint8_t>(argb_cmyk >> 24);
-              dest_g_m += pixel_weight * static_cast<uint8_t>(argb_cmyk >> 16);
-              dest_r_y += pixel_weight * static_cast<uint8_t>(argb_cmyk >> 8);
-            }
+            dest_b_c += pixel_weight * static_cast<uint8_t>(argb_cmyk >> 24);
+            dest_g_m += pixel_weight * static_cast<uint8_t>(argb_cmyk >> 16);
+            dest_r_y += pixel_weight * static_cast<uint8_t>(argb_cmyk >> 8);
             dest_a += pixel_weight;
           }
           if (bicubic) {
diff --git a/core/fxge/dib/fx_dib.h b/core/fxge/dib/fx_dib.h
index bc87785..2f4fcb2 100644
--- a/core/fxge/dib/fx_dib.h
+++ b/core/fxge/dib/fx_dib.h
@@ -21,7 +21,6 @@
   kRgb32 = 0x020,
   k1bppMask = 0x101,
   k8bppMask = 0x108,
-  kRgba = 0x218,
   kArgb = 0x220,
 };
 
@@ -116,10 +115,6 @@
   return !!(static_cast<uint16_t>(format) & 0x200);
 }
 
-inline bool HasNoFlags(FXDIB_Format format) {
-  return (static_cast<uint16_t>(format) & 0x300) == 0;
-}
-
 FXDIB_Format MakeRGBFormat(int bpp);
 
 inline FX_CMYK CmykEncode(int c, int m, int y, int k) {
diff --git a/testing/fuzzers/pdf_scanlinecompositor_fuzzer.cc b/testing/fuzzers/pdf_scanlinecompositor_fuzzer.cc
index 6ffcf65..b0109a1 100644
--- a/testing/fuzzers/pdf_scanlinecompositor_fuzzer.cc
+++ b/testing/fuzzers/pdf_scanlinecompositor_fuzzer.cc
@@ -24,7 +24,7 @@
     FXDIB_Format::k1bppMask,
     FXDIB_Format::k8bppMask,
     FXDIB_Format::kInvalid /* Was FXDIB_Format::k8bppRgba */,
-    FXDIB_Format::kRgba,
+    FXDIB_Format::kInvalid /* Was FXDIB_Format::kRgba */,
     FXDIB_Format::kArgb,
     FXDIB_Format::kInvalid /* Was FXDIB_Format::k1bppCmyk */,
     FXDIB_Format::kInvalid /* Was FXDIB_Format::k8bppCmyk */,