Index: site/user/sample/pdf.md |
diff --git a/site/user/sample/pdf.md b/site/user/sample/pdf.md |
index 1668f3939a05358d724ad2983cdf586b1cde569d..54ed2336fd3f882442e52c70b2b5ab55a1a74299 100644 |
--- a/site/user/sample/pdf.md |
+++ b/site/user/sample/pdf.md |
@@ -1,8 +1,8 @@ |
Using Skia's PDF Backend |
======================== |
-Here is an example of using Skia's PDF backend in the recommended way: |
-via the SkDocument and SkCanvas APIs. |
+Here is an example of using Skia's PDF backend (SkPDF) via the |
+SkDocument and SkCanvas APIs. |
<!--?prettify lang=cc?--> |
@@ -39,3 +39,96 @@ via the SkDocument and SkCanvas APIs. |
} |
return pdfDocument->close(); |
} |
+ |
+* * * |
+ |
+<span id="limits">SkPDF Limitations</span> |
+------------------------------------------ |
+ |
+There are several corners of Skia's public API that SkPDF does not |
djsollen
2016/09/29 13:12:39
SkPDF currently does not
hal.canary
2016/09/29 15:31:13
Done.
|
+handle because either no one has asked for it or there is no simple |
djsollen
2016/09/29 13:12:40
replace "no one has asked for it" with "no known c
hal.canary
2016/09/29 15:31:13
Done.
|
+PDF-ish way to handle it. |
+ |
+**drop** means to draw nothing. |
djsollen
2016/09/29 13:12:40
put a heading above these 3 terms indicating they
hal.canary
2016/09/29 15:31:13
Done.
|
+ |
+**ignore** mean to draw without the effect |
+ |
+**expand** means to implement something in a non-PDF-ish way. |
djsollen
2016/09/29 13:12:40
does non-PDF-ish mean rasterized content instead o
hal.canary
2016/09/29 15:31:13
Done.
+ **expand** means to implement something
|
+ |
+ - *SkMaskFilter* — Mask filters are either dropped (drawText calls) |
djsollen
2016/09/29 13:12:39
these first 3 bullets (and the last one) say the
hal.canary
2016/09/29 15:31:13
Done.
|
+ or ignored (other draw calls). |
+ |
+ - *SkPathEffect* — Path effects are either ignored (drawText calls) |
+ or expanded (other draw calls). |
+ |
+ - *SkColorFilter* — Color filters are either expanded (drawImage / |
+ drawBitmap calls) or ignored (everything else); |
+ |
+ - *SkImageFilter* — ImageFilter is always expanded. (Text-as-text is lost). |
+ |
+ - *SkXferMode* — Transfer modes that are not natively supported by |
+ PDF are ignored: DstOver, SrcIn, DstIn, SrcOut, DstOut, SrcATop, |
+ DstATop, and Modulate. |
+ |
+ - *SkShader* — Non-gradient shaders are expanded. |
+ |
+<style scoped><!-- |
+#pdftable {border-collapse:collapse;} |
+#pdftable tr th, #pdftable tr td {border:#888888 2px solid;padding: 5px;} |
+--></style> |
+<table id="pdftable"> |
+ <tr> |
+ <th>Effect</th> |
+ <th>text</th> |
+ <th>images</th> |
+ <th>everything else</th> |
+ </tr> |
+ <tr> |
+ <th>SkMaskFilter</th> |
+ <td>drop</td> |
+ <td>ignore</td> |
+ <td>ignore</td> |
+ </tr> |
+ <tr> |
+ <th>SkPathEffect</th> |
+ <td>ignore</td> |
+ <td>n/a</td> |
+ <td>expand</td> |
+ </tr> |
+ <tr> |
+ <th>SkColorFilter</th> |
+ <td>ignore</td> |
+ <td>expand</td> |
+ <td>ignore</td> |
+ </tr> |
+ <tr> |
+ <th>SkImageFilter</th> |
+ <td>expand</td> |
+ <td>expand</td> |
+ <td>expand</td> |
+ </tr> |
+ <tr> |
+ <th>unsupported SkXferModes</th> |
+ <td>ignore</td> |
+ <td>ignore</td> |
+ <td>ignore</td> |
+ </tr> |
+ <tr> |
+ <th>non-gradient SkShader</th> |
+ <td>expand</td> |
+ <td>n/a</td> |
+ <td>expand</td> |
+ </tr> |
+</table> |
+ |
+Other limitations: |
+ |
+ - *VerticalText* — drop. (No clients seem to make use of VerticalText.) |
+ |
+ - *drawTextOnPath* — expand. (Text-as-text is lost.) |
+ |
+ - *drawVertices* — drop. |
+ |
+ - *drawPatch* — drop. |
+ |
+* * * |