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