| OLD | NEW |
| 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 #ifndef CORE_INCLUDE_FPDFAPI_FPDF_RENDER_H_ | 7 #ifndef CORE_INCLUDE_FPDFAPI_FPDF_RENDER_H_ |
| 8 #define CORE_INCLUDE_FPDFAPI_FPDF_RENDER_H_ | 8 #define CORE_INCLUDE_FPDFAPI_FPDF_RENDER_H_ |
| 9 | 9 |
| 10 #include "../../../third_party/base/nonstd_unique_ptr.h" | 10 #include "../../../third_party/base/nonstd_unique_ptr.h" |
| 11 #include "../../../public/fpdf_progressive.h" | 11 #include "../../../public/fpdf_progressive.h" |
| 12 #include "../fxge/fx_ge.h" | 12 #include "../fxge/fx_ge.h" |
| 13 #include "fpdf_page.h" | 13 #include "fpdf_page.h" |
| 14 | 14 |
| 15 class CFX_GraphStateData; | 15 class CFX_GraphStateData; |
| 16 class CFX_PathData; | 16 class CFX_PathData; |
| 17 class CFX_RenderDevice; | 17 class CFX_RenderDevice; |
| 18 class CPDF_FormObject; | 18 class CPDF_FormObject; |
| 19 class CPDF_ImageCache; | 19 class CPDF_ImageCache; |
| 20 class CPDF_ImageObject; | 20 class CPDF_ImageObject; |
| 21 class CPDF_PathObject; | 21 class CPDF_PathObject; |
| 22 class CPDF_QuickStretcher; | 22 class CPDF_QuickStretcher; |
| 23 class CPDF_RenderContext; | 23 class CPDF_RenderContext; |
| 24 class CPDF_RenderOptions; | 24 class CPDF_RenderOptions; |
| 25 class CPDF_RenderStatus; | 25 class CPDF_RenderStatus; |
| 26 class CPDF_ShadingObject; | 26 class CPDF_ShadingObject; |
| 27 class CPDF_TextObject; | 27 class CPDF_TextObject; |
| 28 class IFX_Pause; | 28 class IFX_Pause; |
| 29 | 29 |
| 30 class IPDF_OCContext | 30 class IPDF_OCContext { |
| 31 { | 31 public: |
| 32 public: | 32 virtual ~IPDF_OCContext() {} |
| 33 | 33 |
| 34 virtual ~IPDF_OCContext() {} | 34 virtual FX_BOOL CheckOCGVisible(const CPDF_Dictionary* pOCG) = 0; |
| 35 | 35 |
| 36 virtual FX_BOOL CheckOCGVisible(const CPDF_Dictionary* pOCG) = 0; | 36 FX_BOOL CheckObjectVisible(const CPDF_PageObject* pObj); |
| 37 | 37 }; |
| 38 FX_BOOL CheckObjectVisible(const CPDF_PageObject* pObj); | 38 #define RENDER_COLOR_NORMAL 0 |
| 39 }; | 39 #define RENDER_COLOR_GRAY 1 |
| 40 #define RENDER_COLOR_NORMAL 0 | 40 #define RENDER_COLOR_TWOCOLOR 2 |
| 41 #define RENDER_COLOR_GRAY 1 | 41 #define RENDER_COLOR_ALPHA 3 |
| 42 #define RENDER_COLOR_TWOCOLOR 2 | 42 #define RENDER_CLEARTYPE 0x00000001 |
| 43 #define RENDER_COLOR_ALPHA 3 | 43 #define RENDER_PRINTGRAPHICTEXT 0x00000002 |
| 44 #define RENDER_CLEARTYPE 0x00000001 | 44 #define RENDER_FORCE_DOWNSAMPLE 0x00000004 |
| 45 #define RENDER_PRINTGRAPHICTEXT 0x00000002 | 45 #define RENDER_PRINTPREVIEW 0x00000008 |
| 46 #define RENDER_FORCE_DOWNSAMPLE 0x00000004 | 46 #define RENDER_BGR_STRIPE 0x00000010 |
| 47 #define RENDER_PRINTPREVIEW 0x00000008 | 47 #define RENDER_NO_NATIVETEXT 0x00000020 |
| 48 #define RENDER_BGR_STRIPE 0x00000010 | 48 #define RENDER_FORCE_HALFTONE 0x00000040 |
| 49 #define RENDER_NO_NATIVETEXT 0x00000020 | 49 #define RENDER_RECT_AA 0x00000080 |
| 50 #define RENDER_FORCE_HALFTONE 0x00000040 | 50 #define RENDER_FILL_FULLCOVER 0x00000100 |
| 51 #define RENDER_RECT_AA 0x00000080 | 51 #define RENDER_PRINTIMAGETEXT 0x00000200 |
| 52 #define RENDER_FILL_FULLCOVER 0x00000100 | 52 #define RENDER_OVERPRINT 0x00000400 |
| 53 #define RENDER_PRINTIMAGETEXT 0x00000200 | 53 #define RENDER_THINLINE 0x00000800 |
| 54 #define RENDER_OVERPRINT 0x00000400 | 54 #define RENDER_NOTEXTSMOOTH 0x10000000 |
| 55 #define RENDER_THINLINE 0x00000800 | 55 #define RENDER_NOPATHSMOOTH 0x20000000 |
| 56 #define RENDER_NOTEXTSMOOTH 0x10000000 | 56 #define RENDER_NOIMAGESMOOTH 0x40000000 |
| 57 #define RENDER_NOPATHSMOOTH 0x20000000 | 57 #define RENDER_LIMITEDIMAGECACHE 0x80000000 |
| 58 #define RENDER_NOIMAGESMOOTH 0x40000000 | 58 class CPDF_RenderOptions { |
| 59 #define RENDER_LIMITEDIMAGECACHE 0x80000000 | 59 public: |
| 60 class CPDF_RenderOptions | 60 CPDF_RenderOptions(); |
| 61 { | 61 |
| 62 public: | 62 int m_ColorMode; |
| 63 | 63 |
| 64 CPDF_RenderOptions(); | 64 FX_COLORREF m_BackColor; |
| 65 | 65 |
| 66 int m_ColorMode; | 66 FX_COLORREF m_ForeColor; |
| 67 | 67 |
| 68 FX_COLORREF m_BackColor; | 68 FX_DWORD m_Flags; |
| 69 | 69 |
| 70 FX_COLORREF m_ForeColor; | 70 int m_Interpolation; |
| 71 | 71 |
| 72 FX_DWORD m_Flags; | 72 FX_DWORD m_AddFlags; |
| 73 | 73 |
| 74 int m_Interpolation; | 74 IPDF_OCContext* m_pOCContext; |
| 75 | 75 |
| 76 FX_DWORD m_AddFlags; | 76 FX_DWORD m_dwLimitCacheSize; |
| 77 | 77 |
| 78 IPDF_OCContext* m_pOCContext; | 78 int m_HalftoneLimit; |
| 79 | 79 |
| 80 FX_DWORD m_dwLimitCacheSize; | 80 FX_ARGB TranslateColor(FX_ARGB argb) const; |
| 81 | 81 }; |
| 82 int m_HalftoneLimit; | 82 class CPDF_RenderContext { |
| 83 | 83 public: |
| 84 FX_ARGB TranslateColor(FX_ARGB argb) const; | 84 CPDF_RenderContext(); |
| 85 }; | 85 |
| 86 class CPDF_RenderContext | 86 void Create(CPDF_Page* pPage, FX_BOOL bFirstLayer = TRUE); |
| 87 { | 87 |
| 88 public: | 88 void Create(CPDF_Document* pDoc = NULL, |
| 89 | 89 CPDF_PageRenderCache* pPageCache = NULL, |
| 90 CPDF_RenderContext(); | 90 CPDF_Dictionary* pPageResources = NULL, |
| 91 | 91 FX_BOOL bFirstLayer = TRUE); |
| 92 void Create(CPDF_Page* pPage, FX_BOOL bFirstLayer = T
RUE); | 92 |
| 93 | 93 ~CPDF_RenderContext(); |
| 94 void Create(CPDF_Document* pDoc = NULL, CPDF_PageRend
erCache* pPageCache = NULL, | 94 |
| 95 CPDF_Dictionary* pPageResources = NULL, FX_BOOL bFirs
tLayer = TRUE); | 95 void Clear(); |
| 96 | 96 |
| 97 ~CPDF_RenderContext(); | 97 void AppendObjectList(CPDF_PageObjects* pObjs, |
| 98 | 98 const CFX_AffineMatrix* pObject2Device); |
| 99 void Clear(); | 99 |
| 100 | 100 void Render(CFX_RenderDevice* pDevice, |
| 101 void AppendObjectList(CPDF_PageObjects* pObjs, const
CFX_AffineMatrix* pObject2Device); | 101 const CPDF_RenderOptions* pOptions = NULL, |
| 102 | 102 const CFX_AffineMatrix* pFinalMatrix = NULL); |
| 103 void Render(CFX_RenderDevice* pDevice, const CPDF_Ren
derOptions* pOptions = NULL, | 103 |
| 104 const CFX_AffineMatrix* pFinalMatrix = NULL); | 104 void DrawObjectList(CFX_RenderDevice* pDevice, |
| 105 | 105 CPDF_PageObjects* pObjs, |
| 106 void DrawObjectList(CFX_RenderDevice* pDevice, CPDF_P
ageObjects* pObjs, | 106 const CFX_AffineMatrix* pObject2Device, |
| 107 const CFX_AffineMatrix* pObject2Device, const
CPDF_RenderOptions* pOptions); | 107 const CPDF_RenderOptions* pOptions); |
| 108 | 108 |
| 109 void GetBackground(CFX_DIBitmap* pBuffer, const CPDF_
PageObject* pObj, | 109 void GetBackground(CFX_DIBitmap* pBuffer, |
| 110 const CPDF_RenderOptions* pOptions, CFX_Affine
Matrix* pFinalMatrix); | 110 const CPDF_PageObject* pObj, |
| 111 | 111 const CPDF_RenderOptions* pOptions, |
| 112 CPDF_PageRenderCache* GetPageCache() const | 112 CFX_AffineMatrix* pFinalMatrix); |
| 113 { | 113 |
| 114 return m_pPageCache; | 114 CPDF_PageRenderCache* GetPageCache() const { return m_pPageCache; } |
| 115 } | 115 |
| 116 | 116 CPDF_Document* m_pDocument; |
| 117 | 117 |
| 118 | 118 CPDF_Dictionary* m_pPageResources; |
| 119 CPDF_Document* m_pDocument; | 119 |
| 120 | 120 CPDF_PageRenderCache* m_pPageCache; |
| 121 CPDF_Dictionary* m_pPageResources; | 121 |
| 122 | 122 protected: |
| 123 CPDF_PageRenderCache* m_pPageCache; | 123 CFX_ArrayTemplate<struct _PDF_RenderItem> m_ContentList; |
| 124 | 124 |
| 125 protected: | 125 FX_BOOL m_bFirstLayer; |
| 126 | 126 |
| 127 CFX_ArrayTemplate<struct _PDF_RenderItem> m_ContentList; | 127 void Render(CFX_RenderDevice* pDevice, |
| 128 | 128 const CPDF_PageObject* pStopObj, |
| 129 FX_BOOL m_bFirstLayer; | 129 const CPDF_RenderOptions* pOptions, |
| 130 | 130 const CFX_AffineMatrix* pFinalMatrix); |
| 131 void Render(CFX_RenderDevice* pDevice, const CPDF_Pag
eObject* pStopObj, | 131 friend class CPDF_RenderStatus; |
| 132 const CPDF_RenderOptions* pOptions, const CFX_AffineM
atrix* pFinalMatrix); | 132 friend class CPDF_ProgressiveRenderer; |
| 133 friend class CPDF_RenderStatus; | 133 }; |
| 134 friend class CPDF_ProgressiveRenderer; | 134 |
| 135 }; | 135 class CPDF_ProgressiveRenderer { |
| 136 | 136 public: |
| 137 class CPDF_ProgressiveRenderer | 137 // Must match FDF_RENDER_* definitions in fpdf_progressive.h. |
| 138 { | 138 enum Status { |
| 139 public: | 139 Ready = FPDF_RENDER_READER, |
| 140 // Must match FDF_RENDER_* definitions in fpdf_progressive.h. | 140 ToBeContinued = FPDF_RENDER_TOBECOUNTINUED, |
| 141 enum Status { | 141 Done = FPDF_RENDER_DONE, |
| 142 Ready = FPDF_RENDER_READER, | 142 Failed = FPDF_RENDER_FAILED |
| 143 ToBeContinued = FPDF_RENDER_TOBECOUNTINUED, | 143 }; |
| 144 Done = FPDF_RENDER_DONE, | 144 static int ToFPDFStatus(Status status) { return static_cast<int>(status); } |
| 145 Failed = FPDF_RENDER_FAILED | 145 |
| 146 }; | 146 CPDF_ProgressiveRenderer(CPDF_RenderContext* pContext, |
| 147 static int ToFPDFStatus(Status status) { return static_cast<int>(status); } | 147 CFX_RenderDevice* pDevice, |
| 148 | 148 const CPDF_RenderOptions* pOptions); |
| 149 CPDF_ProgressiveRenderer(CPDF_RenderContext* pContext, | 149 ~CPDF_ProgressiveRenderer(); |
| 150 CFX_RenderDevice* pDevice, | 150 |
| 151 const CPDF_RenderOptions* pOptions); | 151 Status GetStatus() const { return m_Status; } |
| 152 ~CPDF_ProgressiveRenderer(); | 152 void Start(IFX_Pause* pPause); |
| 153 | 153 void Continue(IFX_Pause* pPause); |
| 154 Status GetStatus() const { return m_Status; } | 154 int EstimateProgress(); |
| 155 void Start(IFX_Pause* pPause); | 155 |
| 156 void Continue(IFX_Pause* pPause); | 156 private: |
| 157 int EstimateProgress(); | 157 void RenderStep(); |
| 158 | 158 |
| 159 private: | 159 Status m_Status; |
| 160 void RenderStep(); | 160 CPDF_RenderContext* const m_pContext; |
| 161 | 161 CFX_RenderDevice* const m_pDevice; |
| 162 Status m_Status; | 162 const CPDF_RenderOptions* const m_pOptions; |
| 163 CPDF_RenderContext* const m_pContext; | 163 nonstd::unique_ptr<CPDF_RenderStatus> m_pRenderStatus; |
| 164 CFX_RenderDevice* const m_pDevice; | 164 CFX_FloatRect m_ClipRect; |
| 165 const CPDF_RenderOptions* const m_pOptions; | 165 FX_DWORD m_LayerIndex; |
| 166 nonstd::unique_ptr<CPDF_RenderStatus> m_pRenderStatus; | 166 FX_DWORD m_ObjectIndex; |
| 167 CFX_FloatRect m_ClipRect; | 167 FX_POSITION m_ObjectPos; |
| 168 FX_DWORD m_LayerIndex; | 168 FX_POSITION m_PrevLastPos; |
| 169 FX_DWORD m_ObjectIndex; | 169 }; |
| 170 FX_POSITION m_ObjectPos; | 170 |
| 171 FX_POSITION m_PrevLastPos; | 171 class CPDF_TextRenderer { |
| 172 }; | 172 public: |
| 173 | 173 static void DrawTextString(CFX_RenderDevice* pDevice, |
| 174 class CPDF_TextRenderer | 174 int left, |
| 175 { | 175 int top, |
| 176 public: | 176 CPDF_Font* pFont, |
| 177 | 177 int height, |
| 178 static void DrawTextString(CFX_RenderDevice* pDevice, int left, int
top, | 178 const CFX_ByteString& str, |
| 179 CPDF_Font* pFont, | 179 FX_ARGB argb); |
| 180 int height, | 180 |
| 181 const CFX_ByteString& str, | 181 static void DrawTextString(CFX_RenderDevice* pDevice, |
| 182 FX_ARGB argb); | 182 FX_FLOAT origin_x, |
| 183 | 183 FX_FLOAT origin_y, |
| 184 static void DrawTextString(CFX_RenderDevice* pDevice, FX_FLOAT origi
n_x, FX_FLOAT origin_y, | 184 CPDF_Font* pFont, |
| 185 CPDF_Font* pFont, | 185 FX_FLOAT font_size, |
| 186 FX_FLOAT font_size, | 186 const CFX_AffineMatrix* matrix, |
| 187 const CFX_AffineMatrix* matrix, | 187 const CFX_ByteString& str, |
| 188 const CFX_ByteString& str, | 188 FX_ARGB fill_argb, |
| 189 FX_ARGB fill_argb, | 189 FX_ARGB stroke_argb = 0, |
| 190 FX_ARGB stroke_argb = 0, | 190 const CFX_GraphStateData* pGraphState = NULL, |
| 191 const CFX_GraphStateData* pGraphState = NULL, | 191 const CPDF_RenderOptions* pOptions = NULL); |
| 192 const CPDF_RenderOptions* pOptions = NULL | 192 |
| 193 ); | 193 static FX_BOOL DrawTextPath(CFX_RenderDevice* pDevice, |
| 194 | 194 int nChars, |
| 195 static FX_BOOL DrawTextPath(CFX_RenderDevice* pDevice, int nChars, FX_D
WORD* pCharCodes, FX_FLOAT* pCharPos, | 195 FX_DWORD* pCharCodes, |
| 196 CPDF_Font* pFont, FX_FLOAT font_size, | 196 FX_FLOAT* pCharPos, |
| 197 const CFX_AffineMatrix* pText2User, const CFX_A
ffineMatrix* pUser2Device, | 197 CPDF_Font* pFont, |
| 198 const CFX_GraphStateData* pGraphState, | 198 FX_FLOAT font_size, |
| 199 FX_ARGB fill_argb, FX_ARGB stroke_argb, CFX_Pat
hData* pClippingPath, int nFlag = 0); | 199 const CFX_AffineMatrix* pText2User, |
| 200 | 200 const CFX_AffineMatrix* pUser2Device, |
| 201 static FX_BOOL DrawNormalText(CFX_RenderDevice* pDevice, int nChars, FX
_DWORD* pCharCodes, FX_FLOAT* pCharPos, | 201 const CFX_GraphStateData* pGraphState, |
| 202 CPDF_Font* pFont, FX_FLOAT font_size, const C
FX_AffineMatrix* pText2Device, | 202 FX_ARGB fill_argb, |
| 203 FX_ARGB fill_argb, const CPDF_RenderOptions*
pOptions); | 203 FX_ARGB stroke_argb, |
| 204 | 204 CFX_PathData* pClippingPath, |
| 205 static FX_BOOL DrawType3Text(CFX_RenderDevice* pDevice, int nChars, FX_
DWORD* pCharCodes, FX_FLOAT* pCharPos, | 205 int nFlag = 0); |
| 206 CPDF_Font* pFont, FX_FLOAT font_size, const CF
X_AffineMatrix* pText2Device, | 206 |
| 207 FX_ARGB fill_argb); | 207 static FX_BOOL DrawNormalText(CFX_RenderDevice* pDevice, |
| 208 }; | 208 int nChars, |
| 209 class CPDF_PageRenderCache | 209 FX_DWORD* pCharCodes, |
| 210 { | 210 FX_FLOAT* pCharPos, |
| 211 public: | 211 CPDF_Font* pFont, |
| 212 CPDF_PageRenderCache(CPDF_Page* pPage) | 212 FX_FLOAT font_size, |
| 213 { | 213 const CFX_AffineMatrix* pText2Device, |
| 214 m_pPage = pPage; | 214 FX_ARGB fill_argb, |
| 215 m_nTimeCount = 0; | 215 const CPDF_RenderOptions* pOptions); |
| 216 m_nCacheSize = 0; | 216 |
| 217 m_pCurImageCache = NULL; | 217 static FX_BOOL DrawType3Text(CFX_RenderDevice* pDevice, |
| 218 m_bCurFindCache = FALSE; | 218 int nChars, |
| 219 m_pCurImageCaches = NULL; | 219 FX_DWORD* pCharCodes, |
| 220 } | 220 FX_FLOAT* pCharPos, |
| 221 ~CPDF_PageRenderCache() | 221 CPDF_Font* pFont, |
| 222 { | 222 FX_FLOAT font_size, |
| 223 ClearAll(); | 223 const CFX_AffineMatrix* pText2Device, |
| 224 } | 224 FX_ARGB fill_argb); |
| 225 void ClearAll(); | 225 }; |
| 226 void ClearImageData(); | 226 class CPDF_PageRenderCache { |
| 227 | 227 public: |
| 228 FX_DWORD EstimateSize(); | 228 CPDF_PageRenderCache(CPDF_Page* pPage) { |
| 229 void CacheOptimization(int32_t dwLimitCacheSi
ze); | 229 m_pPage = pPage; |
| 230 FX_DWORD GetCachedSize(CPDF_Stream* pStream) const; | 230 m_nTimeCount = 0; |
| 231 FX_DWORD GetTimeCount() const | 231 m_nCacheSize = 0; |
| 232 { | 232 m_pCurImageCache = NULL; |
| 233 return m_nTimeCount; | 233 m_bCurFindCache = FALSE; |
| 234 } | 234 m_pCurImageCaches = NULL; |
| 235 void SetTimeCount(FX_DWORD dwTimeCount) | 235 } |
| 236 { | 236 ~CPDF_PageRenderCache() { ClearAll(); } |
| 237 m_nTimeCount = dwTimeCount; | 237 void ClearAll(); |
| 238 } | 238 void ClearImageData(); |
| 239 | 239 |
| 240 void GetCachedBitmap(CPDF_Stream* pStream, CF
X_DIBSource*& pBitmap, CFX_DIBSource*& pMask, FX_DWORD& MatteColor, | 240 FX_DWORD EstimateSize(); |
| 241 FX_BOOL bStdCS = FALSE, FX_DWORD GroupFa
mily = 0, FX_BOOL bLoadMask = FALSE, | 241 void CacheOptimization(int32_t dwLimitCacheSize); |
| 242 CPDF_RenderStatus* pRenderStatus = NULL,
int32_t downsampleWidth = 0, int32_t downsampleHeight = 0); | 242 FX_DWORD GetCachedSize(CPDF_Stream* pStream) const; |
| 243 | 243 FX_DWORD GetTimeCount() const { return m_nTimeCount; } |
| 244 void ResetBitmap(CPDF_Stream* pStream, const
CFX_DIBitmap* pBitmap); | 244 void SetTimeCount(FX_DWORD dwTimeCount) { m_nTimeCount = dwTimeCount; } |
| 245 void ClearImageCache(CPDF_Stream* pStream); | 245 |
| 246 CPDF_Page* GetPage() | 246 void GetCachedBitmap(CPDF_Stream* pStream, |
| 247 { | 247 CFX_DIBSource*& pBitmap, |
| 248 return m_pPage; | 248 CFX_DIBSource*& pMask, |
| 249 } | 249 FX_DWORD& MatteColor, |
| 250 CFX_MapPtrToPtr m_ImageCaches; | 250 FX_BOOL bStdCS = FALSE, |
| 251 public: | 251 FX_DWORD GroupFamily = 0, |
| 252 FX_BOOL StartGetCachedBitmap(CPDF_Stream* pStrea
m, FX_BOOL bStdCS = FALSE, FX_DWORD GroupFamily = 0, | 252 FX_BOOL bLoadMask = FALSE, |
| 253 FX_BOOL bLoadMask = FALSE, CPDF_RenderStatus* pRenderStatus = NULL, | 253 CPDF_RenderStatus* pRenderStatus = NULL, |
| 254 int32_t downsampleWidth = 0, int32_t downsampleHeight = 0); | 254 int32_t downsampleWidth = 0, |
| 255 | 255 int32_t downsampleHeight = 0); |
| 256 FX_BOOL Continue(IFX_Pause* pPause); | 256 |
| 257 CPDF_ImageCache* m_pCurImageCache; | 257 void ResetBitmap(CPDF_Stream* pStream, const CFX_DIBitmap* pBitmap); |
| 258 CFX_PtrArray* m_pCurImageCaches; | 258 void ClearImageCache(CPDF_Stream* pStream); |
| 259 protected: | 259 CPDF_Page* GetPage() { return m_pPage; } |
| 260 friend class CPDF_Page; | 260 CFX_MapPtrToPtr m_ImageCaches; |
| 261 CPDF_Page* m_pPage; | 261 |
| 262 | 262 public: |
| 263 FX_DWORD m_nTimeCount; | 263 FX_BOOL StartGetCachedBitmap(CPDF_Stream* pStream, |
| 264 FX_DWORD m_nCacheSize; | 264 FX_BOOL bStdCS = FALSE, |
| 265 FX_BOOL m_bCurFindCache; | 265 FX_DWORD GroupFamily = 0, |
| 266 }; | 266 FX_BOOL bLoadMask = FALSE, |
| 267 class CPDF_RenderConfig | 267 CPDF_RenderStatus* pRenderStatus = NULL, |
| 268 { | 268 int32_t downsampleWidth = 0, |
| 269 public: | 269 int32_t downsampleHeight = 0); |
| 270 CPDF_RenderConfig(); | 270 |
| 271 ~CPDF_RenderConfig(); | 271 FX_BOOL Continue(IFX_Pause* pPause); |
| 272 int m_HalftoneLimit; | 272 CPDF_ImageCache* m_pCurImageCache; |
| 273 int m_RenderStepLimit; | 273 CFX_PtrArray* m_pCurImageCaches; |
| 274 |
| 275 protected: |
| 276 friend class CPDF_Page; |
| 277 CPDF_Page* m_pPage; |
| 278 |
| 279 FX_DWORD m_nTimeCount; |
| 280 FX_DWORD m_nCacheSize; |
| 281 FX_BOOL m_bCurFindCache; |
| 282 }; |
| 283 class CPDF_RenderConfig { |
| 284 public: |
| 285 CPDF_RenderConfig(); |
| 286 ~CPDF_RenderConfig(); |
| 287 int m_HalftoneLimit; |
| 288 int m_RenderStepLimit; |
| 274 }; | 289 }; |
| 275 | 290 |
| 276 #endif // CORE_INCLUDE_FPDFAPI_FPDF_RENDER_H_ | 291 #endif // CORE_INCLUDE_FPDFAPI_FPDF_RENDER_H_ |
| OLD | NEW |