Rename the fxgraphics classes

The build system doesn't like name clashes over directories in XFA.
The Pattern and and Shading classes need to be renamed to not clash with
future XFA node class names.

Change-Id: I978da492d884626c0db2e11ac236a3399e9c7e58
Reviewed-on: https://pdfium-review.googlesource.com/18290
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/BUILD.gn b/BUILD.gn
index ba00055..3a62b70 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -1903,16 +1903,16 @@
       "xfa/fxfa/parser/xfa_resolvenode_rs.h",
       "xfa/fxfa/parser/xfa_utils.cpp",
       "xfa/fxfa/parser/xfa_utils.h",
-      "xfa/fxgraphics/cxfa_color.cpp",
-      "xfa/fxgraphics/cxfa_color.h",
+      "xfa/fxgraphics/cxfa_gecolor.cpp",
+      "xfa/fxgraphics/cxfa_gecolor.h",
+      "xfa/fxgraphics/cxfa_gepath.cpp",
+      "xfa/fxgraphics/cxfa_gepath.h",
+      "xfa/fxgraphics/cxfa_gepattern.cpp",
+      "xfa/fxgraphics/cxfa_gepattern.h",
+      "xfa/fxgraphics/cxfa_geshading.cpp",
+      "xfa/fxgraphics/cxfa_geshading.h",
       "xfa/fxgraphics/cxfa_graphics.cpp",
       "xfa/fxgraphics/cxfa_graphics.h",
-      "xfa/fxgraphics/cxfa_path.cpp",
-      "xfa/fxgraphics/cxfa_path.h",
-      "xfa/fxgraphics/cxfa_pattern.cpp",
-      "xfa/fxgraphics/cxfa_pattern.h",
-      "xfa/fxgraphics/cxfa_shading.cpp",
-      "xfa/fxgraphics/cxfa_shading.h",
     ]
     include_dirs = [ "." ]
     deps = [
diff --git a/xfa/fwl/cfwl_caret.h b/xfa/fwl/cfwl_caret.h
index 6388236..90d62d6 100644
--- a/xfa/fwl/cfwl_caret.h
+++ b/xfa/fwl/cfwl_caret.h
@@ -11,7 +11,7 @@
 
 #include "xfa/fwl/cfwl_timer.h"
 #include "xfa/fwl/cfwl_widget.h"
-#include "xfa/fxgraphics/cxfa_color.h"
+#include "xfa/fxgraphics/cxfa_gecolor.h"
 
 class CFWL_WidgetProperties;
 class CFWL_Widget;
diff --git a/xfa/fwl/cfwl_edit.cpp b/xfa/fwl/cfwl_edit.cpp
index 45e69ab..cdbca2c 100644
--- a/xfa/fwl/cfwl_edit.cpp
+++ b/xfa/fwl/cfwl_edit.cpp
@@ -31,7 +31,7 @@
 #include "xfa/fwl/theme/cfwl_utils.h"
 #include "xfa/fxfa/cxfa_ffdoc.h"
 #include "xfa/fxfa/cxfa_ffwidget.h"
-#include "xfa/fxgraphics/cxfa_path.h"
+#include "xfa/fxgraphics/cxfa_gepath.h"
 
 namespace {
 
@@ -49,7 +49,7 @@
          c == 0x0027;
 }
 
-void AddSquigglyPath(CXFA_Path* pPathData,
+void AddSquigglyPath(CXFA_GEPath* pPathData,
                      float fStartX,
                      float fEndX,
                      float fY,
@@ -163,7 +163,7 @@
   return FWL_WidgetHit::Unknown;
 }
 
-void CFWL_Edit::AddSpellCheckObj(CXFA_Path& PathData,
+void CFWL_Edit::AddSpellCheckObj(CXFA_GEPath& PathData,
                                  int32_t nStart,
                                  int32_t nCount,
                                  float fOffSetX,
@@ -190,7 +190,7 @@
 
   CFWL_EventCheckWord checkWordEvent(this);
   ByteString sLatinWord;
-  CXFA_Path pathSpell;
+  CXFA_GEPath pathSpell;
   int32_t nStart = 0;
   float fOffSetX = m_rtEngine.left - m_fScrollOffsetX;
   float fOffSetY = m_rtEngine.top - m_fScrollOffsetY + m_fVAlignOffset;
@@ -230,7 +230,7 @@
       mt.Concat(*pMatrix);
     }
     pGraphics->SetClipRect(rtClip);
-    pGraphics->SetStrokeColor(CXFA_Color(0xFFFF0000));
+    pGraphics->SetStrokeColor(CXFA_GEColor(0xFFFF0000));
     pGraphics->SetLineWidth(0);
     pGraphics->StrokePath(&pathSpell, nullptr);
   }
@@ -486,7 +486,7 @@
     std::vector<CFX_RectF> rects =
         m_EdtEngine.GetCharacterRectsInRange(sel_start, count);
 
-    CXFA_Path path;
+    CXFA_GEPath path;
     for (auto& rect : rects) {
       rect.left += fOffSetX;
       rect.top += fOffSetY;
@@ -512,7 +512,7 @@
   if (m_pProperties->m_dwStyleExes & FWL_STYLEEXT_EDT_CombText) {
     pGraphics->RestoreGraphState();
 
-    CXFA_Path path;
+    CXFA_GEPath path;
     int32_t iLimit = m_nLimit > 0 ? m_nLimit : 1;
     float fStep = m_rtEngine.width / iLimit;
     float fLeft = m_rtEngine.left + 1;
diff --git a/xfa/fwl/cfwl_edit.h b/xfa/fwl/cfwl_edit.h
index b7c2526..6aedca8 100644
--- a/xfa/fwl/cfwl_edit.h
+++ b/xfa/fwl/cfwl_edit.h
@@ -15,7 +15,7 @@
 #include "xfa/fwl/cfwl_event.h"
 #include "xfa/fwl/cfwl_scrollbar.h"
 #include "xfa/fwl/cfwl_widget.h"
-#include "xfa/fxgraphics/cxfa_path.h"
+#include "xfa/fxgraphics/cxfa_gepath.h"
 
 #define FWL_STYLEEXT_EDT_ReadOnly (1L << 0)
 #define FWL_STYLEEXT_EDT_MultiLine (1L << 1)
@@ -134,7 +134,7 @@
   bool ValidateNumberChar(wchar_t cNum);
   bool IsShowScrollBar(bool bVert);
   bool IsContentHeightOverflow();
-  void AddSpellCheckObj(CXFA_Path& PathData,
+  void AddSpellCheckObj(CXFA_GEPath& PathData,
                         int32_t nStart,
                         int32_t nCount,
                         float fOffSetX,
diff --git a/xfa/fwl/cfwl_themebackground.h b/xfa/fwl/cfwl_themebackground.h
index 65c29eb..81fa0a2 100644
--- a/xfa/fwl/cfwl_themebackground.h
+++ b/xfa/fwl/cfwl_themebackground.h
@@ -12,7 +12,7 @@
 
 class CFX_DIBitmpa;
 class CXFA_Graphics;
-class CXFA_Path;
+class CXFA_GEPath;
 
 class CFWL_ThemeBackground : public CFWL_ThemePart {
  public:
@@ -20,7 +20,7 @@
   ~CFWL_ThemeBackground();
 
   CXFA_Graphics* m_pGraphics;
-  CXFA_Path* m_pPath;
+  CXFA_GEPath* m_pPath;
   RetainPtr<CFX_DIBitmap> m_pImage;
 };
 
diff --git a/xfa/fwl/theme/cfwl_carettp.cpp b/xfa/fwl/theme/cfwl_carettp.cpp
index 37dfad5..9735319 100644
--- a/xfa/fwl/theme/cfwl_carettp.cpp
+++ b/xfa/fwl/theme/cfwl_carettp.cpp
@@ -9,8 +9,8 @@
 #include "xfa/fwl/cfwl_caret.h"
 #include "xfa/fwl/cfwl_themebackground.h"
 #include "xfa/fwl/cfwl_widget.h"
-#include "xfa/fxgraphics/cxfa_color.h"
-#include "xfa/fxgraphics/cxfa_path.h"
+#include "xfa/fxgraphics/cxfa_gecolor.h"
+#include "xfa/fxgraphics/cxfa_gepath.h"
 
 CFWL_CaretTP::CFWL_CaretTP() {}
 CFWL_CaretTP::~CFWL_CaretTP() {}
@@ -25,7 +25,7 @@
         return;
 
       DrawCaretBK(pParams->m_pGraphics, pParams->m_dwStates,
-                  &(pParams->m_rtPart), (CXFA_Color*)pParams->m_pData,
+                  &(pParams->m_rtPart), (CXFA_GEColor*)pParams->m_pData,
                   &(pParams->m_matrix));
       break;
     }
@@ -37,15 +37,15 @@
 void CFWL_CaretTP::DrawCaretBK(CXFA_Graphics* pGraphics,
                                uint32_t dwStates,
                                const CFX_RectF* pRect,
-                               CXFA_Color* crFill,
+                               CXFA_GEColor* crFill,
                                CFX_Matrix* pMatrix) {
-  CXFA_Path path;
+  CXFA_GEPath path;
   CFX_RectF rect = *pRect;
   path.AddRectangle(rect.left, rect.top, rect.width, rect.height);
   if (crFill) {
     pGraphics->SetFillColor(*crFill);
   } else {
-    pGraphics->SetFillColor(CXFA_Color(ArgbEncode(255, 0, 0, 0)));
+    pGraphics->SetFillColor(CXFA_GEColor(ArgbEncode(255, 0, 0, 0)));
   }
   pGraphics->FillPath(&path, FXFILL_WINDING, pMatrix);
 }
diff --git a/xfa/fwl/theme/cfwl_carettp.h b/xfa/fwl/theme/cfwl_carettp.h
index fdf330b..8b88fee 100644
--- a/xfa/fwl/theme/cfwl_carettp.h
+++ b/xfa/fwl/theme/cfwl_carettp.h
@@ -21,7 +21,7 @@
   void DrawCaretBK(CXFA_Graphics* pGraphics,
                    uint32_t dwStates,
                    const CFX_RectF* pRect,
-                   CXFA_Color* crFill,
+                   CXFA_GEColor* crFill,
                    CFX_Matrix* pMatrix = nullptr);
 };
 
diff --git a/xfa/fwl/theme/cfwl_checkboxtp.cpp b/xfa/fwl/theme/cfwl_checkboxtp.cpp
index 8d73738..82fdc1a 100644
--- a/xfa/fwl/theme/cfwl_checkboxtp.cpp
+++ b/xfa/fwl/theme/cfwl_checkboxtp.cpp
@@ -13,8 +13,8 @@
 #include "xfa/fwl/cfwl_themebackground.h"
 #include "xfa/fwl/cfwl_themetext.h"
 #include "xfa/fwl/cfwl_widget.h"
-#include "xfa/fxgraphics/cxfa_color.h"
-#include "xfa/fxgraphics/cxfa_path.h"
+#include "xfa/fxgraphics/cxfa_gecolor.h"
+#include "xfa/fxgraphics/cxfa_gepath.h"
 
 namespace {
 
@@ -74,7 +74,7 @@
   mt.Translate(pRtSign->left, pRtSign->top);
   mt.Concat(*pMatrix);
   pGraphics->SaveGraphState();
-  pGraphics->SetFillColor(CXFA_Color(argbFill));
+  pGraphics->SetFillColor(CXFA_GEColor(argbFill));
   pGraphics->FillPath(m_pCheckPath.get(), FXFILL_WINDING, &mt);
   pGraphics->RestoreGraphState();
 }
@@ -83,10 +83,10 @@
                                      const CFX_RectF* pRtSign,
                                      FX_ARGB argbFill,
                                      CFX_Matrix* pMatrix) {
-  CXFA_Path path;
+  CXFA_GEPath path;
   path.AddEllipse(*pRtSign);
   pGraphics->SaveGraphState();
-  pGraphics->SetFillColor(CXFA_Color(argbFill));
+  pGraphics->SetFillColor(CXFA_GEColor(argbFill));
   pGraphics->FillPath(&path, FXFILL_WINDING, pMatrix);
   pGraphics->RestoreGraphState();
 }
@@ -95,7 +95,7 @@
                                     const CFX_RectF* pRtSign,
                                     FX_ARGB argbFill,
                                     CFX_Matrix* pMatrix) {
-  CXFA_Path path;
+  CXFA_GEPath path;
   float fRight = pRtSign->right();
   float fBottom = pRtSign->bottom();
   path.AddLine(pRtSign->TopLeft(), CFX_PointF(fRight, fBottom));
@@ -103,7 +103,7 @@
                CFX_PointF(fRight, pRtSign->top));
 
   pGraphics->SaveGraphState();
-  pGraphics->SetStrokeColor(CXFA_Color(argbFill));
+  pGraphics->SetStrokeColor(CXFA_GEColor(argbFill));
   pGraphics->SetLineWidth(1.0f);
   pGraphics->StrokePath(&path, pMatrix);
   pGraphics->RestoreGraphState();
@@ -113,7 +113,7 @@
                                       const CFX_RectF* pRtSign,
                                       FX_ARGB argbFill,
                                       CFX_Matrix* pMatrix) {
-  CXFA_Path path;
+  CXFA_GEPath path;
   float fWidth = pRtSign->width;
   float fHeight = pRtSign->height;
   float fBottom = pRtSign->bottom();
@@ -124,7 +124,7 @@
   path.LineTo(CFX_PointF(pRtSign->left + fWidth / 2, pRtSign->top));
 
   pGraphics->SaveGraphState();
-  pGraphics->SetFillColor(CXFA_Color(argbFill));
+  pGraphics->SetFillColor(CXFA_GEColor(argbFill));
   pGraphics->FillPath(&path, FXFILL_WINDING, pMatrix);
   pGraphics->RestoreGraphState();
 }
@@ -133,11 +133,11 @@
                                      const CFX_RectF* pRtSign,
                                      FX_ARGB argbFill,
                                      CFX_Matrix* pMatrix) {
-  CXFA_Path path;
+  CXFA_GEPath path;
   path.AddRectangle(pRtSign->left, pRtSign->top, pRtSign->width,
                     pRtSign->height);
   pGraphics->SaveGraphState();
-  pGraphics->SetFillColor(CXFA_Color(argbFill));
+  pGraphics->SetFillColor(CXFA_GEColor(argbFill));
   pGraphics->FillPath(&path, FXFILL_WINDING, pMatrix);
   pGraphics->RestoreGraphState();
 }
