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 CORE_FPDFAPI_RENDER_CPDF_DOCRENDERDATA_H_ 8 #define CORE_FPDFAPI_RENDER_CPDF_DOCRENDERDATA_H_ 9 10 #include <map> 11 12 #include "core/fpdfapi/page/cpdf_countedobject.h" 13 14 class CPDF_Document; 15 class CPDF_Font; 16 class CPDF_Object; 17 class CPDF_TransferFunc; 18 class CPDF_Type3Cache; 19 class CPDF_Type3Font; 20 21 class CPDF_DocRenderData { 22 public: 23 explicit CPDF_DocRenderData(CPDF_Document* pPDFDoc); 24 ~CPDF_DocRenderData(); 25 26 CPDF_Type3Cache* GetCachedType3(CPDF_Type3Font* pFont); 27 void ReleaseCachedType3(CPDF_Type3Font* pFont); 28 CPDF_TransferFunc* GetTransferFunc(CPDF_Object* pObj); 29 void ReleaseTransferFunc(CPDF_Object* pObj); 30 void Clear(bool bRelease); 31 32 private: 33 using CPDF_Type3CacheMap = 34 std::map<CPDF_Font*, CPDF_CountedObject<CPDF_Type3Cache>*>; 35 using CPDF_TransferFuncMap = 36 std::map<CPDF_Object*, CPDF_CountedObject<CPDF_TransferFunc>*>; 37 38 CPDF_Document* m_pPDFDoc; // Not Owned 39 CPDF_Type3CacheMap m_Type3FaceMap; 40 CPDF_TransferFuncMap m_TransferFuncMap; 41 }; 42 43 #endif // CORE_FPDFAPI_RENDER_CPDF_DOCRENDERDATA_H_ 44