diff options
Diffstat (limited to 'public/fpdf_progressive.h')
-rw-r--r-- | public/fpdf_progressive.h | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/public/fpdf_progressive.h b/public/fpdf_progressive.h new file mode 100644 index 0000000000..029264eae2 --- /dev/null +++ b/public/fpdf_progressive.h @@ -0,0 +1,94 @@ +// 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_ |