@@ -146,7 +146,7 @@
                                    const CFX_RectF* pRtSign,
                                    FX_ARGB argbFill,
                                    CFX_Matrix* pMatrix) {
-  CXFA_Path path;
+  CXFA_GEPath path;
   float fBottom = pRtSign->bottom();
   float fRadius =
       (pRtSign->top - fBottom) / (1 + static_cast<float>(cos(FX_PI / 5.0f)));
@@ -172,7 +172,7 @@
     path.LineTo(points[nNext]);
   }
   pGraphics->SaveGraphState();
-  pGraphics->SetFillColor(CXFA_Color(argbFill));
+  pGraphics->SetFillColor(CXFA_GEColor(argbFill));
   pGraphics->FillPath(&path, FXFILL_WINDING, pMatrix);
   pGraphics->RestoreGraphState();
 }
@@ -217,7 +217,7 @@
 
 void CFWL_CheckBoxTP::InitCheckPath(float fCheckLen) {
   if (!m_pCheckPath) {
-    m_pCheckPath = pdfium::MakeUnique<CXFA_Path>();
+    m_pCheckPath = pdfium::MakeUnique<CXFA_GEPath>();
 
     float fWidth = kSignPath;
     float fHeight = -kSignPath;
diff --git a/xfa/fwl/theme/cfwl_checkboxtp.h b/xfa/fwl/theme/cfwl_checkboxtp.h
index 97ef5cf..e373b38 100644
--- a/xfa/fwl/theme/cfwl_checkboxtp.h
+++ b/xfa/fwl/theme/cfwl_checkboxtp.h
@@ -68,7 +68,7 @@
   void InitCheckPath(float fCheckLen);
 
   std::unique_ptr<CKBThemeData> m_pThemeData;
-  std::unique_ptr<CXFA_Path> m_pCheckPath;
+  std::unique_ptr<CXFA_GEPath> m_pCheckPath;
 
  private:
   void SetThemeData();
diff --git a/xfa/fwl/theme/cfwl_comboboxtp.cpp b/xfa/fwl/theme/cfwl_comboboxtp.cpp
index 86888c0..7695342 100644
--- a/xfa/fwl/theme/cfwl_comboboxtp.cpp
+++ b/xfa/fwl/theme/cfwl_comboboxtp.cpp
@@ -10,8 +10,8 @@
 #include "xfa/fwl/cfwl_themebackground.h"
 #include "xfa/fwl/cfwl_widget.h"
 #include "xfa/fwl/ifwl_themeprovider.h"
-#include "xfa/fxgraphics/cxfa_color.h"
-#include "xfa/fxgraphics/cxfa_path.h"
+#include "xfa/fxgraphics/cxfa_gecolor.h"
+#include "xfa/fxgraphics/cxfa_gepath.h"
 
 CFWL_ComboBoxTP::CFWL_ComboBoxTP() {}
 
@@ -27,7 +27,7 @@
       break;
     }
     case CFWL_Part::Background: {
-      CXFA_Path path;
+      CXFA_GEPath path;
       CFX_RectF& rect = pParams->m_rtPart;
       path.AddRectangle(rect.left, rect.top, rect.width, rect.height);
       FX_ARGB argb_color;
@@ -42,7 +42,7 @@
           argb_color = 0xFFFFFFFF;
       }
       pParams->m_pGraphics->SaveGraphState();
-      pParams->m_pGraphics->SetFillColor(CXFA_Color(argb_color));
+      pParams->m_pGraphics->SetFillColor(CXFA_GEColor(argb_color));
       pParams->m_pGraphics->FillPath(&path, FXFILL_WINDING, &pParams->m_matrix);
       pParams->m_pGraphics->RestoreGraphState();
       break;
@@ -63,10 +63,11 @@
 void CFWL_ComboBoxTP::DrawStrethHandler(CFWL_ThemeBackground* pParams,
                                         uint32_t dwStates,
                                         CFX_Matrix* pMatrix) {
-  CXFA_Path path;
+  CXFA_GEPath path;
   path.AddRectangle(pParams->m_rtPart.left, pParams->m_rtPart.top,
                     pParams->m_rtPart.width - 1, pParams->m_rtPart.height);
-  pParams->m_pGraphics->SetFillColor(CXFA_Color(ArgbEncode(0xff, 0xff, 0, 0)));
+  pParams->m_pGraphics->SetFillColor(
+      CXFA_GEColor(ArgbEncode(0xff, 0xff, 0, 0)));
   pParams->m_pGraphics->FillPath(&path, FXFILL_WINDING, &pParams->m_matrix);
 }
 
diff --git a/xfa/fwl/theme/cfwl_edittp.cpp b/xfa/fwl/theme/cfwl_edittp.cpp
index 9b8497a..4f8c4d5 100644
--- a/xfa/fwl/theme/cfwl_edittp.cpp
+++ b/xfa/fwl/theme/cfwl_edittp.cpp
@@ -11,8 +11,8 @@
 #include "xfa/fwl/cfwl_widget.h"
 #include "xfa/fxfa/cxfa_ffwidget.h"
 #include "xfa/fxfa/cxfa_fwltheme.h"
-#include "xfa/fxgraphics/cxfa_color.h"
-#include "xfa/fxgraphics/cxfa_path.h"
+#include "xfa/fxgraphics/cxfa_gecolor.h"
+#include "xfa/fxgraphics/cxfa_gepath.h"
 
 CFWL_EditTP::CFWL_EditTP() {}
 
@@ -31,7 +31,7 @@
         fWidth = edgeData.GetThickness();
       }
     }
-    pParams->m_pGraphics->SetStrokeColor(CXFA_Color(cr));
+    pParams->m_pGraphics->SetStrokeColor(CXFA_GEColor(cr));
     pParams->m_pGraphics->SetLineWidth(fWidth);
     pParams->m_pGraphics->StrokePath(pParams->m_pPath, &pParams->m_matrix);
     return;
