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 #include "../../../include/fpdfapi/fpdf_module.h" | 7 #include "../../../include/fpdfapi/fpdf_module.h" |
8 #include "../../../include/fpdfapi/fpdf_pageobj.h" | 8 #include "../../../include/fpdfapi/fpdf_pageobj.h" |
9 #include "../../../include/fpdfapi/fpdf_render.h" | 9 #include "../../../include/fpdfapi/fpdf_render.h" |
10 #include "../../../include/fxcodec/fx_codec.h" | 10 #include "../../../include/fxcodec/fx_codec.h" |
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
290 m_LoadHandle = NULL; | 290 m_LoadHandle = NULL; |
291 m_pClone = NULL; | 291 m_pClone = NULL; |
292 m_bStdCS = FALSE; | 292 m_bStdCS = FALSE; |
293 m_bPatternColor = FALSE; | 293 m_bPatternColor = FALSE; |
294 m_BlendType = FXDIB_BLEND_NORMAL; | 294 m_BlendType = FXDIB_BLEND_NORMAL; |
295 m_pPattern = NULL; | 295 m_pPattern = NULL; |
296 m_pObj2Device = NULL; | 296 m_pObj2Device = NULL; |
297 } | 297 } |
298 CPDF_ImageRenderer::~CPDF_ImageRenderer() | 298 CPDF_ImageRenderer::~CPDF_ImageRenderer() |
299 { | 299 { |
300 if (m_pQuickStretcher) { | 300 delete m_pQuickStretcher; |
301 delete m_pQuickStretcher; | 301 delete m_pTransformer; |
302 } | |
303 if (m_pTransformer) { | |
304 delete m_pTransformer; | |
305 } | |
306 if (m_DeviceHandle) { | 302 if (m_DeviceHandle) { |
307 m_pRenderStatus->m_pDevice->CancelDIBits(m_DeviceHandle); | 303 m_pRenderStatus->m_pDevice->CancelDIBits(m_DeviceHandle); |
308 } | 304 } |
309 if (m_LoadHandle) { | 305 delete (CPDF_ProgressiveImageLoaderHandle*)m_LoadHandle; |
310 delete (CPDF_ProgressiveImageLoaderHandle*)m_LoadHandle; | 306 delete m_pClone; |
311 } | |
312 if (m_pClone) { | |
313 delete m_pClone; | |
314 } | |
315 } | 307 } |
316 FX_BOOL CPDF_ImageRenderer::StartLoadDIBSource() | 308 FX_BOOL CPDF_ImageRenderer::StartLoadDIBSource() |
317 { | 309 { |
318 CFX_FloatRect image_rect_f = m_ImageMatrix.GetUnitRect(); | 310 CFX_FloatRect image_rect_f = m_ImageMatrix.GetUnitRect(); |
319 FX_RECT image_rect = image_rect_f.GetOutterRect(); | 311 FX_RECT image_rect = image_rect_f.GetOutterRect(); |
320 int dest_width = image_rect.Width(); | 312 int dest_width = image_rect.Width(); |
321 int dest_height = image_rect.Height(); | 313 int dest_height = image_rect.Height(); |
322 if (m_ImageMatrix.a < 0) { | 314 if (m_ImageMatrix.a < 0) { |
323 dest_width = -dest_width; | 315 dest_width = -dest_width; |
324 } | 316 } |
(...skipping 481 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
806 return FALSE; | 798 return FALSE; |
807 } | 799 } |
808 CPDF_QuickStretcher::CPDF_QuickStretcher() | 800 CPDF_QuickStretcher::CPDF_QuickStretcher() |
809 { | 801 { |
810 m_pBitmap = NULL; | 802 m_pBitmap = NULL; |
811 m_pDecoder = NULL; | 803 m_pDecoder = NULL; |
812 m_pCS = NULL; | 804 m_pCS = NULL; |
813 } | 805 } |
814 CPDF_QuickStretcher::~CPDF_QuickStretcher() | 806 CPDF_QuickStretcher::~CPDF_QuickStretcher() |
815 { | 807 { |
816 if (m_pBitmap) { | 808 delete m_pBitmap; |
817 delete m_pBitmap; | |
818 } | |
819 if (m_pCS) { | 809 if (m_pCS) { |
820 m_pCS->ReleaseCS(); | 810 m_pCS->ReleaseCS(); |
821 } | 811 } |
822 if (m_pDecoder) { | 812 delete m_pDecoder; |
823 delete m_pDecoder; | |
824 } | |
825 } | 813 } |
826 ICodec_ScanlineDecoder* FPDFAPI_CreateFlateDecoder(const uint8_t* src_buf, FX_DW
ORD src_size, int width, int height, | 814 ICodec_ScanlineDecoder* FPDFAPI_CreateFlateDecoder(const uint8_t* src_buf, FX_DW
ORD src_size, int width, int height, |
827 int nComps, int bpc, const CPDF_Dictionary* pParams); | 815 int nComps, int bpc, const CPDF_Dictionary* pParams); |
828 FX_BOOL CPDF_QuickStretcher::Start(CPDF_ImageObject* pImageObj, CFX_AffineMatrix
* pImage2Device, const FX_RECT* pClipBox) | 816 FX_BOOL CPDF_QuickStretcher::Start(CPDF_ImageObject* pImageObj, CFX_AffineMatrix
* pImage2Device, const FX_RECT* pClipBox) |
829 { | 817 { |
830 if (FXSYS_fabs(pImage2Device->a) < FXSYS_fabs(pImage2Device->b) * 10 && FXSY
S_fabs(pImage2Device->d) < FXSYS_fabs(pImage2Device->c) * 10) { | 818 if (FXSYS_fabs(pImage2Device->a) < FXSYS_fabs(pImage2Device->b) * 10 && FXSY
S_fabs(pImage2Device->d) < FXSYS_fabs(pImage2Device->c) * 10) { |
831 return FALSE; | 819 return FALSE; |
832 } | 820 } |
833 CFX_FloatRect image_rect_f = pImage2Device->GetUnitRect(); | 821 CFX_FloatRect image_rect_f = pImage2Device->GetUnitRect(); |
834 FX_RECT image_rect = image_rect_f.GetOutterRect(); | 822 FX_RECT image_rect = image_rect_f.GetOutterRect(); |
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1078 } | 1066 } |
1079 } | 1067 } |
1080 } else if (pFunc) { | 1068 } else if (pFunc) { |
1081 int size = dest_pitch * height; | 1069 int size = dest_pitch * height; |
1082 for (int i = 0; i < size; i ++) { | 1070 for (int i = 0; i < size; i ++) { |
1083 dest_buf[i] = pTransfer[src_buf[i]]; | 1071 dest_buf[i] = pTransfer[src_buf[i]]; |
1084 } | 1072 } |
1085 } else { | 1073 } else { |
1086 FXSYS_memcpy(dest_buf, src_buf, dest_pitch * height); | 1074 FXSYS_memcpy(dest_buf, src_buf, dest_pitch * height); |
1087 } | 1075 } |
1088 if (pFunc) { | 1076 delete pFunc; |
1089 delete pFunc; | |
1090 } | |
1091 FX_Free(pTransfer); | 1077 FX_Free(pTransfer); |
1092 return pMask; | 1078 return pMask; |
1093 } | 1079 } |
OLD | NEW |