// 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 _FPDF_PROGRESSIVE_H_ | |
#define _FPDF_PROGRESSIVE_H_ | |
#include "fpdfview.h" | |
//Flags for progressive process status. | |
#define FPDF_RENDER_READER 0 | |
#define FPDF_RENDER_TOBECOUNTINUED 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 above. | |
// 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. | |
// | |
DLLEXPORT int STDCALL 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. | |
DLLEXPORT int STDCALL 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 | |
DLLEXPORT void STDCALL FPDF_RenderPage_Close(FPDF_PAGE page); | |
#ifdef __cplusplus | |
} | |
#endif | |
#endif //_FPDF_PROGRESSIVE_H_ |