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 _FPDF_PROGRESSIVE_H_ 8 #define _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 19 #ifdef __cplusplus 20 extern "C" { 21 #endif 22 23 24 //IFPDF_RENDERINFO interface. 25 typedef struct _IFSDK_PAUSE 26 { 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 progressively. 53 // Parameters: 54 // bitmap - Handle to the device independent bitmap (as the output buffer). 55 // Bitmap handle can be created by FPDFBitmap_Create function. 56 // page - Handle to the page. Returned by FPDF_LoadPage function. 57 // start_x - Left pixel position of the display area in the bitmap coordinate. 58 // start_y - Top pixel position of the display area in the bitmap coordinate. 59 // size_x - Horizontal size (in pixels) for displaying the page. 60 // size_y - Vertical size (in pixels) for displaying the page. 61 // rotate - Page orientation: 0 (normal), 1 (rotated 90 degrees clockwise), 62 // 2 (rotated 180 degrees), 3 (rotated 90 degrees counter-clockwise). 63 // flags - 0 for normal display, or combination of flags defined above. 64 // pause - The IFSDK_PAUSE interface.A callback mechanism allowing the page rendering process 65 // Return value: 66 // Rendering Status. See flags for progressive process status for the details. 67 // 68 DLLEXPORT int STDCALL FPDF_RenderPageBitmap_Start(FPDF_BITMAP bitmap, FPDF_PAGE page, int start_x, int start_y, int size_x, 69 int size_y, int rotate, int flags,IFSDK_PAUSE * pause); 70 71 // Function: FPDF_RenderPage_Continue 72 // Continue rendering a PDF page. 73 // Parameters: 74 // page - Handle to the page. Returned by FPDF_LoadPage function. 75 // pause - The IFSDK_PAUSE interface.A callback mechanism allowing the page rendering process 76 // to be paused before it's finished. This can be NULL if you don't want to pause. 77 // Return value: 78 // The rendering status. See flags for progressive process status for the details. 79 DLLEXPORT int STDCALL FPDF_RenderPage_Continue(FPDF_PAGE page,IFSDK_PAUSE * pause); 80 81 // Function: FPDF_RenderPage_Close 82 // Release the resource allocate during page rendering. Need to be called after finishing rendering or 83 // cancel the rendering. 84 // Parameters: 85 // page - Handle to the page. Returned by FPDF_LoadPage function. 86 // Return value: 87 // NULL 88 DLLEXPORT void STDCALL FPDF_RenderPage_Close(FPDF_PAGE page); 89 90 #ifdef __cplusplus 91 } 92 #endif 93 94 #endif //_FPDF_PROGRESSIVE_H_ 95