Change FXSYS_RGB() to FXSYS_BGR().

Also change it from a macro to a constexpr function.

Change-Id: I8b2bb42c45a23da6db136abdaee24132db4471c6
Reviewed-on: https://pdfium-review.googlesource.com/28579
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
diff --git a/core/fpdfapi/page/cpdf_colorstate.cpp b/core/fpdfapi/page/cpdf_colorstate.cpp
index 2361552..227fd62 100644
--- a/core/fpdfapi/page/cpdf_colorstate.cpp
+++ b/core/fpdfapi/page/cpdf_colorstate.cpp
@@ -99,7 +99,7 @@
       return;
     }
   }
-  pData->m_FillColorRef = ret ? FXSYS_RGB(R, G, B) : 0xFFFFFFFF;
+  pData->m_FillColorRef = ret ? FXSYS_BGR(B, G, R) : 0xFFFFFFFF;
 }
 
 void CPDF_ColorState::SetStrokePattern(CPDF_Pattern* pPattern,
@@ -118,7 +118,7 @@
     }
   }
   pData->m_StrokeColorRef =
-      pData->m_StrokeColor.GetRGB(&R, &G, &B) ? FXSYS_RGB(R, G, B) : 0xFFFFFFFF;
+      pData->m_StrokeColor.GetRGB(&R, &G, &B) ? FXSYS_BGR(B, G, R) : 0xFFFFFFFF;
 }
 
 void CPDF_ColorState::SetColor(CPDF_Color& color,
@@ -138,7 +138,7 @@
   int R;
   int G;
   int B;
-  *colorref = color.GetRGB(&R, &G, &B) ? FXSYS_RGB(R, G, B) : 0xFFFFFFFF;
+  *colorref = color.GetRGB(&R, &G, &B) ? FXSYS_BGR(B, G, R) : 0xFFFFFFFF;
 }
 
 CPDF_ColorState::ColorData::ColorData()
diff --git a/core/fpdfapi/render/cpdf_transferfunc.cpp b/core/fpdfapi/render/cpdf_transferfunc.cpp
index c28afde..2571743 100644
--- a/core/fpdfapi/render/cpdf_transferfunc.cpp
+++ b/core/fpdfapi/render/cpdf_transferfunc.cpp
@@ -14,10 +14,10 @@
 
 CPDF_TransferFunc::~CPDF_TransferFunc() {}
 
