[PDF] Add support for SrcIn, SrcOut, DstIn, DstOut xfermodes.
authorvandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>
Fri, 13 May 2011 03:50:38 +0000 (03:50 +0000)
committervandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>
Fri, 13 May 2011 03:50:38 +0000 (03:50 +0000)
commit6112c215fbdd53388e64ece36e6c7bba0fe3a451
tree831fe90e87e56a1aea74c3f4148c2939bacb5655
parentd604481f7a2587f5b400d2a0a68a6491a0d584c7
[PDF] Add support for SrcIn, SrcOut, DstIn, DstOut xfermodes.

This change uses the soft mask (aka soft clip) functionality of PDF to implement the xfermodes.  It has to put existing content (dst) into a form xobject as well as putting the new (src) content into a different form xobject.  It then draws one of them with the other as the soft mask.
To accomplish this, we add a call to finishContentEntry after each call to setUpContentEntry - this is kind of a hack, but I don't see a better way to extract src.
Unfortunately, soft mask is specified in the Graphic State PDF object (and not in the form xobject), so when handling one of these modes, we add a one time GS object to set the soft mask and invoke a simple GS to reset the soft mask when done.

Review URL: http://codereview.appspot.com/4496041

git-svn-id: http://skia.googlecode.com/svn/trunk@1320 2bbb7eff-a529-9590-31e7-b0007b416f81
include/pdf/SkPDFDevice.h
include/pdf/SkPDFGraphicState.h
include/pdf/SkPDFUtils.h
src/pdf/SkPDFDevice.cpp
src/pdf/SkPDFGraphicState.cpp
src/pdf/SkPDFUtils.cpp