@@ -46,22 +46,22 @@
       if (pParams->m_pPath) {
         CXFA_Graphics* pGraphics = pParams->m_pGraphics;
         pGraphics->SaveGraphState();
-        pGraphics->SetFillColor(CXFA_Color(FWLTHEME_COLOR_BKSelected));
+        pGraphics->SetFillColor(CXFA_GEColor(FWLTHEME_COLOR_BKSelected));
         pGraphics->FillPath(pParams->m_pPath, FXFILL_WINDING,
                             &pParams->m_matrix);
         pGraphics->RestoreGraphState();
       } else {
-        CXFA_Path path;
+        CXFA_GEPath path;
         path.AddRectangle(pParams->m_rtPart.left, pParams->m_rtPart.top,
                           pParams->m_rtPart.width, pParams->m_rtPart.height);
-        CXFA_Color cr(FWLTHEME_COLOR_Background);
+        CXFA_GEColor cr(FWLTHEME_COLOR_Background);
         if (!pParams->m_bStaticBackground) {
           if (pParams->m_dwStates & CFWL_PartState_Disabled)
-            cr = CXFA_Color(FWLTHEME_COLOR_EDGERB1);
+            cr = CXFA_GEColor(FWLTHEME_COLOR_EDGERB1);
           else if (pParams->m_dwStates & CFWL_PartState_ReadOnly)
-            cr = CXFA_Color(ArgbEncode(255, 236, 233, 216));
+            cr = CXFA_GEColor(ArgbEncode(255, 236, 233, 216));
           else
-            cr = CXFA_Color(0xFFFFFFFF);
+            cr = CXFA_GEColor(0xFFFFFFFF);
         }
         pParams->m_pGraphics->SaveGraphState();
         pParams->m_pGraphics->SetFillColor(cr);
@@ -72,7 +72,7 @@
       break;
     }
     case CFWL_Part::CombTextLine: {
-      pParams->m_pGraphics->SetStrokeColor(CXFA_Color(0xFF000000));
+      pParams->m_pGraphics->SetStrokeColor(CXFA_GEColor(0xFF000000));
       pParams->m_pGraphics->SetLineWidth(1.0f);
       pParams->m_pGraphics->StrokePath(pParams->m_pPath, &pParams->m_matrix);
       break;
diff --git a/xfa/fwl/theme/cfwl_listboxtp.cpp b/xfa/fwl/theme/cfwl_listboxtp.cpp
index 432be21..c977b21 100644
--- a/xfa/fwl/theme/cfwl_listboxtp.cpp
+++ b/xfa/fwl/theme/cfwl_listboxtp.cpp
@@ -9,8 +9,8 @@
 #include "xfa/fwl/cfwl_listbox.h"
 #include "xfa/fwl/cfwl_themebackground.h"
 #include "xfa/fwl/cfwl_widget.h"
-#include "xfa/fxgraphics/cxfa_color.h"
-#include "xfa/fxgraphics/cxfa_path.h"
+#include "xfa/fxgraphics/cxfa_gecolor.h"
+#include "xfa/fxgraphics/cxfa_gepath.h"
 
 CFWL_ListBoxTP::CFWL_ListBoxTP() {}
 
@@ -66,9 +66,9 @@
                                      CFX_Matrix* pMatrix) {
   if (dwStates & CFWL_PartState_Selected) {
     pGraphics->SaveGraphState();
-    pGraphics->SetFillColor(CXFA_Color(FWLTHEME_COLOR_BKSelected));
+    pGraphics->SetFillColor(CXFA_GEColor(FWLTHEME_COLOR_BKSelected));
     CFX_RectF rt(*prtItem);
-    CXFA_Path path;
+    CXFA_GEPath path;
 #if (_FX_OS_ == _FX_OS_MACOSX_)
     path.AddRectangle(rt.left, rt.top, rt.width - 1, rt.height - 1);
 #else
diff --git a/xfa/fwl/theme/cfwl_monthcalendartp.cpp b/xfa/fwl/theme/cfwl_monthcalendartp.cpp
index 975ca01..6bb3f18 100644
--- a/xfa/fwl/theme/cfwl_monthcalendartp.cpp
+++ b/xfa/fwl/theme/cfwl_monthcalendartp.cpp
@@ -12,8 +12,8 @@
 #include "xfa/fwl/cfwl_themetext.h"
 #include "xfa/fwl/cfwl_widget.h"
 #include "xfa/fwl/ifwl_themeprovider.h"
-#include "xfa/fxgraphics/cxfa_color.h"
-#include "xfa/fxgraphics/cxfa_path.h"
+#include "xfa/fxgraphics/cxfa_gecolor.h"
+#include "xfa/fxgraphics/cxfa_gepath.h"
 
 CFWL_MonthCalendarTP::CFWL_MonthCalendarTP() : m_pThemeData(new MCThemeData) {
   SetThemeData();
@@ -104,42 +104,42 @@
 
 void CFWL_MonthCalendarTP::DrawTotalBK(CFWL_ThemeBackground* pParams,
                                        CFX_Matrix* pMatrix) {
-  CXFA_Path path;
+  CXFA_GEPath path;
   CFX_RectF rtTotal(pParams->m_rtPart);
   path.AddRectangle(rtTotal.left, rtTotal.top, rtTotal.width, rtTotal.height);
   pParams->m_pGraphics->SaveGraphState();
-  pParams->m_pGraphics->SetFillColor(CXFA_Color(m_pThemeData->clrBK));
+  pParams->m_pGraphics->SetFillColor(CXFA_GEColor(m_pThemeData->clrBK));
   pParams->m_pGraphics->FillPath(&path, FXFILL_WINDING, pMatrix);
   pParams->m_pGraphics->RestoreGraphState();
 }
 
 void CFWL_MonthCalendarTP::DrawHeadBk(CFWL_ThemeBackground* pParams,
                                       CFX_Matrix* pMatrix) {
-  CXFA_Path path;
+  CXFA_GEPath path;
   CFX_RectF rtHead = pParams->m_rtPart;
   path.AddRectangle(rtHead.left, rtHead.top, rtHead.width, rtHead.height);
   pParams->m_pGraphics->SaveGraphState();
-  pParams->m_pGraphics->SetFillColor(CXFA_Color(m_pThemeData->clrBK));
+  pParams->m_pGraphics->SetFillColor(CXFA_GEColor(m_pThemeData->clrBK));
   pParams->m_pGraphics->FillPath(&path, FXFILL_WINDING, pMatrix);
   pParams->m_pGraphics->RestoreGraphState();
 }
 
 void CFWL_MonthCalendarTP::DrawLButton(CFWL_ThemeBackground* pParams,
                                        CFX_Matrix* pMatrix) {
-  CXFA_Path path;
+  CXFA_GEPath path;
   CFX_RectF rtLBtn = pParams->m_rtPart;
   path.AddRectangle(rtLBtn.left, rtLBtn.top, rtLBtn.width, rtLBtn.height);
   pParams->m_pGraphics->SaveGraphState();
   pParams->m_pGraphics->SetStrokeColor(
-      CXFA_Color(ArgbEncode(0xff, 205, 219, 243)));
+      CXFA_GEColor(ArgbEncode(0xff, 205, 219, 243)));
   pParams->m_pGraphics->StrokePath(&path, pMatrix);
   if (pParams->m_dwStates & CFWL_PartState_Pressed) {
     pParams->m_pGraphics->SetFillColor(
-        CXFA_Color(ArgbEncode(0xff, 174, 198, 242)));
+        CXFA_GEColor(ArgbEncode(0xff, 174, 198, 242)));
     pParams->m_pGraphics->FillPath(&path, FXFILL_WINDING, pMatrix);
   } else {
     pParams->m_pGraphics->SetFillColor(
-        CXFA_Color(ArgbEncode(0xff, 227, 235, 249)));
+        CXFA_GEColor(ArgbEncode(0xff, 227, 235, 249)));
     pParams->m_pGraphics->FillPath(&path, FXFILL_WINDING, pMatrix);
   }
 
@@ -152,27 +152,27 @@
                          rtLBtn.bottom() - rtLBtn.height / 4));
 
   pParams->m_pGraphics->SetStrokeColor(
-      CXFA_Color(ArgbEncode(0xff, 50, 104, 205)));
+      CXFA_GEColor(ArgbEncode(0xff, 50, 104, 205)));
   pParams->m_pGraphics->StrokePath(&path, pMatrix);
   pParams->m_pGraphics->RestoreGraphState();
 }
 
 void CFWL_MonthCalendarTP::DrawRButton(CFWL_ThemeBackground* pParams,
                                        CFX_Matrix* pMatrix) {
-  CXFA_Path path;
+  CXFA_GEPath path;
   CFX_RectF rtRBtn = pParams->m_rtPart;
   path.AddRectangle(rtRBtn.left, rtRBtn.top, rtRBtn.width, rtRBtn.height);
   pParams->m_pGraphics->SaveGraphState();
   pParams->m_pGraphics->SetStrokeColor(
-      CXFA_Color(ArgbEncode(0xff, 205, 219, 243)));
+      CXFA_GEColor(ArgbEncode(0xff, 205, 219, 243)));
   pParams->m_pGraphics->StrokePath(&path, pMatrix);
   if (pParams->m_dwStates & CFWL_PartState_Pressed) {
     pParams->m_pGraphics->SetFillColor(
-        CXFA_Color(ArgbEncode(0xff, 174, 198, 242)));
+        CXFA_GEColor(ArgbEncode(0xff, 174, 198, 242)));
     pParams->m_pGraphics->FillPath(&path, FXFILL_WINDING, pMatrix);
   } else {
     pParams->m_pGraphics->SetFillColor(
-        CXFA_Color(ArgbEncode(0xff, 227, 235, 249)));
+        CXFA_GEColor(ArgbEncode(0xff, 227, 235, 249)));
     pParams->m_pGraphics->FillPath(&path, FXFILL_WINDING, pMatrix);
   }
 
@@ -185,31 +185,33 @@
                          rtRBtn.bottom() - rtRBtn.height / 4));
 
   pParams->m_pGraphics->SetStrokeColor(
-      CXFA_Color(ArgbEncode(0xff, 50, 104, 205)));
+      CXFA_GEColor(ArgbEncode(0xff, 50, 104, 205)));
   pParams->m_pGraphics->StrokePath(&path, pMatrix);
   pParams->m_pGraphics->RestoreGraphState();
 }
 
 void CFWL_MonthCalendarTP::DrawHSeperator(CFWL_ThemeBackground* pParams,
                                           CFX_Matrix* pMatrix) {
-  CXFA_Path path;
+  CXFA_GEPath path;
   CFX_RectF rtHSep = pParams->m_rtPart;
   path.MoveTo(CFX_PointF(rtHSep.left, rtHSep.top + rtHSep.height / 2));
   path.LineTo(CFX_PointF(rtHSep.right(), rtHSep.top + rtHSep.height / 2));
   pParams->m_pGraphics->SaveGraphState();
-  pParams->m_pGraphics->SetStrokeColor(CXFA_Color(m_pThemeData->clrSeperator));
+  pParams->m_pGraphics->SetStrokeColor(
+      CXFA_GEColor(m_pThemeData->clrSeperator));
   pParams->m_pGraphics->StrokePath(&path, pMatrix);
   pParams->m_pGraphics->RestoreGraphState();
 }
 
 void CFWL_MonthCalendarTP::DrawWeekNumSep(CFWL_ThemeBackground* pParams,
                                           CFX_Matrix* pMatrix) {
-  CXFA_Path path;
+  CXFA_GEPath path;
   CFX_RectF rtWeekSep = pParams->m_rtPart;
   path.MoveTo(rtWeekSep.TopLeft());
   path.LineTo(rtWeekSep.BottomLeft());
   pParams->m_pGraphics->SaveGraphState();
-  pParams->m_pGraphics->SetStrokeColor(CXFA_Color(m_pThemeData->clrSeperator));
+  pParams->m_pGraphics->SetStrokeColor(
+      CXFA_GEColor(m_pThemeData->clrSeperator));
   pParams->m_pGraphics->StrokePath(&path, pMatrix);
   pParams->m_pGraphics->RestoreGraphState();
 }
@@ -218,20 +220,20 @@
                                          CFX_Matrix* pMatrix) {
   pParams->m_pGraphics->SaveGraphState();
   if (pParams->m_dwStates & CFWL_PartState_Selected) {
-    CXFA_Path path;
+    CXFA_GEPath path;
     CFX_RectF rtSelDay = pParams->m_rtPart;
     path.AddRectangle(rtSelDay.left, rtSelDay.top, rtSelDay.width,
                       rtSelDay.height);
     pParams->m_pGraphics->SetFillColor(
-        CXFA_Color(m_pThemeData->clrDatesSelectedBK));
+        CXFA_GEColor(m_pThemeData->clrDatesSelectedBK));
     pParams->m_pGraphics->FillPath(&path, FXFILL_WINDING, pMatrix);
   } else if (pParams->m_dwStates & CFWL_PartState_Hovered) {
-    CXFA_Path path;
+    CXFA_GEPath path;
     CFX_RectF rtSelDay = pParams->m_rtPart;
     path.AddRectangle(rtSelDay.left, rtSelDay.top, rtSelDay.width,
                       rtSelDay.height);
     pParams->m_pGraphics->SetFillColor(
-        CXFA_Color(m_pThemeData->clrDatesHoverBK));
+        CXFA_GEColor(m_pThemeData->clrDatesHoverBK));
     pParams->m_pGraphics->FillPath(&path, FXFILL_WINDING, pMatrix);
   }
   pParams->m_pGraphics->RestoreGraphState();
@@ -239,26 +241,26 @@
 
 void CFWL_MonthCalendarTP::DrawDatesInCircle(CFWL_ThemeBackground* pParams,
                                              CFX_Matrix* pMatrix) {
-  CXFA_Path path;
+  CXFA_GEPath path;
   CFX_RectF rtSelDay = pParams->m_rtPart;
   path.AddRectangle(rtSelDay.left, rtSelDay.top, rtSelDay.width,
                     rtSelDay.height);
   pParams->m_pGraphics->SaveGraphState();
   pParams->m_pGraphics->SetStrokeColor(
-      CXFA_Color(m_pThemeData->clrDatesCircle));
+      CXFA_GEColor(m_pThemeData->clrDatesCircle));
   pParams->m_pGraphics->StrokePath(&path, pMatrix);
   pParams->m_pGraphics->RestoreGraphState();
 }
 
 void CFWL_MonthCalendarTP::DrawTodayCircle(CFWL_ThemeBackground* pParams,
                                            CFX_Matrix* pMatrix) {
-  CXFA_Path path;
+  CXFA_GEPath path;
   CFX_RectF rtTodayCircle = pParams->m_rtPart;
   path.AddRectangle(rtTodayCircle.left, rtTodayCircle.top, rtTodayCircle.width,
                     rtTodayCircle.height);
   pParams->m_pGraphics->SaveGraphState();
   pParams->m_pGraphics->SetStrokeColor(
-      CXFA_Color(m_pThemeData->clrDatesCircle));
+      CXFA_GEColor(m_pThemeData->clrDatesCircle));
   pParams->m_pGraphics->StrokePath(&path, pMatrix);
   pParams->m_pGraphics->RestoreGraphState();
 }
diff --git a/xfa/fwl/theme/cfwl_pushbuttontp.cpp b/xfa/fwl/theme/cfwl_pushbuttontp.cpp
index c8152f8..3d3b1aa 100644
--- a/xfa/fwl/theme/cfwl_pushbuttontp.cpp
+++ b/xfa/fwl/theme/cfwl_pushbuttontp.cpp
@@ -10,8 +10,8 @@
 #include "xfa/fwl/cfwl_themebackground.h"
 #include "xfa/fwl/cfwl_widget.h"
 #include "xfa/fwl/ifwl_themeprovider.h"
-#include "xfa/fxgraphics/cxfa_color.h"
-#include "xfa/fxgraphics/cxfa_path.h"
+#include "xfa/fxgraphics/cxfa_gecolor.h"
+#include "xfa/fxgraphics/cxfa_gepath.h"
 
 #define PUSHBUTTON_SIZE_Corner 2
 
@@ -32,7 +32,7 @@
       float fRight = rect.right();
       float fBottom = rect.bottom();
 
-      CXFA_Path strokePath;
+      CXFA_GEPath strokePath;
       strokePath.MoveTo(
           CFX_PointF(rect.left + PUSHBUTTON_SIZE_Corner, rect.top));
       strokePath.LineTo(CFX_PointF(fRight - PUSHBUTTON_SIZE_Corner, rect.top));
@@ -48,7 +48,7 @@
       strokePath.LineTo(
           CFX_PointF(rect.left + PUSHBUTTON_SIZE_Corner, rect.top));
 
-      CXFA_Path fillPath;
+      CXFA_GEPath fillPath;
       fillPath.AddSubpath(&strokePath);
 
       CXFA_Graphics* pGraphics = pParams->m_pGraphics;
@@ -67,14 +67,14 @@
                        m_pThemeData->clrEnd[iColor], &fillPath,
                        FXFILL_ALTERNATE, &pParams->m_matrix);
 
-      pGraphics->SetStrokeColor(CXFA_Color(m_pThemeData->clrBorder[iColor]));
+      pGraphics->SetStrokeColor(CXFA_GEColor(m_pThemeData->clrBorder[iColor]));
       pGraphics->StrokePath(&strokePath, &pParams->m_matrix);
 
       fillPath.Clear();
       fillPath.AddRectangle(rtInner.left, rtInner.top, rtInner.width,
                             rtInner.height);
 
