diff options
Diffstat (limited to 'core/fpdfapi/render')
-rw-r--r-- | core/fpdfapi/render/cpdf_rendercontext.cpp | 26 | ||||
-rw-r--r-- | core/fpdfapi/render/cpdf_rendercontext.h | 8 | ||||
-rw-r--r-- | core/fpdfapi/render/cpdf_renderstatus.cpp | 15 | ||||
-rw-r--r-- | core/fpdfapi/render/cpdf_renderstatus.h | 3 |
4 files changed, 26 insertions, 26 deletions
diff --git a/core/fpdfapi/render/cpdf_rendercontext.cpp b/core/fpdfapi/render/cpdf_rendercontext.cpp index 2efdb81f8a..d74f729858 100644 --- a/core/fpdfapi/render/cpdf_rendercontext.cpp +++ b/core/fpdfapi/render/cpdf_rendercontext.cpp @@ -44,12 +44,12 @@ void CPDF_RenderContext::GetBackground(CFX_DIBitmap* pBuffer, void CPDF_RenderContext::AppendLayer(CPDF_PageObjectHolder* pObjectHolder, const CFX_Matrix* pObject2Device) { - Layer* pLayer = m_Layers.AddSpace(); - pLayer->m_pObjectHolder = pObjectHolder; + m_Layers.emplace_back(); + m_Layers.back().m_pObjectHolder = pObjectHolder; if (pObject2Device) - pLayer->m_Matrix = *pObject2Device; + m_Layers.back().m_Matrix = *pObject2Device; else - pLayer->m_Matrix.SetIdentity(); + m_Layers.back().m_Matrix.SetIdentity(); } void CPDF_RenderContext::Render(CFX_RenderDevice* pDevice, @@ -62,18 +62,16 @@ void CPDF_RenderContext::Render(CFX_RenderDevice* pDevice, const CPDF_PageObject* pStopObj, const CPDF_RenderOptions* pOptions, const CFX_Matrix* pLastMatrix) { - int count = m_Layers.GetSize(); - for (int j = 0; j < count; j++) { + for (auto& layer : m_Layers) { pDevice->SaveState(); - Layer* pLayer = m_Layers.GetDataPtr(j); if (pLastMatrix) { - CFX_Matrix FinalMatrix = pLayer->m_Matrix; + CFX_Matrix FinalMatrix = layer.m_Matrix; FinalMatrix.Concat(*pLastMatrix); CPDF_RenderStatus status; status.Initialize(this, pDevice, pLastMatrix, pStopObj, nullptr, nullptr, - pOptions, pLayer->m_pObjectHolder->m_Transparency, - false, nullptr); - status.RenderObjectList(pLayer->m_pObjectHolder, &FinalMatrix); + pOptions, layer.m_pObjectHolder->m_Transparency, false, + nullptr); + status.RenderObjectList(layer.m_pObjectHolder, &FinalMatrix); if (status.m_Options.m_Flags & RENDER_LIMITEDIMAGECACHE) m_pPageCache->CacheOptimization(status.m_Options.m_dwLimitCacheSize); if (status.m_bStopped) { @@ -83,9 +81,9 @@ void CPDF_RenderContext::Render(CFX_RenderDevice* pDevice, } else { CPDF_RenderStatus status; status.Initialize(this, pDevice, nullptr, pStopObj, nullptr, nullptr, - pOptions, pLayer->m_pObjectHolder->m_Transparency, - false, nullptr); - status.RenderObjectList(pLayer->m_pObjectHolder, &pLayer->m_Matrix); + pOptions, layer.m_pObjectHolder->m_Transparency, false, + nullptr); + status.RenderObjectList(layer.m_pObjectHolder, &layer.m_Matrix); if (status.m_Options.m_Flags & RENDER_LIMITEDIMAGECACHE) m_pPageCache->CacheOptimization(status.m_Options.m_dwLimitCacheSize); if (status.m_bStopped) { diff --git a/core/fpdfapi/render/cpdf_rendercontext.h b/core/fpdfapi/render/cpdf_rendercontext.h index 676b89a4f4..a9fd2db78b 100644 --- a/core/fpdfapi/render/cpdf_rendercontext.h +++ b/core/fpdfapi/render/cpdf_rendercontext.h @@ -7,6 +7,8 @@ #ifndef CORE_FPDFAPI_RENDER_CPDF_RENDERCONTEXT_H_ #define CORE_FPDFAPI_RENDER_CPDF_RENDERCONTEXT_H_ +#include <vector> + #include "core/fxcrt/fx_basic.h" #include "core/fxcrt/fx_coordinates.h" @@ -50,8 +52,8 @@ class CPDF_RenderContext { const CPDF_RenderOptions* pOptions, CFX_Matrix* pFinalMatrix); - uint32_t CountLayers() const { return m_Layers.GetSize(); } - Layer* GetLayer(uint32_t index) { return m_Layers.GetDataPtr(index); } + size_t CountLayers() const { return m_Layers.size(); } + Layer* GetLayer(uint32_t index) { return &m_Layers[index]; } CPDF_Document* GetDocument() const { return m_pDocument; } CPDF_Dictionary* GetPageResources() const { return m_pPageResources; } @@ -61,7 +63,7 @@ class CPDF_RenderContext { CPDF_Document* const m_pDocument; CPDF_Dictionary* m_pPageResources; CPDF_PageRenderCache* m_pPageCache; - CFX_ArrayTemplate<Layer> m_Layers; + std::vector<Layer> m_Layers; }; #endif // CORE_FPDFAPI_RENDER_CPDF_RENDERCONTEXT_H_ diff --git a/core/fpdfapi/render/cpdf_renderstatus.cpp b/core/fpdfapi/render/cpdf_renderstatus.cpp index 01026f44a9..35d061616b 100644 --- a/core/fpdfapi/render/cpdf_renderstatus.cpp +++ b/core/fpdfapi/render/cpdf_renderstatus.cpp @@ -55,6 +55,7 @@ #include "core/fxge/ifx_renderdevicedriver.h" #include "third_party/base/numerics/safe_math.h" #include "third_party/base/ptr_util.h" +#include "third_party/base/stl_util.h" #ifdef _SKIA_SUPPORT_ #include "core/fxge/skia/fx_skia_device.h" @@ -1782,10 +1783,8 @@ CPDF_Type3Cache* CPDF_RenderStatus::GetCachedType3(CPDF_Type3Font* pFont) { bool CPDF_RenderStatus::ProcessType3Text(CPDF_TextObject* textobj, const CFX_Matrix* pObj2Device) { CPDF_Type3Font* pType3Font = textobj->m_TextState.GetFont()->AsType3Font(); - for (int i = 0; i < m_Type3FontCache.GetSize(); ++i) { - if (m_Type3FontCache.GetAt(i) == pType3Font) - return true; - } + if (pdfium::ContainsValue(m_Type3FontCache, pType3Font)) + return true; CFX_Matrix dCTM = m_pDevice->GetCTM(); FX_FLOAT sa = FXSYS_fabs(dCTM.a); @@ -1851,8 +1850,8 @@ bool CPDF_RenderStatus::ProcessType3Text(CPDF_TextObject* textobj, pStates, &Options, pType3Char->m_pForm->m_Transparency, m_bDropObjects, pFormResource, false, pType3Char, fill_argb); - status.m_Type3FontCache.Append(m_Type3FontCache); - status.m_Type3FontCache.Add(pType3Font); + status.m_Type3FontCache = m_Type3FontCache; + status.m_Type3FontCache.push_back(pType3Font); m_pDevice->SaveState(); status.RenderObjectList(pType3Char->m_pForm.get(), &matrix); m_pDevice->RestoreState(false); @@ -1872,8 +1871,8 @@ bool CPDF_RenderStatus::ProcessType3Text(CPDF_TextObject* textobj, pStates, &Options, pType3Char->m_pForm->m_Transparency, m_bDropObjects, pFormResource, false, pType3Char, fill_argb); - status.m_Type3FontCache.Append(m_Type3FontCache); - status.m_Type3FontCache.Add(pType3Font); + status.m_Type3FontCache = m_Type3FontCache; + status.m_Type3FontCache.push_back(pType3Font); matrix.TranslateI(-rect.left, -rect.top); matrix.Scale(sa, sd); status.RenderObjectList(pType3Char->m_pForm.get(), &matrix); diff --git a/core/fpdfapi/render/cpdf_renderstatus.h b/core/fpdfapi/render/cpdf_renderstatus.h index abc8458d9e..25ddfb06c3 100644 --- a/core/fpdfapi/render/cpdf_renderstatus.h +++ b/core/fpdfapi/render/cpdf_renderstatus.h @@ -8,6 +8,7 @@ #define CORE_FPDFAPI_RENDER_CPDF_RENDERSTATUS_H_ #include <memory> +#include <vector> #include "core/fpdfapi/page/cpdf_clippath.h" #include "core/fpdfapi/page/cpdf_graphicstates.h" @@ -69,7 +70,7 @@ class CPDF_RenderStatus { CPDF_RenderOptions m_Options; CPDF_Dictionary* m_pFormResource; CPDF_Dictionary* m_pPageResource; - CFX_ArrayTemplate<CPDF_Type3Font*> m_Type3FontCache; + std::vector<CPDF_Type3Font*> m_Type3FontCache; private: friend class CPDF_ImageRenderer; |