aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/pdf/SkPDFDevice.cpp
Commit message (Collapse)AuthorAge
* Rename methods and enum on SkClipStack::Element to indicate "device space"Gravatar Brian Salomon2017-08-30
| | | | | | | Change-Id: I83056843b530f76590f755f97e3d0a5a58f371fa Reviewed-on: https://skia-review.googlesource.com/39402 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* SkPDF: Use DeviceGray for alpha masks.Gravatar Hal Canary2017-07-26
| | | | | | | | | | See https://groups.google.com/forum/#!topic/pdf-dev/qmdjg3w7D8E BUG=chromium:742058 Change-Id: Ia8c204a92cb2b9fc33fab60826a95e359db65f08 Reviewed-on: https://skia-review.googlesource.com/26822 Commit-Queue: Hal Canary <halcanary@google.com> Reviewed-by: Ben Wagner <bungeman@google.com>
* SkPDF: Support alpha-only images with maskfiltersGravatar Hal Canary2017-07-20
| | | | | | | | | | | | | | | | | | - Handle alpha-only images with maskfilters - No longer apply color-filter to alpha-only images (it should apply to the paint color/shader composed with the alpha image instead). - Alpha-only images without maskfilters do sub-pixel clipping. - Non-alpha-only drawImages with maskfilters do sub-pixel clipping. * Fixes `alpha_image` GM (output now matches GPU backend). * Improves GMs `imagemasksubset` and `shadows`. BUG=skia:6735 Change-Id: I62a82b4133ae0eb42d6315785bc3d2cb834bd352 Reviewed-on: https://skia-review.googlesource.com/24820 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* SkPDF: minor cleanups of skpdfdeviceGravatar Hal Canary2017-07-20
| | | | | | | Change-Id: I2143daaa6061003d8631f38ea39724fb12d494db Reviewed-on: https://skia-review.googlesource.com/24747 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* SkPDF: SkPDFMakeShader takes the paint color.Gravatar Hal Canary2017-07-19
| | | | | | | | | | | This allows alpha blending and also alpha shaders with color blended in. fixes GMs: composeshader_alpha, composeshader_bitmap Change-Id: I3ab9cbef216f7733798d2e29541b4211c627dab2 Reviewed-on: https://skia-review.googlesource.com/24760 Commit-Queue: Hal Canary <halcanary@google.com> Reviewed-by: Ben Wagner <bungeman@google.com>
* SkPDF: Fix color glyphs with absolute positioningGravatar Hal Canary2017-07-19
| | | | | | | | | | BUG=chromium:617403 BUG=chromium:717570 BUG=skia:3489 Change-Id: I6b336836359e2cdccf5712edce5efd89f682a74d Reviewed-on: https://skia-review.googlesource.com/24620 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Revert "Revert "SkPDF: Non-outline glyphs as images""Gravatar Hal Canary2017-07-18
| | | | | | | | | | | | | | | | | | | This reverts commit 63b6f8b93209e593f60b235577f5b3d660396d5f. SkPDF: Non-outline glyphs as images - Cache images in PDF Canon for de-duping - For now, rasterize at text scale. In the future, look at CTM and fRasterScale. Original CL: https://skia-review.googlesource.com/24080 BUG=chromium:705480 BUG=skia:3489 Reviewed-by: Ben Wagner <bungeman@google.com> Change-Id: I99783df72c945cfb4b24b6d4db99418aa34e0897 Reviewed-on: https://skia-review.googlesource.com/24322 Reviewed-by: Hal Canary <halcanary@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Revert "SkPDF: Non-outline glyphs as images"Gravatar Mike Reed2017-07-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 3cf6b79e50f148cae7ed8c6ec0cd79f1ede71c95. Reason for revert: breaking build ../../../../../work/skia/src/pdf/SkPDFDevice.cpp: In member function 'void SkPDFDevice::internalDrawText(const void*, size_t, const SkScalar*, SkTextBlob::GlyphPositioning, SkPoint, const SkPaint&, const uint32_t*, uint32_t, const char*)': ../../../../../work/skia/src/pdf/SkPDFDevice.cpp:1578:31: error: missing initializer for member 'SkPoint::fX' [-Werror=missing-field-initializers] SkPoint xy = {}; ^ Original change's description: > SkPDF: Non-outline glyphs as images > > - Cache images in PDF Canon for de-duping > - For now, rasterize at text scale. in the future, look at CTM and > fRasterScale. > - add a test that works on MacOS > > BUG=chromium:705480 > BUG=skia:3489 > Change-Id: I4fbc42f218e5b81ea15ea6cdccc61c91e532f6d0 > Reviewed-on: https://skia-review.googlesource.com/24080 > Commit-Queue: Hal Canary <halcanary@google.com> > Reviewed-by: Ben Wagner <bungeman@google.com> TBR=halcanary@google.com,bungeman@google.com Change-Id: I3d8800fcb33817c6065da0860a534eb14350d132 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:705480, skia:3489 Reviewed-on: https://skia-review.googlesource.com/24160 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* SkPDF: Non-outline glyphs as imagesGravatar Hal Canary2017-07-17
| | | | | | | | | | | | | | - Cache images in PDF Canon for de-duping - For now, rasterize at text scale. in the future, look at CTM and fRasterScale. - add a test that works on MacOS BUG=chromium:705480 BUG=skia:3489 Change-Id: I4fbc42f218e5b81ea15ea6cdccc61c91e532f6d0 Reviewed-on: https://skia-review.googlesource.com/24080 Commit-Queue: Hal Canary <halcanary@google.com> Reviewed-by: Ben Wagner <bungeman@google.com>
* SkPDF: start to support AlphaOnly Images as masks.Gravatar Hal Canary2017-07-12
| | | | | | | | | Does not work when img->isAlphaOnly() && pnt.getMaskFilter(). Change-Id: I60712d035e3a505799258e24660bba30f2c0ed53 Reviewed-on: https://skia-review.googlesource.com/22723 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* SkPDF: simplify drawImage/Bitmap/Sprite code.Gravatar Hal Canary2017-07-12
| | | | | | | | | | | | | | | - SkImageSubset becomes SkKeyedImage - SkPDFCanvas::onDraw{Bitmap, Image} go away - Remove SkPDFCanvas: base classes now do the right thing. - SkPDFDevice::draw{Bitmap,Image}{Rect,}() simplified - 244 fewer SLOC. All but a few PDFs are identical, those rasterize almost the same. Change-Id: I3ceb3b8935c689719cedf1ad544b0407b5c1733e Reviewed-on: https://skia-review.googlesource.com/22218 Commit-Queue: Hal Canary <halcanary@google.com> Reviewed-by: Ben Wagner <bungeman@google.com>
* SkPDF: Change some identifiers.Gravatar Hal Canary2017-07-06
| | | | | | | | | | | s/SkPDFShader::GetPDFShader/SkPDFMakeShader/g s/SkPDFShader::State/SkPDFImageShaderKey/g s/state/key/g Change-Id: I86dc932c3407c73f387c972fb6674dc09ea0be3c Reviewed-on: https://skia-review.googlesource.com/21661 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* SkPDF: simplify SkPDFGraphicStateGravatar Hal Canary2017-06-30
| | | | | | | | | | | | | | - Separate graphic state objects for Stroke and Fill. - SkPDFGraphicState::GetGraphicStateForPaint simplified. - No more SkPDFGraphicState objects.Simplify SkPDFCanon. All PDFs render the same. Most PDFs are slightly smaller, especially those from captured web pages. Change-Id: Id9605c1d7495645da558d5f378ba585cdc201bba Reviewed-on: https://skia-review.googlesource.com/21343 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* SkPDF: clean up fRasterDpiGravatar Hal Canary2017-06-30
| | | | | | | | | | | | - PDFDevice no longer has a fRasterDpi; simply queries document. - #define DPI_FOR_RASTER_SCALE_ONE becomes constexpr float. - PDFShader::GetPDFShader no longer takes rasterScale or dpi - Remove un-needed factory functions. We're all adults here. Change-Id: Id2ce75d4e61af385763ccfb1db210465a1600067 Reviewed-on: https://skia-review.googlesource.com/21348 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* SkPDF: Clean upGravatar Hal Canary2017-06-28
| | | | | | | | | | | - Use clearMaskOnGraphicState() - SkPDFGraphicState::MakeNoSmaskGraphicState now moved to only caller. - Get rid of clunky SkPDFUtils::GetCachedT Change-Id: If76a1e915fc31e3ce2654fbe620ff44c1820c0e7 Reviewed-on: https://skia-review.googlesource.com/21142 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* SkPDF: clean up PDFDevice.Gravatar Hal Canary2017-06-27
| | | | | | | | | | | | | | | Motivation: factor out some code for later re-use; clean up. - mask_to_greyscale_image() - addSMaskGraphicState() - clearMaskOnGraphicState() - stop using bare pointer to indicate ownership. - add ScopedContentEntry::stream() Change-Id: I7abe7ff9eab89e1002692017000cda2ca7642631 Reviewed-on: https://skia-review.googlesource.com/20978 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* SkDevice::drawBitmap takes x,y, not matrixGravatar Hal Canary2017-06-27
| | | | | | | | | Motivation: a simpler call should make it easier for SkPDF to learn how to do drawBitmap with A8 bitmap and a maskfilter. Change-Id: I1a5d190b40b0e9e08fa8876d265a9835a3e9987d Reviewed-on: https://skia-review.googlesource.com/20961 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* SkPDF: Glyph-by-glyph bounds-reject.Gravatar Hal Canary2017-06-14
| | | | | | | | BUG=chromium:682644 Change-Id: I9d20dd81886d4de4e74ba043349d456230c89cb1 Reviewed-on: https://skia-review.googlesource.com/19706 Commit-Queue: Hal Canary <halcanary@google.com> Reviewed-by: Ben Wagner <bungeman@google.com>
* SkPDF: consolodate glyph runs on BUILD_FOR_WINGravatar Hal Canary2017-06-12
| | | | | | | Change-Id: I455ebe0bec52752ccbcaa5dc5891cbeb529cb8c0 Reviewed-on: https://skia-review.googlesource.com/16871 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* SkPDF: Draw paths with mask filters; color filter.Gravatar Hal Canary2017-06-05
| | | | | | | | | | | | | | | Also: - drawPaint, drawPath w/ perspective shaders - text with mask filters, stroking, path effect. - SkPDFUtils::GetShaderLocalMatrix BUG=skia:237 BUG=skia:238 BUG=skia:5607 Change-Id: Iffeaf2d7abbde13fd2577ce9feaa178657f48364 Reviewed-on: https://skia-review.googlesource.com/18200 Commit-Queue: Hal Canary <halcanary@google.com> Reviewed-by: Ben Wagner <bungeman@google.com>
* add flag to hide deprecated clipopsGravatar Mike Reed2017-05-10
| | | | | | | | | | | | needs this to land first https://codereview.chromium.org/2877493002/# Bug: skia:3191 Change-Id: Iff5271064877c4e96353d3564464f513eaad0bb5 Reviewed-on: https://skia-review.googlesource.com/16365 Reviewed-by: Brian Salomon <bsalomon@google.com> Reviewed-by: Hal Canary <halcanary@google.com> Commit-Queue: Mike Reed <reed@google.com>
* src/pdf: code cleanupGravatar Hal Canary2017-05-04
| | | | | | | | | | | | | * SkPDFCanon: remove unnecessary abstraction * Make use of SkTHashMap<K, sk_sp<T>>. * Remove unncessary struct constructors. * More factory fns return sk_sp<T> * SkPDFUtility::GetCachedT<T> factored out. Change-Id: I4055a131b43fe2588fd042b769cd09fff8a3466c Reviewed-on: https://skia-review.googlesource.com/13655 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Initial clip-mask-layer supportGravatar Florin Malita2017-05-01
| | | | | | | | | | | | | | SkBitmapDevice-only implementation. Will add A8 fast path specializations in a follow-up. Change-Id: I2ccb1ffba3689e92ac90a23e94737471dfb121a1 BUG=skia:6005 Change-Id: I2ccb1ffba3689e92ac90a23e94737471dfb121a1 Reviewed-on: https://skia-review.googlesource.com/14183 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Only store width and height on SkPixelRef (part 1)Gravatar Matt Sarett2017-04-28
| | | | | | | | | | | | Relanding https://skia-review.googlesource.com/c/14105/ in pieces to try to diagnose problems with the Chrome roll. Bug: skia:6535 Change-Id: Ic321c437ecd3cb7940a48fd73fc22b192804c67a Reviewed-on: https://skia-review.googlesource.com/14650 Commit-Queue: Matt Sarett <msarett@google.com> Reviewed-by: Mike Reed <reed@google.com>
* Revert "Only store width and height on SkPixelRef"Gravatar Ben Wagner2017-04-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 2cbb6662e329981840f90ef4edd62f70f69e6030. Reason for revert: Likely cause of Chromium DEPS roll failure; speculative revert. Original change's description: > Only store width and height on SkPixelRef > > Bug: skia:6535 > Change-Id: Id91e8d1e82f593be7d4b23ca5abde752f2666a77 > Reviewed-on: https://skia-review.googlesource.com/14105 > Commit-Queue: Matt Sarett <msarett@google.com> > Reviewed-by: Mike Reed <reed@google.com> > TBR=djsollen@google.com,msarett@google.com,reed@google.com,stani@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I12a024a71833f33432d5ea8cffdfc642b8b4240a Bug: skia: Reviewed-on: https://skia-review.googlesource.com/14644 Reviewed-by: Ben Wagner <benjaminwagner@google.com> Commit-Queue: Ben Wagner <benjaminwagner@google.com>
* Only store width and height on SkPixelRefGravatar Matt Sarett2017-04-27
| | | | | | | | Bug: skia:6535 Change-Id: Id91e8d1e82f593be7d4b23ca5abde752f2666a77 Reviewed-on: https://skia-review.googlesource.com/14105 Commit-Queue: Matt Sarett <msarett@google.com> Reviewed-by: Mike Reed <reed@google.com>
* hide lockpixels api behind flagGravatar Mike Reed2017-04-17
| | | | | | | | | | | | | | guarded by SK_SUPPORT_OBSOLETE_LOCKPIXELS needs https://codereview.chromium.org/2820873002/# to land first Bug: skia:6481 Change-Id: I1c39902cbf6fe99f622adfa8192733b95f7fea09 Change-Id: I1c39902cbf6fe99f622adfa8192733b95f7fea09 Reviewed-on: https://skia-review.googlesource.com/13580 Reviewed-by: Florin Malita <fmalita@chromium.org> Reviewed-by: Leon Scroggins <scroggo@google.com> Commit-Queue: Mike Reed <reed@google.com>
* SkSize can be aggregate-initializedGravatar Hal Canary2017-04-11
| | | | | | | | | | | | Previosly, SkSize had a base class, which prevented it. Also removes unused SkISize::clampNegToZero() and SkSize::clampNegToZero(). Change-Id: I7b93b42f6f6381c66e294bbedee99ad53c6c3436 Reviewed-on: https://skia-review.googlesource.com/13187 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* remove legacy vertices virtual from SkDeviceGravatar Mike Reed2017-03-19
| | | | | | | | | BUG=skia:6366 Change-Id: I9fb49538f358343a7c2e4541d0044d961ac1b54d Reviewed-on: https://skia-review.googlesource.com/9870 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
* SkPDF: Always get advances at unitsPerEm.Gravatar Hal Canary2017-03-08
| | | | | | | | | | | | | * Work around BUG=chromium:696356 * SkTestScalerContext needs a return a em-size. * SkPDFFont::MakeVectorCache which always produces a glyph cache at emsize. Replaces vector_cache(). * Stop looking at fLastGlyphID and fEmSize in TypefaceMetrics. Change-Id: I28d93b8f62d461a60fa046e9aaf7fa6d116a7ee5 Reviewed-on: https://skia-review.googlesource.com/9324 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Revert[6] "Remove SkDraw from device-draw methods, and enable device-centric ↵Gravatar Mike Reed2017-03-07
| | | | | | | | | | | | | | | | | clipping."""""" Previous failure was failure to detect that the clip wasn't wide-open when optimizing for retain-vs-discard in copy-on-write. gm:copy_on_write_retain detected this. Now fixed by adding new method to SkBaseDevice.h This reverts commit 27d07f0acb85eea4062075dfbe9148ce12d92c66. BUG=skia:6214 Change-Id: I532d16ec075a4525c2a550b1157bcec695dd8efd Reviewed-on: https://skia-review.googlesource.com/9341 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Revert "Revert "Revert "Revert[2] "Remove SkDraw from device-draw methods, ↵Gravatar Mike Reed2017-03-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and enable device-centric clipping.""""" This reverts commit 025e2444c1f5a0c3cdc0bf60d1fa59941a0b5db4. Reason for revert: layouttest failures -- need to rebase these (tiny diffs in gradients) https://storage.googleapis.com/chromium-layout-test-archives/linux_trusty_blink_rel/6018/layout-test-results/results.html Original change's description: > Revert "Revert "Revert[2] "Remove SkDraw from device-draw methods, and enable device-centric clipping."""" > > This reverts commit baf06bc89a0ee2ac4033281e7310f6c727faab79. > > Reason for revert: reland to diagnose possible g3 failure > > Original change's description: > > Revert "Revert[2] "Remove SkDraw from device-draw methods, and enable device-centric clipping.""" > > > > This reverts commit cfaa63237b152ae216f1351207bce3ea9808814c. > > > > Reason for revert: speculative revert to fix Google3 > > > > Original change's description: > > > Revert[2] "Remove SkDraw from device-draw methods, and enable device-centric clipping."" > > > > > > passes new (augmented) CanvasClipType unittest > > > fixed rasterclipstack::setnewsize > > > > > > This reverts commit ea5e676a7b75600edcde3912886486004ccd7626. > > > > > > BUG=skia: > > > > > > Change-Id: I004653e0f4d01454662f8516fccab0046486f273 > > > Reviewed-on: https://skia-review.googlesource.com/9185 > > > Reviewed-by: Brian Salomon <bsalomon@google.com> > > > Commit-Queue: Mike Reed <reed@google.com> > > > > > > > TBR=bsalomon@google.com,reed@google.com,reviews@skia.org > > NOPRESUBMIT=true > > NOTREECHECKS=true > > NOTRY=true > > BUG=skia: > > > > Change-Id: Ibd7ee6383999f008eb6ee59c1c3f1c06a86044ea > > Reviewed-on: https://skia-review.googlesource.com/9230 > > Reviewed-by: Cary Clark <caryclark@google.com> > > Commit-Queue: Cary Clark <caryclark@google.com> > > > > TBR=bsalomon@google.com,reviews@skia.org,caryclark@google.com,reed@google.com,mtklein@chromium.org > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=skia: > > Change-Id: I093fa8788056be39af01191bbf3a9e5de9f73954 > Reviewed-on: https://skia-review.googlesource.com/9244 > Reviewed-by: Mike Reed <reed@google.com> > Commit-Queue: Mike Reed <reed@google.com> > TBR=mtklein@chromium.org,bsalomon@google.com,reviews@skia.org,caryclark@google.com,reed@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Change-Id: I58f810a8ff241dbaf3133e2fe844548fcd0fa67a Reviewed-on: https://skia-review.googlesource.com/9245 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert "Revert "Revert[2] "Remove SkDraw from device-draw methods, and ↵Gravatar Mike Reed2017-03-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | enable device-centric clipping."""" This reverts commit baf06bc89a0ee2ac4033281e7310f6c727faab79. Reason for revert: reland to diagnose possible g3 failure Original change's description: > Revert "Revert[2] "Remove SkDraw from device-draw methods, and enable device-centric clipping.""" > > This reverts commit cfaa63237b152ae216f1351207bce3ea9808814c. > > Reason for revert: speculative revert to fix Google3 > > Original change's description: > > Revert[2] "Remove SkDraw from device-draw methods, and enable device-centric clipping."" > > > > passes new (augmented) CanvasClipType unittest > > fixed rasterclipstack::setnewsize > > > > This reverts commit ea5e676a7b75600edcde3912886486004ccd7626. > > > > BUG=skia: > > > > Change-Id: I004653e0f4d01454662f8516fccab0046486f273 > > Reviewed-on: https://skia-review.googlesource.com/9185 > > Reviewed-by: Brian Salomon <bsalomon@google.com> > > Commit-Queue: Mike Reed <reed@google.com> > > > > TBR=bsalomon@google.com,reed@google.com,reviews@skia.org > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=skia: > > Change-Id: Ibd7ee6383999f008eb6ee59c1c3f1c06a86044ea > Reviewed-on: https://skia-review.googlesource.com/9230 > Reviewed-by: Cary Clark <caryclark@google.com> > Commit-Queue: Cary Clark <caryclark@google.com> > TBR=bsalomon@google.com,reviews@skia.org,caryclark@google.com,reed@google.com,mtklein@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Change-Id: I093fa8788056be39af01191bbf3a9e5de9f73954 Reviewed-on: https://skia-review.googlesource.com/9244 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert "Revert[2] "Remove SkDraw from device-draw methods, and enable ↵Gravatar Cary Clark2017-03-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | device-centric clipping.""" This reverts commit cfaa63237b152ae216f1351207bce3ea9808814c. Reason for revert: speculative revert to fix Google3 Original change's description: > Revert[2] "Remove SkDraw from device-draw methods, and enable device-centric clipping."" > > passes new (augmented) CanvasClipType unittest > fixed rasterclipstack::setnewsize > > This reverts commit ea5e676a7b75600edcde3912886486004ccd7626. > > BUG=skia: > > Change-Id: I004653e0f4d01454662f8516fccab0046486f273 > Reviewed-on: https://skia-review.googlesource.com/9185 > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Mike Reed <reed@google.com> > TBR=bsalomon@google.com,reed@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Change-Id: Ibd7ee6383999f008eb6ee59c1c3f1c06a86044ea Reviewed-on: https://skia-review.googlesource.com/9230 Reviewed-by: Cary Clark <caryclark@google.com> Commit-Queue: Cary Clark <caryclark@google.com>
* Revert[2] "Remove SkDraw from device-draw methods, and enable device-centric ↵Gravatar Mike Reed2017-03-03
| | | | | | | | | | | | | | | | clipping."" passes new (augmented) CanvasClipType unittest fixed rasterclipstack::setnewsize This reverts commit ea5e676a7b75600edcde3912886486004ccd7626. BUG=skia: Change-Id: I004653e0f4d01454662f8516fccab0046486f273 Reviewed-on: https://skia-review.googlesource.com/9185 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert "Remove SkDraw from device-draw methods, and enable device-centric ↵Gravatar Mike Reed2017-03-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | clipping." This reverts commit c77e33f73d3e86cfabf925d6f2e1166f81022575. Reason for revert: breaks isClipRect - this CL inspected the conservative clip for this, which is (by definition) a rect - probably need to query the device for this info Original change's description: > Remove SkDraw from device-draw methods, and enable device-centric clipping. > > BUG=skia:6214 > > Change-Id: I593900724310d09133ae4791ef68d38c43762fc2 > Reviewed-on: https://skia-review.googlesource.com/8806 > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Mike Reed <reed@google.com> > TBR=bsalomon@google.com,halcanary@google.com,msarett@google.com,robertphillips@google.com,fmalita@chromium.org,reed@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:6214 Change-Id: I9090cbbb9f45b2dd204d9fdc187de2ff714b93f6 Reviewed-on: https://skia-review.googlesource.com/9172 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Remove SkDraw from device-draw methods, and enable device-centric clipping.Gravatar Mike Reed2017-03-02
| | | | | | | | | BUG=skia:6214 Change-Id: I593900724310d09133ae4791ef68d38c43762fc2 Reviewed-on: https://skia-review.googlesource.com/8806 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Mike Reed <reed@google.com>
* SkPDF: Stop using SkRasterClip/SkRegionGravatar Hal Canary2017-02-23
| | | | | | | | | All test PDFs render the same now. Change-Id: Ia912fd3adc1e1285cbd27f6deb5861df8396e44d Reviewed-on: https://skia-review.googlesource.com/8906 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* SkPDF: stop using RasterClip for drawAnnotation()Gravatar Hal Canary2017-02-22
| | | | | | | Change-Id: Idc3a4151f1b6bd3cb11b59e39ddb1458af385035 Reviewed-on: https://skia-review.googlesource.com/8891 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* SkPDF: do not use SkRegion in populateGraphicStateEntryFromPaint()Gravatar Hal Canary2017-02-22
| | | | | | | Change-Id: I3eb192426f5b648fe7ad7db3c8dac42771be0197 Reviewed-on: https://skia-review.googlesource.com/8893 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* SkPDF: use RasterClip and Region less.Gravatar Hal Canary2017-02-22
| | | | | | | | | | | | * GraphicStackState::updateClip() uses device bounds, not region bounds * SkPDFDevice::handleInversePath() uses clipstack, not rasterclip Rendered PDF Changes: unnoticable. Change-Id: Ibf9c169a5ada828c8fefedf2bcb37f6de34f3528 Reviewed-on: https://skia-review.googlesource.com/8885 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* remove device field from SkDrawGravatar Mike Reed2017-02-22
| | | | | | | | | BUG=skia:6214 Change-Id: I5d57feb3e92f2c1691231c982e74020560febeca Reviewed-on: https://skia-review.googlesource.com/8837 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* SkClipStack: add bounds() and isEmpty() methodsGravatar Hal Canary2017-02-22
| | | | | | | | | Also: update some of SkPDF to use these rather than the RasterClip. Change-Id: I5a2564d2269c145135df6a8eda65ab05e4aeaf14 Reviewed-on: https://skia-review.googlesource.com/8159 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* initial clean up of pdf clippingGravatar Mike Reed2017-02-21
| | | | | | | | | | | clipstack is always available, canvas checks for empty clips up-front Next step is to clarify if PDF wants to use Regions or Clipstack for its clipping (but not both) Change-Id: Iaf1fa35160291e08c33ff61114557deff72304b3 Reviewed-on: https://skia-review.googlesource.com/8692 Reviewed-by: Hal Canary <halcanary@google.com> Commit-Queue: Mike Reed <reed@google.com>
* SkScalarMul is deprecatedGravatar Mike Reed2017-02-14
| | | | | | | | | BUG=skia: Change-Id: I88ecfe9d4c72506f6b1a0e0dfadd2a5c171a6cb6 Reviewed-on: https://skia-review.googlesource.com/8353 Commit-Queue: Ben Wagner <bungeman@google.com> Reviewed-by: Ben Wagner <bungeman@google.com>
* SkPDF: skip shader lookup for SkShader::kColor_GradientTypeGravatar Hal Canary2017-02-13
| | | | | | | | | | | | Also: SkPDFShader::State isi now zero-initilized. No change in PDF tests. BUG=chromium:690875 Change-Id: Ibc56cc9435362733adf50cbb51b11c9413572e7f Reviewed-on: https://skia-review.googlesource.com/8355 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Hal Canary <halcanary@google.com>
* SkPDF: better tolerance path conversion to quadraticsGravatar Hal Canary2017-02-13
| | | | | | | | | BUG=chromium:691386 Change-Id: I2cb9be7dd606b2ba61ff609f9fd81a55655901f6 Reviewed-on: https://skia-review.googlesource.com/8381 Commit-Queue: Hal Canary <halcanary@google.com> Reviewed-by: Ben Wagner <bungeman@google.com> Reviewed-by: Cary Clark <caryclark@google.com>
* Revert "move SkDevice.h and SkBitmapDevice.h contents in to src headers"Gravatar Mike Reed2017-01-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 2f719a6b9214997e4cc24646d4b280038962b836. Reason for revert: <INSERT REASONING HERE> swf/transform/jsrunner/swiffy_canvas.h caller included SkDevice.h, but really wanted SkBitmap and SkColor Original change's description: > move SkDevice.h and SkBitmapDevice.h contents in to src headers > > BUG=skia: > > Change-Id: I3d8d313f0500c13db21cb973fed4064ec3816912 > Reviewed-on: https://skia-review.googlesource.com/7082 > Reviewed-by: Florin Malita <fmalita@chromium.org> > Commit-Queue: Mike Reed <reed@google.com> > TBR=bungeman@google.com,fmalita@chromium.org,reed@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Change-Id: I40f7f1e4ad62685facdd39492da7a0b105178221 Reviewed-on: https://skia-review.googlesource.com/7087 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Mike Reed <reed@google.com>
* move SkDevice.h and SkBitmapDevice.h contents in to src headersGravatar Mike Reed2017-01-13
| | | | | | | | | BUG=skia: Change-Id: I3d8d313f0500c13db21cb973fed4064ec3816912 Reviewed-on: https://skia-review.googlesource.com/7082 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* SkUTF8_CountUnichars(s,l) and SkUTF8_NextUnichar(s,l) now safe.Gravatar Hal Canary2017-01-11
| | | | | | | | | | | | | Theory: We will accept blobs of data as utf-8 text without validation, but when it comes time to process it: count code poits or convert to code points, be careful to check for errors. TODO: SkTypeface::charsToGlyphs() needs to take a length. Change-Id: Id8110ab43dbffce96faffdda1e0bdaa39cad40e4 Reviewed-on: https://skia-review.googlesource.com/6849 Commit-Queue: Hal Canary <halcanary@google.com> Reviewed-by: Herb Derby <herb@google.com>