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

Side by Side Diff: fpdfsdk/src/fpdfview.cpp

Issue 1411623002: Merge to XFA: Introduce CPDFPageFromFPFDPage() (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@xfa
Patch Set: Stray file. Created 5 years, 2 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
« no previous file with comments | « fpdfsdk/src/fpdfformfill.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "../../core/include/fpdfapi/fpdf_module.h" 7 #include "../../core/include/fpdfapi/fpdf_module.h"
8 #include "../../core/include/fxcodec/fx_codec.h" 8 #include "../../core/include/fxcodec/fx_codec.h"
9 #include "../../core/include/fxcrt/fx_safe_types.h" 9 #include "../../core/include/fxcrt/fx_safe_types.h"
10 #include "../../public/fpdf_ext.h" 10 #include "../../public/fpdf_ext.h"
11 #include "../../public/fpdf_formfill.h" 11 #include "../../public/fpdf_formfill.h"
12 #include "../../public/fpdf_progressive.h" 12 #include "../../public/fpdf_progressive.h"
13 #include "../../public/fpdfview.h" 13 #include "../../public/fpdfview.h"
14 #include "../../third_party/base/nonstd_unique_ptr.h" 14 #include "../../third_party/base/nonstd_unique_ptr.h"
15 #include "../../third_party/base/numerics/safe_conversions_impl.h" 15 #include "../../third_party/base/numerics/safe_conversions_impl.h"
16 #include "../include/fsdk_define.h" 16 #include "../include/fsdk_define.h"
17 #include "../include/fsdk_mgr.h" 17 #include "../include/fsdk_mgr.h"
18 #include "../include/fsdk_rendercontext.h" 18 #include "../include/fsdk_rendercontext.h"
19 #include "../include/fpdfxfa/fpdfxfa_doc.h" 19 #include "../include/fpdfxfa/fpdfxfa_doc.h"
20 #include "../include/fpdfxfa/fpdfxfa_app.h" 20 #include "../include/fpdfxfa/fpdfxfa_app.h"
21 #include "../include/fpdfxfa/fpdfxfa_page.h" 21 #include "../include/fpdfxfa/fpdfxfa_page.h"
22 #include "../include/fpdfxfa/fpdfxfa_util.h" 22 #include "../include/fpdfxfa/fpdfxfa_util.h"
23 #include "../include/javascript/IJavaScript.h" 23 #include "../include/javascript/IJavaScript.h"
24 24
25 CPDF_Document* CPDFDocumentFromFPDFDocument(FPDF_DOCUMENT doc) { 25 CPDF_Document* CPDFDocumentFromFPDFDocument(FPDF_DOCUMENT doc) {
26 return doc ? static_cast<CPDFXFA_Document*>(doc)->GetPDFDoc() : nullptr; 26 return doc ? static_cast<CPDFXFA_Document*>(doc)->GetPDFDoc() : nullptr;
27 } 27 }
28 28
29 CPDF_Page* CPDFPageFromFPDFPage(FPDF_PAGE page) {
30 return page ? static_cast<CPDFXFA_Page*>(page)->GetPDFPage() : nullptr;
31 }
32
29 CFPDF_FileStream::CFPDF_FileStream(FPDF_FILEHANDLER* pFS) { 33 CFPDF_FileStream::CFPDF_FileStream(FPDF_FILEHANDLER* pFS) {
30 m_pFS = pFS; 34 m_pFS = pFS;
31 m_nCurPos = 0; 35 m_nCurPos = 0;
32 } 36 }
33 37
34 IFX_FileStream* CFPDF_FileStream::Retain() { 38 IFX_FileStream* CFPDF_FileStream::Retain() {
35 return this; 39 return this;
36 } 40 }
37 41
38 void CFPDF_FileStream::Release() { 42 void CFPDF_FileStream::Release() {
(...skipping 390 matching lines...) Expand 10 before | Expand all | Expand 10 after
429 if (page_index < 0 || page_index >= FPDF_GetPageCount(document)) 433 if (page_index < 0 || page_index >= FPDF_GetPageCount(document))
430 return nullptr; 434 return nullptr;
431 435
432 return pDoc->GetPage(page_index); 436 return pDoc->GetPage(page_index);
433 } 437 }
434 438
435 DLLEXPORT double STDCALL FPDF_GetPageWidth(FPDF_PAGE page) { 439 DLLEXPORT double STDCALL FPDF_GetPageWidth(FPDF_PAGE page) {
436 if (!page) 440 if (!page)
437 return 0.0; 441 return 0.0;
438 return ((CPDFXFA_Page*)page)->GetPageWidth(); 442 return ((CPDFXFA_Page*)page)->GetPageWidth();
439 // return ((CPDF_Page*)page)->GetPageWidth();
440 } 443 }
441 444
442 DLLEXPORT double STDCALL FPDF_GetPageHeight(FPDF_PAGE page) { 445 DLLEXPORT double STDCALL FPDF_GetPageHeight(FPDF_PAGE page) {
443 if (!page) 446 if (!page)
444 return 0.0; 447 return 0.0;
445 // return ((CPDF_Page*)page)->GetPageHeight();
446 return ((CPDFXFA_Page*)page)->GetPageHeight(); 448 return ((CPDFXFA_Page*)page)->GetPageHeight();
447 } 449 }
448 450
449 void DropContext(void* data) { 451 void DropContext(void* data) {
450 delete (CRenderContext*)data; 452 delete (CRenderContext*)data;
451 } 453 }
452 454
453 #if defined(_DEBUG) || defined(DEBUG) 455 #if defined(_DEBUG) || defined(DEBUG)
454 #define DEBUG_TRACE 456 #define DEBUG_TRACE
455 #endif 457 #endif
456 458
457 #if defined(_WIN32) 459 #if defined(_WIN32)
458 DLLEXPORT void STDCALL FPDF_RenderPage(HDC dc, 460 DLLEXPORT void STDCALL FPDF_RenderPage(HDC dc,
459 FPDF_PAGE page, 461 FPDF_PAGE page,
460 int start_x, 462 int start_x,
461 int start_y, 463 int start_y,
462 int size_x, 464 int size_x,
463 int size_y, 465 int size_y,
464 int rotate, 466 int rotate,
465 int flags) { 467 int flags) {
466 if (page == NULL) 468 CPDF_Page* pPage = CPDFPageFromFPDFPage(page);
467 return;
468 CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
469 if (!pPage) 469 if (!pPage)
470 return; 470 return;
471 471
472 CRenderContext* pContext = new CRenderContext; 472 CRenderContext* pContext = new CRenderContext;
473 pPage->SetPrivateData((void*)1, pContext, DropContext); 473 pPage->SetPrivateData((void*)1, pContext, DropContext);
474 474
475 #ifndef _WIN32_WCE 475 #ifndef _WIN32_WCE
476 CFX_DIBitmap* pBitmap = NULL; 476 CFX_DIBitmap* pBitmap = NULL;
477 FX_BOOL bBackgroundAlphaNeeded = FALSE; 477 FX_BOOL bBackgroundAlphaNeeded = FALSE;
478 bBackgroundAlphaNeeded = pPage->BackgroundAlphaNeeded(); 478 bBackgroundAlphaNeeded = pPage->BackgroundAlphaNeeded();
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
618 #endif 618 #endif
619 619
620 DLLEXPORT void STDCALL FPDF_RenderPageBitmap(FPDF_BITMAP bitmap, 620 DLLEXPORT void STDCALL FPDF_RenderPageBitmap(FPDF_BITMAP bitmap,
621 FPDF_PAGE page, 621 FPDF_PAGE page,
622 int start_x, 622 int start_x,
623 int start_y, 623 int start_y,
624 int size_x, 624 int size_x,
625 int size_y, 625 int size_y,
626 int rotate, 626 int rotate,
627 int flags) { 627 int flags) {
628 if (bitmap == NULL || page == NULL) 628 if (!bitmap)
629 return; 629 return;
630 CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage(); 630 CPDF_Page* pPage = CPDFPageFromFPDFPage(page);
631 if (!pPage) 631 if (!pPage)
632 return; 632 return;
633
634 CRenderContext* pContext = new CRenderContext; 633 CRenderContext* pContext = new CRenderContext;
635 pPage->SetPrivateData((void*)1, pContext, DropContext); 634 pPage->SetPrivateData((void*)1, pContext, DropContext);
636 #ifdef _SKIA_SUPPORT_ 635 #ifdef _SKIA_SUPPORT_
637 pContext->m_pDevice = new CFX_SkiaDevice; 636 pContext->m_pDevice = new CFX_SkiaDevice;
638 637
639 if (flags & FPDF_REVERSE_BYTE_ORDER) 638 if (flags & FPDF_REVERSE_BYTE_ORDER)
640 ((CFX_SkiaDevice*)pContext->m_pDevice) 639 ((CFX_SkiaDevice*)pContext->m_pDevice)
641 ->Attach((CFX_DIBitmap*)bitmap, 0, TRUE); 640 ->Attach((CFX_DIBitmap*)bitmap, 0, TRUE);
642 else 641 else
643 ((CFX_SkiaDevice*)pContext->m_pDevice)->Attach((CFX_DIBitmap*)bitmap); 642 ((CFX_SkiaDevice*)pContext->m_pDevice)->Attach((CFX_DIBitmap*)bitmap);
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
695 DLLEXPORT void STDCALL FPDF_PageToDevice(FPDF_PAGE page, 694 DLLEXPORT void STDCALL FPDF_PageToDevice(FPDF_PAGE page,
696 int start_x, 695 int start_x,
697 int start_y, 696 int start_y,
698 int size_x, 697 int size_x,
699 int size_y, 698 int size_y,
700 int rotate, 699 int rotate,
701 double page_x, 700 double page_x,
702 double page_y, 701 double page_y,
703 int* device_x, 702 int* device_x,
704 int* device_y) { 703 int* device_y) {
705 if (page == NULL || device_x == NULL || device_y == NULL) 704 if (!device_x || !device_y)
706 return; 705 return;
707 CPDFXFA_Page* pPage = (CPDFXFA_Page*)page; 706 CPDFXFA_Page* pPage = (CPDFXFA_Page*)page;
707 if (!pPage)
708 return;
708 pPage->PageToDevice(start_x, start_y, size_x, size_y, rotate, page_x, page_y, 709 pPage->PageToDevice(start_x, start_y, size_x, size_y, rotate, page_x, page_y,
709 device_x, device_y); 710 device_x, device_y);
710 } 711 }
711 712
712 DLLEXPORT FPDF_BITMAP STDCALL FPDFBitmap_Create(int width, 713 DLLEXPORT FPDF_BITMAP STDCALL FPDFBitmap_Create(int width,
713 int height, 714 int height,
714 int alpha) { 715 int alpha) {
715 nonstd::unique_ptr<CFX_DIBitmap> pBitmap(new CFX_DIBitmap); 716 nonstd::unique_ptr<CFX_DIBitmap> pBitmap(new CFX_DIBitmap);
716 if (!pBitmap->Create(width, height, alpha ? FXDIB_Argb : FXDIB_Rgb32)) { 717 if (!pBitmap->Create(width, height, alpha ? FXDIB_Argb : FXDIB_Rgb32)) {
717 return NULL; 718 return NULL;
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
797 void FPDF_RenderPage_Retail(CRenderContext* pContext, 798 void FPDF_RenderPage_Retail(CRenderContext* pContext,
798 FPDF_PAGE page, 799 FPDF_PAGE page,
799 int start_x, 800 int start_x,
800 int start_y, 801 int start_y,
801 int size_x, 802 int size_x,
802 int size_y, 803 int size_y,
803 int rotate, 804 int rotate,
804 int flags, 805 int flags,
805 FX_BOOL bNeedToRestore, 806 FX_BOOL bNeedToRestore,
806 IFSDK_PAUSE_Adapter* pause) { 807 IFSDK_PAUSE_Adapter* pause) {
807 CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage(); 808 CPDF_Page* pPage = CPDFPageFromFPDFPage(page);
808 if (pPage == NULL) 809 if (!pPage)
809 return; 810 return;
810 811
811 if (!pContext->m_pOptions) 812 if (!pContext->m_pOptions)
812 pContext->m_pOptions = new CPDF_RenderOptions; 813 pContext->m_pOptions = new CPDF_RenderOptions;
813 814
814 if (flags & FPDF_LCD_TEXT) 815 if (flags & FPDF_LCD_TEXT)
815 pContext->m_pOptions->m_Flags |= RENDER_CLEARTYPE; 816 pContext->m_pOptions->m_Flags |= RENDER_CLEARTYPE;
816 else 817 else
817 pContext->m_pOptions->m_Flags &= ~RENDER_CLEARTYPE; 818 pContext->m_pOptions->m_Flags &= ~RENDER_CLEARTYPE;
818 if (flags & FPDF_NO_NATIVETEXT) 819 if (flags & FPDF_NO_NATIVETEXT)
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after
1064 if (!buffer) { 1065 if (!buffer) {
1065 *buflen = len; 1066 *buflen = len;
1066 } else if (*buflen >= len) { 1067 } else if (*buflen >= len) {
1067 memcpy(buffer, utf16Name.c_str(), len); 1068 memcpy(buffer, utf16Name.c_str(), len);
1068 *buflen = len; 1069 *buflen = len;
1069 } else { 1070 } else {
1070 *buflen = -1; 1071 *buflen = -1;
1071 } 1072 }
1072 return (FPDF_DEST)pDestObj; 1073 return (FPDF_DEST)pDestObj;
1073 } 1074 }
OLDNEW
« no previous file with comments | « fpdfsdk/src/fpdfformfill.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698