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

Side by Side Diff: site/dev/design/pdftheory.md

Issue 1432503003: Comments Style: s/skbug.com/bug.skia.org/ (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: include Created 5 years, 1 month 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 unified diff | Download patch
« no previous file with comments | « gyp/skia_for_android_framework_defines.gypi ('k') | src/codec/SkCodec_libpng.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 PDF Theory of Operation 1 PDF Theory of Operation
2 ======================= 2 =======================
3 3
4 <!-- 4 <!--
5 PRE-GIT DOCUMENT VERSION HISTORY 5 PRE-GIT DOCUMENT VERSION HISTORY
6 2012-06-25 Steve VanDeBogart 6 2012-06-25 Steve VanDeBogart
7 * Original version 7 * Original version
8 2015-01-14 Hal Canary. 8 2015-01-14 Hal Canary.
9 * Add section "Using the PDF backend" 9 * Add section "Using the PDF backend"
10 * Markdown formatting 10 * Markdown formatting
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 single PDF. To ensure that there is only one copy of each object 250 single PDF. To ensure that there is only one copy of each object
251 instance these objects an implemented with an 251 instance these objects an implemented with an
252 [interning pattern](http://en.wikipedia.org/wiki/String_interning). 252 [interning pattern](http://en.wikipedia.org/wiki/String_interning).
253 As such, the classes representing these objects (like 253 As such, the classes representing these objects (like
254 SkPDFGraphicState) have private constructors and static methods to 254 SkPDFGraphicState) have private constructors and static methods to
255 retrieve an instance of the class. Internally, the class has a list of 255 retrieve an instance of the class. Internally, the class has a list of
256 unique instances that it consults before returning a new instance of 256 unique instances that it consults before returning a new instance of
257 the class. If the requested instance already exists, the existing one 257 the class. If the requested instance already exists, the existing one
258 is returned. For obvious reasons, the returned instance should not be 258 is returned. For obvious reasons, the returned instance should not be
259 modified. A mechanism to ensure that interned classes are immutable is 259 modified. A mechanism to ensure that interned classes are immutable is
260 needed. See [issue 2683](http://skbug.com/2683). 260 needed. See [issue 2683](https://bug.skia.org/2683).
261 261
262 <a name="Graphic_States"></a> 262 <a name="Graphic_States"></a>
263 Graphic States 263 Graphic States
264 -------------- 264 --------------
265 265
266 PDF has a number of parameters that affect how things are drawn. The 266 PDF has a number of parameters that affect how things are drawn. The
267 ones that correspond to drawing options in Skia are: color, alpha, 267 ones that correspond to drawing options in Skia are: color, alpha,
268 line cap, line join type, line width, miter limit, and xfer/blend mode 268 line cap, line join type, line width, miter limit, and xfer/blend mode
269 (see later section for xfer modes). With the exception of color, these 269 (see later section for xfer modes). With the exception of color, these
270 can all be specified in a single pdf object, represented by the 270 can all be specified in a single pdf object, represented by the
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
365 365
366 <a name="Drawing_details"></a> 366 <a name="Drawing_details"></a>
367 Drawing details 367 Drawing details
368 --------------- 368 ---------------
369 369
370 Certain objects have specific properties that need to be dealt 370 Certain objects have specific properties that need to be dealt
371 with. Images, layers (see below), and fonts assume the standard PDF 371 with. Images, layers (see below), and fonts assume the standard PDF
372 coordinate system, so we have to undo any flip to the Skia coordinate 372 coordinate system, so we have to undo any flip to the Skia coordinate
373 system before drawing these entities. We don’t currently support 373 system before drawing these entities. We don’t currently support
374 inverted paths, so filling an inverted path will give the wrong result 374 inverted paths, so filling an inverted path will give the wrong result
375 ([issue 241](http://skbug.com/241)). PDF doesn’t draw zero length 375 ([issue 241](https://bug.skia.org/241)). PDF doesn’t draw zero length
376 lines that have butt of square caps, so that is emulated. 376 lines that have butt of square caps, so that is emulated.
377 377
378 <a name="Layers"></a> 378 <a name="Layers"></a>
379 ### Layers ### 379 ### Layers ###
380 380
381 PDF has a higher level object called a form x-object (form external 381 PDF has a higher level object called a form x-object (form external
382 object) that is basically a PDF page, with resources and a content 382 object) that is basically a PDF page, with resources and a content
383 stream, but can be transformed and drawn on an existing page. This is 383 stream, but can be transformed and drawn on an existing page. This is
384 used to implement layers. SkDevice has a method, 384 used to implement layers. SkDevice has a method,
385 createFormXObjectFromDevice, which uses the SkPDFDevice::content() 385 createFormXObjectFromDevice, which uses the SkPDFDevice::content()
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
566 Dst (or not). SrcIn is SrcMode with Src drawn with Dst as a 566 Dst (or not). SrcIn is SrcMode with Src drawn with Dst as a
567 mask. SrcOut is like SrcMode, but with Src drawn with an inverted Dst 567 mask. SrcOut is like SrcMode, but with Src drawn with an inverted Dst
568 as a mask. DstIn is SrcMode with Dst drawn with Src as a 568 as a mask. DstIn is SrcMode with Dst drawn with Src as a
569 mask. Finally, DstOut is SrcMode with Dst draw with an inverted Src as 569 mask. Finally, DstOut is SrcMode with Dst draw with an inverted Src as
570 a mask. 570 a mask.
571 571
572 <a name="Known_issues"></a> 572 <a name="Known_issues"></a>
573 Known issues 573 Known issues
574 ------------ 574 ------------
575 575
576 * [issue 241](http://skbug.com/241) 576 * [issue 241](https://bug.skia.org/241)
577 As previously noted, a boolean geometry library 577 As previously noted, a boolean geometry library
578 would improve clip fidelity in some places, add supported for 578 would improve clip fidelity in some places, add supported for
579 inverted fill types, as well as simplify code. 579 inverted fill types, as well as simplify code.
580 This is fixed, but behind a flag until path ops is production ready. 580 This is fixed, but behind a flag until path ops is production ready.
581 * [issue 237](http://skbug.com/237) 581 * [issue 237](https://bug.skia.org/237)
582 SkMaskFilter is not supported. 582 SkMaskFilter is not supported.
583 * [issue 238](http://skbug.com/238) 583 * [issue 238](https://bug.skia.org/238)
584 SkColorFilter is not supported. 584 SkColorFilter is not supported.
585 * [issue 249](http://skbug.com/249) 585 * [issue 249](https://bug.skia.org/249)
586 SrcAtop Xor, and Plus xfer modes are not supported. 586 SrcAtop Xor, and Plus xfer modes are not supported.
587 * [issue 240](http://skbug.com/240) 587 * [issue 240](https://bug.skia.org/240)
588 drawVerticies is not implemented. 588 drawVerticies is not implemented.
589 * [issue 244](http://skbug.com/244) 589 * [issue 244](https://bug.skia.org/244)
590 Mostly, only TTF fonts are directly supported. (User metrics 590 Mostly, only TTF fonts are directly supported. (User metrics
591 show that almost all fonts are truetype. 591 show that almost all fonts are truetype.
592 * [issue 260](http://skbug.com/260) 592 * [issue 260](https://bug.skia.org/260)
593 Page rotation is accomplished by specifying a different 593 Page rotation is accomplished by specifying a different
594 size page instead of including the appropriate rotation 594 size page instead of including the appropriate rotation
595 annotation. 595 annotation.
596 596
597 * * * 597 * * *
598 598
OLDNEW
« no previous file with comments | « gyp/skia_for_android_framework_defines.gypi ('k') | src/codec/SkCodec_libpng.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698