From e835574db56d3a59f444fa98318458d83ffe15a4 Mon Sep 17 00:00:00 2001 From: Lei Zhang Date: Wed, 24 Oct 2018 18:46:26 +0000 Subject: Make CPDF_PathObject::m_Path private. Change-Id: I5c42af8e9e2d6a60648d291153326aef04e4c49e Reviewed-on: https://pdfium-review.googlesource.com/c/44513 Commit-Queue: Lei Zhang Reviewed-by: Tom Sepez --- core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp | 4 +-- .../edit/cpdf_pagecontentgenerator_unittest.cpp | 42 +++++++++++----------- core/fpdfapi/page/cpdf_pathobject.h | 12 ++++--- core/fpdfapi/page/cpdf_streamcontentparser.cpp | 4 +-- core/fpdfapi/render/cpdf_renderstatus.cpp | 12 +++---- 5 files changed, 38 insertions(+), 36 deletions(-) (limited to 'core') diff --git a/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp b/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp index cfc8c5159a..4ae5631534 100644 --- a/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp +++ b/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp @@ -354,8 +354,8 @@ void CPDF_PageContentGenerator::ProcessPath(std::ostringstream* buf, *buf << pPathObj->matrix() << " cm "; - auto& pPoints = pPathObj->m_Path.GetPoints(); - if (pPathObj->m_Path.IsRect()) { + const auto& pPoints = pPathObj->path().GetPoints(); + if (pPathObj->path().IsRect()) { CFX_PointF diff = pPoints[2].m_Point - pPoints[0].m_Point; *buf << pPoints[0].m_Point.x << " " << pPoints[0].m_Point.y << " " << diff.x << " " << diff.y << " re"; diff --git a/core/fpdfapi/edit/cpdf_pagecontentgenerator_unittest.cpp b/core/fpdfapi/edit/cpdf_pagecontentgenerator_unittest.cpp index f4555287d7..b5fbec80ec 100644 --- a/core/fpdfapi/edit/cpdf_pagecontentgenerator_unittest.cpp +++ b/core/fpdfapi/edit/cpdf_pagecontentgenerator_unittest.cpp @@ -51,9 +51,9 @@ class CPDF_PageContentGeneratorTest : public testing::Test { TEST_F(CPDF_PageContentGeneratorTest, ProcessRect) { auto pPathObj = pdfium::MakeUnique(); - pPathObj->m_Path.AppendRect(10, 5, 13, 30); - pPathObj->set_filltype(FXFILL_ALTERNATE); pPathObj->set_stroke(true); + pPathObj->set_filltype(FXFILL_ALTERNATE); + pPathObj->path().AppendRect(10, 5, 13, 30); auto pTestPage = pdfium::MakeRetain(nullptr, nullptr, false); CPDF_PageContentGenerator generator(pTestPage.Get()); @@ -62,11 +62,11 @@ TEST_F(CPDF_PageContentGeneratorTest, ProcessRect) { EXPECT_EQ("q 1 0 0 1 0 0 cm 10 5 3 25 re B* Q\n", ByteString(buf)); pPathObj = pdfium::MakeUnique(); - pPathObj->m_Path.AppendPoint(CFX_PointF(0, 0), FXPT_TYPE::MoveTo, false); - pPathObj->m_Path.AppendPoint(CFX_PointF(5.2f, 0), FXPT_TYPE::LineTo, false); - pPathObj->m_Path.AppendPoint(CFX_PointF(5.2f, 3.78f), FXPT_TYPE::LineTo, + pPathObj->path().AppendPoint(CFX_PointF(0, 0), FXPT_TYPE::MoveTo, false); + pPathObj->path().AppendPoint(CFX_PointF(5.2f, 0), FXPT_TYPE::LineTo, false); + pPathObj->path().AppendPoint(CFX_PointF(5.2f, 3.78f), FXPT_TYPE::LineTo, false); - pPathObj->m_Path.AppendPoint(CFX_PointF(0, 3.78f), FXPT_TYPE::LineTo, true); + pPathObj->path().AppendPoint(CFX_PointF(0, 3.78f), FXPT_TYPE::LineTo, true); buf.str(""); TestProcessPath(&generator, &buf, pPathObj.get()); @@ -75,26 +75,26 @@ TEST_F(CPDF_PageContentGeneratorTest, ProcessRect) { TEST_F(CPDF_PageContentGeneratorTest, ProcessPath) { auto pPathObj = pdfium::MakeUnique(); - pPathObj->m_Path.AppendPoint(CFX_PointF(3.102f, 4.67f), FXPT_TYPE::MoveTo, + pPathObj->set_filltype(FXFILL_WINDING); + pPathObj->path().AppendPoint(CFX_PointF(3.102f, 4.67f), FXPT_TYPE::MoveTo, false); - pPathObj->m_Path.AppendPoint(CFX_PointF(5.45f, 0.29f), FXPT_TYPE::LineTo, + pPathObj->path().AppendPoint(CFX_PointF(5.45f, 0.29f), FXPT_TYPE::LineTo, false); - pPathObj->m_Path.AppendPoint(CFX_PointF(4.24f, 3.15f), FXPT_TYPE::BezierTo, + pPathObj->path().AppendPoint(CFX_PointF(4.24f, 3.15f), FXPT_TYPE::BezierTo, false); - pPathObj->m_Path.AppendPoint(CFX_PointF(4.65f, 2.98f), FXPT_TYPE::BezierTo, + pPathObj->path().AppendPoint(CFX_PointF(4.65f, 2.98f), FXPT_TYPE::BezierTo, false); - pPathObj->m_Path.AppendPoint(CFX_PointF(3.456f, 0.24f), FXPT_TYPE::BezierTo, + pPathObj->path().AppendPoint(CFX_PointF(3.456f, 0.24f), FXPT_TYPE::BezierTo, false); - pPathObj->m_Path.AppendPoint(CFX_PointF(10.6f, 11.15f), FXPT_TYPE::LineTo, + pPathObj->path().AppendPoint(CFX_PointF(10.6f, 11.15f), FXPT_TYPE::LineTo, false); - pPathObj->m_Path.AppendPoint(CFX_PointF(11, 12.5f), FXPT_TYPE::LineTo, false); - pPathObj->m_Path.AppendPoint(CFX_PointF(11.46f, 12.67f), FXPT_TYPE::BezierTo, + pPathObj->path().AppendPoint(CFX_PointF(11, 12.5f), FXPT_TYPE::LineTo, false); + pPathObj->path().AppendPoint(CFX_PointF(11.46f, 12.67f), FXPT_TYPE::BezierTo, false); - pPathObj->m_Path.AppendPoint(CFX_PointF(11.84f, 12.96f), FXPT_TYPE::BezierTo, + pPathObj->path().AppendPoint(CFX_PointF(11.84f, 12.96f), FXPT_TYPE::BezierTo, false); - pPathObj->m_Path.AppendPoint(CFX_PointF(12, 13.64f), FXPT_TYPE::BezierTo, + pPathObj->path().AppendPoint(CFX_PointF(12, 13.64f), FXPT_TYPE::BezierTo, true); - pPathObj->set_filltype(FXFILL_WINDING); auto pTestPage = pdfium::MakeRetain(nullptr, nullptr, false); CPDF_PageContentGenerator generator(pTestPage.Get()); @@ -109,11 +109,11 @@ TEST_F(CPDF_PageContentGeneratorTest, ProcessPath) { TEST_F(CPDF_PageContentGeneratorTest, ProcessGraphics) { auto pPathObj = pdfium::MakeUnique(); - pPathObj->m_Path.AppendPoint(CFX_PointF(1, 2), FXPT_TYPE::MoveTo, false); - pPathObj->m_Path.AppendPoint(CFX_PointF(3, 4), FXPT_TYPE::LineTo, false); - pPathObj->m_Path.AppendPoint(CFX_PointF(5, 6), FXPT_TYPE::LineTo, true); - pPathObj->set_filltype(FXFILL_WINDING); pPathObj->set_stroke(true); + pPathObj->set_filltype(FXFILL_WINDING); + pPathObj->path().AppendPoint(CFX_PointF(1, 2), FXPT_TYPE::MoveTo, false); + pPathObj->path().AppendPoint(CFX_PointF(3, 4), FXPT_TYPE::LineTo, false); + pPathObj->path().AppendPoint(CFX_PointF(5, 6), FXPT_TYPE::LineTo, true); static const std::vector rgb = {0.5f, 0.7f, 0.35f}; CPDF_ColorSpace* pCS = CPDF_ColorSpace::GetStockCS(PDFCS_DEVICERGB); diff --git a/core/fpdfapi/page/cpdf_pathobject.h b/core/fpdfapi/page/cpdf_pathobject.h index e6e0d19de8..c2166b3277 100644 --- a/core/fpdfapi/page/cpdf_pathobject.h +++ b/core/fpdfapi/page/cpdf_pathobject.h @@ -27,20 +27,22 @@ class CPDF_PathObject final : public CPDF_PageObject { void CalcBoundingBox(); + bool stroke() const { return m_bStroke; } + void set_stroke(bool stroke) { m_bStroke = stroke; } + int filltype() const { return m_FillType; } void set_filltype(int filltype) { m_FillType = filltype; } - bool stroke() const { return m_bStroke; } - void set_stroke(bool stroke) { m_bStroke = stroke; } + CPDF_Path& path() { return m_Path; } + const CPDF_Path& path() const { return m_Path; } const CFX_Matrix& matrix() const { return m_Matrix; } void set_matrix(const CFX_Matrix& matrix) { m_Matrix = matrix; } - CPDF_Path m_Path; - private: - int m_FillType = 0; bool m_bStroke = false; + int m_FillType = 0; + CPDF_Path m_Path; CFX_Matrix m_Matrix; }; diff --git a/core/fpdfapi/page/cpdf_streamcontentparser.cpp b/core/fpdfapi/page/cpdf_streamcontentparser.cpp index 245a2852bc..5a9d6b6ea2 100644 --- a/core/fpdfapi/page/cpdf_streamcontentparser.cpp +++ b/core/fpdfapi/page/cpdf_streamcontentparser.cpp @@ -1475,9 +1475,9 @@ void CPDF_StreamContentParser::AddPathObject(int FillType, bool bStroke) { if (bStroke || FillType) { auto pPathObj = pdfium::MakeUnique(GetCurrentStreamIndex()); - pPathObj->m_Path = Path; - pPathObj->set_filltype(FillType); pPathObj->set_stroke(bStroke); + pPathObj->set_filltype(FillType); + pPathObj->path() = Path; pPathObj->set_matrix(matrix); SetGraphicStates(pPathObj.get(), true, false, true); pPathObj->CalcBoundingBox(); diff --git a/core/fpdfapi/render/cpdf_renderstatus.cpp b/core/fpdfapi/render/cpdf_renderstatus.cpp index 7bd2d7cd22..26ce0a6d3c 100644 --- a/core/fpdfapi/render/cpdf_renderstatus.cpp +++ b/core/fpdfapi/render/cpdf_renderstatus.cpp @@ -1276,7 +1276,7 @@ bool CPDF_RenderStatus::ProcessPath(CPDF_PathObject* pPathObj, if (m_Options.HasFlag(RENDER_THINLINE)) graphState.SetLineWidth(0); return m_pDevice->DrawPathWithBlend( - pPathObj->m_Path.GetObject(), &path_matrix, graphState.GetObject(), + pPathObj->path().GetObject(), &path_matrix, graphState.GetObject(), fill_argb, stroke_argb, FillType, m_curBlend); } @@ -1421,14 +1421,14 @@ bool CPDF_RenderStatus::SelectClipPath(const CPDF_PathObject* pPathObj, CFX_GraphState graphState = pPathObj->m_GraphState; if (m_Options.HasFlag(RENDER_THINLINE)) graphState.SetLineWidth(0); - return m_pDevice->SetClip_PathStroke(pPathObj->m_Path.GetObject(), + return m_pDevice->SetClip_PathStroke(pPathObj->path().GetObject(), &path_matrix, graphState.GetObject()); } int fill_mode = pPathObj->filltype(); if (m_Options.HasFlag(RENDER_NOPATHSMOOTH)) { fill_mode |= FXFILL_NOPATHSMOOTH; } - return m_pDevice->SetClip_PathFill(pPathObj->m_Path.GetObject(), &path_matrix, + return m_pDevice->SetClip_PathFill(pPathObj->path().GetObject(), &path_matrix, fill_mode); } @@ -1973,7 +1973,7 @@ void CPDF_RenderStatus::DrawTextPathWithPattern(const CPDF_TextObject* textobj, path.m_ClipPath.AppendTexts(&pCopy); path.m_ColorState = textobj->m_ColorState; path.m_GeneralState = textobj->m_GeneralState; - path.m_Path.AppendRect(textobj->GetRect().left, textobj->GetRect().bottom, + path.path().AppendRect(textobj->GetRect().left, textobj->GetRect().bottom, textobj->GetRect().right, textobj->GetRect().top); path.SetRect(textobj->GetRect()); @@ -2006,9 +2006,9 @@ void CPDF_RenderStatus::DrawTextPathWithPattern(const CPDF_TextObject* textobj, } matrix.Concat(CFX_Matrix(font_size, 0, 0, font_size, charpos.m_Origin.x, charpos.m_Origin.y)); - path.m_Path.Append(pPath, &matrix); - path.set_filltype(bFill ? FXFILL_WINDING : 0); path.set_stroke(bStroke); + path.set_filltype(bFill ? FXFILL_WINDING : 0); + path.path().Append(pPath, &matrix); path.set_matrix(*pTextMatrix); path.CalcBoundingBox(); ProcessPath(&path, mtObj2Device); -- cgit v1.2.3