summaryrefslogtreecommitdiff
path: root/fpdfsdk
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2018-05-30 13:30:10 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-05-30 13:30:10 +0000
commit491112b06c802de0d7dc577e77690d1a081f05c9 (patch)
tree2a7b059c49cf52d31a82e3375d0761ea01c41ddc /fpdfsdk
parent16ccc8b65747c265255a487e3e748ac9e2c1a701 (diff)
downloadpdfium-491112b06c802de0d7dc577e77690d1a081f05c9.tar.xz
Add FPDFPath_GetDrawMode() API
It was already possible to set the draw mode of a path object, this is the other direction. Change-Id: Id0ee98dd8dfe433edd0e4715fc009ad4d1625981 Reviewed-on: https://pdfium-review.googlesource.com/33010 Reviewed-by: dsinclair <dsinclair@chromium.org> Reviewed-by: Nicolás Peña Moreno <npm@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'fpdfsdk')
-rw-r--r--fpdfsdk/fpdf_edit_embeddertest.cpp7
-rw-r--r--fpdfsdk/fpdf_editpath.cpp18
-rw-r--r--fpdfsdk/fpdf_view_c_api_test.c1
3 files changed, 26 insertions, 0 deletions
diff --git a/fpdfsdk/fpdf_edit_embeddertest.cpp b/fpdfsdk/fpdf_edit_embeddertest.cpp
index 458ae0022a..f9b165c28d 100644
--- a/fpdfsdk/fpdf_edit_embeddertest.cpp
+++ b/fpdfsdk/fpdf_edit_embeddertest.cpp
@@ -241,6 +241,13 @@ TEST_F(FPDFEditEmbeddertest, AddPaths) {
// Fill rectangle with red and insert to the page
EXPECT_TRUE(FPDFPath_SetFillColor(red_rect, 255, 0, 0, 255));
EXPECT_TRUE(FPDFPath_SetDrawMode(red_rect, FPDF_FILLMODE_ALTERNATE, 0));
+
+ int fillmode = FPDF_FILLMODE_NONE;
+ FPDF_BOOL stroke = true;
+ EXPECT_TRUE(FPDFPath_GetDrawMode(red_rect, &fillmode, &stroke));
+ EXPECT_EQ(FPDF_FILLMODE_ALTERNATE, fillmode);
+ EXPECT_FALSE(stroke);
+
FPDFPage_InsertObject(page, red_rect);
{
ScopedFPDFBitmap page_bitmap = RenderPageWithFlags(page, nullptr, 0);
diff --git a/fpdfsdk/fpdf_editpath.cpp b/fpdfsdk/fpdf_editpath.cpp
index a5873ef67d..7f00b85d7b 100644
--- a/fpdfsdk/fpdf_editpath.cpp
+++ b/fpdfsdk/fpdf_editpath.cpp
@@ -218,6 +218,24 @@ FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFPath_SetDrawMode(FPDF_PAGEOBJECT path,
return true;
}
+FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFPath_GetDrawMode(FPDF_PAGEOBJECT path,
+ int* fillmode,
+ FPDF_BOOL* stroke) {
+ auto* pPathObj = CPDFPathObjectFromFPDFPageObject(path);
+ if (!pPathObj || !fillmode || !stroke)
+ return false;
+
+ if (pPathObj->m_FillType == FXFILL_ALTERNATE)
+ *fillmode = FPDF_FILLMODE_ALTERNATE;
+ else if (pPathObj->m_FillType == FXFILL_WINDING)
+ *fillmode = FPDF_FILLMODE_WINDING;
+ else
+ *fillmode = FPDF_FILLMODE_NONE;
+
+ *stroke = pPathObj->m_bStroke;
+ return true;
+}
+
FPDF_EXPORT void FPDF_CALLCONV FPDFPath_SetLineJoin(FPDF_PAGEOBJECT path,
int line_join) {
auto* pPathObj = CPDFPathObjectFromFPDFPageObject(path);
diff --git a/fpdfsdk/fpdf_view_c_api_test.c b/fpdfsdk/fpdf_view_c_api_test.c
index 1e746cde33..dd97a6e330 100644
--- a/fpdfsdk/fpdf_view_c_api_test.c
+++ b/fpdfsdk/fpdf_view_c_api_test.c
@@ -181,6 +181,7 @@ int CheckPDFiumCApi() {
CHK(FPDFPath_BezierTo);
CHK(FPDFPath_Close);
CHK(FPDFPath_CountSegments);
+ CHK(FPDFPath_GetDrawMode);
CHK(FPDFPath_GetFillColor);
CHK(FPDFPath_GetPathSegment);
CHK(FPDFPath_GetStrokeColor);