Chromium Code Reviews| Index: fpdfsdk/src/fpdfview.cpp |
| diff --git a/fpdfsdk/src/fpdfview.cpp b/fpdfsdk/src/fpdfview.cpp |
| index a35952c33988e8bab859116336734aa6519bdf1e..50558f937720d27c9b17798dbd8a444fe4b55529 100644 |
| --- a/fpdfsdk/src/fpdfview.cpp |
| +++ b/fpdfsdk/src/fpdfview.cpp |
| @@ -644,7 +644,7 @@ DLLEXPORT void STDCALL FPDF_RenderPageBitmap(FPDF_BITMAP bitmap, |
| CRenderContext* pContext = new CRenderContext; |
| pPage->SetPrivateData((void*)1, pContext, DropContext); |
| #ifdef _SKIA_SUPPORT_ |
| - pContext->m_pDevice = new CFX_SkiaDevice; |
| + pContext->m_pDevice = new CFX_SkiaDevice(); |
| if (flags & FPDF_REVERSE_BYTE_ORDER) |
| ((CFX_SkiaDevice*)pContext->m_pDevice) |
| @@ -668,6 +668,29 @@ DLLEXPORT void STDCALL FPDF_RenderPageBitmap(FPDF_BITMAP bitmap, |
| pPage->RemovePrivateData((void*)1); |
| } |
| +FPDF_BITMAP FPDF_RenderPageSkp(FPDF_PAGE page, |
| + int size_x, |
| + int size_y) { |
| +#ifdef _SKIA_SUPPORT_ |
| + CPDF_Page* pPage = CPDFPageFromFPDFPage(page); |
| + if (!pPage) |
| + return nullptr; |
| + CRenderContext* pContext = new CRenderContext; |
|
dsinclair
2016/03/10 14:38:54
std::unique_ptr?
caryclark
2016/03/10 20:44:55
Done.
|
| + pPage->SetPrivateData((void*)1, pContext, DropContext); |
| + CFX_SkiaDevice* skDevice = new CFX_SkiaDevice(size_x, size_y, nullptr); |
| + pContext->m_pDevice = skDevice; |
| + |
| + FPDF_RenderPage_Retail(pContext, page, 0, 0, size_x, size_y, |
| + 0, 0, TRUE, NULL); |
| + void* recorder = skDevice->GetRecorder(); |
| + delete pContext; |
| + pPage->RemovePrivateData((void*)1); |
| + return recorder; |
| +#else |
| + return nullptr; |
| +#endif |
| +} |
| + |
| DLLEXPORT void STDCALL FPDF_ClosePage(FPDF_PAGE page) { |
| if (!page) |
| return; |