aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/effects/SkDashPathEffect.cpp
Commit message (Collapse)AuthorAge
* limit the number of points in SkDashPathEffect::asPointsGravatar lsalzman2016-07-21
| | | | | | | | | | | | | | | | | | | If the length of a line path is sufficiently long relative to the dash interval, it is possible to cause SkDashPathEffect::asPoints to produce so many points that it overflows the amount that can fit in an int type, or otherwise produce non-finite values, i.e. path from (0,0) to (0,9e15) with a dash interval of 1. This fixes that by capping the amount of points to a sane limit - in this case, 1mil, since that limit is also used in utils/SkDashPath.cpp and has precedent. Downstream Firefox bug report: https://bugzilla.mozilla.org/show_bug.cgi?id=1287515 BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2165013002 Review-Url: https://codereview.chromium.org/2165013002
* change flattenable factory to return sk_spGravatar reed2016-04-03
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1855733002 Review URL: https://codereview.chromium.org/1855733002
* Reland of "switch patheffects over to sk_sp (patchset #5 id:80001 of ↵Gravatar reed2016-03-18
| | | | | | | | | | | | | https://codereview.chromium.org/1813553005/ )" This reverts commit f28ad894272018fd2855e3f77ea1236ea0cce1c0. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1813123003 TBR= Review URL: https://codereview.chromium.org/1813123003
* Revert of switch patheffects over to sk_sp (patchset #5 id:80001 of ↵Gravatar reed2016-03-18
| | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1813553005/ ) Reason for revert: some build breaks, possibly related to paint having to know what a patheffect is Original issue's description: > switch patheffects over to sk_sp > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1813553005 > > Committed: https://skia.googlesource.com/skia/+/9fbee18f691a0afed1e38a851048ce06063505ed TBR=caryclark@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1817543002
* switch patheffects over to sk_spGravatar reed2016-03-18
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1813553005 Review URL: https://codereview.chromium.org/1813553005
* allow one zero length dashGravatar caryclark2016-03-18
| | | | | | | | | | | | | | | | | | If the constructed stroke that represents a dash has a single dash of length zero, and the end cap is square or round, draw the cap. The old code initialized the initial dash length to zero, making it ambiguous whether the first length is zero or not. R=robertphillips@google.com BUG=583299 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1805963002 Committed: https://skia.googlesource.com/skia/+/5e1a24808415df2748822e8082e21a361362cdfe Review URL: https://codereview.chromium.org/1805963002
* Revert of allow one zero length dash (patchset #8 id:140001 of ↵Gravatar bungeman2016-03-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1805963002/ ) Reason for revert: Causes the dash bench to crash. Example crash: https://build.chromium.org/p/client.skia/builders/Perf-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release/builds/5581/steps/nanobench/logs/stdio Original issue's description: > allow one zero length dash > > If the constructed stroke that represents a dash has a > single dash of length zero, and the end cap is square or > round, draw the cap. > > The old code initialized the initial dash length to zero, > making it ambiguous whether the first length is zero or > not. > > R=robertphillips@google.com > BUG=583299 > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1805963002 > > Committed: https://skia.googlesource.com/skia/+/5e1a24808415df2748822e8082e21a361362cdfe TBR=robertphillips@google.com,reed@google.com,caryclark@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=583299 Review URL: https://codereview.chromium.org/1808303004
* allow one zero length dashGravatar caryclark2016-03-18
| | | | | | | | | | | | | | | | If the constructed stroke that represents a dash has a single dash of length zero, and the end cap is square or round, draw the cap. The old code initialized the initial dash length to zero, making it ambiguous whether the first length is zero or not. R=robertphillips@google.com BUG=583299 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1805963002 Review URL: https://codereview.chromium.org/1805963002
* fix misc asserts and checks found by fuzzerGravatar reed2016-02-22
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1719993002 Review URL: https://codereview.chromium.org/1719993002
* Revert of fix misc asserts and checks found by fuzzer (patchset #1 id:1 of ↵Gravatar ethannicholas2016-02-22
| | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1719913002/ ) Reason for revert: Looks to be causing failures in LayerTreeHostFilters* tests (https://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_ng/builds/177297/steps/cc_unittests%20%28with%20patch%29/logs/stdio). Original issue's description: > fix misc asserts and checks found by fuzzer > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1713383002 > > TBR= > > Committed: https://skia.googlesource.com/skia/+/653db51b440491b0fb1908bf5a43dcc89c90044d TBR=reed@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1721743002
* fix misc asserts and checks found by fuzzerGravatar reed2016-02-22
| | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1713383002 TBR= Review URL: https://codereview.chromium.org/1719913002
* Revert of ix misc asserts and checks found by fuzzer (patchset #1 id:1 of ↵Gravatar reed2016-02-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1723473002/ ) Reason for revert: need to not land the canvas change yet Original issue's description: > Reland of ix misc asserts and checks found by fuzzer (patchset #1 id:1 of https://codereview.chromium.org/1713413002/ ) > > Reason for revert: > deps instability seemingly fixed. trying again. > > Original issue's description: > > Revert of fix misc asserts and checks found by fuzzer (patchset #1 id:1 of https://codereview.chromium.org/1713383002/ ) > > > > Reason for revert: > > speculative deps-roll fix > > > > Original issue's description: > > > fix misc asserts and checks found by fuzzer > > > > > > BUG=skia: > > > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1713383002 > > > > > > TBR=robertphilips > > > > > > Committed: https://skia.googlesource.com/skia/+/00bea4ad310c4ec4dd95809b47ce3fbfa8fd0e1e > > > > TBR=robertphillips@google.com > > # Skipping CQ checks because original CL landed less than 1 days ago. > > NOPRESUBMIT=true > > NOTREECHECKS=true > > NOTRY=true > > BUG=skia: > > > > Committed: https://skia.googlesource.com/skia/+/d98ef6377269e3596423225ab922301ed40529a0 > > TBR=robertphillips@google.com > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/75a73297cb44c65a9efcf5f212854cb457140e34 TBR=robertphillips@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1723483002
* Reland of ix misc asserts and checks found by fuzzer (patchset #1 id:1 of ↵Gravatar reed2016-02-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1713413002/ ) Reason for revert: deps instability seemingly fixed. trying again. Original issue's description: > Revert of fix misc asserts and checks found by fuzzer (patchset #1 id:1 of https://codereview.chromium.org/1713383002/ ) > > Reason for revert: > speculative deps-roll fix > > Original issue's description: > > fix misc asserts and checks found by fuzzer > > > > BUG=skia: > > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1713383002 > > > > TBR=robertphilips > > > > Committed: https://skia.googlesource.com/skia/+/00bea4ad310c4ec4dd95809b47ce3fbfa8fd0e1e > > TBR=robertphillips@google.com > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/d98ef6377269e3596423225ab922301ed40529a0 TBR=robertphillips@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1723473002
* Revert of fix misc asserts and checks found by fuzzer (patchset #1 id:1 of ↵Gravatar reed2016-02-21
| | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1713383002/ ) Reason for revert: speculative deps-roll fix Original issue's description: > fix misc asserts and checks found by fuzzer > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1713383002 > > TBR=robertphilips > > Committed: https://skia.googlesource.com/skia/+/00bea4ad310c4ec4dd95809b47ce3fbfa8fd0e1e TBR=robertphillips@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1713413002
* fix misc asserts and checks found by fuzzerGravatar reed2016-02-20
| | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1713383002 TBR=robertphilips Review URL: https://codereview.chromium.org/1713383002
* Forward declare SkStrokeRec in SkPathEffectGravatar halcanary2015-09-15
| | | | Review URL: https://codereview.chromium.org/1312163008
* Style Change: NULL->nullptrGravatar halcanary2015-08-27
| | | | | | DOCS_PREVIEW= https://skia.org/?cl=1316233002 Review URL: https://codereview.chromium.org/1316233002
* Revert of Revert of stop calling SkScalarDiv (patchset #1 id:1 of ↵Gravatar reed2015-05-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1138263002/) Reason for revert: android patched, blink has rolled Original issue's description: > Revert of stop calling SkScalarDiv (patchset #4 id:60001 of https://codereview.chromium.org/1135053002/) > > Reason for revert: > need to wait for Blink roll (and patch android) > > Original issue's description: > > stop calling SkScalarDiv > > > > BUG=skia: > > TBR= > > > > Committed: https://skia.googlesource.com/skia/+/67d71c898249a7af3523b16c6a69895a63bfae0a > > TBR= > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/2629697933b5cc975e45d2a45c48f803fc6cbcec TBR= NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1135693003
* Revert of stop calling SkScalarDiv (patchset #4 id:60001 of ↵Gravatar reed2015-05-12
| | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1135053002/) Reason for revert: need to wait for Blink roll (and patch android) Original issue's description: > stop calling SkScalarDiv > > BUG=skia: > TBR= > > Committed: https://skia.googlesource.com/skia/+/67d71c898249a7af3523b16c6a69895a63bfae0a TBR= NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1138263002
* stop calling SkScalarDivGravatar reed2015-05-12
| | | | | | | BUG=skia: TBR= Review URL: https://codereview.chromium.org/1135053002
* Add patheffects to debugger printoutGravatar robertphillips2015-01-26
| | | | | | TBR=bsalomon@google.com Review URL: https://codereview.chromium.org/872043002
* improve cull, so we don't create empty segmentsGravatar reed2014-12-12
| | | | | | BUG=skia:3224 Review URL: https://codereview.chromium.org/798093002
* Remove SK_SUPPORT_LEGACY_DEEPFLATTENING.Gravatar mtklein2014-12-01
| | | | | | | | | | | | This was needed for pictures before v33, and we're now requiring v35+. Will follow up with the same for skia/ext/pixel_ref_utils_unittest.cc BUG=skia: Committed: https://skia.googlesource.com/skia/+/52c293547b973f7fb5de3c83f5062b07d759ab88 Review URL: https://codereview.chromium.org/769953002
* Revert of Remove SK_SUPPORT_LEGACY_DEEPFLATTENING. (patchset #1 id:1 of ↵Gravatar mtklein2014-12-01
| | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/769953002/) Reason for revert: Breaks canary builds. Will reland after the Chromium change lands. Original issue's description: > Remove SK_SUPPORT_LEGACY_DEEPFLATTENING. > > This was needed for pictures before v33, and we're now requiring v35+. > > Will follow up with the same for skia/ext/pixel_ref_utils_unittest.cc > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/52c293547b973f7fb5de3c83f5062b07d759ab88 TBR=reed@google.com,mtklein@chromium.org NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/768183002
* Remove SK_SUPPORT_LEGACY_DEEPFLATTENING.Gravatar mtklein2014-12-01
| | | | | | | | | | This was needed for pictures before v33, and we're now requiring v35+. Will follow up with the same for skia/ext/pixel_ref_utils_unittest.cc BUG=skia: Review URL: https://codereview.chromium.org/769953002
* Bump min picture version.Gravatar mtklein2014-12-01
| | | | | | | | | | | | | Chrome Stable is M39, which produces picture format v35: https://chromium.googlesource.com/skia/+/chrome/m39/include/core/SkPicture.h We don't need any code to deal with pictures older than v35. (When M40 goes stable, we can step up to v37, the current latest version.) BUG=skia: Review URL: https://codereview.chromium.org/770703002
* Bug fix for cull_line in SkDashPathEffect.Gravatar egdaniel2014-11-05
| | | | | | | | | | | In cull_line we must also check if both points are the same. Otherwise we fail the assert in the else "SkASSERT(dy && !dx)". This is currently blocking the roll as it fails a webkit test. BUG=skia: Review URL: https://codereview.chromium.org/703783002
* Crop the fast path dashed lines to the cull rectGravatar robertphillips2014-11-04
| | | | | | | | | | | | | | | | | | | | | | | Without: maxrss loops min median mean max stddev samples config bench 56M 1 13.3ms 13.6ms 13.6ms 14.2ms 2% Ooooo..... 8888 GM_dashing5_bw 56M 13 390us 417us 416us 459us 5% ooooO..o.o gpu GM_dashing5_bw 56M 1 13.4ms 13.9ms 14.1ms 15ms 3% Oooo..ooOo 8888 GM_dashing5_aa 56M 13 402us 421us 416us 425us 2% Ooo.ooOOOO gpu GM_dashing5_aa With: 40M 1 1.53ms 1.54ms 1.54ms 1.55ms 0% oo.O...o.. 8888 GM_dashing5_bw 40M 12 407us 412us 415us 445us 3% ...Oo..... gpu GM_dashing5_bw 40M 1 1.7ms 1.7ms 1.7ms 1.72ms 0% o.O....... 8888 GM_dashing5_aa 43M 13 405us 409us 409us 415us 1% ooo.Ooo..o gpu GM_dashing5_aa The GM images (including the new one) are the same with and without this CL. BUG=428296 Review URL: https://codereview.chromium.org/699623003
* "NULL !=" = NULLGravatar bsalomon2014-09-05
| | | | | | | | R=reed@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/544233002
* Simplify flattening to just write enough to call the ↵Gravatar reed2014-08-21
| | | | | | | | | | | | | | | | | | factory/public-constructor for the class. We want to *not* rely on private constructors, and not rely on calling through the inheritance hierarchy for either flattening or unflattening(CreateProc). Refactoring pattern: 1. guard the existing constructor(readbuffer) with the legacy build-flag 2. If you are a instancable subclass, implement CreateProc(readbuffer) to create a new instances from the buffer params (or return NULL). If you're a shader subclass 1. You must read/write the local matrix if your class accepts that in its factory/constructor, else ignore it. R=robertphillips@google.com, mtklein@google.com, senorblanco@google.com, senorblanco@chromium.org, sugoi@chromium.org Author: reed@google.com Review URL: https://codereview.chromium.org/395603002
* Always initialize SkDashPathEffect fields.Gravatar mtklein2014-07-09
| | | | | | | | | | | | | | | | | | | SkDashPathEffect is flattened into a hash key as part of the old-and-busted SkPicture paint deduping code. If all its fields aren't intialized, this hash will be based on uninitialized data. This means the hash won't be deterministic, and worse, Valgrind and MSAN will make us feel bad. An alternative to this is to have SkDashPath::CalcDashParameters always guarantee it writes something to all its output parameters, even when the dash intervals make no sense. I like it being dumb and its users defensive, but could go either way. BUG=391001 R=reed@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/379813004
* Move Dashing filterPath to a dashing utils fileGravatar egdaniel2014-06-11
| | | | | | | | | | | | | | | | From inside GrContext, we have a need to create an SkPath an original path and some dashing info. We do not have access to the original path effect so we need a way to make the FilterPath function accessible outside of the effect. So I moved the core filterPath code (and all need helper functions) out of SkDashPathEffect and created a SkDashPath in utils to store these helper functions. BUG=skia: Committed: https://skia.googlesource.com/skia/+/576dcdc793a762ec63fbecdbfd5768066b548fe5 Author: egdaniel@google.com Review URL: https://codereview.chromium.org/314623004
* Revert of Move Dashing filterPath to a dashing utils file ↵Gravatar egdaniel2014-06-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/314623004/) Reason for revert: Need to create utils.gypi file and update chrome Original issue's description: > Move Dashing filterPath to a dashing utils file > > From inside GrContext, we have a need to create an SkPath an original path and > some dashing info. We do not have access to the original path effect so we need > a way to make the FilterPath function accessible outside of the effect. So I moved > the core filterPath code (and all need helper functions) out of SkDashPathEffect > and created a SkDashPath in utils to store these helper functions. > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/576dcdc793a762ec63fbecdbfd5768066b548fe5 R=bsalomon@google.com, reed@google.com, rmistry@google.com TBR=bsalomon@google.com, reed@google.com, rmistry@google.com NOTREECHECKS=true NOTRY=true BUG=skia: Author: egdaniel@google.com Review URL: https://codereview.chromium.org/317663003
* Move Dashing filterPath to a dashing utils fileGravatar egdaniel2014-06-04
| | | | | | | | | | | | | | | From inside GrContext, we have a need to create an SkPath an original path and some dashing info. We do not have access to the original path effect so we need a way to make the FilterPath function accessible outside of the effect. So I moved the core filterPath code (and all need helper functions) out of SkDashPathEffect and created a SkDashPath in utils to store these helper functions. BUG=skia: R=bsalomon@google.com, reed@google.com, rmistry@google.com Author: egdaniel@google.com Review URL: https://codereview.chromium.org/314623004
* formalize named picture versionsGravatar commit-bot@chromium.org2014-05-20
| | | | | | | | | | | BUG=skia: R=mtklein@google.com, robertphillips@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/291913004 git-svn-id: http://skia.googlecode.com/svn/trunk@14807 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add check for bad dash interval in dash effect picture readGravatar commit-bot@chromium.org2014-05-13
| | | | | | | | | | | BUG=skia:2542 R=caryclark@google.com, reed@google.com Author: egdaniel@google.com Review URL: https://codereview.chromium.org/275053004 git-svn-id: http://skia.googlecode.com/svn/trunk@14708 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix Dash Effect readback calc for fPhase from old skpsGravatar commit-bot@chromium.org2014-05-07
| | | | | | | | | | | BUG=skia: R=reed@google.com, bsalomon@google.com Author: egdaniel@google.com Review URL: https://codereview.chromium.org/270223003 git-svn-id: http://skia.googlecode.com/svn/trunk@14620 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add asADash entry point into SkPathEffect to allow extracting Dash info from ↵Gravatar commit-bot@chromium.org2014-04-22
| | | | | | | | | | | | | PathEffects BUG=skia: R=bsalomon@google.com, reed@google.com Author: egdaniel@google.com Review URL: https://codereview.chromium.org/212103010 git-svn-id: http://skia.googlecode.com/svn/trunk@14297 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove scaleToFit from DashPathEffectGravatar commit-bot@chromium.org2014-03-31
| | | | | | | | | | | BUG=skia: R=reed@google.com, bsalomon@google.com, scroggo@google.com Author: egdaniel@google.com Review URL: https://codereview.chromium.org/216493005 git-svn-id: http://skia.googlecode.com/svn/trunk@13999 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix underlying issue causing crbug.com/348821.Gravatar commit-bot@chromium.org2014-03-07
| | | | | | | | | | | | | | | | SkDashPathEffect refuses to flatten itself if it thinks it's a no-op. This messes with the assumption that flattening a non-NULL effect and then unflattening from those bytes produces a non-NULL effect. I'd rather make that assumption always be true than save a few bytes for rare nonsense path effects. BUG=348821 R=reed@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/189643002 git-svn-id: http://skia.googlecode.com/svn/trunk@13701 2bbb7eff-a529-9590-31e7-b0007b416f81
* Refactor read and write buffers.Gravatar commit-bot@chromium.org2014-01-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Eliminates SkFlattenable{Read,Write}Buffer, promoting SkOrdered{Read,Write}Buffer a step each in the hierarchy. What used to be this: SkFlattenableWriteBuffer -> SkOrderedWriteBuffer SkFlattenableReadBuffer -> SkOrderedReadBuffer SkFlattenableReadBuffer -> SkValidatingReadBuffer is now SkWriteBuffer SkReadBuffer -> SkValidatingReadBuffer Benefits: - code is simpler, names are less wordy - the generic SkFlattenableFooBuffer code in SkPaint was incorrect; removed - write buffers are completely devirtualized, important for record speed This refactoring was mostly mechanical. You aren't going to find anything interesting in files with less than 10 lines changed. BUG=skia: R=reed@google.com, scroggo@google.com, djsollen@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/134163010 git-svn-id: http://skia.googlecode.com/svn/trunk@13245 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fixed more fuzzer issuesGravatar commit-bot@chromium.org2013-12-17
| | | | | | | | | | | | | | | | - Added the "isAvailable" function to check how much bytes are remaining in the stream before doing potentially large mallocs. That way, we can signal a bad stream instead of crashing. - Added data validation in SkImageInfo.cpp - Added NULL pointer check in displacement - Modified the fuzzer for randomized bitmap types BUG=328934,329254 R=senorblanco@google.com, senorblanco@chromium.org, reed@google.com, sugoi@google.com Author: sugoi@chromium.org Review URL: https://codereview.chromium.org/116773002 git-svn-id: http://skia.googlecode.com/svn/trunk@12723 2bbb7eff-a529-9590-31e7-b0007b416f81
* deprecate SkScalarRound (and its ilk), use SkScalarRound[ToInt,ToScalar]. ↵Gravatar reed@google.com2013-12-17
| | | | | | | | | | | #define SK_SUPPORT_DEPRECATED_SCALARROUND for legacy clients BUG= R=robertphillips@google.com Review URL: https://codereview.chromium.org/111353003 git-svn-id: http://skia.googlecode.com/svn/trunk@12719 2bbb7eff-a529-9590-31e7-b0007b416f81
* Adding size parameter to read array functionsGravatar commit-bot@chromium.org2013-10-31
| | | | | | | | | | | | | | | | | | | In some cases, the allocated array into which the data will be read is using getArrayCount() to allocate itself, which should be safe, but some cases use fixed length arrays or compute the array size before reading, which could overflow if the stream is compromised. To prevent that from happening, I added a check that will verify that the number of bytes to read will not exceed the capacity of the input buffer argument passed to all the read...Array() functions. I chose to use the byte array for this initial version, so that "size" represents the same value across all read...Array() functions, but I could also use the element count, if it is preferred. Note : readPointArray and writePointArray are unused, so I could also remove them BUG= R=reed@google.com, mtklein@google.com, senorblanco@chromium.org Author: sugoi@chromium.org Review URL: https://codereview.chromium.org/37803002 git-svn-id: http://skia.googlecode.com/svn/trunk@12058 2bbb7eff-a529-9590-31e7-b0007b416f81
* Reverting revert of r11862 (Constify SkFlattenable::getFactory()) or ↵Gravatar robertphillips@google.com2013-10-21
| | | | | | reverting r11871. git-svn-id: http://skia.googlecode.com/svn/trunk@11876 2bbb7eff-a529-9590-31e7-b0007b416f81
* Reverted due to Chromium compilation failures. Please see:Gravatar robertphillips@google.com2013-10-20
| | | | | | | | https://codereview.chromium.org/30973002/ git-svn-id: http://skia.googlecode.com/svn/trunk@11871 2bbb7eff-a529-9590-31e7-b0007b416f81
* Constify SkFlattenable::getFactory().Gravatar commit-bot@chromium.org2013-10-18
| | | | | | | | | | | | | | This allows us to also constify the argument of SkFlattenableWriteBuffer::writeFlattenable() - which I've recently found myself const-casting for no apparent good reason. R=bungeman@google.com, mtklein@google.com, reed@google.com Author: fmalita@chromium.org Review URL: https://codereview.chromium.org/29143005 git-svn-id: http://skia.googlecode.com/svn/trunk@11862 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add special handling of rectori case for gpuGravatar robertphillips@google.com2013-05-17
| | | | | | | | https://codereview.chromium.org/15080010/ git-svn-id: http://skia.googlecode.com/svn/trunk@9175 2bbb7eff-a529-9590-31e7-b0007b416f81
* remove obsolete build flags:Gravatar reed@google.com2013-02-22
| | | | | | | | | | | | | SK_IGNORE_TRANS_CLAMP_FIX SK_IGNORE_1XN_BITMAP_OPT SK_IGNORE_CLIP_BUG_FIX SK_IGNORE_FAST_SCALEMATRIX_INVERT SK_IGNORE_QUAD_STROKE_FIX SK_IGNORE_MULTIPLY_XFERMODE_OPT SK_IGNORE_LARGE_DASH_OPT Review URL: https://codereview.appspot.com/7381050 git-svn-id: http://skia.googlecode.com/svn/trunk@7829 2bbb7eff-a529-9590-31e7-b0007b416f81
* Start addressing the clang static analyzer issuesGravatar robertphillips@google.com2013-01-30
| | | | | | | | https://codereview.appspot.com/7249043/ git-svn-id: http://skia.googlecode.com/svn/trunk@7469 2bbb7eff-a529-9590-31e7-b0007b416f81