| // Copyright 2014 PDFium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| |
| #ifndef PUBLIC_FPDF_PROGRESSIVE_H_ |
| #define PUBLIC_FPDF_PROGRESSIVE_H_ |
| |
| // NOLINTNEXTLINE(build/include) |
| #include "fpdfview.h" |
| |
| // Flags for progressive process status. |
| #define FPDF_RENDER_READY 0 |
| #define FPDF_RENDER_TOBECONTINUED 1 |
| #define FPDF_RENDER_DONE 2 |
| #define FPDF_RENDER_FAILED 3 |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| // IFPDF_RENDERINFO interface. |
| typedef struct _IFSDK_PAUSE { |
| /** |
| * Version number of the interface. Currently must be 1. |
| **/ |
| int version; |
| |
| /* |
| * Method: NeedToPauseNow |
| * Check if we need to pause a progressive process now. |
| * Interface Version: |
| * 1 |
| * Implementation Required: |
| * yes |
| * Parameters: |
| * pThis - Pointer to the interface structure itself |
| * Return Value: |
| * Non-zero for pause now, 0 for continue. |
| * |
| */ |
| FPDF_BOOL (*NeedToPauseNow)(struct _IFSDK_PAUSE* pThis); |
| |
| // A user defined data pointer, used by user's application. Can be NULL. |
| void* user; |
| } IFSDK_PAUSE; |
| |
| // Function: FPDF_RenderPageBitmap_Start |
| // Start to render page contents to a device independent bitmap |
| // progressively. |
| // Parameters: |
| // bitmap - Handle to the device independent bitmap (as the |
| // output buffer). |
| // Bitmap handle can be created by FPDFBitmap_Create |
| // function. |
| // page - Handle to the page. Returned by FPDF_LoadPage |
| // function. |
| // start_x - Left pixel position of the display area in the |
| // bitmap coordinate. |
| // start_y - Top pixel position of the display area in the bitmap |
| // coordinate. |
| // size_x - Horizontal size (in pixels) for displaying the page. |
| // size_y - Vertical size (in pixels) for displaying the page. |
| // rotate - Page orientation: 0 (normal), 1 (rotated 90 degrees |
| // clockwise), |
| // 2 (rotated 180 degrees), 3 (rotated 90 degrees |
| // counter-clockwise). |
| // flags - 0 for normal display, or combination of flags |
| // defined in fpdfview.h. With FPDF_ANNOT flag, it |
| // renders all annotations that does not require |
| // user-interaction, which are all annotations except |
| // widget and popup annotations. |
| // pause - The IFSDK_PAUSE interface.A callback mechanism |
| // allowing the page rendering process |
| // Return value: |
| // Rendering Status. See flags for progressive process status for the |
| // details. |
| // |
| FPDF_EXPORT int FPDF_CALLCONV FPDF_RenderPageBitmap_Start(FPDF_BITMAP bitmap, |
| FPDF_PAGE page, |
| int start_x, |
| int start_y, |
| int size_x, |
| int size_y, |
| int rotate, |
| int flags, |
| IFSDK_PAUSE* pause); |
| |
| // Function: FPDF_RenderPage_Continue |
| // Continue rendering a PDF page. |
| // Parameters: |
| // page - Handle to the page. Returned by FPDF_LoadPage |
| // function. |
| // pause - The IFSDK_PAUSE interface.A callback mechanism |
| // allowing the page rendering process |
| // to be paused before it's finished. This can be NULL |
| // if you don't want to pause. |
| // Return value: |
| // The rendering status. See flags for progressive process status for |
| // the details. |
| FPDF_EXPORT int FPDF_CALLCONV FPDF_RenderPage_Continue(FPDF_PAGE page, |
| IFSDK_PAUSE* pause); |
| |
| // Function: FPDF_RenderPage_Close |
| // Release the resource allocate during page rendering. Need to be |
| // called after finishing rendering or |
| // cancel the rendering. |
| // Parameters: |
| // page - Handle to the page. Returned by FPDF_LoadPage |
| // function. |
| // Return value: |
| // NULL |
| FPDF_EXPORT void FPDF_CALLCONV FPDF_RenderPage_Close(FPDF_PAGE page); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif // PUBLIC_FPDF_PROGRESSIVE_H_ |