-      pGraphics->SetFillColor(CXFA_Color(m_pThemeData->clrFill[iColor]));
+      pGraphics->SetFillColor(CXFA_GEColor(m_pThemeData->clrFill[iColor]));
       pGraphics->FillPath(&fillPath, FXFILL_WINDING, &pParams->m_matrix);
       if (pParams->m_dwStates & CFWL_PartState_Focused) {
         rtInner.Inflate(1, 1, 0, 0);
diff --git a/xfa/fwl/theme/cfwl_scrollbartp.cpp b/xfa/fwl/theme/cfwl_scrollbartp.cpp
index 6b998a9..d94eed0 100644
--- a/xfa/fwl/theme/cfwl_scrollbartp.cpp
+++ b/xfa/fwl/theme/cfwl_scrollbartp.cpp
@@ -10,8 +10,8 @@
 #include "xfa/fwl/cfwl_themebackground.h"
 #include "xfa/fwl/cfwl_widget.h"
 #include "xfa/fwl/ifwl_themeprovider.h"
-#include "xfa/fxgraphics/cxfa_color.h"
-#include "xfa/fxgraphics/cxfa_path.h"
+#include "xfa/fxgraphics/cxfa_gecolor.h"
+#include "xfa/fxgraphics/cxfa_gepath.h"
 
 namespace {
 
@@ -80,7 +80,7 @@
   if (eState < FWLTHEME_STATE_Normal || eState > FWLTHEME_STATE_Disable)
     return;
 
-  CXFA_Path path;
+  CXFA_GEPath path;
   CFX_RectF rect(*pRect);
   if (bVert) {
     rect.Deflate(1, 0);
@@ -94,7 +94,7 @@
                      FXFILL_WINDING, pMatrix);
     pGraphics->SaveGraphState();
     pGraphics->SetStrokeColor(
-        CXFA_Color(m_pThemeData->clrBtnBorder[eState - 1]));
+        CXFA_GEColor(m_pThemeData->clrBtnBorder[eState - 1]));
     pGraphics->StrokePath(&path, pMatrix);
     pGraphics->RestoreGraphState();
   } else {
@@ -109,7 +109,7 @@
                      FXFILL_WINDING, pMatrix);
     pGraphics->SaveGraphState();
     pGraphics->SetStrokeColor(
-        CXFA_Color(m_pThemeData->clrBtnBorder[eState - 1]));
+        CXFA_GEColor(m_pThemeData->clrBtnBorder[eState - 1]));
     pGraphics->StrokePath(&path, pMatrix);
     pGraphics->RestoreGraphState();
   }
@@ -120,7 +120,7 @@
                                bool bVert,
                                FWLTHEME_STATE eState,
                                CFX_Matrix* pMatrix) {
-  CXFA_Path path;
+  CXFA_GEPath path;
   if (bVert) {
     float fPawLen = kPawLength;
     if (pRect->width / 2 <= fPawLen) {
@@ -140,7 +140,7 @@
 
     pGraphics->SetLineWidth(1);
     pGraphics->SetStrokeColor(
-        CXFA_Color(m_pThemeData->clrPawColorLight[eState - 1]));
+        CXFA_GEColor(m_pThemeData->clrPawColorLight[eState - 1]));
     pGraphics->StrokePath(&path, nullptr);
     fX++;
 
@@ -156,7 +156,7 @@
 
     pGraphics->SetLineWidth(1);
     pGraphics->SetStrokeColor(
-        CXFA_Color(m_pThemeData->clrPawColorDark[eState - 1]));
+        CXFA_GEColor(m_pThemeData->clrPawColorDark[eState - 1]));
     pGraphics->StrokePath(&path, pMatrix);
   } else {
     float fPawLen = kPawLength;
@@ -177,7 +177,7 @@
 
     pGraphics->SetLineWidth(1);
     pGraphics->SetStrokeColor(
-        CXFA_Color(m_pThemeData->clrPawColorLight[eState - 1]));
+        CXFA_GEColor(m_pThemeData->clrPawColorLight[eState - 1]));
     pGraphics->StrokePath(&path, pMatrix);
     fY++;
 
@@ -193,7 +193,7 @@
 
     pGraphics->SetLineWidth(1);
     pGraphics->SetStrokeColor(
-        CXFA_Color(m_pThemeData->clrPawColorDark[eState - 1]));
+        CXFA_GEColor(m_pThemeData->clrPawColorDark[eState - 1]));
     pGraphics->StrokePath(&path, pMatrix);
   }
 }
@@ -208,7 +208,7 @@
     return;
 
   pGraphics->SaveGraphState();
-  CXFA_Path path;
+  CXFA_GEPath path;
   float fRight = pRect->right();
   float fBottom = pRect->bottom();
   if (bVert) {
@@ -218,7 +218,7 @@
     path.AddRectangle(pRect->left, pRect->top, pRect->width, 1);
     path.AddRectangle(pRect->left, fBottom - 1, pRect->width, 1);
   }
-  pGraphics->SetFillColor(CXFA_Color(ArgbEncode(255, 238, 237, 229)));
+  pGraphics->SetFillColor(CXFA_GEColor(ArgbEncode(255, 238, 237, 229)));
   pGraphics->FillPath(&path, FXFILL_WINDING, pMatrix);
   path.Clear();
   path.AddRectangle(pRect->left + 1, pRect->top, pRect->width - 2,
diff --git a/xfa/fwl/theme/cfwl_widgettp.cpp b/xfa/fwl/theme/cfwl_widgettp.cpp
index b2c1c9aa7..8a2754b 100644
--- a/xfa/fwl/theme/cfwl_widgettp.cpp
+++ b/xfa/fwl/theme/cfwl_widgettp.cpp
@@ -19,9 +19,9 @@
 #include "xfa/fwl/cfwl_widget.h"
 #include "xfa/fwl/cfwl_widgetmgr.h"
 #include "xfa/fwl/ifwl_themeprovider.h"
-#include "xfa/fxgraphics/cxfa_color.h"
-#include "xfa/fxgraphics/cxfa_path.h"
-#include "xfa/fxgraphics/cxfa_shading.h"
+#include "xfa/fxgraphics/cxfa_gecolor.h"
+#include "xfa/fxgraphics/cxfa_gepath.h"
+#include "xfa/fxgraphics/cxfa_geshading.h"
 
 CFWL_WidgetTP::CFWL_WidgetTP()
     : m_dwRefCount(1), m_pFDEFont(nullptr), m_pColorData(nullptr) {}
@@ -102,12 +102,12 @@
   if (!pGraphics || !pRect)
     return;
 
-  CXFA_Path path;
+  CXFA_GEPath path;
   path.AddRectangle(pRect->left, pRect->top, pRect->width, pRect->height);
   path.AddRectangle(pRect->left + 1, pRect->top + 1, pRect->width - 2,
                     pRect->height - 2);
   pGraphics->SaveGraphState();
-  pGraphics->SetFillColor(CXFA_Color(ArgbEncode(255, 0, 0, 0)));
+  pGraphics->SetFillColor(CXFA_GEColor(ArgbEncode(255, 0, 0, 0)));
   pGraphics->FillPath(&path, FXFILL_ALTERNATE, pMatrix);
   pGraphics->RestoreGraphState();
 }
@@ -125,10 +125,10 @@
   if (!pGraphics || !pRect)
     return;
 
-  CXFA_Path path;
+  CXFA_GEPath path;
   path.AddRectangle(pRect->left, pRect->top, pRect->width, pRect->height);
   pGraphics->SaveGraphState();
-  pGraphics->SetFillColor(CXFA_Color(fillColor));
+  pGraphics->SetFillColor(CXFA_GEColor(fillColor));
   pGraphics->FillPath(&path, FXFILL_WINDING, pMatrix);
   pGraphics->RestoreGraphState();
 }
@@ -140,7 +140,7 @@
                                      float fy2,
                                      FX_ARGB beginColor,
                                      FX_ARGB endColor,
-                                     CXFA_Path* path,
+                                     CXFA_GEPath* path,
                                      int32_t fillMode,
                                      CFX_Matrix* pMatrix) {
   if (!pGraphics || !path)
@@ -148,9 +148,10 @@
 
   CFX_PointF begPoint(fx1, fy1);
   CFX_PointF endPoint(fx2, fy2);
-  CXFA_Shading shading(begPoint, endPoint, false, false, beginColor, endColor);
+  CXFA_GEShading shading(begPoint, endPoint, false, false, beginColor,
+                         endColor);
   pGraphics->SaveGraphState();
-  pGraphics->SetFillColor(CXFA_Color(&shading));
+  pGraphics->SetFillColor(CXFA_GEColor(&shading));
   pGraphics->FillPath(path, fillMode, pMatrix);
   pGraphics->RestoreGraphState();
 }
@@ -162,10 +163,10 @@
     return;
 
   float DashPattern[2] = {1, 1};
-  CXFA_Path path;
+  CXFA_GEPath path;
   path.AddRectangle(pRect->left, pRect->top, pRect->width, pRect->height);
   pGraphics->SaveGraphState();
-  pGraphics->SetStrokeColor(CXFA_Color(0xFF000000));
+  pGraphics->SetStrokeColor(CXFA_GEColor(0xFF000000));
   pGraphics->SetLineDash(0.0f, DashPattern, 2);
   pGraphics->StrokePath(&path, pMatrix);
   pGraphics->RestoreGraphState();
@@ -182,7 +183,7 @@
       (float)(((pRect->width - (bVert ? 9 : 6)) / 2 + pRect->left) + 0.5);
   float fTop =
       (float)(((pRect->height - (bVert ? 6 : 9)) / 2 + pRect->top) + 0.5);
-  CXFA_Path path;
+  CXFA_GEPath path;
   switch (eDict) {
     case FWLTHEME_DIRECTION_Down: {
       path.MoveTo(CFX_PointF(fLeft, fTop + 1));
@@ -221,7 +222,7 @@
       break;
     }
   }
-  pGraphics->SetFillColor(CXFA_Color(argSign));
+  pGraphics->SetFillColor(CXFA_GEColor(argSign));
   pGraphics->FillPath(&path, FXFILL_WINDING, pMatrix);
 }
 
@@ -231,7 +232,7 @@
                             CFX_Matrix* pMatrix) {
   InitializeArrowColorData();
 
-  CXFA_Path path;
+  CXFA_GEPath path;
   float fRight = pRect->right();
   float fBottom = pRect->bottom();
   path.AddRectangle(pRect->left, pRect->top, pRect->width, pRect->height);
@@ -240,7 +241,7 @@
                    m_pColorData->clrEnd[eState - 1], &path, FXFILL_WINDING,
                    pMatrix);
 
-  pGraphics->SetStrokeColor(CXFA_Color(m_pColorData->clrBorder[eState - 1]));
+  pGraphics->SetStrokeColor(CXFA_GEColor(m_pColorData->clrBorder[eState - 1]));
   pGraphics->StrokePath(&path, pMatrix);
 }
 
diff --git a/xfa/fwl/theme/cfwl_widgettp.h b/xfa/fwl/theme/cfwl_widgettp.h
index a7a217f..5f143fe 100644
--- a/xfa/fwl/theme/cfwl_widgettp.h
+++ b/xfa/fwl/theme/cfwl_widgettp.h
@@ -72,7 +72,7 @@
                         float fy2,
                         FX_ARGB beginColor,
                         FX_ARGB endColor,
-                        CXFA_Path* path,
+                        CXFA_GEPath* path,
                         int32_t fillMode = FXFILL_WINDING,
                         CFX_Matrix* pMatrix = nullptr);
   void DrawFocus(CXFA_Graphics* pGraphics,
diff --git a/xfa/fxfa/cxfa_fffield.cpp b/xfa/fxfa/cxfa_fffield.cpp
index 0ef6722..9758eb7 100644
--- a/xfa/fxfa/cxfa_fffield.cpp
+++ b/xfa/fxfa/cxfa_fffield.cpp
@@ -23,8 +23,8 @@
 #include "xfa/fxfa/cxfa_fwltheme.h"
 #include "xfa/fxfa/cxfa_textlayout.h"
 #include "xfa/fxfa/parser/cxfa_node.h"
-#include "xfa/fxgraphics/cxfa_color.h"
-#include "xfa/fxgraphics/cxfa_path.h"
+#include "xfa/fxgraphics/cxfa_gecolor.h"
+#include "xfa/fxgraphics/cxfa_gepath.h"
 
 namespace {
 
@@ -89,8 +89,8 @@
 
   CXFA_FFDoc* pDoc = GetDoc();
   pGS->SetFillColor(
-      CXFA_Color(pDoc->GetDocEnvironment()->GetHighlightColor(pDoc)));
-  CXFA_Path path;
+      CXFA_GEColor(pDoc->GetDocEnvironment()->GetHighlightColor(pDoc)));
+  CXFA_GEPath path;
   if (bEllipse)
     path.AddEllipse(m_rtUI);
   else
@@ -103,13 +103,13 @@
   if (!(m_dwStatus & XFA_WidgetStatus_Focused))
     return;
 
-  pGS->SetStrokeColor(CXFA_Color(0xFF000000));
+  pGS->SetStrokeColor(CXFA_GEColor(0xFF000000));
 
   float DashPattern[2] = {1, 1};
   pGS->SetLineDash(0.0f, DashPattern, 2);
   pGS->SetLineWidth(0);
 
-  CXFA_Path path;
+  CXFA_GEPath path;
   path.AddRectangle(m_rtUI.left, m_rtUI.top, m_rtUI.width, m_rtUI.height);
   pGS->StrokePath(&path, pMatrix);
 }
