Reduce the number of parameters in bilinear_interpol().

Also rename the function to BilinearInterpolate().

Change-Id: I434189bd59bf8e602595949bb846e87e384da7f4
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/75655
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fxge/dib/cfx_imagetransformer.cpp b/core/fxge/dib/cfx_imagetransformer.cpp
index d751ada..7114167 100644
--- a/core/fxge/dib/cfx_imagetransformer.cpp
+++ b/core/fxge/dib/cfx_imagetransformer.cpp
@@ -25,27 +25,22 @@
 constexpr float kFix16 = 0.05f;
 constexpr uint8_t kOpaqueAlpha = 0xff;
 
-uint8_t bilinear_interpol(const uint8_t* buf,
-                          int row_offset_l,
-                          int row_offset_r,
-                          int src_col_l,
-                          int src_col_r,
-                          int res_x,
-                          int res_y,
-                          int bpp,
-                          int c_offset) {
-  int i_resx = 255 - res_x;
-  int col_bpp_l = src_col_l * bpp;
-  int col_bpp_r = src_col_r * bpp;
-  const uint8_t* buf_u = buf + row_offset_l + c_offset;
-  const uint8_t* buf_d = buf + row_offset_r + c_offset;
+uint8_t BilinearInterpolate(const uint8_t* buf,
+                            const CFX_ImageTransformer::BilinearData& data,
+                            int bpp,
+                            int c_offset) {
+  int i_resx = 255 - data.res_x;
+  int col_bpp_l = data.src_col_l * bpp;
+  int col_bpp_r = data.src_col_r * bpp;
+  const uint8_t* buf_u = buf + data.row_offset_l + c_offset;
+  const uint8_t* buf_d = buf + data.row_offset_r + c_offset;
   const uint8_t* src_pos0 = buf_u + col_bpp_l;
   const uint8_t* src_pos1 = buf_u + col_bpp_r;
   const uint8_t* src_pos2 = buf_d + col_bpp_l;
   const uint8_t* src_pos3 = buf_d + col_bpp_r;
-  uint8_t r_pos_0 = (*src_pos0 * i_resx + *src_pos1 * res_x) >> 8;
-  uint8_t r_pos_1 = (*src_pos2 * i_resx + *src_pos3 * res_x) >> 8;
-  return (r_pos_0 * (255 - res_y) + r_pos_1 * res_y) >> 8;
+  uint8_t r_pos_0 = (*src_pos0 * i_resx + *src_pos1 * data.res_x) >> 8;
+  uint8_t r_pos_1 = (*src_pos2 * i_resx + *src_pos3 * data.res_x) >> 8;
+  return (r_pos_0 * (255 - data.res_y) + r_pos_1 * data.res_y) >> 8;
 }
 
 class CFX_BilinearMatrix {
@@ -293,18 +288,14 @@
 
 void CFX_ImageTransformer::CalcMask(const CalcData& calc_data) {
   auto func = [&calc_data](const BilinearData& data, uint8_t* dest) {
-    *dest = bilinear_interpol(calc_data.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);
+    *dest = BilinearInterpolate(calc_data.buf, data, 1, 0);
   };
   DoBilinearLoop(calc_data, m_result, m_StretchClip, 1, func);
 }
 
 void CFX_ImageTransformer::CalcAlpha(const CalcData& calc_data) {
   auto func = [&calc_data](const BilinearData& data, uint8_t* dest) {
-    *dest = bilinear_interpol(calc_data.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);
+    *dest = BilinearInterpolate(calc_data.buf, data, 1, 0);
   };
   DoBilinearLoop(calc_data, m_result, m_StretchClip, 1, func);
 }
@@ -322,9 +313,7 @@
   }
   int destBpp = calc_data.bitmap->GetBPP() / 8;
   auto func = [&calc_data, &argb](const BilinearData& data, uint8_t* dest) {
-    uint8_t idx = bilinear_interpol(
-        calc_data.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);
+    uint8_t idx = BilinearInterpolate(calc_data.buf, data, 1, 0);
     *reinterpret_cast<uint32_t*>(dest) = argb[idx];
   };
   DoBilinearLoop(calc_data, m_result, m_StretchClip, destBpp, func);
@@ -338,21 +327,13 @@
   int destBpp = calc_data.bitmap->GetBPP() / 8;
   auto func = [&calc_data, format, Bpp, bHasAlpha](const BilinearData& data,
                                                    uint8_t* dest) {
-    uint8_t blue_c = bilinear_interpol(
-        calc_data.buf, data.row_offset_l, data.row_offset_r, data.src_col_l,
-        data.src_col_r, data.res_x, data.res_y, Bpp, 0);
-    uint8_t green_m = bilinear_interpol(
-        calc_data.buf, data.row_offset_l, data.row_offset_r, data.src_col_l,
-        data.src_col_r, data.res_x, data.res_y, Bpp, 1);
-    uint8_t red_y = bilinear_interpol(
-        calc_data.buf, data.row_offset_l, data.row_offset_r, data.src_col_l,
-        data.src_col_r, data.res_x, data.res_y, Bpp, 2);
+    uint8_t blue_c = BilinearInterpolate(calc_data.buf, data, Bpp, 0);
+    uint8_t green_m = BilinearInterpolate(calc_data.buf, data, Bpp, 1);
+    uint8_t red_y = BilinearInterpolate(calc_data.buf, data, Bpp, 2);
 
     uint32_t* dest32 = reinterpret_cast<uint32_t*>(dest);
     if (bHasAlpha) {
-      uint8_t alpha_k = bilinear_interpol(
-          calc_data.buf, data.row_offset_l, data.row_offset_r, data.src_col_l,
-          data.src_col_r, data.res_x, data.res_y, Bpp, 3);
+      uint8_t alpha_k = BilinearInterpolate(calc_data.buf, data, Bpp, 3);
       if (format == FXDIB_Format::kArgb) {
         *dest32 = ArgbEncode(alpha_k, red_y, green_m, blue_c);
       } else {