• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 
7 #ifndef PUBLIC_FPDF_PROGRESSIVE_H_
8 #define PUBLIC_FPDF_PROGRESSIVE_H_
9 
10 // NOLINTNEXTLINE(build/include)
11 #include "fpdfview.h"
12 
13 // Flags for progressive process status.
14 #define FPDF_RENDER_READY 0
15 #define FPDF_RENDER_READER 0  // Deprecated
16 #define FPDF_RENDER_TOBECONTINUED 1
17 #define FPDF_RENDER_TOBECOUNTINUED 1  // Deprecated.
18 #define FPDF_RENDER_DONE 2
19 #define FPDF_RENDER_FAILED 3
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
25 // IFPDF_RENDERINFO interface.
26 typedef struct _IFSDK_PAUSE {
27   /**
28   * Version number of the interface. Currently must be 1.
29   **/
30   int version;
31 
32   /*
33   * Method: NeedToPauseNow
34   *           Check if we need to pause a progressive process now.
35   * Interface Version:
36   *           1
37   * Implementation Required:
38   *           yes
39   * Parameters:
40   *           pThis       -   Pointer to the interface structure itself
41   * Return Value:
42   *            Non-zero for pause now, 0 for continue.
43   *
44   */
45   FPDF_BOOL (*NeedToPauseNow)(struct _IFSDK_PAUSE* pThis);
46 
47   // A user defined data pointer, used by user's application. Can be NULL.
48   void* user;
49 } IFSDK_PAUSE;
50 
51 // Function: FPDF_RenderPageBitmap_Start
52 //          Start to render page contents to a device independent bitmap
53 //          progressively.
54 // Parameters:
55 //          bitmap      -   Handle to the device independent bitmap (as the
56 //          output buffer).
57 //                          Bitmap handle can be created by FPDFBitmap_Create
58 //                          function.
59 //          page        -   Handle to the page. Returned by FPDF_LoadPage
60 //          function.
61 //          start_x     -   Left pixel position of the display area in the
62 //          bitmap coordinate.
63 //          start_y     -   Top pixel position of the display area in the bitmap
64 //          coordinate.
65 //          size_x      -   Horizontal size (in pixels) for displaying the page.
66 //          size_y      -   Vertical size (in pixels) for displaying the page.
67 //          rotate      -   Page orientation: 0 (normal), 1 (rotated 90 degrees
68 //          clockwise),
69 //                              2 (rotated 180 degrees), 3 (rotated 90 degrees
70 //                              counter-clockwise).
71 //          flags       -   0 for normal display, or combination of flags
72 //                          defined in fpdfview.h. With FPDF_ANNOT flag, it
73 //                          renders all annotations that does not require
74 //                          user-interaction, which are all annotations except
75 //                          widget and popup annotations.
76 //          pause       -   The IFSDK_PAUSE interface.A callback mechanism
77 //          allowing the page rendering process
78 // Return value:
79 //          Rendering Status. See flags for progressive process status for the
80 //          details.
81 //
82 FPDF_EXPORT int FPDF_CALLCONV FPDF_RenderPageBitmap_Start(FPDF_BITMAP bitmap,
83                                                           FPDF_PAGE page,
84                                                           int start_x,
85                                                           int start_y,
86                                                           int size_x,
87                                                           int size_y,
88                                                           int rotate,
89                                                           int flags,
90                                                           IFSDK_PAUSE* pause);
91 
92 // Function: FPDF_RenderPage_Continue
93 //          Continue rendering a PDF page.
94 // Parameters:
95 //          page        -   Handle to the page. Returned by FPDF_LoadPage
96 //          function.
97 //          pause       -   The IFSDK_PAUSE interface.A callback mechanism
98 //          allowing the page rendering process
99 //                          to be paused before it's finished. This can be NULL
100 //                          if you don't want to pause.
101 // Return value:
102 //          The rendering status. See flags for progressive process status for
103 //          the details.
104 FPDF_EXPORT int FPDF_CALLCONV FPDF_RenderPage_Continue(FPDF_PAGE page,
105                                                        IFSDK_PAUSE* pause);
106 
107 // Function: FPDF_RenderPage_Close
108 //          Release the resource allocate during page rendering. Need to be
109 //          called after finishing rendering or
110 //          cancel the rendering.
111 // Parameters:
112 //          page        -   Handle to the page. Returned by FPDF_LoadPage
113 //          function.
114 // Return value:
115 //          NULL
116 FPDF_EXPORT void FPDF_CALLCONV FPDF_RenderPage_Close(FPDF_PAGE page);
117 
118 #ifdef __cplusplus
119 }
120 #endif
121 
122 #endif  // PUBLIC_FPDF_PROGRESSIVE_H_
123