diff --git a/xfa/fxfa/cxfa_ffline.cpp b/xfa/fxfa/cxfa_ffline.cpp
index de37e50..d24444c 100644
--- a/xfa/fxfa/cxfa_ffline.cpp
+++ b/xfa/fxfa/cxfa_ffline.cpp
@@ -6,9 +6,9 @@
 
 #include "xfa/fxfa/cxfa_ffline.h"
 
-#include "xfa/fxgraphics/cxfa_color.h"
+#include "xfa/fxgraphics/cxfa_gecolor.h"
+#include "xfa/fxgraphics/cxfa_gepath.h"
 #include "xfa/fxgraphics/cxfa_graphics.h"
-#include "xfa/fxgraphics/cxfa_path.h"
 
 CXFA_FFLine::CXFA_FFLine(CXFA_WidgetAcc* pDataAcc) : CXFA_FFDraw(pDataAcc) {}
 
@@ -81,7 +81,7 @@
     XFA_RectWidthoutMargin(rtLine, marginData);
 
   GetRectFromHand(rtLine, lineData.GetHand(), fLineWidth);
-  CXFA_Path linePath;
+  CXFA_GEPath linePath;
   if (lineData.GetSlope() && rtLine.right() > 0.0f && rtLine.bottom() > 0.0f)
     linePath.AddLine(rtLine.TopRight(), rtLine.BottomLeft());
   else
@@ -91,7 +91,7 @@
   pGS->SetLineWidth(fLineWidth);
   pGS->EnableActOnDash();
   XFA_StrokeTypeSetLineDash(pGS, iStrokeType, iCap);
-  pGS->SetStrokeColor(CXFA_Color(lineColor));
+  pGS->SetStrokeColor(CXFA_GEColor(lineColor));
   pGS->SetLineCap(XFA_LineCapToFXGE(iCap));
   pGS->StrokePath(&linePath, &mtRotate);
   pGS->RestoreGraphState();
diff --git a/xfa/fxfa/cxfa_ffpushbutton.cpp b/xfa/fxfa/cxfa_ffpushbutton.cpp
index c966cda..1f5d902 100644
--- a/xfa/fxfa/cxfa_ffpushbutton.cpp
+++ b/xfa/fxfa/cxfa_ffpushbutton.cpp
@@ -18,8 +18,8 @@
 #include "xfa/fxfa/cxfa_ffwidget.h"
 #include "xfa/fxfa/cxfa_textlayout.h"
 #include "xfa/fxfa/cxfa_textprovider.h"
-#include "xfa/fxgraphics/cxfa_color.h"
-#include "xfa/fxgraphics/cxfa_path.h"
+#include "xfa/fxgraphics/cxfa_gecolor.h"
+#include "xfa/fxgraphics/cxfa_gepath.h"
 
 CXFA_FFPushButton::CXFA_FFPushButton(CXFA_WidgetAcc* pDataAcc)
     : CXFA_FFField(pDataAcc), m_pOldDelegate(nullptr) {}
@@ -210,9 +210,9 @@
       CFX_RectF rtFill(0, 0, m_pNormalWidget->GetWidgetRect().Size());
       float fLineWith = GetLineWidth();
       rtFill.Deflate(fLineWith, fLineWith);
-      CXFA_Path path;
+      CXFA_GEPath path;
       path.AddRectangle(rtFill.left, rtFill.top, rtFill.width, rtFill.height);
-      pGraphics->SetFillColor(CXFA_Color(FXARGB_MAKE(128, 128, 255, 255)));
+      pGraphics->SetFillColor(CXFA_GEColor(FXARGB_MAKE(128, 128, 255, 255)));
       pGraphics->FillPath(&path, FXFILL_WINDING, &matrix);
     }
     return;
@@ -222,10 +222,10 @@
     if ((m_pNormalWidget->GetStates() & FWL_STATE_PSB_Pressed) &&
         (m_pNormalWidget->GetStates() & FWL_STATE_PSB_Hovered)) {
       float fLineWidth = GetLineWidth();
-      pGraphics->SetStrokeColor(CXFA_Color(FXARGB_MAKE(255, 128, 255, 255)));
+      pGraphics->SetStrokeColor(CXFA_GEColor(FXARGB_MAKE(255, 128, 255, 255)));
       pGraphics->SetLineWidth(fLineWidth);
 
-      CXFA_Path path;
+      CXFA_GEPath path;
       CFX_RectF rect = m_pNormalWidget->GetWidgetRect();
       path.AddRectangle(0, 0, rect.width, rect.height);
       pGraphics->StrokePath(&path, &matrix);
diff --git a/xfa/fxfa/cxfa_ffwidget.cpp b/xfa/fxfa/cxfa_ffwidget.cpp
index d3a6498..6bcf524 100644
--- a/xfa/fxfa/cxfa_ffwidget.cpp
+++ b/xfa/fxfa/cxfa_ffwidget.cpp
@@ -31,17 +31,17 @@
 #include "xfa/fxfa/cxfa_widgetacc.h"
 #include "xfa/fxfa/parser/cxfa_cornerdata.h"
 #include "xfa/fxfa/parser/cxfa_node.h"
-#include "xfa/fxgraphics/cxfa_color.h"
+#include "xfa/fxgraphics/cxfa_gecolor.h"
+#include "xfa/fxgraphics/cxfa_gepath.h"
+#include "xfa/fxgraphics/cxfa_gepattern.h"
+#include "xfa/fxgraphics/cxfa_geshading.h"
 #include "xfa/fxgraphics/cxfa_graphics.h"
-#include "xfa/fxgraphics/cxfa_path.h"
-#include "xfa/fxgraphics/cxfa_pattern.h"
-#include "xfa/fxgraphics/cxfa_shading.h"
 
 namespace {
 
 void XFA_BOX_GetPath_Arc(const CXFA_BoxData& boxData,
                          CFX_RectF rtDraw,
-                         CXFA_Path& fillPath,
+                         CXFA_GEPath& fillPath,
                          uint32_t dwFlags) {
   float a, b;
   a = rtDraw.width / 2.0f;
@@ -68,7 +68,7 @@
 
 void XFA_BOX_GetPath(const std::vector<CXFA_StrokeData>& strokes,
                      CFX_RectF rtWidget,
-                     CXFA_Path& path,
+                     CXFA_GEPath& path,
                      int32_t nIndex,
                      bool bStart,
                      bool bCorner) {
@@ -237,7 +237,7 @@
 void XFA_BOX_GetFillPath(const CXFA_BoxData& boxData,
                          const std::vector<CXFA_StrokeData>& strokes,
                          CFX_RectF rtWidget,
-                         CXFA_Path& fillPath,
+                         CXFA_GEPath& fillPath,
                          uint16_t dwFlags) {
   if (boxData.IsArc() || (dwFlags & XFA_DRAWBOX_ForceRound) != 0) {
     float fThickness = std::fmax(0.0, boxData.GetEdgeData(0).GetThickness());
@@ -386,7 +386,7 @@
 
 void XFA_BOX_Fill_Radial(const CXFA_BoxData& boxData,
                          CXFA_Graphics* pGS,
-                         CXFA_Path& fillPath,
+                         CXFA_GEPath& fillPath,
                          CFX_RectF rtFill,
                          const CFX_Matrix& matrix) {
   CXFA_FillData fillData = boxData.GetFillData(false);
@@ -398,18 +398,18 @@
     crEnd = crStart;
     crStart = temp;
   }
-  CXFA_Shading shading(rtFill.Center(), rtFill.Center(), 0,
-                       sqrt(rtFill.Width() * rtFill.Width() +
-                            rtFill.Height() * rtFill.Height()) /
-                           2,
-                       true, true, crStart, crEnd);
-  pGS->SetFillColor(CXFA_Color(&shading));
+  CXFA_GEShading shading(rtFill.Center(), rtFill.Center(), 0,
+                         sqrt(rtFill.Width() * rtFill.Width() +
+                              rtFill.Height() * rtFill.Height()) /
+                             2,
+                         true, true, crStart, crEnd);
+  pGS->SetFillColor(CXFA_GEColor(&shading));
   pGS->FillPath(&fillPath, FXFILL_WINDING, &matrix);
 }
 
 void XFA_BOX_Fill_Pattern(const CXFA_BoxData& boxData,
                           CXFA_Graphics* pGS,
-                          CXFA_Path& fillPath,
+                          CXFA_GEPath& fillPath,
                           CFX_RectF rtFill,
                           const CFX_Matrix& matrix) {
   CXFA_FillData fillData = boxData.GetFillData(false);
@@ -437,14 +437,14 @@
       break;
   }
 
-  CXFA_Pattern pattern(iHatch, crEnd, crStart);
-  pGS->SetFillColor(CXFA_Color(&pattern, 0x0));
+  CXFA_GEPattern pattern(iHatch, crEnd, crStart);
+  pGS->SetFillColor(CXFA_GEColor(&pattern, 0x0));
   pGS->FillPath(&fillPath, FXFILL_WINDING, &matrix);
 }
 
 void XFA_BOX_Fill_Linear(const CXFA_BoxData& boxData,
                          CXFA_Graphics* pGS,
-                         CXFA_Path& fillPath,
+                         CXFA_GEPath& fillPath,
                          CFX_RectF rtFill,
                          const CFX_Matrix& matrix) {
   CXFA_FillData fillData = boxData.GetFillData(false);
@@ -473,8 +473,8 @@
     default:
       break;
   }
-  CXFA_Shading shading(ptStart, ptEnd, false, false, crStart, crEnd);
-  pGS->SetFillColor(CXFA_Color(&shading));
+  CXFA_GEShading shading(ptStart, ptEnd, false, false, crStart, crEnd);
+  pGS->SetFillColor(CXFA_GEColor(&shading));
   pGS->FillPath(&fillPath, FXFILL_WINDING, &matrix);
 }
 
@@ -489,7 +489,7 @@
     return;
 
   pGS->SaveGraphState();
-  CXFA_Path fillPath;
+  CXFA_GEPath fillPath;
   XFA_BOX_GetFillPath(boxData, strokes, rtWidget, fillPath,
                       (dwFlags & XFA_DRAWBOX_ForceRound) != 0);
   fillPath.Close();
@@ -517,7 +517,7 @@
       } else {
         cr = fillData.GetColor();
       }
-      pGS->SetFillColor(CXFA_Color(cr));
+      pGS->SetFillColor(CXFA_GEColor(cr));
       pGS->FillPath(&fillPath, FXFILL_WINDING, &matrix);
     } break;
   }
@@ -525,7 +525,7 @@
 }
 
 void XFA_BOX_StrokePath(const CXFA_StrokeData& strokeData,
-                        CXFA_Path* pPath,
+                        CXFA_GEPath* pPath,
                         CXFA_Graphics* pGS,
                         const CFX_Matrix& matrix) {
   if (!strokeData || !strokeData.IsVisible())
@@ -544,7 +544,7 @@
   pGS->SetLineCap(CFX_GraphStateData::LineCapButt);
   XFA_StrokeTypeSetLineDash(pGS, strokeData.GetStrokeType(),
                             XFA_ATTRIBUTEENUM_Butt);
-  pGS->SetStrokeColor(CXFA_Color(strokeData.GetColor()));
+  pGS->SetStrokeColor(CXFA_GEColor(strokeData.GetColor()));
   pGS->StrokePath(pPath, &matrix);
   pGS->RestoreGraphState();
 }
@@ -581,7 +581,7 @@
     if (fHalf < 0.001f)
       return;
 
-    CXFA_Path arcPath;
+    CXFA_GEPath arcPath;
     XFA_BOX_GetPath_Arc(boxData, rtWidget, arcPath, dwFlags);
     XFA_BOX_StrokePath(edgeData, &arcPath, pGS, matrix);
     return;