-FX_COLORREF CPDF_TransferFunc::TranslateColor(FX_COLORREF bgr) const {
-  return FXSYS_RGB(m_Samples[FXSYS_GetRValue(bgr)],
-                   m_Samples[256 + FXSYS_GetGValue(bgr)],
-                   m_Samples[512 + FXSYS_GetBValue(bgr)]);
+FX_COLORREF CPDF_TransferFunc::TranslateColor(FX_COLORREF colorref) const {
+  return FXSYS_BGR(m_Samples[512 + FXSYS_GetBValue(colorref)],
+                   m_Samples[256 + FXSYS_GetGValue(colorref)],
+                   m_Samples[FXSYS_GetRValue(colorref)]);
 }
 
 RetainPtr<CFX_DIBSource> CPDF_TransferFunc::TranslateImage(
diff --git a/core/fpdfapi/render/cpdf_transferfunc.h b/core/fpdfapi/render/cpdf_transferfunc.h
index de95a43..dfc186e 100644
--- a/core/fpdfapi/render/cpdf_transferfunc.h
+++ b/core/fpdfapi/render/cpdf_transferfunc.h
@@ -19,7 +19,7 @@
   template <typename T, typename... Args>
   friend RetainPtr<T> pdfium::MakeRetain(Args&&... args);
 
-  FX_COLORREF TranslateColor(FX_COLORREF bgr) const;
+  FX_COLORREF TranslateColor(FX_COLORREF colorref) const;
   RetainPtr<CFX_DIBSource> TranslateImage(const RetainPtr<CFX_DIBSource>& pSrc);
 
   const CPDF_Document* GetDocument() const { return m_pPDFDoc.Get(); }
diff --git a/core/fpdfdoc/cpdf_bookmark.cpp b/core/fpdfdoc/cpdf_bookmark.cpp
index cc7e127..5f8997d 100644
--- a/core/fpdfdoc/cpdf_bookmark.cpp
+++ b/core/fpdfdoc/cpdf_bookmark.cpp
@@ -14,6 +14,12 @@
 #include "core/fpdfdoc/cpdf_nametree.h"
 #include "core/fxge/fx_dib.h"
 
+namespace {
+
+constexpr uint32_t kBlackBGR = FXSYS_BGR(0, 0, 0);
+
+}  // namespace
+
 CPDF_Bookmark::CPDF_Bookmark() {}
 
 CPDF_Bookmark::CPDF_Bookmark(const CPDF_Bookmark& that) = default;
@@ -24,16 +30,16 @@
 
 uint32_t CPDF_Bookmark::GetColorRef() const {
   if (!m_pDict)
-    return FXSYS_RGB(0, 0, 0);
+    return kBlackBGR;
 
   CPDF_Array* pColor = m_pDict->GetArrayFor("C");
   if (!pColor)
-    return FXSYS_RGB(0, 0, 0);
+    return kBlackBGR;
 
   int r = FXSYS_round(pColor->GetNumberAt(0) * 255);
   int g = FXSYS_round(pColor->GetNumberAt(1) * 255);
   int b = FXSYS_round(pColor->GetNumberAt(2) * 255);
-  return FXSYS_RGB(r, g, b);
+  return FXSYS_BGR(b, g, r);
 }
 
 uint32_t CPDF_Bookmark::GetFontStyle() const {
diff --git a/core/fxge/dib/fx_dib_main.cpp b/core/fxge/dib/fx_dib_main.cpp
index 6c3a236..002fc2e 100644
--- a/core/fxge/dib/fx_dib_main.cpp
+++ b/core/fxge/dib/fx_dib_main.cpp
@@ -84,7 +84,7 @@
 }
 
 FX_COLORREF ArgbToColorRef(FX_ARGB argb) {
-  return FXSYS_RGB(FXARGB_R(argb), FXARGB_G(argb), FXARGB_B(argb));
+  return FXSYS_BGR(FXARGB_B(argb), FXARGB_G(argb), FXARGB_R(argb));
 }
 
 FX_ARGB AlphaAndColorRefToArgb(int a, FX_COLORREF colorref) {
diff --git a/core/fxge/fx_dib.h b/core/fxge/fx_dib.h
index 4af4790..9acfa51 100644
--- a/core/fxge/fx_dib.h
+++ b/core/fxge/fx_dib.h
@@ -74,8 +74,9 @@
 #define FXDIB_BLEND_LUMINOSITY 24
 #define FXDIB_BLEND_UNSUPPORTED -1
 
-// TODO(thestig): Rename to FXSYS_BGR() and check callers.
-#define FXSYS_RGB(r, g, b) ((r) | ((g) << 8) | ((b) << 16))
+constexpr uint32_t FXSYS_BGR(uint8_t b, uint8_t g, uint8_t r) {
+  return (b << 16) | (g << 8) | r;
+}
 
 constexpr uint8_t FXSYS_GetRValue(uint32_t bgr) {
   return bgr & 0xff;
diff --git a/fpdfsdk/cpdfsdk_interform.cpp b/fpdfsdk/cpdfsdk_interform.cpp
index f4e22d7..9231951 100644
--- a/fpdfsdk/cpdfsdk_interform.cpp
+++ b/fpdfsdk/cpdfsdk_interform.cpp
@@ -46,6 +46,8 @@
 
 namespace {
 
+constexpr uint32_t kWhiteBGR = FXSYS_BGR(255, 255, 255);
+
 bool IsFormFieldTypeComboOrText(FormFieldType fieldType) {
   switch (fieldType) {
     case FormFieldType::kComboBox:
@@ -699,7 +701,7 @@
 
 void CPDFSDK_InterForm::RemoveAllHighLights() {
   std::fill(m_HighlightColor, m_HighlightColor + kFormFieldTypeCount,
-            FXSYS_RGB(255, 255, 255));
+            kWhiteBGR);
   std::fill(m_NeedsHighlight, m_NeedsHighlight + kFormFieldTypeCount, false);
 }
 
@@ -721,7 +723,7 @@
 
 FX_COLORREF CPDFSDK_InterForm::GetHighlightColor(FormFieldType fieldType) {
   if (fieldType == FormFieldType::kUnknown)
-    return FXSYS_RGB(255, 255, 255);
+    return kWhiteBGR;
 
 #ifdef PDF_ENABLE_XFA
   // For the XFA fields, we need to return the specific field type highlight