blob: d590f788174d5167e4f7d1a435757ef658c0fcdd [file] [log] [blame]
// 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_