Simplify some code in fx_agg_driver.cpp.

In RgbByteOrderCompositeRect() and RgbByteOrderTransferBitmap() inside
fx_agg_driver.cpp, a few operations can be written in equivalent, but
simpler forms.

Change-Id: Id4a5f2d33576264c229a38cabfced3c1641d796a
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/73230
Reviewed-by: Hui Yingst <nigi@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fxge/agg/fx_agg_driver.cpp b/core/fxge/agg/fx_agg_driver.cpp
index 6d6381a..1d2b025 100644
--- a/core/fxge/agg/fx_agg_driver.cpp
+++ b/core/fxge/agg/fx_agg_driver.cpp
@@ -90,9 +90,7 @@
       uint8_t* dest_scan =
           pBuffer + row * pBitmap->GetPitch() + rect.left * Bpp;
       if (Bpp == 4) {
-        uint32_t* scan = reinterpret_cast<uint32_t*>(dest_scan);
-        for (int col = 0; col < width; col++)
-          *scan++ = dib_argb;
+        std::fill_n(reinterpret_cast<uint32_t*>(dest_scan), width, dib_argb);
       } else {
         for (int col = 0; col < width; col++) {
           *dest_scan++ = src_r;
@@ -110,8 +108,7 @@
       for (int col = 0; col < width; col++) {
         uint8_t back_alpha = dest_scan[3];
         if (back_alpha == 0) {
-          FXARGB_SETRGBORDERDIB(dest_scan,
-                                ArgbEncode(src_alpha, src_r, src_g, src_b));
+          FXARGB_SETRGBORDERDIB(dest_scan, argb);
           dest_scan += 4;
           continue;
         }
@@ -170,8 +167,8 @@
           pSrcBitmap->GetScanline(src_top + row) + src_left * Bpp;
       if (Bpp == 4) {
         for (int col = 0; col < width; col++) {
-          FXARGB_SETDIB(dest_scan, ArgbEncode(src_scan[3], src_scan[0],
-                                              src_scan[1], src_scan[2]));
+          FXARGB_SETRGBORDERDIB(dest_scan,
+                                *reinterpret_cast<const uint32_t*>(src_scan));
           dest_scan += 4;
           src_scan += 4;
         }