@@ -607,30 +607,30 @@
   startAngle = startAngle * FX_PI / 180.0f;
   sweepAngle = -sweepAngle * FX_PI / 180.0f;
 
-  CXFA_Path arcPath;
+  CXFA_GEPath arcPath;
   arcPath.AddArc(rtWidget.TopLeft(), rtWidget.Size(), 3.0f * FX_PI / 4.0f,
                  FX_PI);
 
-  pGS->SetStrokeColor(CXFA_Color(0xFF808080));
+  pGS->SetStrokeColor(CXFA_GEColor(0xFF808080));
   pGS->StrokePath(&arcPath, &matrix);
   arcPath.Clear();
   arcPath.AddArc(rtWidget.TopLeft(), rtWidget.Size(), -1.0f * FX_PI / 4.0f,
                  FX_PI);
 
-  pGS->SetStrokeColor(CXFA_Color(0xFFFFFFFF));
+  pGS->SetStrokeColor(CXFA_GEColor(0xFFFFFFFF));
   pGS->StrokePath(&arcPath, &matrix);
   rtWidget.Deflate(fHalf, fHalf);
   arcPath.Clear();
   arcPath.AddArc(rtWidget.TopLeft(), rtWidget.Size(), 3.0f * FX_PI / 4.0f,
                  FX_PI);
 
-  pGS->SetStrokeColor(CXFA_Color(0xFF404040));
+  pGS->SetStrokeColor(CXFA_GEColor(0xFF404040));
   pGS->StrokePath(&arcPath, &matrix);
   arcPath.Clear();
   arcPath.AddArc(rtWidget.TopLeft(), rtWidget.Size(), -1.0f * FX_PI / 4.0f,
                  FX_PI);
 
-  pGS->SetStrokeColor(CXFA_Color(0xFFC0C0C0));
+  pGS->SetStrokeColor(CXFA_GEColor(0xFFC0C0C0));
   pGS->StrokePath(&arcPath, &matrix);
   pGS->RestoreGraphState();
 }
@@ -643,7 +643,7 @@
                     FX_ARGB argbBottomRight) {
   float fBottom = rt.bottom();
   float fRight = rt.right();
-  CXFA_Path pathLT;
+  CXFA_GEPath pathLT;
   pathLT.MoveTo(CFX_PointF(rt.left, fBottom));
   pathLT.LineTo(CFX_PointF(rt.left, rt.top));
   pathLT.LineTo(CFX_PointF(fRight, rt.top));
@@ -651,10 +651,10 @@
   pathLT.LineTo(CFX_PointF(rt.left + fLineWidth, rt.top + fLineWidth));
   pathLT.LineTo(CFX_PointF(rt.left + fLineWidth, fBottom - fLineWidth));
   pathLT.LineTo(CFX_PointF(rt.left, fBottom));
-  pGraphic->SetFillColor(CXFA_Color(argbTopLeft));
+  pGraphic->SetFillColor(CXFA_GEColor(argbTopLeft));
   pGraphic->FillPath(&pathLT, FXFILL_WINDING, &matrix);
 
-  CXFA_Path pathRB;
+  CXFA_GEPath pathRB;
   pathRB.MoveTo(CFX_PointF(fRight, rt.top));
   pathRB.LineTo(CFX_PointF(fRight, fBottom));
   pathRB.LineTo(CFX_PointF(rt.left, fBottom));
@@ -662,7 +662,7 @@
   pathRB.LineTo(CFX_PointF(fRight - fLineWidth, fBottom - fLineWidth));
   pathRB.LineTo(CFX_PointF(fRight - fLineWidth, rt.top + fLineWidth));
   pathRB.LineTo(CFX_PointF(fRight, rt.top));
-  pGraphic->SetFillColor(CXFA_Color(argbBottomRight));
+  pGraphic->SetFillColor(CXFA_GEColor(argbBottomRight));
   pGraphic->FillPath(&pathRB, FXFILL_WINDING, &matrix);
 }
 
@@ -674,10 +674,10 @@
   CFX_RectF rtInner(rt);
   rtInner.Deflate(fHalfWidth, fHalfWidth);
 
-  CXFA_Path path;
+  CXFA_GEPath path;
   path.AddRectangle(rt.left, rt.top, rt.width, rt.height);
   path.AddRectangle(rtInner.left, rtInner.top, rtInner.width, rtInner.height);
-  pGS->SetFillColor(CXFA_Color(0xFF000000));
+  pGS->SetFillColor(CXFA_GEColor(0xFF000000));
   pGS->FillPath(&path, FXFILL_ALTERNATE, &matrix);
   XFA_Draw3DRect(pGS, rtInner, fHalfWidth, matrix, 0xFF808080, 0xFFC0C0C0);
 }
@@ -690,10 +690,10 @@
   CFX_RectF rtInner(rt);
   rtInner.Deflate(fHalfWidth, fHalfWidth);
 
-  CXFA_Path path;
+  CXFA_GEPath path;
   path.AddRectangle(rt.left, rt.top, rt.width, rt.height);
   path.AddRectangle(rtInner.left, rtInner.top, rtInner.width, rtInner.height);
-  pGS->SetFillColor(CXFA_Color(0xFF000000));
+  pGS->SetFillColor(CXFA_GEColor(0xFF000000));
   pGS->FillPath(&path, FXFILL_ALTERNATE, &matrix);
   XFA_Draw3DRect(pGS, rtInner, fHalfWidth, matrix, 0xFFFFFFFF, 0xFF808080);
 }
@@ -781,7 +781,7 @@
     }
   }
   bool bStart = true;
