summaryrefslogtreecommitdiff
path: root/core/fpdfapi
diff options
context:
space:
mode:
Diffstat (limited to 'core/fpdfapi')
-rw-r--r--core/fpdfapi/page/cpdf_pageobjectholder.h16
-rw-r--r--core/fpdfapi/render/cpdf_imagerenderer.cpp2
-rw-r--r--core/fpdfapi/render/cpdf_pagerendercache.cpp4
-rw-r--r--core/fpdfapi/render/cpdf_progressiverenderer.cpp4
-rw-r--r--core/fpdfapi/render/cpdf_rendercontext.cpp10
-rw-r--r--core/fpdfapi/render/cpdf_renderstatus.cpp28
6 files changed, 37 insertions, 27 deletions
diff --git a/core/fpdfapi/page/cpdf_pageobjectholder.h b/core/fpdfapi/page/cpdf_pageobjectholder.h
index a65ccc8129..febc53e410 100644
--- a/core/fpdfapi/page/cpdf_pageobjectholder.h
+++ b/core/fpdfapi/page/cpdf_pageobjectholder.h
@@ -17,11 +17,11 @@
#include "core/fxcrt/fx_system.h"
#include "core/fxcrt/unowned_ptr.h"
-class PauseIndicatorIface;
+class CPDF_ContentParser;
class CPDF_Dictionary;
-class CPDF_Stream;
class CPDF_Document;
-class CPDF_ContentParser;
+class CPDF_Stream;
+class PauseIndicatorIface;
#define PDFTRANS_GROUP 0x0100
#define PDFTRANS_ISOLATED 0x0200
@@ -52,6 +52,14 @@ class CPDF_PageObjectHolder {
void ContinueParse(PauseIndicatorIface* pPause);
bool IsParsed() const { return m_ParseState == CONTENT_PARSED; }
+ const CPDF_Document* GetDocument() const { return m_pDocument.Get(); }
+ CPDF_Document* GetDocument() { return m_pDocument.Get(); }
+
+ // TODO(thestig): Can this return nullptr? If not, audit callers and simplify
+ // the ones that assume it can.
+ const CPDF_Dictionary* GetFormDict() const { return m_pFormDict.Get(); }
+ CPDF_Dictionary* GetFormDict() { return m_pFormDict.Get(); }
+
const CPDF_PageObjectList* GetPageObjectList() const {
return &m_PageObjectList;
}
@@ -63,7 +71,9 @@ class CPDF_PageObjectHolder {
bool ErasePageObjectAtIndex(size_t index);
const CFX_Matrix& GetLastCTM() const { return m_LastCTM; }
+ const CFX_FloatRect& GetBBox() const { return m_BBox; }
+ int GetTransparency() const { return m_iTransparency; }
bool BackgroundAlphaNeeded() const { return m_bBackgroundAlphaNeeded; }
void SetBackgroundAlphaNeeded(bool needed) {
m_bBackgroundAlphaNeeded = needed;
diff --git a/core/fpdfapi/render/cpdf_imagerenderer.cpp b/core/fpdfapi/render/cpdf_imagerenderer.cpp
index 3844f69895..e9e6420632 100644
--- a/core/fpdfapi/render/cpdf_imagerenderer.cpp
+++ b/core/fpdfapi/render/cpdf_imagerenderer.cpp
@@ -142,7 +142,7 @@ bool CPDF_ImageRenderer::StartRenderDIBSource() {
CPDF_Page* pPage = nullptr;
if (auto* pPageCache = m_pRenderStatus->GetContext()->GetPageCache()) {
pPage = pPageCache->GetPage();
- pDocument = pPage->m_pDocument.Get();
+ pDocument = pPage->GetDocument();
} else {
pDocument = m_pImageObject->GetImage()->GetDocument();
}
diff --git a/core/fpdfapi/render/cpdf_pagerendercache.cpp b/core/fpdfapi/render/cpdf_pagerendercache.cpp
index a929cb69c7..1358943454 100644
--- a/core/fpdfapi/render/cpdf_pagerendercache.cpp
+++ b/core/fpdfapi/render/cpdf_pagerendercache.cpp
@@ -92,7 +92,7 @@ bool CPDF_PageRenderCache::StartGetCachedBitmap(
m_pCurImageCacheEntry = it->second;
} else {
m_pCurImageCacheEntry =
- new CPDF_ImageCacheEntry(m_pPage->m_pDocument.Get(), pImage);
+ new CPDF_ImageCacheEntry(m_pPage->GetDocument(), pImage);
}
CPDF_DIBSource::LoadState ret = m_pCurImageCacheEntry->StartGetCachedBitmap(
pRenderStatus->GetFormResource(), m_pPage->m_pPageResources.Get(), bStdCS,
@@ -134,7 +134,7 @@ void CPDF_PageRenderCache::ResetBitmap(const RetainPtr<CPDF_Image>& pImage,
if (!pBitmap)
return;
- pEntry = new CPDF_ImageCacheEntry(m_pPage->m_pDocument.Get(), pImage);
+ pEntry = new CPDF_ImageCacheEntry(m_pPage->GetDocument(), pImage);
m_ImageCache[pStream] = pEntry;
} else {
pEntry = it->second;
diff --git a/core/fpdfapi/render/cpdf_progressiverenderer.cpp b/core/fpdfapi/render/cpdf_progressiverenderer.cpp
index b2d16300d4..e388f7fa10 100644
--- a/core/fpdfapi/render/cpdf_progressiverenderer.cpp
+++ b/core/fpdfapi/render/cpdf_progressiverenderer.cpp
@@ -57,8 +57,8 @@ void CPDF_ProgressiveRenderer::Continue(PauseIndicatorIface* pPause) {
m_pRenderStatus = pdfium::MakeUnique<CPDF_RenderStatus>();
m_pRenderStatus->Initialize(
m_pContext.Get(), m_pDevice.Get(), nullptr, nullptr, nullptr, nullptr,
- m_pOptions, m_pCurrentLayer->m_pObjectHolder->m_iTransparency, false,
- nullptr);
+ m_pOptions, m_pCurrentLayer->m_pObjectHolder->GetTransparency(),
+ false, nullptr);
m_pDevice->SaveState();
m_ClipRect = m_pCurrentLayer->m_Matrix.GetInverse().TransformRect(
CFX_FloatRect(m_pDevice->GetClipBox()));
diff --git a/core/fpdfapi/render/cpdf_rendercontext.cpp b/core/fpdfapi/render/cpdf_rendercontext.cpp
index 73f9a4c3ff..fc756e7a90 100644
--- a/core/fpdfapi/render/cpdf_rendercontext.cpp
+++ b/core/fpdfapi/render/cpdf_rendercontext.cpp
@@ -21,7 +21,7 @@
#include "core/fxge/fx_dib.h"
CPDF_RenderContext::CPDF_RenderContext(CPDF_Page* pPage)
- : m_pDocument(pPage->m_pDocument.Get()),
+ : m_pDocument(pPage->GetDocument()),
m_pPageResources(pPage->m_pPageResources.Get()),
m_pPageCache(pPage->GetRenderCache()) {}
@@ -70,13 +70,13 @@ void CPDF_RenderContext::Render(CFX_RenderDevice* pDevice,
CFX_Matrix FinalMatrix = layer.m_Matrix;
FinalMatrix.Concat(*pLastMatrix);
status.Initialize(this, pDevice, pLastMatrix, pStopObj, nullptr, nullptr,
- pOptions, layer.m_pObjectHolder->m_iTransparency, false,
- nullptr);
+ pOptions, layer.m_pObjectHolder->GetTransparency(),
+ false, nullptr);
status.RenderObjectList(layer.m_pObjectHolder.Get(), &FinalMatrix);
} else {
status.Initialize(this, pDevice, nullptr, pStopObj, nullptr, nullptr,
- pOptions, layer.m_pObjectHolder->m_iTransparency, false,
- nullptr);
+ pOptions, layer.m_pObjectHolder->GetTransparency(),
+ false, nullptr);
status.RenderObjectList(layer.m_pObjectHolder.Get(), &layer.m_Matrix);
}
if (status.GetRenderOptions()->HasFlag(RENDER_LIMITEDIMAGECACHE)) {
diff --git a/core/fpdfapi/render/cpdf_renderstatus.cpp b/core/fpdfapi/render/cpdf_renderstatus.cpp
index 4df9f18375..f9261570fe 100644
--- a/core/fpdfapi/render/cpdf_renderstatus.cpp
+++ b/core/fpdfapi/render/cpdf_renderstatus.cpp
@@ -1241,7 +1241,7 @@ void CPDF_RenderStatus::DrawObjWithBackground(CPDF_PageObject* pObj,
CPDF_Dictionary* pFormResource = nullptr;
const CPDF_FormObject* pFormObj = pObj->AsForm();
if (pFormObj) {
- const auto& pFormDict = pFormObj->form()->m_pFormDict;
+ const CPDF_Dictionary* pFormDict = pFormObj->form()->GetFormDict();
if (pFormDict)
pFormResource = pFormDict->GetDictFor("Resources");
}
@@ -1258,14 +1258,14 @@ bool CPDF_RenderStatus::ProcessForm(const CPDF_FormObject* pFormObj,
#if defined _SKIA_SUPPORT_
DebugVerifyDeviceIsPreMultiplied();
#endif
- CPDF_Dictionary* pOC = pFormObj->form()->m_pFormDict->GetDictFor("OC");
+ CPDF_Dictionary* pOC = pFormObj->form()->GetFormDict()->GetDictFor("OC");
if (pOC && m_Options.GetOCContext() &&
!m_Options.GetOCContext()->CheckOCGVisible(pOC)) {
return true;
}
CFX_Matrix matrix = pFormObj->form_matrix();
matrix.Concat(*pObj2Device);
- const auto& pFormDict = pFormObj->form()->m_pFormDict;
+ const CPDF_Dictionary* pFormDict = pFormObj->form()->GetFormDict();
CPDF_Dictionary* pResources =
pFormDict ? pFormDict->GetDictFor("Resources") : nullptr;
CPDF_RenderStatus status;
@@ -1487,9 +1487,9 @@ bool CPDF_RenderStatus::ProcessTransparency(CPDF_PageObject* pPageObj,
const CPDF_FormObject* pFormObj = pPageObj->AsForm();
if (pFormObj) {
group_alpha = pFormObj->m_GeneralState.GetFillAlpha();
- iTransparency = pFormObj->form()->m_iTransparency;
+ iTransparency = pFormObj->form()->GetTransparency();
bGroupTransparent = !!(iTransparency & PDFTRANS_ISOLATED);
- const auto& pFormDict = pFormObj->form()->m_pFormDict;
+ const CPDF_Dictionary* pFormDict = pFormObj->form()->GetFormDict();
if (pFormDict)
pFormResource = pFormDict->GetDictFor("Resources");
}
@@ -1505,7 +1505,7 @@ bool CPDF_RenderStatus::ProcessTransparency(CPDF_PageObject* pPageObj,
CPDF_Page* pPage = nullptr;
if (m_pContext->GetPageCache()) {
pPage = m_pContext->GetPageCache()->GetPage();
- pDocument = pPage->m_pDocument.Get();
+ pDocument = pPage->GetDocument();
} else {
pDocument = pPageObj->AsImage()->GetImage()->GetDocument();
}
@@ -1879,15 +1879,15 @@ bool CPDF_RenderStatus::ProcessType3Text(CPDF_TextObject* textobj,
options.SetFlags(option_flags);
CPDF_Dictionary* pFormResource = nullptr;
- if (pType3Char->form() && pType3Char->form()->m_pFormDict) {
+ if (pType3Char->form() && pType3Char->form()->GetFormDict()) {
pFormResource =
- pType3Char->form()->m_pFormDict->GetDictFor("Resources");
+ pType3Char->form()->GetFormDict()->GetDictFor("Resources");
}
if (fill_alpha == 255) {
CPDF_RenderStatus status;
status.Initialize(m_pContext.Get(), m_pDevice, nullptr, nullptr, this,
pStates.get(), &options,
- pType3Char->form()->m_iTransparency, m_bDropObjects,
+ pType3Char->form()->GetTransparency(), m_bDropObjects,
pFormResource, false, pType3Char, fill_argb);
status.m_Type3FontCache = m_Type3FontCache;
status.m_Type3FontCache.push_back(pType3Font);
@@ -1907,7 +1907,7 @@ bool CPDF_RenderStatus::ProcessType3Text(CPDF_TextObject* textobj,
CPDF_RenderStatus status;
status.Initialize(m_pContext.Get(), &bitmap_device, nullptr, nullptr,
this, pStates.get(), &options,
- pType3Char->form()->m_iTransparency, m_bDropObjects,
+ pType3Char->form()->GetTransparency(), m_bDropObjects,
pFormResource, false, pType3Char, fill_argb);
status.m_Type3FontCache = m_Type3FontCache;
status.m_Type3FontCache.push_back(pType3Font);
@@ -2247,7 +2247,7 @@ void CPDF_RenderStatus::DrawTilingPattern(CPDF_TilingPattern* pPattern,
if (!pPattern->colored())
pStates = CloneObjStates(pPageObj, bStroke);
- auto& pFormDict = pPattern->form()->m_pFormDict;
+ const CPDF_Dictionary* pFormDict = pPattern->form()->GetFormDict();
CPDF_Dictionary* pFormResource =
pFormDict ? pFormDict->GetDictFor("Resources") : nullptr;
for (int col = min_col; col <= max_col; col++) {
@@ -2261,7 +2261,7 @@ void CPDF_RenderStatus::DrawTilingPattern(CPDF_TilingPattern* pPattern,
CPDF_RenderStatus status;
status.Initialize(m_pContext.Get(), m_pDevice, nullptr, nullptr, this,
pStates.get(), &m_Options,
- pPattern->form()->m_iTransparency, m_bDropObjects,
+ pPattern->form()->GetTransparency(), m_bDropObjects,
pFormResource);
status.RenderObjectList(pPattern->form(), &matrix);
}
@@ -2611,8 +2611,8 @@ RetainPtr<CFX_DIBitmap> CPDF_RenderStatus::LoadSMask(
bitmap.Clear(0);
}
CPDF_Dictionary* pFormResource = nullptr;
- if (form.m_pFormDict) {
- pFormResource = form.m_pFormDict->GetDictFor("Resources");
+ if (form.GetFormDict()) {
+ pFormResource = form.GetFormDict()->GetDictFor("Resources");
}
CPDF_RenderOptions options;
options.SetColorMode(bLuminosity ? CPDF_RenderOptions::kNormal