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