| 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/reflow/reflowengine.h" | 7 #include "../../include/reflow/reflowengine.h" |
| 8 #include "reflowedpage.h" | 8 #include "reflowedpage.h" |
| 9 CPDF_ProgressiveReflowPageParser::CPDF_ProgressiveReflowPageParser() | 9 CPDF_ProgressiveReflowPageParser::CPDF_ProgressiveReflowPageParser() |
| 10 { | 10 { |
| (...skipping 18 matching lines...) Expand all Loading... |
| 29 } | 29 } |
| 30 CPDF_ReflowedPage::CPDF_ReflowedPage(CFX_GrowOnlyPool* pMemoryPool) | 30 CPDF_ReflowedPage::CPDF_ReflowedPage(CFX_GrowOnlyPool* pMemoryPool) |
| 31 { | 31 { |
| 32 m_PageWidth = 0; | 32 m_PageWidth = 0; |
| 33 m_PageHeight = 0; | 33 m_PageHeight = 0; |
| 34 m_bWaiting = TRUE; | 34 m_bWaiting = TRUE; |
| 35 if(pMemoryPool) { | 35 if(pMemoryPool) { |
| 36 m_pMemoryPool = pMemoryPool; | 36 m_pMemoryPool = pMemoryPool; |
| 37 m_bCreateMemoryPool = FALSE; | 37 m_bCreateMemoryPool = FALSE; |
| 38 } else { | 38 } else { |
| 39 m_pMemoryPool = FX_NEW CFX_GrowOnlyPool; | 39 m_pMemoryPool = new CFX_GrowOnlyPool; |
| 40 m_bCreateMemoryPool = TRUE; | 40 m_bCreateMemoryPool = TRUE; |
| 41 } | 41 } |
| 42 m_pCharState = FX_NEW CRF_CharStateArray(10); | 42 m_pCharState = new CRF_CharStateArray(10); |
| 43 m_pReflowed = FX_NEW CRF_DataPtrArray(500); | 43 m_pReflowed = new CRF_DataPtrArray(500); |
| 44 m_pPageInfos = NULL; | 44 m_pPageInfos = NULL; |
| 45 } | 45 } |
| 46 CPDF_ReflowedPage::~CPDF_ReflowedPage() | 46 CPDF_ReflowedPage::~CPDF_ReflowedPage() |
| 47 { | 47 { |
| 48 if (m_pReflowed) { | 48 if (m_pReflowed) { |
| 49 for(int i = 0; i < m_pReflowed->GetSize(); i++) { | 49 for(int i = 0; i < m_pReflowed->GetSize(); i++) { |
| 50 CRF_Data* pData = (*m_pReflowed)[i]; | 50 CRF_Data* pData = (*m_pReflowed)[i]; |
| 51 if(pData->m_Type == CRF_Data::Image) { | 51 if(pData->m_Type == CRF_Data::Image) { |
| 52 delete ((CRF_ImageData*)pData)->m_pBitmap; | 52 delete ((CRF_ImageData*)pData)->m_pBitmap; |
| 53 } | 53 } |
| (...skipping 18 matching lines...) Expand all Loading... |
| 72 if (m_pPageInfos) { | 72 if (m_pPageInfos) { |
| 73 ReleasePageObjsMemberShip(); | 73 ReleasePageObjsMemberShip(); |
| 74 } | 74 } |
| 75 } | 75 } |
| 76 FX_BOOL CPDF_ReflowedPage::RetainPageObjsMemberShip() | 76 FX_BOOL CPDF_ReflowedPage::RetainPageObjsMemberShip() |
| 77 { | 77 { |
| 78 if (NULL == m_pPDFPage) { | 78 if (NULL == m_pPDFPage) { |
| 79 return FALSE; | 79 return FALSE; |
| 80 } | 80 } |
| 81 if (NULL == m_pPageInfos) { | 81 if (NULL == m_pPageInfos) { |
| 82 m_pPageInfos = FX_NEW CFX_MapPtrToPtr(); | 82 m_pPageInfos = new CFX_MapPtrToPtr(); |
| 83 } else { | 83 } else { |
| 84 return TRUE; | 84 return TRUE; |
| 85 } | 85 } |
| 86 FX_POSITION pos = m_pPDFPage->GetFirstObjectPosition(); | 86 FX_POSITION pos = m_pPDFPage->GetFirstObjectPosition(); |
| 87 if (!pos) { | 87 if (!pos) { |
| 88 return FALSE; | 88 return FALSE; |
| 89 } | 89 } |
| 90 CPDF_PageObject* pPageObj = NULL; | 90 CPDF_PageObject* pPageObj = NULL; |
| 91 while (pos) { | 91 while (pos) { |
| 92 pPageObj = m_pPDFPage->GetNextObject(pos); | 92 pPageObj = m_pPDFPage->GetNextObject(pos); |
| 93 MarkPageObjMemberShip(pPageObj, NULL); | 93 MarkPageObjMemberShip(pPageObj, NULL); |
| 94 pPageObj = NULL; | 94 pPageObj = NULL; |
| 95 } | 95 } |
| 96 return TRUE; | 96 return TRUE; |
| 97 } | 97 } |
| 98 void CPDF_ReflowedPage::MarkPageObjMemberShip(CPDF_PageObject* pObj, CRF_PageInf
o* pParent) | 98 void CPDF_ReflowedPage::MarkPageObjMemberShip(CPDF_PageObject* pObj, CRF_PageInf
o* pParent) |
| 99 { | 99 { |
| 100 if (NULL == m_pPageInfos) { | 100 if (NULL == m_pPageInfos) { |
| 101 return; | 101 return; |
| 102 } | 102 } |
| 103 CRF_PageInfo* pPageInfo = FX_NEW CRF_PageInfo(pObj, pParent); | 103 CRF_PageInfo* pPageInfo = new CRF_PageInfo(pObj, pParent); |
| 104 if (NULL == pPageInfo) { | |
| 105 return; | |
| 106 } | |
| 107 m_pPageInfos->SetAt(pObj, pPageInfo); | 104 m_pPageInfos->SetAt(pObj, pPageInfo); |
| 108 if (PDFPAGE_FORM != pObj->m_Type) { | 105 if (PDFPAGE_FORM != pObj->m_Type) { |
| 109 return; | 106 return; |
| 110 } | 107 } |
| 111 CPDF_FormObject* pFormObj = (CPDF_FormObject*)pObj; | 108 CPDF_FormObject* pFormObj = (CPDF_FormObject*)pObj; |
| 112 FX_POSITION pos; | 109 FX_POSITION pos; |
| 113 pos = pFormObj->m_pForm->GetFirstObjectPosition(); | 110 pos = pFormObj->m_pForm->GetFirstObjectPosition(); |
| 114 if (!pos) { | 111 if (!pos) { |
| 115 return; | 112 return; |
| 116 } | 113 } |
| (...skipping 469 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 586 if(!pReflowPage || !pDevice || !pMatrix) { | 583 if(!pReflowPage || !pDevice || !pMatrix) { |
| 587 m_Status = Failed; | 584 m_Status = Failed; |
| 588 return; | 585 return; |
| 589 } | 586 } |
| 590 m_DitherBits = DitherBits; | 587 m_DitherBits = DitherBits; |
| 591 m_Status = Ready; | 588 m_Status = Ready; |
| 592 m_CurrNum = 0; | 589 m_CurrNum = 0; |
| 593 m_pReflowPage = (CPDF_ReflowedPage*)pReflowPage; | 590 m_pReflowPage = (CPDF_ReflowedPage*)pReflowPage; |
| 594 m_pFXDevice = pDevice; | 591 m_pFXDevice = pDevice; |
| 595 if(NULL == m_pDisplayMatrix) { | 592 if(NULL == m_pDisplayMatrix) { |
| 596 m_pDisplayMatrix = FX_NEW CFX_AffineMatrix; | 593 m_pDisplayMatrix = new CFX_AffineMatrix; |
| 597 } | 594 } |
| 598 if (m_pDisplayMatrix) { | 595 m_pDisplayMatrix->Copy(*pMatrix); |
| 599 m_pDisplayMatrix->Copy(*pMatrix); | |
| 600 } | |
| 601 m_Status = ToBeContinued; | 596 m_Status = ToBeContinued; |
| 602 Display(pPause); | 597 Display(pPause); |
| 603 } | 598 } |
| 604 void CPDF_ProgressiveReflowPageRender::Continue(IFX_Pause* pPause) | 599 void CPDF_ProgressiveReflowPageRender::Continue(IFX_Pause* pPause) |
| 605 { | 600 { |
| 606 Display(pPause); | 601 Display(pPause); |
| 607 } | 602 } |
| 608 void CPDF_ProgressiveReflowPageRender::SetDisplayColor(FX_COLORREF color) | 603 void CPDF_ProgressiveReflowPageRender::SetDisplayColor(FX_COLORREF color) |
| 609 { | 604 { |
| 610 m_DisplayColor = color; | 605 m_DisplayColor = color; |
| 611 } | 606 } |
| 612 void CPDF_ProgressiveReflowPageRender::Clear() | 607 void CPDF_ProgressiveReflowPageRender::Clear() |
| 613 { | 608 { |
| 614 if (m_pDisplayMatrix) { | 609 if (m_pDisplayMatrix) { |
| 615 delete m_pDisplayMatrix; | 610 delete m_pDisplayMatrix; |
| 616 } | 611 } |
| 617 m_pDisplayMatrix = NULL; | 612 m_pDisplayMatrix = NULL; |
| 618 m_pReflowPage = NULL; | 613 m_pReflowPage = NULL; |
| 619 m_pFXDevice = NULL; | 614 m_pFXDevice = NULL; |
| 620 m_CurrNum = 0; | 615 m_CurrNum = 0; |
| 621 m_Status = Ready; | 616 m_Status = Ready; |
| 622 } | 617 } |
| OLD | NEW |