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