summaryrefslogtreecommitdiff
path: root/xfa/fxgraphics/cfx_shading.h
diff options
context:
space:
mode:
Diffstat (limited to 'xfa/fxgraphics/cfx_shading.h')
-rw-r--r--xfa/fxgraphics/cfx_shading.h56
1 files changed, 56 insertions, 0 deletions
diff --git a/xfa/fxgraphics/cfx_shading.h b/xfa/fxgraphics/cfx_shading.h
new file mode 100644
index 0000000000..d56807616a
--- /dev/null
+++ b/xfa/fxgraphics/cfx_shading.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_CFX_SHADING_H_
+#define XFA_FXGRAPHICS_CFX_SHADING_H_
+
+#include "core/include/fxcrt/fx_coordinates.h"
+#include "core/include/fxcrt/fx_system.h"
+#include "core/include/fxge/fx_dib.h"
+
+#define FX_SHADING_Steps 256
+
+enum CFX_Shading_Type { FX_SHADING_Axial = 1, FX_SHADING_Radial };
+
+class CFX_Shading {
+ public:
+ // Axial shading.
+ CFX_Shading(const CFX_PointF& beginPoint,
+ const CFX_PointF& endPoint,
+ FX_BOOL isExtendedBegin,
+ FX_BOOL isExtendedEnd,
+ const FX_ARGB beginArgb,
+ const FX_ARGB endArgb);
+
+ // Radial shading.
+ CFX_Shading(const CFX_PointF& beginPoint,
+ const CFX_PointF& endPoint,
+ const FX_FLOAT beginRadius,
+ const FX_FLOAT endRadius,
+ FX_BOOL isExtendedBegin,
+ FX_BOOL isExtendedEnd,
+ const FX_ARGB beginArgb,
+ const FX_ARGB endArgb);
+ virtual ~CFX_Shading();
+
+ private:
+ friend class CFX_Graphics;
+
+ void InitArgbArray();
+
+ const CFX_Shading_Type m_type;
+ const CFX_PointF m_beginPoint;
+ const CFX_PointF m_endPoint;
+ const FX_FLOAT m_beginRadius;
+ const FX_FLOAT m_endRadius;
+ const FX_BOOL m_isExtendedBegin;
+ const FX_BOOL m_isExtendedEnd;
+ const FX_ARGB m_beginArgb;
+ const FX_ARGB m_endArgb;
+ FX_ARGB m_argbArray[FX_SHADING_Steps];
+};
+
+#endif // XFA_FXGRAPHICS_CFX_SHADING_H_