aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkCanvas.cpp
Commit message (Collapse)AuthorAge
* Remove SK_SAVE_LAYER_BOUNDS_ARE_FILTERED #define.Gravatar senorblanco2015-10-29
| | | | | | | | It's no longer used in Chrome. BUG=skbug:3194 Review URL: https://codereview.chromium.org/1422183008
* Protect apply_paint_to_bounds_sans_imagefilter() with an #ifdef.Gravatar senorblanco2015-10-28
| | | | | | | | | | Its only caller is protected by the same #ifdef. NOPRESUBMIT=true TBR=reed@google.com BUG=skia: Review URL: https://codereview.chromium.org/1404353010
* Change saveLayer() semantics to take unfiltered bounds.Gravatar senorblanco2015-10-28
| | | | | | | | | | | | | | | | | | | | | | | | | | For optimizing saveLayer() offscreens, it is useful to know the bounds of the primitive being drawn. Currently, the bounds passed to saveLayer() are filtered, which makes it difficult to know the original bounds of the primitive. This CL changes the semantics to accept unfiltered bounds. This actually simplifies the callsites too. In order to result in the correct pixels being produced, we then call computeFastBounds() inside clipRectBounds(). The old behaviour is wrapped in #ifdef SK_SAVE_LAYER_BOUNDS_ARE_FILTERED, until we can update Chrome's callsites (see https://codereview.chromium.org/1316243002/). This change will affect the following GMs: testimagefilters: saveLayer bounds no longer cause clipping imagefiltersbase: slight pixel diffs resizeimagefilter: slight pixel diffs on the "high quality" test case imagefilterscropexpand: displacement results are now correct filterfastbounds: slight pixel diffs matriximagefilter: slight pixel diffs BUG=skia:3194 skia:4526 Review URL: https://codereview.chromium.org/1304883004
* tunnel down texture-size-constraint to imagefiltersGravatar reed2015-10-22
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1421493003
* add applyFilter() to SkImageGravatar reed2015-10-12
| | | | | | | | | | | | | | | Result: - clients can get a filtered version of an image without having to setup a temp drawing environment - for some cases, the process is more efficient even than (deprecated) drawSprite, since there is no need to draw/copy the result Impl: - made Proxy virtual so we don't need to have an existing device to use it This, in conjunction with LocalMatrixImageFilter, should allow us to simplify and optimize ApplyImageFilter() in cc/output/gl_renderer.cc BUG=skia: Review URL: https://codereview.chromium.org/1390913005
* remove internalDrawBitmap, as it is no longer shared with any other caller, ↵Gravatar reed2015-10-08
| | | | | | | | and can be folded into onDrawBitmap BUG=skia: Review URL: https://codereview.chromium.org/1391333004
* Reland of more zero-length changes for svg compatibility (patchset #1 id:1 ↵Gravatar caryclark2015-09-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of https://codereview.chromium.org/1334543002/ ) Reason for revert: DEPS should be fixed now Original issue's description: > Revert of more zero-length changes for svg compatibility (patchset #6 id:100001 of https://codereview.chromium.org/1330623003/ ) > > Reason for revert: > breaks DEPS > > Original issue's description: > > more zero-length changes for svg compatibility > > > > If a path contains a moveTo followed by a line or curve, > > even if the line or curve has no length, SVG expects > > the end caps to draw if the cap style is round or square. > > > > Fredrik Söderquist attached a patch to the chrome bug > > (slightly modified here) that fixes layout test failures > > resulting from deleting special-case code in SVG > > dealing with zero-length path segments. > > > > R=reed@google.com,fs@opera.com > > BUG=22974 > > > > Committed: https://skia.googlesource.com/skia/+/62fb1ba1786863e545c89839b5706ad5151cec15 > > TBR=fs@opera.com,reed@google.com > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=22974 > > Committed: https://skia.googlesource.com/skia/+/5ca4fa3846067a47e88d35ace895df3ebe3ec2a5 TBR=fs@opera.com,reed@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=22974 Review URL: https://codereview.chromium.org/1314833004
* Revert of more zero-length changes for svg compatibility (patchset #6 ↵Gravatar caryclark2015-09-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | id:100001 of https://codereview.chromium.org/1330623003/ ) Reason for revert: breaks DEPS Original issue's description: > more zero-length changes for svg compatibility > > If a path contains a moveTo followed by a line or curve, > even if the line or curve has no length, SVG expects > the end caps to draw if the cap style is round or square. > > Fredrik Söderquist attached a patch to the chrome bug > (slightly modified here) that fixes layout test failures > resulting from deleting special-case code in SVG > dealing with zero-length path segments. > > R=reed@google.com,fs@opera.com > BUG=22974 > > Committed: https://skia.googlesource.com/skia/+/62fb1ba1786863e545c89839b5706ad5151cec15 TBR=fs@opera.com,reed@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=22974 Review URL: https://codereview.chromium.org/1334543002
* more zero-length changes for svg compatibilityGravatar caryclark2015-09-09
| | | | | | | | | | | | | | | | If a path contains a moveTo followed by a line or curve, even if the line or curve has no length, SVG expects the end caps to draw if the cap style is round or square. Fredrik Söderquist attached a patch to the chrome bug (slightly modified here) that fixes layout test failures resulting from deleting special-case code in SVG dealing with zero-length path segments. R=reed@google.com,fs@opera.com BUG=22974 Review URL: https://codereview.chromium.org/1330623003
* Style Change: NULL->nullptrGravatar halcanary2015-08-27
| | | | | | DOCS_PREVIEW= https://skia.org/?cl=1316233002 Review URL: https://codereview.chromium.org/1316233002
* Style Change: SkNEW->new; SkDELETE->deleteGravatar halcanary2015-08-26
| | | | | | DOCS_PREVIEW= https://skia.org/?cl=1316123003 Review URL: https://codereview.chromium.org/1316123003
* SkCanvas::onDrawPicture() quick-rejectGravatar fmalita2015-08-20
| | | | | | R=reed@google.com,mtklein@google.com Review URL: https://codereview.chromium.org/1264133003
* Use static_assert instead of SK_COMPILE_ASSERT.Gravatar bungeman2015-08-20
| | | | | | | Now that static_assert is allowed, there is no need to use a non- standard compile time assertion Review URL: https://codereview.chromium.org/1306443004
* Revert of SkCanvas::onDrawPicture() quick-reject (patchset #3 id:40001 of ↵Gravatar herb2015-08-19
| | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1264133003/ ) Reason for revert: Seems to be breaking some blink tests. https://storage.googleapis.com/chromium-layout-test-archives/linux_blink_rel/75812/layout-test-results/results.html Original issue's description: > SkCanvas::onDrawPicture() quick-reject > > R=reed@google.com,mtklein@google.com > > Committed: https://skia.googlesource.com/skia/+/48ed62b29d45e42b971aac8858da06781c93e6d7 > > Committed: https://skia.googlesource.com/skia/+/d3d07245e29504dbffa0083e84ace5bab85853d4 TBR=mtklein@google.com,reed@google.com,mtklein@chromium.org,fmalita@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1301973002
* SkCanvas::onDrawPicture() quick-rejectGravatar fmalita2015-08-19
| | | | | | | | R=reed@google.com,mtklein@google.com Committed: https://skia.googlesource.com/skia/+/48ed62b29d45e42b971aac8858da06781c93e6d7 Review URL: https://codereview.chromium.org/1264133003
* remove unneeded _DRAWIMAGERECT flagsGravatar reed2015-08-07
| | | | | | | BUG=skia: TBR= Review URL: https://codereview.chromium.org/1281123002
* flag to use const& instead of const* for src-rectGravatar reed2015-08-06
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1272713005
* IWYU: 'core' target, files starting A-C.Gravatar bungeman2015-08-05
| | | | | | | | | TBR=reed@google.com Verbal lgtm, does not change API. Committed: https://skia.googlesource.com/skia/+/7403d87db8e43d4c2b5b25ac22a0ebc22bd09d69 Review URL: https://codereview.chromium.org/1265033002
* Revert of IWYU: 'core' target, files starting A-C. (patchset #5 id:80001 of ↵Gravatar reed2015-08-04
| | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1265033002/ ) Reason for revert: revert to unblock DEPS roll ../../chrome/browser/chromeos/display/overscan_calibrator.cc:43:10: error: variable has incomplete type 'SkPath' SkPath base_path; Original issue's description: > IWYU: 'core' target, files starting A-C. > > TBR=reed@google.com > Verbal lgtm, does not change API. > > Committed: https://skia.googlesource.com/skia/+/7403d87db8e43d4c2b5b25ac22a0ebc22bd09d69 TBR=reed@google.com,mtklein@google.com,bungeman@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1273613002
* IWYU: 'core' target, files starting A-C.Gravatar bungeman2015-08-04
| | | | | | | TBR=reed@google.com Verbal lgtm, does not change API. Review URL: https://codereview.chromium.org/1265033002
* Revert of SkCanvas::onDrawPicture() quick-reject (patchset #3 id:40001 of ↵Gravatar mtklein2015-08-03
| | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1264133003/ ) Reason for revert: webkit_unit_tests :( Original issue's description: > SkCanvas::onDrawPicture() quick-reject > > R=reed@google.com,mtklein@google.com > > Committed: https://skia.googlesource.com/skia/+/48ed62b29d45e42b971aac8858da06781c93e6d7 TBR=reed@google.com,fmalita@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1273433002
* SkCanvas::onDrawPicture() quick-rejectGravatar fmalita2015-08-03
| | | | | | R=reed@google.com,mtklein@google.com Review URL: https://codereview.chromium.org/1264133003
* remove all guards for changes to drawBitmapRect / drawImageRectGravatar reed2015-07-28
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1239193002
* Fix SkCanvas::wouldOverwriteEntireSurface() contains testGravatar fmalita2015-07-22
| | | | | | R=reed@google.com,robertphillips@google.com,bsalomon@google.com Review URL: https://codereview.chromium.org/1244093005
* Revert[2] of guard to remove DrawBitmapRectFlagsGravatar reed2015-07-17
| | | | | | | | | This reverts commit 91110195a2eee170c11885da9d16f94b00a39f87. BUG=skia: TBR= Review URL: https://codereview.chromium.org/1240753003
* Revert of guard to remove DrawBitmapRectFlags (patchset #1 id:1 of ↵Gravatar scroggo2015-07-17
| | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1235393003/) Reason for revert: breaking android framework build Original issue's description: > guard to remove DrawBitmapRectFlags > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/6fb0b6779e40ce05c20cf279f0ecff31fa3cd60d TBR=fmalita@chromium.org,djsollen@google.com,reed@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1230823007
* have canvas send discard instead of retain if the draw would overwrite ↵Gravatar reed2015-07-16
| | | | | | | | | | | | everything Motivation: - perf win for clients that overwrite the surface after a snapshot. - may allow us to eliminate SkDeferredCanvas, as this was its primary advantage. BUG=skia: Review URL: https://codereview.chromium.org/1236023004
* guard to remove DrawBitmapRectFlagsGravatar reed2015-07-16
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1235393003
* add src-rect-constraint to drawImageRectGravatar reed2015-07-14
| | | | | | | | | | | Follow-on work - unify around SrcRectConstraint (i.e. drawBitmapRect) - remove silly drawBitmapRectToRect alias - clean-up (possibly remove) alias problems around drawBitmapRect + IRect parameter BUG=skia: Review URL: https://codereview.chromium.org/1228083004
* add matrix options to drawDrawableGravatar reed2015-07-07
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1224783002
* add drawImageNineGravatar reed2015-06-25
| | | | | | | | this also exposes nine-patch drawing directly to devices, and creates a shared iterator for unrolling a nine-patch into single rect->rect draws. BUG=skia: Review URL: https://codereview.chromium.org/1211583003
* add SkCanvas::drawAtlasGravatar reed2015-06-24
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1181913003
* Clean up usage of SkSurfacePropsGravatar robertphillips2015-06-22
| | | | | | | | | | | | This CL continues cleaning up Skia's usage of SkSurfaceProps. It: Removes the duplicate SkSurfaceProps object from SkImageFilter::Proxy. Removes a dispreferred ctor from SkCanvas Removes the initForRootLayer entry point from SkDevice (since the root device and the canvas should always have the same pixel geometry now). Review URL: https://codereview.chromium.org/1201983006
* Begin kLegacyFontHost_InitType cleanupGravatar robertphillips2015-06-22
| | | | | | | | | | | | | | | | | | This CL starts the process of pushing kLegacyFontHost_InitType-type SkSurfaceProps up the call stack and out of Skia. It: Gets rid of the default SkBaseDevice ctor. This means everyone has to always hand an explicit SkSurfaceProps to it. It makes public the SkBitmapDevice creation methods that require SkSurfaceProps. Removes (in Skia's code base) all SkBitmapDevice ctor calls w/o SkSurfaceProps. Makes the "recording" canvases (e.g., pdf, svg, xps) explicitly not use kLegacyFontHost_InitType. Replicates the creating canvas/device's flags on saveLayer devices BUG=skia:3934 Review URL: https://codereview.chromium.org/1204433002
* Rename all things "leaky" in SkDeviceGravatar robertphillips2015-06-19
| | | | Review URL: https://codereview.chromium.org/1198603002
* remove SkDevicePropertiesGravatar robertphillips2015-06-19
| | | | | | There is a lot more clean up to do here but this is probably a big enough bite. Review URL: https://codereview.chromium.org/1196683003
* Revert[2] SkDraw and all Blitters to use pixmap instead of bitmapiGravatar reed2015-06-09
| | | | | | | | This reverts commit b3f0ec9f9967da2f80f0d842cb7fd53617b48de3. BUG=skia: Review URL: https://codereview.chromium.org/1168303006
* remove subclassing from ImageFilter::ProxyGravatar reed2015-06-09
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1172693002
* Revert of change SkDraw and all Blitters to use pixmap instead of bitmap ↵Gravatar reed2015-06-08
| | | | | | | | | | | | | | | | | | | | | | (patchset #6 id:100001 of https://codereview.chromium.org/1148793007/) Reason for revert: speculative revert to try to unblock DEPS roll Original issue's description: > change SkDraw and all Blitters to use pixmap instead of bitmap > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/c31af44336f5eb4a50e83e76e51962d46c3ed458 TBR=scroggo@google.com,jvanverth@google.com,reed@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1164373003
* change SkDraw and all Blitters to use pixmap instead of bitmapGravatar reed2015-06-08
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1148793007
* Fallback bitmap devices should observe the computed pixel geometryGravatar fmalita2015-06-04
| | | | | | | | | | | When onCreateDevice() fails, internalSaveLayer() attempts to create a fallback bitmap device instead - but it ignores the computed pixel geometry in this case. BUG=496054 R=reed@google.com Review URL: https://codereview.chromium.org/1144153007
* don't use accessBitmapGravatar reed2015-05-26
| | | | | | | BUG=skia: TBR= Review URL: https://codereview.chromium.org/1154293002
* change internals over to SkPixmap and stop using accessBitmapGravatar reed2015-05-26
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1155443004
* deprecate calling lockPixelsGravatar reed2015-05-23
| | | | | | | BUG=skia: TBR= Review URL: https://codereview.chromium.org/1156003002
* Revert of antialias matrix-image-filter to get smooth diagonals (patchset #6 ↵Gravatar reed2015-05-15
| | | | | | | | | | | | | | | | | | | | | | id:80002 of https://codereview.chromium.org/1134743003/) Reason for revert: likely affect layouttests, so need to add a guard Original issue's description: > antialias matrix-image-filter to get smooth diagonals > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/fa33f5a6b770130acdc55f2ffe19dd545665726a TBR=senorblanco@google.com,robertphillips@google.com,bsalomon@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1128823010
* antialias matrix-image-filter to get smooth diagonalsGravatar reed2015-05-15
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1134743003
* Revert of Implement support for non-scale/translate CTM in image filters. ↵Gravatar reed2015-05-14
| | | | | | | | | | | | | | | | | | | | | | | | | | (patchset #4 id:60001 of https://codereview.chromium.org/1140943004/) Reason for revert: matriximagefilter needs to antialias its draw, so we get smooth diagonals... Original issue's description: > Implement support for non-scale/translate CTM in image filters. > > Clone with tweaks of https://codereview.chromium.org/986623003/ > > pre-cl to guard chrome here: https://codereview.chromium.org/1133403003/ > > BUG=skia:3288 > > Committed: https://skia.googlesource.com/skia/+/35786b176c159d2e7a816e9da9b051ef3129d5cb TBR=robertphillips@google.com,senorblanco@google.com,senorblanco@chromium.org,reed@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:3288 Review URL: https://codereview.chromium.org/1139173002
* Implement support for non-scale/translate CTM in image filters.Gravatar reed2015-05-14
| | | | | | | | | | Clone with tweaks of https://codereview.chromium.org/986623003/ pre-cl to guard chrome here: https://codereview.chromium.org/1133403003/ BUG=skia:3288 Review URL: https://codereview.chromium.org/1140943004
* Revert of Implement support for non-scale/translate CTM in image filters. ↵Gravatar reed2015-05-13
| | | | | | | | | | | | | | | | | | | | | | | | | (patchset #4 id:60001 of https://codereview.chromium.org/1120043002/) Reason for revert: don't reference layer after its deleted Original issue's description: > Implement support for non-scale/translate CTM in image filters. > > Implemented by extracting out the non-scale/translate components > and applying that post-filter as an SkMatrixImageFilter. > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/4f12b8bd2cb43daeffa4d1c53120ae94c5ccf486 TBR=robertphillips@google.com,senorblanco@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1128133005
* Implement support for non-scale/translate CTM in image filters.Gravatar reed2015-05-13
| | | | | | | | | Implemented by extracting out the non-scale/translate components and applying that post-filter as an SkMatrixImageFilter. BUG=skia: Review URL: https://codereview.chromium.org/1120043002