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

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

Issue 1171733003: Remove typdefs for pointer types in fx_system.h (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Manual fixes. 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 11 matching lines...) Expand all
22 void CPDF_Page::ClearRenderCache() 22 void CPDF_Page::ClearRenderCache()
23 { 23 {
24 if (m_pPageRender) { 24 if (m_pPageRender) {
25 m_pPageRender->ClearAll(); 25 m_pPageRender->ClearAll();
26 } 26 }
27 } 27 }
28 void CPDF_PageRenderCache::ClearAll() 28 void CPDF_PageRenderCache::ClearAll()
29 { 29 {
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 void* key;
33 void* value;
33 m_ImageCaches.GetNextAssoc(pos, key, value); 34 m_ImageCaches.GetNextAssoc(pos, key, value);
34 delete (CPDF_ImageCache*)value; 35 delete (CPDF_ImageCache*)value;
35 } 36 }
36 m_ImageCaches.RemoveAll(); 37 m_ImageCaches.RemoveAll();
37 m_nCacheSize = 0; 38 m_nCacheSize = 0;
38 m_nTimeCount = 0; 39 m_nTimeCount = 0;
39 } 40 }
40 void CPDF_PageRenderCache::CacheOptimization(int32_t dwLimitCacheSize) 41 void CPDF_PageRenderCache::CacheOptimization(int32_t dwLimitCacheSize)
41 { 42 {
42 if (m_nCacheSize <= (FX_DWORD)dwLimitCacheSize) { 43 if (m_nCacheSize <= (FX_DWORD)dwLimitCacheSize) {
43 return; 44 return;
44 } 45 }
45 int nCount = m_ImageCaches.GetCount(); 46 int nCount = m_ImageCaches.GetCount();
46 CACHEINFO* pCACHEINFO = (CACHEINFO*)FX_Alloc2D(uint8_t, sizeof(CACHEINFO), n Count); 47 CACHEINFO* pCACHEINFO = (CACHEINFO*)FX_Alloc2D(uint8_t, sizeof(CACHEINFO), n Count);
47 FX_POSITION pos = m_ImageCaches.GetStartPosition(); 48 FX_POSITION pos = m_ImageCaches.GetStartPosition();
48 int i = 0; 49 int i = 0;
49 while (pos) { 50 while (pos) {
50 FX_LPVOID key, value; 51 void* key;
52 void* value;
51 m_ImageCaches.GetNextAssoc(pos, key, value); 53 m_ImageCaches.GetNextAssoc(pos, key, value);
52 pCACHEINFO[i].time = ((CPDF_ImageCache*)value)->GetTimeCount(); 54 pCACHEINFO[i].time = ((CPDF_ImageCache*)value)->GetTimeCount();
53 pCACHEINFO[i++].pStream = ((CPDF_ImageCache*)value)->GetStream(); 55 pCACHEINFO[i++].pStream = ((CPDF_ImageCache*)value)->GetStream();
54 } 56 }
55 FXSYS_qsort(pCACHEINFO, nCount, sizeof (CACHEINFO), compare); 57 FXSYS_qsort(pCACHEINFO, nCount, sizeof (CACHEINFO), compare);
56 FX_DWORD nTimeCount = m_nTimeCount; 58 FX_DWORD nTimeCount = m_nTimeCount;
57 if (nTimeCount + 1 < nTimeCount) { 59 if (nTimeCount + 1 < nTimeCount) {
58 for (i = 0; i < nCount; i ++) { 60 for (i = 0; i < nCount; i ++) {
59 ((CPDF_ImageCache*)(m_ImageCaches[pCACHEINFO[i].pStream]))->m_dwTime Count = i; 61 ((CPDF_ImageCache*)(m_ImageCaches[pCACHEINFO[i].pStream]))->m_dwTime Count = i;
60 } 62 }
61 m_nTimeCount = nCount; 63 m_nTimeCount = nCount;
62 } 64 }
63 i = 0; 65 i = 0;
64 while(nCount > 15) { 66 while(nCount > 15) {
65 ClearImageCache(pCACHEINFO[i++].pStream); 67 ClearImageCache(pCACHEINFO[i++].pStream);
66 nCount--; 68 nCount--;
67 } 69 }
68 while (m_nCacheSize > (FX_DWORD)dwLimitCacheSize) { 70 while (m_nCacheSize > (FX_DWORD)dwLimitCacheSize) {
69 ClearImageCache(pCACHEINFO[i++].pStream); 71 ClearImageCache(pCACHEINFO[i++].pStream);
70 } 72 }
71 FX_Free(pCACHEINFO); 73 FX_Free(pCACHEINFO);
72 } 74 }
73 void CPDF_PageRenderCache::ClearImageCache(CPDF_Stream* pStream) 75 void CPDF_PageRenderCache::ClearImageCache(CPDF_Stream* pStream)
74 { 76 {
75 FX_LPVOID value = m_ImageCaches.GetValueAt(pStream); 77 void* value = m_ImageCaches.GetValueAt(pStream);
76 if (value == NULL) { 78 if (value == NULL) {
77 m_ImageCaches.RemoveKey(pStream); 79 m_ImageCaches.RemoveKey(pStream);
78 return; 80 return;
79 } 81 }
80 m_nCacheSize -= ((CPDF_ImageCache*)value)->EstimateSize(); 82 m_nCacheSize -= ((CPDF_ImageCache*)value)->EstimateSize();
81 delete (CPDF_ImageCache*)value; 83 delete (CPDF_ImageCache*)value;
82 m_ImageCaches.RemoveKey(pStream); 84 m_ImageCaches.RemoveKey(pStream);
83 } 85 }
84 FX_DWORD CPDF_PageRenderCache::EstimateSize() 86 FX_DWORD CPDF_PageRenderCache::EstimateSize()
85 { 87 {
86 FX_DWORD dwSize = 0; 88 FX_DWORD dwSize = 0;
87 FX_POSITION pos = m_ImageCaches.GetStartPosition(); 89 FX_POSITION pos = m_ImageCaches.GetStartPosition();
88 while (pos) { 90 while (pos) {
89 FX_LPVOID key, value; 91 void* key;
92 void* value;
90 m_ImageCaches.GetNextAssoc(pos, key, value); 93 m_ImageCaches.GetNextAssoc(pos, key, value);
91 dwSize += ((CPDF_ImageCache*)value)->EstimateSize(); 94 dwSize += ((CPDF_ImageCache*)value)->EstimateSize();
92 } 95 }
93 m_nCacheSize = dwSize; 96 m_nCacheSize = dwSize;
94 return dwSize; 97 return dwSize;
95 } 98 }
96 FX_DWORD CPDF_PageRenderCache::GetCachedSize(CPDF_Stream* pStream) const 99 FX_DWORD CPDF_PageRenderCache::GetCachedSize(CPDF_Stream* pStream) const
97 { 100 {
98 if (pStream == NULL) { 101 if (pStream == NULL) {
99 return m_nCacheSize; 102 return m_nCacheSize;
100 } 103 }
101 CPDF_ImageCache* pImageCache; 104 CPDF_ImageCache* pImageCache;
102 if (!m_ImageCaches.Lookup(pStream, (FX_LPVOID&)pImageCache)) { 105 if (!m_ImageCaches.Lookup(pStream, (void*&)pImageCache)) {
103 return 0; 106 return 0;
104 } 107 }
105 return pImageCache->EstimateSize(); 108 return pImageCache->EstimateSize();
106 } 109 }
107 void CPDF_PageRenderCache::GetCachedBitmap(CPDF_Stream* pStream, CFX_DIBSource*& pBitmap, CFX_DIBSource*& pMask, FX_DWORD& MatteColor, 110 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, 111 FX_BOOL bStdCS, FX_DWORD GroupFamily, FX_BOOL bLoadMask, CPDF_RenderStat us* pRenderStatus,
109 int32_t downsampleWidth, int32_t downsampleHeight) 112 int32_t downsampleWidth, int32_t downsampleHeight)
110 { 113 {
111 CPDF_ImageCache* pImageCache; 114 CPDF_ImageCache* pImageCache;
112 FX_BOOL bFind = m_ImageCaches.Lookup(pStream, (FX_LPVOID&)pImageCache); 115 FX_BOOL bFind = m_ImageCaches.Lookup(pStream, (void*&)pImageCache);
113 if (!bFind) { 116 if (!bFind) {
114 pImageCache = new CPDF_ImageCache(m_pPage->m_pDocument, pStream); 117 pImageCache = new CPDF_ImageCache(m_pPage->m_pDocument, pStream);
115 } 118 }
116 m_nTimeCount ++; 119 m_nTimeCount ++;
117 FX_BOOL bCached = pImageCache->GetCachedBitmap(pBitmap, pMask, MatteColor, m _pPage->m_pPageResources, bStdCS, GroupFamily, bLoadMask, pRenderStatus, downsam pleWidth, downsampleHeight); 120 FX_BOOL bCached = pImageCache->GetCachedBitmap(pBitmap, pMask, MatteColor, m _pPage->m_pPageResources, bStdCS, GroupFamily, bLoadMask, pRenderStatus, downsam pleWidth, downsampleHeight);
118 if (!bFind) { 121 if (!bFind) {
119 m_ImageCaches.SetAt(pStream, pImageCache); 122 m_ImageCaches.SetAt(pStream, pImageCache);
120 } 123 }
121 if (!bCached) { 124 if (!bCached) {
122 m_nCacheSize += pImageCache->EstimateSize(); 125 m_nCacheSize += pImageCache->EstimateSize();
123 } 126 }
124 } 127 }
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) 128 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 { 129 {
127 m_bCurFindCache = m_ImageCaches.Lookup(pStream, (FX_LPVOID&)m_pCurImageCache ); 130 m_bCurFindCache = m_ImageCaches.Lookup(pStream, (void*&)m_pCurImageCache);
128 if (!m_bCurFindCache) { 131 if (!m_bCurFindCache) {
129 m_pCurImageCache = new CPDF_ImageCache(m_pPage->m_pDocument, pStream); 132 m_pCurImageCache = new CPDF_ImageCache(m_pPage->m_pDocument, pStream);
130 } 133 }
131 int ret = m_pCurImageCache->StartGetCachedBitmap(pRenderStatus->m_pFormResou rce, m_pPage->m_pPageResources, bStdCS, GroupFamily, bLoadMask, pRenderStatus, d ownsampleWidth, downsampleHeight); 134 int ret = m_pCurImageCache->StartGetCachedBitmap(pRenderStatus->m_pFormResou rce, m_pPage->m_pPageResources, bStdCS, GroupFamily, bLoadMask, pRenderStatus, d ownsampleWidth, downsampleHeight);
132 if (ret == 2) { 135 if (ret == 2) {
133 return TRUE; 136 return TRUE;
134 } 137 }
135 m_nTimeCount ++; 138 m_nTimeCount ++;
136 if (!m_bCurFindCache) { 139 if (!m_bCurFindCache) {
137 m_ImageCaches.SetAt(pStream, m_pCurImageCache); 140 m_ImageCaches.SetAt(pStream, m_pCurImageCache);
(...skipping 14 matching lines...) Expand all
152 m_ImageCaches.SetAt(m_pCurImageCache->GetStream(), m_pCurImageCache); 155 m_ImageCaches.SetAt(m_pCurImageCache->GetStream(), m_pCurImageCache);
153 } 156 }
154 if (!ret) { 157 if (!ret) {
155 m_nCacheSize += m_pCurImageCache->EstimateSize(); 158 m_nCacheSize += m_pCurImageCache->EstimateSize();
156 } 159 }
157 return FALSE; 160 return FALSE;
158 } 161 }
159 void CPDF_PageRenderCache::ResetBitmap(CPDF_Stream* pStream, const CFX_DIBitmap* pBitmap) 162 void CPDF_PageRenderCache::ResetBitmap(CPDF_Stream* pStream, const CFX_DIBitmap* pBitmap)
160 { 163 {
161 CPDF_ImageCache* pImageCache; 164 CPDF_ImageCache* pImageCache;
162 if (!m_ImageCaches.Lookup(pStream, (FX_LPVOID&)pImageCache)) { 165 if (!m_ImageCaches.Lookup(pStream, (void*&)pImageCache)) {
163 if (pBitmap == NULL) { 166 if (pBitmap == NULL) {
164 return; 167 return;
165 } 168 }
166 pImageCache = new CPDF_ImageCache(m_pPage->m_pDocument, pStream); 169 pImageCache = new CPDF_ImageCache(m_pPage->m_pDocument, pStream);
167 m_ImageCaches.SetAt(pStream, pImageCache); 170 m_ImageCaches.SetAt(pStream, pImageCache);
168 } 171 }
169 int oldsize = pImageCache->EstimateSize(); 172 int oldsize = pImageCache->EstimateSize();
170 pImageCache->Reset(pBitmap); 173 pImageCache->Reset(pBitmap);
171 m_nCacheSize = pImageCache->EstimateSize() - oldsize; 174 m_nCacheSize = pImageCache->EstimateSize() - oldsize;
172 } 175 }
(...skipping 29 matching lines...) Expand all
202 m_pCachedBitmap = NULL; 205 m_pCachedBitmap = NULL;
203 if (pBitmap) { 206 if (pBitmap) {
204 m_pCachedBitmap = pBitmap->Clone(); 207 m_pCachedBitmap = pBitmap->Clone();
205 } 208 }
206 CalcSize(); 209 CalcSize();
207 } 210 }
208 void CPDF_PageRenderCache::ClearImageData() 211 void CPDF_PageRenderCache::ClearImageData()
209 { 212 {
210 FX_POSITION pos = m_ImageCaches.GetStartPosition(); 213 FX_POSITION pos = m_ImageCaches.GetStartPosition();
211 while (pos) { 214 while (pos) {
212 FX_LPVOID key, value; 215 void* key;
216 void* value;
213 m_ImageCaches.GetNextAssoc(pos, key, value); 217 m_ImageCaches.GetNextAssoc(pos, key, value);
214 ((CPDF_ImageCache*)value)->ClearImageData(); 218 ((CPDF_ImageCache*)value)->ClearImageData();
215 } 219 }
216 } 220 }
217 void CPDF_ImageCache::ClearImageData() 221 void CPDF_ImageCache::ClearImageData()
218 { 222 {
219 if (m_pCachedBitmap && m_pCachedBitmap->GetBuffer() == NULL) { 223 if (m_pCachedBitmap && m_pCachedBitmap->GetBuffer() == NULL) {
220 ((CPDF_DIBSource*)m_pCachedBitmap)->ClearImageData(); 224 ((CPDF_DIBSource*)m_pCachedBitmap)->ClearImageData();
221 } 225 }
222 } 226 }
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
346 } 350 }
347 void CPDF_Document::ClearRenderFont() 351 void CPDF_Document::ClearRenderFont()
348 { 352 {
349 if (m_pDocRender) { 353 if (m_pDocRender) {
350 CFX_FontCache* pCache = m_pDocRender->GetFontCache(); 354 CFX_FontCache* pCache = m_pDocRender->GetFontCache();
351 if (pCache) { 355 if (pCache) {
352 pCache->FreeCache(FALSE); 356 pCache->FreeCache(FALSE);
353 } 357 }
354 } 358 }
355 } 359 }
OLDNEW
« no previous file with comments | « core/src/fpdfapi/fpdf_parser/fpdf_parser_utility.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