| 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 "public/fpdfview.h" | 7 #include "public/fpdfview.h" |
| 8 | 8 |
| 9 #include <memory> | 9 #include <memory> |
| 10 #include <utility> |
| 10 | 11 |
| 11 #include "core/fpdfapi/fpdf_page/include/cpdf_page.h" | 12 #include "core/fpdfapi/fpdf_page/include/cpdf_page.h" |
| 12 #include "core/fpdfapi/fpdf_parser/include/cpdf_array.h" | 13 #include "core/fpdfapi/fpdf_parser/include/cpdf_array.h" |
| 13 #include "core/fpdfapi/fpdf_parser/include/cpdf_document.h" | 14 #include "core/fpdfapi/fpdf_parser/include/cpdf_document.h" |
| 14 #include "core/fpdfapi/fpdf_parser/include/fpdf_parser_decode.h" | 15 #include "core/fpdfapi/fpdf_parser/include/fpdf_parser_decode.h" |
| 15 #include "core/fpdfapi/fpdf_render/include/cpdf_progressiverenderer.h" | 16 #include "core/fpdfapi/fpdf_render/include/cpdf_progressiverenderer.h" |
| 16 #include "core/fpdfapi/fpdf_render/include/cpdf_renderoptions.h" | 17 #include "core/fpdfapi/fpdf_render/include/cpdf_renderoptions.h" |
| 17 #include "core/fpdfapi/include/cpdf_modulemgr.h" | 18 #include "core/fpdfapi/include/cpdf_modulemgr.h" |
| 18 #include "core/fpdfapi/include/cpdf_pagerendercontext.h" | 19 #include "core/fpdfapi/include/cpdf_pagerendercontext.h" |
| 19 #include "core/fpdfdoc/include/cpdf_annotlist.h" | 20 #include "core/fpdfdoc/include/cpdf_annotlist.h" |
| (...skipping 818 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 838 int size_y, | 839 int size_y, |
| 839 int rotate, | 840 int rotate, |
| 840 int flags, | 841 int flags, |
| 841 FX_BOOL bNeedToRestore, | 842 FX_BOOL bNeedToRestore, |
| 842 IFSDK_PAUSE_Adapter* pause) { | 843 IFSDK_PAUSE_Adapter* pause) { |
| 843 CPDF_Page* pPage = CPDFPageFromFPDFPage(page); | 844 CPDF_Page* pPage = CPDFPageFromFPDFPage(page); |
| 844 if (!pPage) | 845 if (!pPage) |
| 845 return; | 846 return; |
| 846 | 847 |
| 847 if (!pContext->m_pOptions) | 848 if (!pContext->m_pOptions) |
| 848 pContext->m_pOptions.reset(new CPDF_RenderOptions); | 849 pContext->m_pOptions = WrapUnique(new CPDF_RenderOptions); |
| 849 | 850 |
| 850 if (flags & FPDF_LCD_TEXT) | 851 if (flags & FPDF_LCD_TEXT) |
| 851 pContext->m_pOptions->m_Flags |= RENDER_CLEARTYPE; | 852 pContext->m_pOptions->m_Flags |= RENDER_CLEARTYPE; |
| 852 else | 853 else |
| 853 pContext->m_pOptions->m_Flags &= ~RENDER_CLEARTYPE; | 854 pContext->m_pOptions->m_Flags &= ~RENDER_CLEARTYPE; |
| 854 if (flags & FPDF_NO_NATIVETEXT) | 855 if (flags & FPDF_NO_NATIVETEXT) |
| 855 pContext->m_pOptions->m_Flags |= RENDER_NO_NATIVETEXT; | 856 pContext->m_pOptions->m_Flags |= RENDER_NO_NATIVETEXT; |
| 856 if (flags & FPDF_RENDER_LIMITEDIMAGECACHE) | 857 if (flags & FPDF_RENDER_LIMITEDIMAGECACHE) |
| 857 pContext->m_pOptions->m_Flags |= RENDER_LIMITEDIMAGECACHE; | 858 pContext->m_pOptions->m_Flags |= RENDER_LIMITEDIMAGECACHE; |
| 858 if (flags & FPDF_RENDER_FORCEHALFTONE) | 859 if (flags & FPDF_RENDER_FORCEHALFTONE) |
| (...skipping 18 matching lines...) Expand all Loading... |
| 877 pContext->m_pOptions->m_pOCContext = | 878 pContext->m_pOptions->m_pOCContext = |
| 878 new CPDF_OCContext(pPage->m_pDocument, usage); | 879 new CPDF_OCContext(pPage->m_pDocument, usage); |
| 879 | 880 |
| 880 CFX_Matrix matrix; | 881 CFX_Matrix matrix; |
| 881 pPage->GetDisplayMatrix(matrix, start_x, start_y, size_x, size_y, rotate); | 882 pPage->GetDisplayMatrix(matrix, start_x, start_y, size_x, size_y, rotate); |
| 882 | 883 |
| 883 pContext->m_pDevice->SaveState(); | 884 pContext->m_pDevice->SaveState(); |
| 884 pContext->m_pDevice->SetClip_Rect( | 885 pContext->m_pDevice->SetClip_Rect( |
| 885 FX_RECT(start_x, start_y, start_x + size_x, start_y + size_y)); | 886 FX_RECT(start_x, start_y, start_x + size_x, start_y + size_y)); |
| 886 | 887 |
| 887 pContext->m_pContext.reset(new CPDF_RenderContext(pPage)); | 888 pContext->m_pContext = WrapUnique(new CPDF_RenderContext(pPage)); |
| 888 pContext->m_pContext->AppendLayer(pPage, &matrix); | 889 pContext->m_pContext->AppendLayer(pPage, &matrix); |
| 889 | 890 |
| 890 if (flags & FPDF_ANNOT) { | 891 if (flags & FPDF_ANNOT) { |
| 891 pContext->m_pAnnots.reset(new CPDF_AnnotList(pPage)); | 892 pContext->m_pAnnots = WrapUnique(new CPDF_AnnotList(pPage)); |
| 892 FX_BOOL bPrinting = pContext->m_pDevice->GetDeviceClass() != FXDC_DISPLAY; | 893 FX_BOOL bPrinting = pContext->m_pDevice->GetDeviceClass() != FXDC_DISPLAY; |
| 893 pContext->m_pAnnots->DisplayAnnots(pPage, pContext->m_pContext.get(), | 894 pContext->m_pAnnots->DisplayAnnots(pPage, pContext->m_pContext.get(), |
| 894 bPrinting, &matrix, FALSE, nullptr); | 895 bPrinting, &matrix, FALSE, nullptr); |
| 895 } | 896 } |
| 896 | 897 |
| 897 pContext->m_pRenderer.reset(new CPDF_ProgressiveRenderer( | 898 pContext->m_pRenderer = WrapUnique(new CPDF_ProgressiveRenderer( |
| 898 pContext->m_pContext.get(), pContext->m_pDevice.get(), | 899 pContext->m_pContext.get(), pContext->m_pDevice.get(), |
| 899 pContext->m_pOptions.get())); | 900 pContext->m_pOptions.get())); |
| 900 pContext->m_pRenderer->Start(pause); | 901 pContext->m_pRenderer->Start(pause); |
| 901 if (bNeedToRestore) | 902 if (bNeedToRestore) |
| 902 pContext->m_pDevice->RestoreState(false); | 903 pContext->m_pDevice->RestoreState(false); |
| 903 } | 904 } |
| 904 | 905 |
| 905 DLLEXPORT int STDCALL FPDF_GetPageSizeByIndex(FPDF_DOCUMENT document, | 906 DLLEXPORT int STDCALL FPDF_GetPageSizeByIndex(FPDF_DOCUMENT document, |
| 906 int page_index, | 907 int page_index, |
| 907 double* width, | 908 double* width, |
| (...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1123 if (!buffer) { | 1124 if (!buffer) { |
| 1124 *buflen = len; | 1125 *buflen = len; |
| 1125 } else if (*buflen >= len) { | 1126 } else if (*buflen >= len) { |
| 1126 memcpy(buffer, utf16Name.c_str(), len); | 1127 memcpy(buffer, utf16Name.c_str(), len); |
| 1127 *buflen = len; | 1128 *buflen = len; |
| 1128 } else { | 1129 } else { |
| 1129 *buflen = -1; | 1130 *buflen = -1; |
| 1130 } | 1131 } |
| 1131 return (FPDF_DEST)pDestObj; | 1132 return (FPDF_DEST)pDestObj; |
| 1132 } | 1133 } |
| OLD | NEW |