Home | History | Annotate | Download | only in fxgraphics
      1 // Copyright 2016 PDFium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
      6 
      7 #ifndef XFA_FXGRAPHICS_CFX_SHADING_H_
      8 #define XFA_FXGRAPHICS_CFX_SHADING_H_
      9 
     10 #include "core/fxcrt/fx_coordinates.h"
     11 #include "core/fxcrt/fx_system.h"
     12 #include "core/fxge/fx_dib.h"
     13 
     14 #define FX_SHADING_Steps 256
     15 
     16 enum CFX_Shading_Type { FX_SHADING_Axial = 1, FX_SHADING_Radial };
     17 
     18 class CFX_Shading {
     19  public:
     20   // Axial shading.
     21   CFX_Shading(const CFX_PointF& beginPoint,
     22               const CFX_PointF& endPoint,
     23               bool isExtendedBegin,
     24               bool isExtendedEnd,
     25               const FX_ARGB beginArgb,
     26               const FX_ARGB endArgb);
     27 
     28   // Radial shading.
     29   CFX_Shading(const CFX_PointF& beginPoint,
     30               const CFX_PointF& endPoint,
     31               const FX_FLOAT beginRadius,
     32               const FX_FLOAT endRadius,
     33               bool isExtendedBegin,
     34               bool isExtendedEnd,
     35               const FX_ARGB beginArgb,
     36               const FX_ARGB endArgb);
     37   virtual ~CFX_Shading();
     38 
     39  private:
     40   friend class CFX_Graphics;
     41 
     42   void InitArgbArray();
     43 
     44   const CFX_Shading_Type m_type;
     45   const CFX_PointF m_beginPoint;
     46   const CFX_PointF m_endPoint;
     47   const FX_FLOAT m_beginRadius;
     48   const FX_FLOAT m_endRadius;
     49   const bool m_isExtendedBegin;
     50   const bool m_isExtendedEnd;
     51   const FX_ARGB m_beginArgb;
     52   const FX_ARGB m_endArgb;
     53   FX_ARGB m_argbArray[FX_SHADING_Steps];
     54 };
     55 
     56 #endif  // XFA_FXGRAPHICS_CFX_SHADING_H_
     57