7#ifndef XFA_FGAS_GRAPHICS_CFGAS_GEGRAPHICS_H_
8#define XFA_FGAS_GRAPHICS_CFGAS_GEGRAPHICS_H_
13#include "core/fxcrt/fx_coordinates.h"
14#include "core/fxcrt/fx_memory.h"
15#include "core/fxcrt/retain_ptr.h"
16#include "core/fxcrt/unowned_ptr.h"
17#include "core/fxge/cfx_fillrenderoptions.h"
18#include "core/fxge/cfx_graphstatedata.h"
19#include "third_party/base/containers/span.h"
20#include "xfa/fgas/graphics/cfgas_gecolor.h"
47 void SetLineDash(
float dashPhase, pdfium::span<
const float> dashArray);
55 void FillPath(
const CFGAS_GEPath& path,
63 explicit TInfo(
const TInfo& info);
64 TInfo& operator=(
const TInfo& other);
68 bool isActOnDash =
false;
73 void SaveGraphState();
74 void RestoreGraphState();
76 void RenderDeviceStrokePath(
const CFGAS_GEPath& path,
78 void RenderDeviceFillPath(
const CFGAS_GEPath& path,
81 void FillPathWithPattern(
const CFGAS_GEPath& path,
84 void FillPathWithShading(
const CFGAS_GEPath& path,
92 std::vector<std::unique_ptr<TInfo>> m_infoStack;
StateRestorer(CFGAS_GEGraphics *graphics)
void FillPath(const CFGAS_GEPath &path, CFX_FillRenderOptions::FillType fill_type, const CFX_Matrix &matrix)
void SetLineDash(float dashPhase, pdfium::span< const float > dashArray)
void SetLineWidth(float lineWidth)
CFX_RenderDevice * GetRenderDevice()
CFGAS_GEGraphics(CFX_RenderDevice *renderDevice)
void SetClipRect(const CFX_RectF &rect)
void SetStrokeColor(const CFGAS_GEColor &color)
void ConcatMatrix(const CFX_Matrix &matrix)
const CFX_Matrix * GetMatrix() const
CFX_RectF GetClipRect() const
void SetLineCap(CFX_GraphStateData::LineCap lineCap)
void SetFillColor(const CFGAS_GEColor &color)
void StrokePath(const CFGAS_GEPath &path, const CFX_Matrix &matrix)
bool Contains(const CFX_PointF &point) const
void Inflate(float x, float y)
CFX_PointF Transform(const CFX_PointF &point) const
CFX_Matrix GetInverse() const
CFX_FloatRect ToFloatRect() const
bool IntersectWith(const CFX_RectF &rt) const
CFX_RectF(const FX_RECT &that)
CPDFSDK_PageView * GetPageView() const
absl::optional< CFX_PointF > PageToDevice(const FX_RECT &rect, int rotate, const CFX_PointF &page_point) const override
CXFA_FFPageView * GetXFAPageView() const
CPDF_Document * GetDocument() const override
CFX_Matrix GetDisplayMatrix(const FX_RECT &rect, int iRotate) const override
CPDFXFA_Page * AsXFAPage() override
CPDF_Page * AsPDFPage() override
float GetPageWidth() const override
CPDFSDK_Annot * GetLastXFAAnnot(CPDFSDK_PageView *page_view) const
CPDFSDK_Annot * GetPrevXFAAnnot(CPDFSDK_Annot *pSDKAnnot) const
CPDFSDK_Annot * GetFirstXFAAnnot(CPDFSDK_PageView *page_view) const
CPDFSDK_Annot * GetNextXFAAnnot(CPDFSDK_Annot *pSDKAnnot) const
absl::optional< CFX_PointF > DeviceToPage(const FX_RECT &rect, int rotate, const CFX_PointF &device_point) const override
void DrawFocusAnnot(CFX_RenderDevice *pDevice, CPDFSDK_Annot *pAnnot, const CFX_Matrix &mtUser2Device, const FX_RECT &rtClip)
int HasFormFieldAtPoint(const CFX_PointF &point) const
float GetPageHeight() const override
void LoadPDFPageFromDict(RetainPtr< CPDF_Dictionary > pPageDict)
CXFA_FFWidgetHandler * GetWidgetHandler()
CXFA_FFPageView * GetPageView(int32_t nIndex) const
CXFA_FFDocView * GetDocView() const
CFX_Matrix GetDisplayMatrix(const FX_RECT &rtDisp, int32_t iRotate) const
CXFA_FFWidget::IteratorIface * CreateGCedTraverseWidgetIterator(Mask< XFA_WidgetStatus > dwWidgetFilter)
CFX_RectF GetPageViewRect() const
CXFA_FFWidget * MoveToNext() override
CPDFXFA_Widget * ToXFAWidget(CPDFSDK_Annot *pAnnot)