50 const FPDF_COLORSCHEME* color_scheme,
61 RetainPtr<CFX_DIBitmap> pBitmap(CFXDIBitmapFromFPDFBitmap(bitmap));
65 CHECK(!pBitmap->IsPremultiplied());
67 auto owned_context =
std::make_unique<CPDF_PageRenderContext>();
68 CPDF_PageRenderContext* context = owned_context.get();
69 pPage->SetRenderContext(
std::move(owned_context));
71#if defined(PDF_USE_SKIA)
72 if (CFX_DefaultRenderDevice::UseSkiaRenderer()) {
73 pBitmap->PreMultiply();
77 auto device =
std::make_unique<CFX_DefaultRenderDevice>();
79 context->m_pDevice =
std::move(device);
81 CPDFSDK_PauseAdapter pause_adapter
(pause
);
83 size_y
, rotate
, flags
, color_scheme
,
84 false, &pause_adapter
);
86 if (!context->m_pRenderer) {
87#if defined(PDF_USE_SKIA)
88 if (CFX_DefaultRenderDevice::UseSkiaRenderer()) {
89 pBitmap->UnPreMultiply();
96 int status = ToFPDFStatus(context->m_pRenderer->GetStatus());
111#if defined(PDF_USE_SKIA)
112 if (CFX_DefaultRenderDevice::UseSkiaRenderer()) {
113 pBitmap->UnPreMultiply();
134 IFSDK_PAUSE* pause) {
144 if (!pContext || !pContext->m_pRenderer)
147 CPDFSDK_PauseAdapter pause_adapter
(pause
);
148 pContext->m_pRenderer->Continue(&pause_adapter);
150 int status = ToFPDFStatus(pContext->m_pRenderer->GetStatus());
155#if defined(PDF_USE_SKIA)
156 if (CFX_DefaultRenderDevice::UseSkiaRenderer()) {
157 pContext->m_pDevice->GetBitmap()->UnPreMultiply();
RenderContextIface * GetRenderContext()
void ClearRenderContext()
void CPDFSDK_RenderPageWithContext(CPDF_PageRenderContext *pContext, CPDF_Page *pPage, int start_x, int start_y, int size_x, int size_y, int rotate, int flags, const FPDF_COLORSCHEME *color_scheme, bool need_to_restore, CPDFSDK_PauseAdapter *pause)
FPDF_EXPORT int FPDF_CALLCONV FPDF_RenderPageBitmapWithColorScheme_Start(FPDF_BITMAP bitmap, FPDF_PAGE page, int start_x, int start_y, int size_x, int size_y, int rotate, int flags, const FPDF_COLORSCHEME *color_scheme, IFSDK_PAUSE *pause)
FPDF_EXPORT int FPDF_CALLCONV 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)