Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(423)

Side by Side Diff: core/src/fpdfapi/fpdf_render/fpdf_render_cache.cpp

Issue 1172793002: Merge to XFA: Use stdint.h types throughout PDFium. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@xfa
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include "../../../include/fpdfapi/fpdf_render.h" 7 #include "../../../include/fpdfapi/fpdf_render.h"
8 #include "../../../include/fpdfapi/fpdf_pageobj.h" 8 #include "../../../include/fpdfapi/fpdf_pageobj.h"
9 #include "../../../include/fxge/fx_ge.h" 9 #include "../../../include/fxge/fx_ge.h"
10 #include "../fpdf_page/pageint.h" 10 #include "../fpdf_page/pageint.h"
(...skipping 19 matching lines...) Expand all
30 FX_POSITION pos = m_ImageCaches.GetStartPosition(); 30 FX_POSITION pos = m_ImageCaches.GetStartPosition();
31 while (pos) { 31 while (pos) {
32 FX_LPVOID key, value; 32 FX_LPVOID key, value;
33 m_ImageCaches.GetNextAssoc(pos, key, value); 33 m_ImageCaches.GetNextAssoc(pos, key, value);
34 delete (CPDF_ImageCache*)value; 34 delete (CPDF_ImageCache*)value;
35 } 35 }
36 m_ImageCaches.RemoveAll(); 36 m_ImageCaches.RemoveAll();
37 m_nCacheSize = 0; 37 m_nCacheSize = 0;
38 m_nTimeCount = 0; 38 m_nTimeCount = 0;
39 } 39 }
40 void CPDF_PageRenderCache::CacheOptimization(FX_INT32 dwLimitCacheSize) 40 void CPDF_PageRenderCache::CacheOptimization(int32_t dwLimitCacheSize)
41 { 41 {
42 if (m_nCacheSize <= (FX_DWORD)dwLimitCacheSize) { 42 if (m_nCacheSize <= (FX_DWORD)dwLimitCacheSize) {
43 return; 43 return;
44 } 44 }
45 int nCount = m_ImageCaches.GetCount(); 45 int nCount = m_ImageCaches.GetCount();
46 CACHEINFO* pCACHEINFO = (CACHEINFO*)FX_Alloc2D(FX_BYTE, sizeof(CACHEINFO), n Count); 46 CACHEINFO* pCACHEINFO = (CACHEINFO*)FX_Alloc2D(uint8_t, sizeof(CACHEINFO), n Count);
47 FX_POSITION pos = m_ImageCaches.GetStartPosition(); 47 FX_POSITION pos = m_ImageCaches.GetStartPosition();
48 int i = 0; 48 int i = 0;
49 while (pos) { 49 while (pos) {
50 FX_LPVOID key, value; 50 FX_LPVOID key, value;
51 m_ImageCaches.GetNextAssoc(pos, key, value); 51 m_ImageCaches.GetNextAssoc(pos, key, value);
52 pCACHEINFO[i].time = ((CPDF_ImageCache*)value)->GetTimeCount(); 52 pCACHEINFO[i].time = ((CPDF_ImageCache*)value)->GetTimeCount();
53 pCACHEINFO[i++].pStream = ((CPDF_ImageCache*)value)->GetStream(); 53 pCACHEINFO[i++].pStream = ((CPDF_ImageCache*)value)->GetStream();
54 } 54 }
55 FXSYS_qsort(pCACHEINFO, nCount, sizeof (CACHEINFO), compare); 55 FXSYS_qsort(pCACHEINFO, nCount, sizeof (CACHEINFO), compare);
56 FX_DWORD nTimeCount = m_nTimeCount; 56 FX_DWORD nTimeCount = m_nTimeCount;
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 return m_nCacheSize; 99 return m_nCacheSize;
100 } 100 }
101 CPDF_ImageCache* pImageCache; 101 CPDF_ImageCache* pImageCache;
102 if (!m_ImageCaches.Lookup(pStream, (FX_LPVOID&)pImageCache)) { 102 if (!m_ImageCaches.Lookup(pStream, (FX_LPVOID&)pImageCache)) {
103 return 0; 103 return 0;
104 } 104 }
105 return pImageCache->EstimateSize(); 105 return pImageCache->EstimateSize();
106 } 106 }
107 void CPDF_PageRenderCache::GetCachedBitmap(CPDF_Stream* pStream, CFX_DIBSource*& pBitmap, CFX_DIBSource*& pMask, FX_DWORD& MatteColor, 107 void CPDF_PageRenderCache::GetCachedBitmap(CPDF_Stream* pStream, CFX_DIBSource*& pBitmap, CFX_DIBSource*& pMask, FX_DWORD& MatteColor,
108 FX_BOOL bStdCS, FX_DWORD GroupFamily, FX_BOOL bLoadMask, CPDF_RenderStat us* pRenderStatus, 108 FX_BOOL bStdCS, FX_DWORD GroupFamily, FX_BOOL bLoadMask, CPDF_RenderStat us* pRenderStatus,
109 FX_INT32 downsampleWidth, FX_INT32 downsampleHeight) 109 int32_t downsampleWidth, int32_t downsampleHeight)
110 { 110 {
111 CPDF_ImageCache* pImageCache; 111 CPDF_ImageCache* pImageCache;
112 FX_BOOL bFind = m_ImageCaches.Lookup(pStream, (FX_LPVOID&)pImageCache); 112 FX_BOOL bFind = m_ImageCaches.Lookup(pStream, (FX_LPVOID&)pImageCache);
113 if (!bFind) { 113 if (!bFind) {
114 pImageCache = new CPDF_ImageCache(m_pPage->m_pDocument, pStream); 114 pImageCache = new CPDF_ImageCache(m_pPage->m_pDocument, pStream);
115 } 115 }
116 m_nTimeCount ++; 116 m_nTimeCount ++;
117 FX_BOOL bCached = pImageCache->GetCachedBitmap(pBitmap, pMask, MatteColor, m _pPage->m_pPageResources, bStdCS, GroupFamily, bLoadMask, pRenderStatus, downsam pleWidth, downsampleHeight); 117 FX_BOOL bCached = pImageCache->GetCachedBitmap(pBitmap, pMask, MatteColor, m _pPage->m_pPageResources, bStdCS, GroupFamily, bLoadMask, pRenderStatus, downsam pleWidth, downsampleHeight);
118 if (!bFind) { 118 if (!bFind) {
119 m_ImageCaches.SetAt(pStream, pImageCache); 119 m_ImageCaches.SetAt(pStream, pImageCache);
120 } 120 }
121 if (!bCached) { 121 if (!bCached) {
122 m_nCacheSize += pImageCache->EstimateSize(); 122 m_nCacheSize += pImageCache->EstimateSize();
123 } 123 }
124 } 124 }
125 FX_BOOL»CPDF_PageRenderCache::StartGetCachedBitmap(CPDF_Stream* pStream, FX_BOOL bStdCS, FX_DWORD GroupFamily, FX_BOOL bLoadMask, CPDF_RenderStatus* pRenderStat us, FX_INT32 downsampleWidth, FX_INT32 downsampleHeight) 125 FX_BOOL»CPDF_PageRenderCache::StartGetCachedBitmap(CPDF_Stream* pStream, FX_BOOL bStdCS, FX_DWORD GroupFamily, FX_BOOL bLoadMask, CPDF_RenderStatus* pRenderStat us, int32_t downsampleWidth, int32_t downsampleHeight)
126 { 126 {
127 m_bCurFindCache = m_ImageCaches.Lookup(pStream, (FX_LPVOID&)m_pCurImageCache ); 127 m_bCurFindCache = m_ImageCaches.Lookup(pStream, (FX_LPVOID&)m_pCurImageCache );
128 if (!m_bCurFindCache) { 128 if (!m_bCurFindCache) {
129 m_pCurImageCache = new CPDF_ImageCache(m_pPage->m_pDocument, pStream); 129 m_pCurImageCache = new CPDF_ImageCache(m_pPage->m_pDocument, pStream);
130 } 130 }
131 int ret = m_pCurImageCache->StartGetCachedBitmap(pRenderStatus->m_pFormResou rce, m_pPage->m_pPageResources, bStdCS, GroupFamily, bLoadMask, pRenderStatus, d ownsampleWidth, downsampleHeight); 131 int ret = m_pCurImageCache->StartGetCachedBitmap(pRenderStatus->m_pFormResou rce, m_pPage->m_pPageResources, bStdCS, GroupFamily, bLoadMask, pRenderStatus, d ownsampleWidth, downsampleHeight);
132 if (ret == 2) { 132 if (ret == 2) {
133 return TRUE; 133 return TRUE;
134 } 134 }
135 m_nTimeCount ++; 135 m_nTimeCount ++;
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 if (m_pCachedBitmap && m_pCachedBitmap->GetBuffer() == NULL) { 219 if (m_pCachedBitmap && m_pCachedBitmap->GetBuffer() == NULL) {
220 ((CPDF_DIBSource*)m_pCachedBitmap)->ClearImageData(); 220 ((CPDF_DIBSource*)m_pCachedBitmap)->ClearImageData();
221 } 221 }
222 } 222 }
223 static FX_DWORD FPDF_ImageCache_EstimateImageSize(const CFX_DIBSource* pDIB) 223 static FX_DWORD FPDF_ImageCache_EstimateImageSize(const CFX_DIBSource* pDIB)
224 { 224 {
225 return pDIB && pDIB->GetBuffer() ? (FX_DWORD)pDIB->GetHeight() * pDIB->GetPi tch() + (FX_DWORD)pDIB->GetPaletteSize() * 4 : 0; 225 return pDIB && pDIB->GetBuffer() ? (FX_DWORD)pDIB->GetHeight() * pDIB->GetPi tch() + (FX_DWORD)pDIB->GetPaletteSize() * 4 : 0;
226 } 226 }
227 FX_BOOL CPDF_ImageCache::GetCachedBitmap(CFX_DIBSource*& pBitmap, CFX_DIBSource* & pMask, FX_DWORD& MatteColor, CPDF_Dictionary* pPageResources, 227 FX_BOOL CPDF_ImageCache::GetCachedBitmap(CFX_DIBSource*& pBitmap, CFX_DIBSource* & pMask, FX_DWORD& MatteColor, CPDF_Dictionary* pPageResources,
228 FX_BOOL bStdCS, FX_DWORD GroupFamily, FX_BOOL bLoadMask, CPDF_RenderStat us* pRenderStatus, 228 FX_BOOL bStdCS, FX_DWORD GroupFamily, FX_BOOL bLoadMask, CPDF_RenderStat us* pRenderStatus,
229 FX_INT32 downsampleWidth, FX_INT32 downsampleHeight) 229 int32_t downsampleWidth, int32_t downsampleHeight)
230 { 230 {
231 if (m_pCachedBitmap) { 231 if (m_pCachedBitmap) {
232 pBitmap = m_pCachedBitmap; 232 pBitmap = m_pCachedBitmap;
233 pMask = m_pCachedMask; 233 pMask = m_pCachedMask;
234 MatteColor = m_MatteColor; 234 MatteColor = m_MatteColor;
235 return TRUE; 235 return TRUE;
236 } 236 }
237 if (!pRenderStatus) { 237 if (!pRenderStatus) {
238 return FALSE; 238 return FALSE;
239 } 239 }
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 return pDIBSource; 271 return pDIBSource;
272 } 272 }
273 CFX_DIBSource* CPDF_ImageCache::DetachMask() 273 CFX_DIBSource* CPDF_ImageCache::DetachMask()
274 { 274 {
275 CFX_DIBSource* pDIBSource = m_pCurMask; 275 CFX_DIBSource* pDIBSource = m_pCurMask;
276 m_pCurMask = NULL; 276 m_pCurMask = NULL;
277 return pDIBSource; 277 return pDIBSource;
278 } 278 }
279 int CPDF_ImageCache::StartGetCachedBitmap(CPDF_Dictionary* pFormResources, C PDF_Dictionary* pPageResources, FX_BOOL bStdCS, 279 int CPDF_ImageCache::StartGetCachedBitmap(CPDF_Dictionary* pFormResources, C PDF_Dictionary* pPageResources, FX_BOOL bStdCS,
280 FX_DWORD GroupFamily, FX_BOOL bLoadMask, CPDF_RenderStatus* pRenderStatu s, 280 FX_DWORD GroupFamily, FX_BOOL bLoadMask, CPDF_RenderStatus* pRenderStatu s,
281 FX_INT32 downsampleWidth, FX_INT32 downsampleHeight) 281 int32_t downsampleWidth, int32_t downsampleHeight)
282 { 282 {
283 if (m_pCachedBitmap) { 283 if (m_pCachedBitmap) {
284 m_pCurBitmap = m_pCachedBitmap; 284 m_pCurBitmap = m_pCachedBitmap;
285 m_pCurMask = m_pCachedMask; 285 m_pCurMask = m_pCachedMask;
286 return 1; 286 return 1;
287 } 287 }
288 if (!pRenderStatus) { 288 if (!pRenderStatus) {
289 return 0; 289 return 0;
290 } 290 }
291 m_pRenderStatus = pRenderStatus; 291 m_pRenderStatus = pRenderStatus;
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
346 } 346 }
347 void CPDF_Document::ClearRenderFont() 347 void CPDF_Document::ClearRenderFont()
348 { 348 {
349 if (m_pDocRender) { 349 if (m_pDocRender) {
350 CFX_FontCache* pCache = m_pDocRender->GetFontCache(); 350 CFX_FontCache* pCache = m_pDocRender->GetFontCache();
351 if (pCache) { 351 if (pCache) {
352 pCache->FreeCache(FALSE); 352 pCache->FreeCache(FALSE);
353 } 353 }
354 } 354 }
355 } 355 }
OLDNEW
« no previous file with comments | « core/src/fpdfapi/fpdf_render/fpdf_render.cpp ('k') | core/src/fpdfapi/fpdf_render/fpdf_render_image.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698