Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3)

Unified Diff: fpdfsdk/src/fpdfview.cpp

Issue 1776313002: Add bitmaps and skp output to Skia port (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: wip; add skp output to test framework Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;

Powered by Google App Engine
This is Rietveld 408576698