-  CXFA_Path path;
+  CXFA_GEPath path;
   for (int32_t i = 0; i < 8; i++) {
     CXFA_StrokeData strokeData = strokes[i];
     if ((i % 1) == 0 && strokeData.GetRadius() < 0) {
diff --git a/xfa/fxfa/cxfa_fwltheme.cpp b/xfa/fxfa/cxfa_fwltheme.cpp
index 61c4e25..440c41d 100644
--- a/xfa/fxfa/cxfa_fwltheme.cpp
+++ b/xfa/fxfa/cxfa_fwltheme.cpp
@@ -24,7 +24,7 @@
 #include "xfa/fwl/cfwl_themetext.h"
 #include "xfa/fxfa/cxfa_ffapp.h"
 #include "xfa/fxfa/cxfa_ffwidget.h"
-#include "xfa/fxgraphics/cxfa_color.h"
+#include "xfa/fxgraphics/cxfa_gecolor.h"
 
 namespace {
 
diff --git a/xfa/fxgraphics/cxfa_color.h b/xfa/fxgraphics/cxfa_color.h
deleted file mode 100644
index 4ae7905..0000000
--- a/xfa/fxgraphics/cxfa_color.h
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef XFA_FXGRAPHICS_CXFA_COLOR_H_
-#define XFA_FXGRAPHICS_CXFA_COLOR_H_
-
-#include "core/fxge/fx_dib.h"
-
-class CXFA_Pattern;
-class CXFA_Shading;
-
-class CXFA_Color {
- public:
-  enum Type { Invalid, Solid, Pattern, Shading };
-
-  CXFA_Color();
-  explicit CXFA_Color(const FX_ARGB argb);
-  explicit CXFA_Color(CXFA_Shading* shading);
-  CXFA_Color(CXFA_Pattern* pattern, const FX_ARGB argb);
-  ~CXFA_Color();
-
-  Type GetType() const { return m_type; }
-  FX_ARGB GetArgb() const {
-    ASSERT(m_type == Solid || m_type == Pattern);
-    return m_argb;
-  }
-  CXFA_Pattern* GetPattern() const {
-    ASSERT(m_type == Pattern);
-    return m_pointer.pattern;
-  }
-  CXFA_Shading* GetShading() const {
-    ASSERT(m_type == Shading);
-    return m_pointer.shading;
-  }
-
-  CXFA_Color& operator=(const CXFA_Color& that);
-
- private:
-  Type m_type;
-  FX_ARGB m_argb;
-  union {
-    CXFA_Pattern* pattern;
-    CXFA_Shading* shading;
-  } m_pointer;
-};
-
-#endif  // XFA_FXGRAPHICS_CXFA_COLOR_H_
diff --git a/xfa/fxgraphics/cxfa_color.cpp b/xfa/fxgraphics/cxfa_gecolor.cpp
similarity index 65%
rename from xfa/fxgraphics/cxfa_color.cpp
rename to xfa/fxgraphics/cxfa_gecolor.cpp
index 731d144..3dca4a7 100644
--- a/xfa/fxgraphics/cxfa_color.cpp
+++ b/xfa/fxgraphics/cxfa_gecolor.cpp
@@ -4,26 +4,27 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#include "xfa/fxgraphics/cxfa_color.h"
+#include "xfa/fxgraphics/cxfa_gecolor.h"
 
-CXFA_Color::CXFA_Color() : m_type(Invalid) {}
+CXFA_GEColor::CXFA_GEColor() : m_type(Invalid) {}
 
-CXFA_Color::CXFA_Color(const FX_ARGB argb) : m_type(Solid), m_argb(argb) {
+CXFA_GEColor::CXFA_GEColor(const FX_ARGB argb) : m_type(Solid), m_argb(argb) {
   m_pointer.pattern = nullptr;
 }
 
-CXFA_Color::CXFA_Color(CXFA_Pattern* pattern, const FX_ARGB argb)
+CXFA_GEColor::CXFA_GEColor(CXFA_GEPattern* pattern, const FX_ARGB argb)
     : m_type(Pattern), m_argb(argb) {
   m_pointer.pattern = pattern;
 }
 
-CXFA_Color::CXFA_Color(CXFA_Shading* shading) : m_type(Shading), m_argb(0) {
+CXFA_GEColor::CXFA_GEColor(CXFA_GEShading* shading)
+    : m_type(Shading), m_argb(0) {
   m_pointer.shading = shading;
 }
 
-CXFA_Color::~CXFA_Color() {}
+CXFA_GEColor::~CXFA_GEColor() {}
 
-CXFA_Color& CXFA_Color::operator=(const CXFA_Color& that) {
+CXFA_GEColor& CXFA_GEColor::operator=(const CXFA_GEColor& that) {
   if (this != &that) {
     m_type = that.m_type;
     switch (m_type) {
diff --git a/xfa/fxgraphics/cxfa_gecolor.h b/xfa/fxgraphics/cxfa_gecolor.h
new file mode 100644
index 0000000..b60585b
--- /dev/null
+++ b/xfa/fxgraphics/cxfa_gecolor.h
@@ -0,0 +1,50 @@
+// Copyright 2016 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXGRAPHICS_CXFA_GECOLOR_H_
+#define XFA_FXGRAPHICS_CXFA_GECOLOR_H_
+
+#include "core/fxge/fx_dib.h"
+
+class CXFA_GEPattern;
+class CXFA_GEShading;
+
+class CXFA_GEColor {
+ public:
+  enum Type { Invalid, Solid, Pattern, Shading };
+
+  CXFA_GEColor();
+  explicit CXFA_GEColor(const FX_ARGB argb);
+  explicit CXFA_GEColor(CXFA_GEShading* shading);
+  CXFA_GEColor(CXFA_GEPattern* pattern, const FX_ARGB argb);
+  ~CXFA_GEColor();
+
+  Type GetType() const { return m_type; }
+  FX_ARGB GetArgb() const {
+    ASSERT(m_type == Solid || m_type == Pattern);
+    return m_argb;
+  }
+  CXFA_GEPattern* GetPattern() const {
+    ASSERT(m_type == Pattern);
+    return m_pointer.pattern;
+  }
+  CXFA_GEShading* GetShading() const {
+    ASSERT(m_type == Shading);
+    return m_pointer.shading;
+  }
+
+  CXFA_GEColor& operator=(const CXFA_GEColor& that);
+
+ private:
+  Type m_type;
+  FX_ARGB m_argb;
+  union {
+    CXFA_GEPattern* pattern;
+    CXFA_GEShading* shading;
+  } m_pointer;
+};
+
+#endif  // XFA_FXGRAPHICS_CXFA_GECOLOR_H_
diff --git a/xfa/fxgraphics/cxfa_path.cpp b/xfa/fxgraphics/cxfa_gepath.cpp
similarity index 71%
rename from xfa/fxgraphics/cxfa_path.cpp
rename to xfa/fxgraphics/cxfa_gepath.cpp
index 6d7ed0b..88372f7 100644
--- a/xfa/fxgraphics/cxfa_path.cpp
+++ b/xfa/fxgraphics/cxfa_gepath.cpp
@@ -4,52 +4,52 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#include "xfa/fxgraphics/cxfa_path.h"
+#include "xfa/fxgraphics/cxfa_gepath.h"
 
 #include "core/fxge/cfx_pathdata.h"
 #include "third_party/base/ptr_util.h"
 
-CXFA_Path::CXFA_Path() {}
+CXFA_GEPath::CXFA_GEPath() {}
 
-CXFA_Path::~CXFA_Path() {}
+CXFA_GEPath::~CXFA_GEPath() {}
 
-void CXFA_Path::Clear() {
+void CXFA_GEPath::Clear() {
   data_.Clear();
 }
 
-void CXFA_Path::Close() {
+void CXFA_GEPath::Close() {
   data_.ClosePath();
 }
 
-void CXFA_Path::MoveTo(const CFX_PointF& point) {
+void CXFA_GEPath::MoveTo(const CFX_PointF& point) {
   data_.AppendPoint(point, FXPT_TYPE::MoveTo, false);
 }
 
-void CXFA_Path::LineTo(const CFX_PointF& point) {
+void CXFA_GEPath::LineTo(const CFX_PointF& point) {
   data_.AppendPoint(point, FXPT_TYPE::LineTo, false);
 }
 
-void CXFA_Path::BezierTo(const CFX_PointF& c1,
-                         const CFX_PointF& c2,
-                         const CFX_PointF& to) {
+void CXFA_GEPath::BezierTo(const CFX_PointF& c1,
+                           const CFX_PointF& c2,
+                           const CFX_PointF& to) {
   data_.AppendPoint(c1, FXPT_TYPE::BezierTo, false);
   data_.AppendPoint(c2, FXPT_TYPE::BezierTo, false);
   data_.AppendPoint(to, FXPT_TYPE::BezierTo, false);
 }
 
-void CXFA_Path::ArcTo(const CFX_PointF& pos,
-                      const CFX_SizeF& size,
-                      float start_angle,
-                      float sweep_angle) {
+void CXFA_GEPath::ArcTo(const CFX_PointF& pos,
+                        const CFX_SizeF& size,
+                        float start_angle,
+                        float sweep_angle) {
   CFX_SizeF new_size = size / 2.0f;
   ArcToInternal(CFX_PointF(pos.x + new_size.width, pos.y + new_size.height),
                 new_size, start_angle, sweep_angle);
 }
 
-void CXFA_Path::ArcToInternal(const CFX_PointF& pos,
-                              const CFX_SizeF& size,
-                              float start_angle,
-                              float sweep_angle) {
+void CXFA_GEPath::ArcToInternal(const CFX_PointF& pos,
+                                const CFX_SizeF& size,
+                                float start_angle,
+                                float sweep_angle) {
   float x0 = cos(sweep_angle / 2);
   float y0 = sin(sweep_angle / 2);
   float tx = ((1.0f - x0) * 4) / (3 * 1.0f);
@@ -73,23 +73,26 @@
   data_.AppendPoint(bezier, FXPT_TYPE::BezierTo, false);
 }
 
-void CXFA_Path::AddLine(const CFX_PointF& p1, const CFX_PointF& p2) {
+void CXFA_GEPath::AddLine(const CFX_PointF& p1, const CFX_PointF& p2) {
   data_.AppendPoint(p1, FXPT_TYPE::MoveTo, false);
   data_.AppendPoint(p2, FXPT_TYPE::LineTo, false);
 }
 
-void CXFA_Path::AddRectangle(float left, float top, float width, float height) {
+void CXFA_GEPath::AddRectangle(float left,
+                               float top,
+                               float width,
+                               float height) {
   data_.AppendRect(left, top, left + width, top + height);
 }
 
-void CXFA_Path::AddEllipse(const CFX_RectF& rect) {
+void CXFA_GEPath::AddEllipse(const CFX_RectF& rect) {
   AddArc(rect.TopLeft(), rect.Size(), 0, FX_PI * 2);
 }
 
-void CXFA_Path::AddArc(const CFX_PointF& original_pos,
-                       const CFX_SizeF& original_size,
-                       float start_angle,
-                       float sweep_angle) {
+void CXFA_GEPath::AddArc(const CFX_PointF& original_pos,
+                         const CFX_SizeF& original_size,
+                         float start_angle,
+                         float sweep_angle) {
   if (sweep_angle == 0)
     return;
 
@@ -137,12 +140,12 @@
   } while (!done);
 }
 
-void CXFA_Path::AddSubpath(CXFA_Path* path) {
+void CXFA_GEPath::AddSubpath(CXFA_GEPath* path) {
   if (!path)
     return;
   data_.Append(&path->data_, nullptr);
 }
 
-void CXFA_Path::TransformBy(const CFX_Matrix& mt) {
+void CXFA_GEPath::TransformBy(const CFX_Matrix& mt) {
   data_.Transform(&mt);
 }
diff --git a/xfa/fxgraphics/cxfa_path.h b/xfa/fxgraphics/cxfa_gepath.h
similarity index 86%
rename from xfa/fxgraphics/cxfa_path.h
rename to xfa/fxgraphics/cxfa_gepath.h
index 9c71a4d..0c3afc4 100644
--- a/xfa/fxgraphics/cxfa_path.h
+++ b/xfa/fxgraphics/cxfa_gepath.h
@@ -4,17 +4,17 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#ifndef XFA_FXGRAPHICS_CXFA_PATH_H_
-#define XFA_FXGRAPHICS_CXFA_PATH_H_
+#ifndef XFA_FXGRAPHICS_CXFA_GEPATH_H_
+#define XFA_FXGRAPHICS_CXFA_GEPATH_H_
 
 #include "core/fxcrt/fx_system.h"
 #include "core/fxge/cfx_pathdata.h"
 #include "xfa/fxgraphics/cxfa_graphics.h"
 
-class CXFA_Path final {
+class CXFA_GEPath final {
  public:
-  CXFA_Path();
-  ~CXFA_Path();
+  CXFA_GEPath();
+  ~CXFA_GEPath();
 
   const CFX_PathData* GetPathData() const { return &data_; }
 
@@ -41,7 +41,7 @@
               float startAngle,
               float sweepAngle);
 
-  void AddSubpath(CXFA_Path* path);
+  void AddSubpath(CXFA_GEPath* path);
 
  private:
   void ArcToInternal(const CFX_PointF& pos,
@@ -52,4 +52,4 @@
   CFX_PathData data_;
 };
 
-#endif  // XFA_FXGRAPHICS_CXFA_PATH_H_
+#endif  // XFA_FXGRAPHICS_CXFA_GEPATH_H_
diff --git a/xfa/fxgraphics/cxfa_gepattern.cpp b/xfa/fxgraphics/cxfa_gepattern.cpp
new file mode 100644
index 0000000..2a6a0e4
--- /dev/null
+++ b/xfa/fxgraphics/cxfa_gepattern.cpp
@@ -0,0 +1,20 @@
+// Copyright 2016 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxgraphics/cxfa_gepattern.h"
+
+CXFA_GEPattern::CXFA_GEPattern(FX_HatchStyle hatchStyle,
+                               const FX_ARGB foreArgb,
+                               const FX_ARGB backArgb,
+                               CFX_Matrix* matrix)
+    : m_hatchStyle(hatchStyle), m_foreArgb(foreArgb), m_backArgb(backArgb) {
+  if (matrix)
+    m_matrix = *matrix;
+  else
+    m_matrix.SetIdentity();
+}
+
+CXFA_GEPattern::~CXFA_GEPattern() {}
diff --git a/xfa/fxgraphics/cxfa_pattern.h b/xfa/fxgraphics/cxfa_gepattern.h
similarity index 62%
rename from xfa/fxgraphics/cxfa_pattern.h
rename to xfa/fxgraphics/cxfa_gepattern.h
index 838ec98..0f4ced2 100644
--- a/xfa/fxgraphics/cxfa_pattern.h
+++ b/xfa/fxgraphics/cxfa_gepattern.h
@@ -4,8 +4,8 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#ifndef XFA_FXGRAPHICS_CXFA_PATTERN_H_
-#define XFA_FXGRAPHICS_CXFA_PATTERN_H_
+#ifndef XFA_FXGRAPHICS_CXFA_GEPATTERN_H_
+#define XFA_FXGRAPHICS_CXFA_GEPATTERN_H_
 
 #include "core/fxcrt/fx_coordinates.h"
 #include "core/fxcrt/fx_system.h"
@@ -14,14 +14,14 @@
 class CFX_DIBitmap;
 class CFX_Matrix;
 
-class CXFA_Pattern {
+class CXFA_GEPattern {
  public:
-  CXFA_Pattern(FX_HatchStyle hatchStyle,
-               const FX_ARGB foreArgb,
-               const FX_ARGB backArgb,
-               CFX_Matrix* matrix = nullptr);
+  CXFA_GEPattern(FX_HatchStyle hatchStyle,
+                 const FX_ARGB foreArgb,
+                 const FX_ARGB backArgb,
+                 CFX_Matrix* matrix = nullptr);
 
-  virtual ~CXFA_Pattern();
+  virtual ~CXFA_GEPattern();
 
  private:
   friend class CXFA_Graphics;
@@ -33,4 +33,4 @@
   const FX_ARGB m_backArgb;
 };
 
-#endif  // XFA_FXGRAPHICS_CXFA_PATTERN_H_
+#endif  // XFA_FXGRAPHICS_CXFA_GEPATTERN_H_
diff --git a/xfa/fxgraphics/cxfa_shading.cpp b/xfa/fxgraphics/cxfa_geshading.cpp
similarity index 65%
rename from xfa/fxgraphics/cxfa_shading.cpp
rename to xfa/fxgraphics/cxfa_geshading.cpp
index 599a3f9..f691169 100644
--- a/xfa/fxgraphics/cxfa_shading.cpp
+++ b/xfa/fxgraphics/cxfa_geshading.cpp
@@ -4,14 +4,14 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#include "xfa/fxgraphics/cxfa_shading.h"
+#include "xfa/fxgraphics/cxfa_geshading.h"
 
-CXFA_Shading::CXFA_Shading(const CFX_PointF& beginPoint,
-                           const CFX_PointF& endPoint,
-                           bool isExtendedBegin,
-                           bool isExtendedEnd,
-                           const FX_ARGB beginArgb,
-                           const FX_ARGB endArgb)
+CXFA_GEShading::CXFA_GEShading(const CFX_PointF& beginPoint,
+                               const CFX_PointF& endPoint,
+                               bool isExtendedBegin,
+                               bool isExtendedEnd,
+                               const FX_ARGB beginArgb,
+                               const FX_ARGB endArgb)
     : m_type(FX_SHADING_Axial),
       m_beginPoint(beginPoint),
       m_endPoint(endPoint),
@@ -24,14 +24,14 @@
   InitArgbArray();
 }
 
-CXFA_Shading::CXFA_Shading(const CFX_PointF& beginPoint,
-                           const CFX_PointF& endPoint,
-                           const float beginRadius,
-                           const float endRadius,
-                           bool isExtendedBegin,
-                           bool isExtendedEnd,
-                           const FX_ARGB beginArgb,
-                           const FX_ARGB endArgb)
+CXFA_GEShading::CXFA_GEShading(const CFX_PointF& beginPoint,
+                               const CFX_PointF& endPoint,
+                               const float beginRadius,
+                               const float endRadius,
+                               bool isExtendedBegin,
+                               bool isExtendedEnd,
+                               const FX_ARGB beginArgb,
+                               const FX_ARGB endArgb)
     : m_type(FX_SHADING_Radial),
       m_beginPoint(beginPoint),
       m_endPoint(endPoint),
@@ -44,9 +44,9 @@
   InitArgbArray();
 }
 
-CXFA_Shading::~CXFA_Shading() {}
+CXFA_GEShading::~CXFA_GEShading() {}
 
-void CXFA_Shading::InitArgbArray() {
+void CXFA_GEShading::InitArgbArray() {
   int32_t a1;
   int32_t r1;
   int32_t g1;
diff --git a/xfa/fxgraphics/cxfa_geshading.h b/xfa/fxgraphics/cxfa_geshading.h
new file mode 100644
index 0000000..fc7a13e
--- /dev/null
+++ b/xfa/fxgraphics/cxfa_geshading.h
@@ -0,0 +1,56 @@
+// Copyright 2016 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXGRAPHICS_CXFA_GESHADING_H_
+#define XFA_FXGRAPHICS_CXFA_GESHADING_H_
+
+#include "core/fxcrt/fx_coordinates.h"
+#include "core/fxcrt/fx_system.h"
+#include "core/fxge/fx_dib.h"
+
+#define FX_SHADING_Steps 256
+
+enum CXFA_GEShading_Type { FX_SHADING_Axial = 1, FX_SHADING_Radial };
+
+class CXFA_GEShading {
+ public:
+  // Axial shading.
+  CXFA_GEShading(const CFX_PointF& beginPoint,
+                 const CFX_PointF& endPoint,
+                 bool isExtendedBegin,
+                 bool isExtendedEnd,
+                 const FX_ARGB beginArgb,
+                 const FX_ARGB endArgb);
+
+  // Radial shading.
+  CXFA_GEShading(const CFX_PointF& beginPoint,
+                 const CFX_PointF& endPoint,
+                 const float beginRadius,
+                 const float endRadius,
+                 bool isExtendedBegin,
+                 bool isExtendedEnd,
+                 const FX_ARGB beginArgb,
+                 const FX_ARGB endArgb);
+  virtual ~CXFA_GEShading();
+
+ private:
+  friend class CXFA_Graphics;
+
+  void InitArgbArray();
+
+  const CXFA_GEShading_Type m_type;
+  const CFX_PointF m_beginPoint;
+  const CFX_PointF m_endPoint;
+  const float m_beginRadius;
+  const float m_endRadius;
+  const bool m_isExtendedBegin;
+  const bool m_isExtendedEnd;
+  const FX_ARGB m_beginArgb;
+  const FX_ARGB m_endArgb;
+  FX_ARGB m_argbArray[FX_SHADING_Steps];
+};
+
+#endif  // XFA_FXGRAPHICS_CXFA_GESHADING_H_
diff --git a/xfa/fxgraphics/cxfa_graphics.cpp b/xfa/fxgraphics/cxfa_graphics.cpp
index 7cb83e1..66a109d 100644
--- a/xfa/fxgraphics/cxfa_graphics.cpp
+++ b/xfa/fxgraphics/cxfa_graphics.cpp
@@ -12,10 +12,10 @@
 #include "core/fxge/cfx_renderdevice.h"
 #include "core/fxge/cfx_unicodeencoding.h"
 #include "third_party/base/ptr_util.h"
-#include "xfa/fxgraphics/cxfa_color.h"
-#include "xfa/fxgraphics/cxfa_path.h"
-#include "xfa/fxgraphics/cxfa_pattern.h"
-#include "xfa/fxgraphics/cxfa_shading.h"
+#include "xfa/fxgraphics/cxfa_gecolor.h"
+#include "xfa/fxgraphics/cxfa_gepath.h"
+#include "xfa/fxgraphics/cxfa_gepattern.h"
+#include "xfa/fxgraphics/cxfa_geshading.h"
 
 namespace {
 
@@ -168,24 +168,24 @@
     m_info.isActOnDash = true;
 }
 
-void CXFA_Graphics::SetStrokeColor(const CXFA_Color& color) {
+void CXFA_Graphics::SetStrokeColor(const CXFA_GEColor& color) {
   if (m_type == FX_CONTEXT_Device && m_renderDevice)
     m_info.strokeColor = color;
 }
 
-void CXFA_Graphics::SetFillColor(const CXFA_Color& color) {
+void CXFA_Graphics::SetFillColor(const CXFA_GEColor& color) {
   if (m_type == FX_CONTEXT_Device && m_renderDevice)
     m_info.fillColor = color;
 }
 
-void CXFA_Graphics::StrokePath(CXFA_Path* path, const CFX_Matrix* matrix) {
+void CXFA_Graphics::StrokePath(CXFA_GEPath* path, const CFX_Matrix* matrix) {
   if (!path)
     return;
   if (m_type == FX_CONTEXT_Device && m_renderDevice)
     RenderDeviceStrokePath(path, matrix);
 }
 
-void CXFA_Graphics::FillPath(CXFA_Path* path,
+void CXFA_Graphics::FillPath(CXFA_GEPath* path,
                              FX_FillMode fillMode,
                              const CFX_Matrix* matrix) {
   if (!path)
@@ -268,9 +268,9 @@
   }
 }
 
-void CXFA_Graphics::RenderDeviceStrokePath(const CXFA_Path* path,
+void CXFA_Graphics::RenderDeviceStrokePath(const CXFA_GEPath* path,
                                            const CFX_Matrix* matrix) {
-  if (m_info.strokeColor.GetType() != CXFA_Color::Solid)
+  if (m_info.strokeColor.GetType() != CXFA_GEColor::Solid)
     return;
 
   CFX_Matrix m = m_info.CTM;
@@ -281,7 +281,7 @@
                            m_info.strokeColor.GetArgb(), 0);
 }
 
-void CXFA_Graphics::RenderDeviceFillPath(const CXFA_Path* path,
+void CXFA_Graphics::RenderDeviceFillPath(const CXFA_GEPath* path,
                                          FX_FillMode fillMode,
                                          const CFX_Matrix* matrix) {
   CFX_Matrix m = m_info.CTM;
@@ -289,14 +289,14 @@
     m.Concat(*matrix);
 
   switch (m_info.fillColor.GetType()) {
-    case CXFA_Color::Solid:
+    case CXFA_GEColor::Solid:
       m_renderDevice->DrawPath(path->GetPathData(), &m, &m_info.graphState,
                                m_info.fillColor.GetArgb(), 0x0, fillMode);
       return;
-    case CXFA_Color::Pattern:
+    case CXFA_GEColor::Pattern:
       FillPathWithPattern(path, fillMode, m);
       return;
-    case CXFA_Color::Shading:
+    case CXFA_GEColor::Shading:
       FillPathWithShading(path, fillMode, m);
       return;
     default:
@@ -329,10 +329,10 @@
                           FXSYS_round(r.left - left), FXSYS_round(r.top - top));
 }
 
-void CXFA_Graphics::FillPathWithPattern(const CXFA_Path* path,
+void CXFA_Graphics::FillPathWithPattern(const CXFA_GEPath* path,
                                         FX_FillMode fillMode,
                                         const CFX_Matrix& matrix) {
-  CXFA_Pattern* pattern = m_info.fillColor.GetPattern();
+  CXFA_GEPattern* pattern = m_info.fillColor.GetPattern();
   RetainPtr<CFX_DIBitmap> bitmap = m_renderDevice->GetBitmap();
   int32_t width = bitmap->GetWidth();
   int32_t height = bitmap->GetHeight();
@@ -363,7 +363,7 @@
   SetDIBitsWithMatrix(bmp, pattern->m_matrix);
 }
 
-void CXFA_Graphics::FillPathWithShading(const CXFA_Path* path,
+void CXFA_Graphics::FillPathWithShading(const CXFA_GEPath* path,
                                         FX_FillMode fillMode,
                                         const CFX_Matrix& matrix) {
   RetainPtr<CFX_DIBitmap> bitmap = m_renderDevice->GetBitmap();
diff --git a/xfa/fxgraphics/cxfa_graphics.h b/xfa/fxgraphics/cxfa_graphics.h
index 6b9dcb9..16cd123 100644
--- a/xfa/fxgraphics/cxfa_graphics.h
+++ b/xfa/fxgraphics/cxfa_graphics.h
@@ -16,9 +16,9 @@
 #include "core/fxge/cfx_renderdevice.h"
 #include "core/fxge/fx_dib.h"
 #include "core/fxge/fx_font.h"
-#include "xfa/fxgraphics/cxfa_color.h"
+#include "xfa/fxgraphics/cxfa_gecolor.h"
 
-class CXFA_Path;
+class CXFA_GEPath;
 
 using FX_FillMode = int32_t;
 
@@ -58,11 +58,11 @@
   void SetLineDash(FX_DashStyle dashStyle);
   void SetLineWidth(float lineWidth);
   void EnableActOnDash();
-  void SetStrokeColor(const CXFA_Color& color);
-  void SetFillColor(const CXFA_Color& color);
+  void SetStrokeColor(const CXFA_GEColor& color);
+  void SetFillColor(const CXFA_GEColor& color);
   void SetClipRect(const CFX_RectF& rect);
-  void StrokePath(CXFA_Path* path, const CFX_Matrix* matrix);
-  void FillPath(CXFA_Path* path,
+  void StrokePath(CXFA_GEPath* path, const CFX_Matrix* matrix);
+  void FillPath(CXFA_GEPath* path,
                 FX_FillMode fillMode,
                 const CFX_Matrix* matrix);
   void StretchImage(const RetainPtr<CFX_DIBSource>& source,
@@ -82,23 +82,24 @@
     CFX_GraphStateData graphState;
     CFX_Matrix CTM;
     bool isActOnDash;
-    CXFA_Color strokeColor;
-    CXFA_Color fillColor;
+    CXFA_GEColor strokeColor;
+    CXFA_GEColor fillColor;
   } m_info;
 
   void RenderDeviceSetLineDash(FX_DashStyle dashStyle);
-  void RenderDeviceStrokePath(const CXFA_Path* path, const CFX_Matrix* matrix);
-  void RenderDeviceFillPath(const CXFA_Path* path,
+  void RenderDeviceStrokePath(const CXFA_GEPath* path,
+                              const CFX_Matrix* matrix);
+  void RenderDeviceFillPath(const CXFA_GEPath* path,
                             FX_FillMode fillMode,
                             const CFX_Matrix* matrix);
   void RenderDeviceStretchImage(const RetainPtr<CFX_DIBSource>& source,
                                 const CFX_RectF& rect,
                                 const CFX_Matrix& matrix);
 
-  void FillPathWithPattern(const CXFA_Path* path,
+  void FillPathWithPattern(const CXFA_GEPath* path,
                            FX_FillMode fillMode,
                            const CFX_Matrix& matrix);
-  void FillPathWithShading(const CXFA_Path* path,
+  void FillPathWithShading(const CXFA_GEPath* path,
                            FX_FillMode fillMode,
                            const CFX_Matrix& matrix);
 
diff --git a/xfa/fxgraphics/cxfa_pattern.cpp b/xfa/fxgraphics/cxfa_pattern.cpp
deleted file mode 100644
index ea6cea8..0000000
--- a/xfa/fxgraphics/cxfa_pattern.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#include "xfa/fxgraphics/cxfa_pattern.h"
-
-CXFA_Pattern::CXFA_Pattern(FX_HatchStyle hatchStyle,
-                           const FX_ARGB foreArgb,
-                           const FX_ARGB backArgb,
-                           CFX_Matrix* matrix)
-    : m_hatchStyle(hatchStyle), m_foreArgb(foreArgb), m_backArgb(backArgb) {
-  if (matrix)
-    m_matrix = *matrix;
-  else
-    m_matrix.SetIdentity();
-}
-
-CXFA_Pattern::~CXFA_Pattern() {}
diff --git a/xfa/fxgraphics/cxfa_shading.h b/xfa/fxgraphics/cxfa_shading.h
deleted file mode 100644
index 22ef941..0000000
--- a/xfa/fxgraphics/cxfa_shading.h
+++ /dev/null
@@ -1,56 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef XFA_FXGRAPHICS_CXFA_SHADING_H_
-#define XFA_FXGRAPHICS_CXFA_SHADING_H_
-
-#include "core/fxcrt/fx_coordinates.h"
-#include "core/fxcrt/fx_system.h"
-#include "core/fxge/fx_dib.h"
-
-#define FX_SHADING_Steps 256
-
-enum CXFA_Shading_Type { FX_SHADING_Axial = 1, FX_SHADING_Radial };
-
-class CXFA_Shading {
- public:
-  // Axial shading.
-  CXFA_Shading(const CFX_PointF& beginPoint,
-               const CFX_PointF& endPoint,
-               bool isExtendedBegin,
-               bool isExtendedEnd,
-               const FX_ARGB beginArgb,
-               const FX_ARGB endArgb);
-
-  // Radial shading.
-  CXFA_Shading(const CFX_PointF& beginPoint,
-               const CFX_PointF& endPoint,
-               const float beginRadius,
-               const float endRadius,
-               bool isExtendedBegin,
-               bool isExtendedEnd,
-               const FX_ARGB beginArgb,
-               const FX_ARGB endArgb);
-  virtual ~CXFA_Shading();
-
- private:
-  friend class CXFA_Graphics;
-
-  void InitArgbArray();
-
-  const CXFA_Shading_Type m_type;
-  const CFX_PointF m_beginPoint;
-  const CFX_PointF m_endPoint;
-  const float m_beginRadius;
-  const float m_endRadius;
-  const bool m_isExtendedBegin;
-  const bool m_isExtendedEnd;
-  const FX_ARGB m_beginArgb;
-  const FX_ARGB m_endArgb;
-  FX_ARGB m_argbArray[FX_SHADING_Steps];
-};
-
-#endif  // XFA_FXGRAPHICS_CXFA_SHADING_H_