1ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Copyright 2014 PDFium Authors. All rights reserved. 2ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Use of this source code is governed by a BSD-style license that can be 3ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// found in the LICENSE file. 4ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 5ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 7ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef _FPDF_PROGRESSIVE_H_ 8ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define _FPDF_PROGRESSIVE_H_ 9ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 10ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "fpdfview.h" 11ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 12ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov//Flags for progressive process status. 13ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define FPDF_RENDER_READER 0 14ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define FPDF_RENDER_TOBECOUNTINUED 1 15ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define FPDF_RENDER_DONE 2 16ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define FPDF_RENDER_FAILED 3 17ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 18ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 19ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifdef __cplusplus 20ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovextern "C" { 21ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif 22ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 23ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 24ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov//IFPDF_RENDERINFO interface. 25ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovtypedef struct _IFSDK_PAUSE 26ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 27ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /** 28ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Version number of the interface. Currently must be 1. 29ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov **/ 30ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov int version; 31ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 32ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* 33ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Method: NeedToPauseNow 34ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Check if we need to pause a progressive process now. 35ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Interface Version: 36ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * 1 37ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Implementation Required: 38ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * yes 39ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Parameters: 40ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * pThis - Pointer to the interface structure itself 41ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Return Value: 42ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Non-zero for pause now, 0 for continue. 43ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * 44ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov */ 45ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FPDF_BOOL (*NeedToPauseNow) (struct _IFSDK_PAUSE* pThis); 46ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 47ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov //A user defined data pointer, used by user's application. Can be NULL. 48ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov void* user; 49ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} IFSDK_PAUSE; 50ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 51ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Function: FPDF_RenderPageBitmap_Start 52ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Start to render page contents to a device independent bitmap progressively. 53ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Parameters: 54ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// bitmap - Handle to the device independent bitmap (as the output buffer). 55ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Bitmap handle can be created by FPDFBitmap_Create function. 56ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// page - Handle to the page. Returned by FPDF_LoadPage function. 57ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// start_x - Left pixel position of the display area in the bitmap coordinate. 58ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// start_y - Top pixel position of the display area in the bitmap coordinate. 59ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// size_x - Horizontal size (in pixels) for displaying the page. 60ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// size_y - Vertical size (in pixels) for displaying the page. 61ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// rotate - Page orientation: 0 (normal), 1 (rotated 90 degrees clockwise), 62ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 2 (rotated 180 degrees), 3 (rotated 90 degrees counter-clockwise). 63ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// flags - 0 for normal display, or combination of flags defined above. 64ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// pause - The IFSDK_PAUSE interface.A callback mechanism allowing the page rendering process 65ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Return value: 66ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Rendering Status. See flags for progressive process status for the details. 67ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 68ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovDLLEXPORT int STDCALL FPDF_RenderPageBitmap_Start(FPDF_BITMAP bitmap, FPDF_PAGE page, int start_x, int start_y, int size_x, 69ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov int size_y, int rotate, int flags,IFSDK_PAUSE * pause); 70ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 71ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Function: FPDF_RenderPage_Continue 72ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Continue rendering a PDF page. 73ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Parameters: 74ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// page - Handle to the page. Returned by FPDF_LoadPage function. 75ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// pause - The IFSDK_PAUSE interface.A callback mechanism allowing the page rendering process 76ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// to be paused before it's finished. This can be NULL if you don't want to pause. 77ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Return value: 78ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// The rendering status. See flags for progressive process status for the details. 79ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovDLLEXPORT int STDCALL FPDF_RenderPage_Continue(FPDF_PAGE page,IFSDK_PAUSE * pause); 80ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 81ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Function: FPDF_RenderPage_Close 82ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Release the resource allocate during page rendering. Need to be called after finishing rendering or 83ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// cancel the rendering. 84ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Parameters: 85ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// page - Handle to the page. Returned by FPDF_LoadPage function. 86ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Return value: 87ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// NULL 88ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovDLLEXPORT void STDCALL FPDF_RenderPage_Close(FPDF_PAGE page); 89ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 90ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifdef __cplusplus 91ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 92ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif 93ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 94ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif //_FPDF_PROGRESSIVE_H_ 95