aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkDistanceFieldGen.cpp
Commit message (Collapse)AuthorAge
* SkTypes.h : move SkAutoMalloc into SkAutoMalloc.hGravatar Hal Canary2017-01-11
| | | | | | | | | | | | | | | | * SkAutoFree moved to SkTemplates.h (now implmented with unique_ptr). * SkAutoMalloc and SkAutoSMalloc moved to SkAutoMalloc.h * "SkAutoFree X(sk_malloc_throw(N));" --> "SkAutoMalloc X(N);" Revert "Revert 'SkTypes.h : move SkAutoMalloc into SkAutoMalloc.h'" This reverts commit c456b73fef9589bbdc5eb83eaa83e53c357bb3da. Change-Id: Ie2c1a17c20134b8ceab85a68b3ae3e61c24fbaab Reviewed-on: https://skia-review.googlesource.com/6886 Reviewed-by: Hal Canary <halcanary@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Revert "SkTypes.h : move SkAutoMalloc into SkAutoMalloc.h"Gravatar Kevin Lubick2017-01-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit a5494f117086d712855e4b6289c58c92d1549bcf. Reason for revert: Broke Google3 Original change's description: > SkTypes.h : move SkAutoMalloc into SkAutoMalloc.h > > * SkAutoFree moved to SkTemplates.h (now implmented with unique_ptr). > > * SkAutoMalloc and SkAutoSMalloc moved to SkAutoMalloc.h > > * "SkAutoFree X(sk_malloc_throw(N));" --> "SkAutoMalloc X(N);" > > Change-Id: Idacd86ca09e22bf092422228599ae0d9bedded88 > Reviewed-on: https://skia-review.googlesource.com/4543 > Reviewed-by: Ben Wagner <bungeman@google.com> > Reviewed-by: Mike Reed <reed@google.com> > Commit-Queue: Hal Canary <halcanary@google.com> > TBR=halcanary@google.com,bungeman@google.com,reed@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: Ie8bd176121c3ee83c110d66c0d0ac65e09bfc9c5 Reviewed-on: https://skia-review.googlesource.com/6884 Commit-Queue: Kevin Lubick <kjlubick@google.com> Reviewed-by: Kevin Lubick <kjlubick@google.com>
* SkTypes.h : move SkAutoMalloc into SkAutoMalloc.hGravatar Hal Canary2017-01-11
| | | | | | | | | | | | | | * SkAutoFree moved to SkTemplates.h (now implmented with unique_ptr). * SkAutoMalloc and SkAutoSMalloc moved to SkAutoMalloc.h * "SkAutoFree X(sk_malloc_throw(N));" --> "SkAutoMalloc X(N);" Change-Id: Idacd86ca09e22bf092422228599ae0d9bedded88 Reviewed-on: https://skia-review.googlesource.com/4543 Reviewed-by: Ben Wagner <bungeman@google.com> Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* chmod -x *.cpp *.hGravatar Hal Canary2016-10-27
| | | | | | | Change-Id: I5b37499505e26e0837921292c1aea0056e4d5ecd Reviewed-on: https://skia-review.googlesource.com/4035 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Remove some useless declarationsGravatar sylvestre.ledru2016-09-01
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2270613003 Review-Url: https://codereview.chromium.org/2270613003
* Use ARM fixes for SDF encoding.Gravatar jvanverth2016-02-24
| | | | | | | | This pulls out the encoding fixes by Joel Liang from https://codereview.chromium.org/1643143002/ GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1726763002 Review URL: https://codereview.chromium.org/1726763002
* Revert of sdf: use linear edge distance approximation for all gradient ↵Gravatar mtklein2016-01-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | directions (patchset #1 id:1 of https://codereview.chromium.org/1545893003/ ) Reason for revert: breaks roll? https://build.chromium.org/p/tryserver.blink/builders/linux_blink_rel/builds/81753 Original issue's description: > sdf: use linear edge distance approximation for all gradient directions > > Image diff tools tell me there are diffs, but I sure can't see them. > This drops edge_distance() off the chart as far as CPU cost goes. > > BUG=skia:4729 > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1545893003 > > Committed: https://skia.googlesource.com/skia/+/8a87bb4d5c23da83ef406ef87b470afa4217d7a4 TBR=jvanverth@google.com,bsalomon@google.com,reed@google.com,mtklein@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:4729 Review URL: https://codereview.chromium.org/1603953005
* sdf: use linear edge distance approximation for all gradient directionsGravatar mtklein2016-01-19
| | | | | | | | | | Image diff tools tell me there are diffs, but I sure can't see them. This drops edge_distance() off the chart as far as CPU cost goes. BUG=skia:4729 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1545893003 Review URL: https://codereview.chromium.org/1545893003
* df generation: single allocation with callocGravatar mtklein2016-01-05
| | | | | | | | | | | | | | | | | | | The dfStorage DFData allocation can never fit in its stack space: 5px padding on each side always implies at least a 10x10 DFData allocation, but the stack space only fits 64 DFData. So we've always been spilling to the heap. If we're going to spill to the heap, we might as well allocate/free all our temporary memory in one block, and since we want it zeroed, might as well calloc. So in practice this replaces 1-2 malloc, 1-2 free, and 2 bzeros with 1 calloc and 1 free. BUG=skia:4729 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1544983004 Committed: https://skia.googlesource.com/skia/+/12204d90337656542a42fa0fcccb7bec13af0cce CQ_EXTRA_TRYBOTS=client.skia.android:Test-Android-GCC-Nexus6-GPU-Adreno420-Arm7-Release-Trybot Review URL: https://codereview.chromium.org/1544983004
* Revert of df generation: single allocation with calloc (patchset #2 id:20001 ↵Gravatar mtklein2016-01-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of https://codereview.chromium.org/1544983004/ ) Reason for revert: Crashing multiple bots, e.g. https://uberchromegw.corp.google.com/i/client.skia.android/builders/Perf-Android-GCC-Nexus7-GPU-Tegra3-Arm7-Release/builds/3525 Original issue's description: > df generation: single allocation with calloc > > The dfStorage DFData allocation can never fit in its stack space: 5px padding on each side always implies at least a 10x10 DFData allocation, but the stack space only fits 64 DFData. > > So we've always been spilling to the heap. > > If we're going to spill to the heap, we might as well allocate/free all our temporary memory in one block, and since we want it zeroed, might as well calloc. > > So in practice this replaces 1-2 malloc, 1-2 free, and 2 bzeros with 1 calloc and 1 free. > > > BUG=skia:4729 > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1544983004 > > Committed: https://skia.googlesource.com/skia/+/12204d90337656542a42fa0fcccb7bec13af0cce TBR=jvanverth@google.com,mtklein@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:4729 Review URL: https://codereview.chromium.org/1556263002
* df generation: single allocation with callocGravatar mtklein2016-01-04
| | | | | | | | | | | | | | | The dfStorage DFData allocation can never fit in its stack space: 5px padding on each side always implies at least a 10x10 DFData allocation, but the stack space only fits 64 DFData. So we've always been spilling to the heap. If we're going to spill to the heap, we might as well allocate/free all our temporary memory in one block, and since we want it zeroed, might as well calloc. So in practice this replaces 1-2 malloc, 1-2 free, and 2 bzeros with 1 calloc and 1 free. BUG=skia:4729 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1544983004 Review URL: https://codereview.chromium.org/1544983004
* More win64 warning fixesGravatar bsalomon2014-12-12
| | | | Review URL: https://codereview.chromium.org/798723002
* "NULL !=" = NULLGravatar bsalomon2014-09-05
| | | | | | | | R=reed@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/544233002
* fix warnings around size_t/intGravatar commit-bot@chromium.org2014-04-19
| | | | | | | | | | | | fix warnings around undeclared (non-static) functions TBR=bsalomon@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/242643008 git-svn-id: http://skia.googlecode.com/svn/trunk@14267 2bbb7eff-a529-9590-31e7-b0007b416f81
* Move distance field generation to the glyph cache.Gravatar commit-bot@chromium.org2014-04-14
| | | | | | | | | | | | | | Distance fields are currently created in GrTextStrike, which is the wrong place. This moves that to the glyph cache where it belongs. As part of my testing, I found that when we fall back to paths in the GrDistanceFieldTextContext it was not scaling them properly, so that's fixed in here too. R=robertphillips@google.com, reed@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/227593010 git-svn-id: http://skia.googlecode.com/svn/trunk@14193 2bbb7eff-a529-9590-31e7-b0007b416f81
* Distance field fixes for AndroidGravatar commit-bot@chromium.org2014-03-26
| | | | | | | | | | | | | | | | | | | | - Expand glyph size by 2 on each side to compensate for bilerp lookup - Correct for Adreno tendency to drop entire tile if any pixel has divide-by-0 - Fix blurriness on Adreno by using uv coords to compute gradient instead of st coords - Add faster version for uniform scale BUG=skia:2173 Committed: http://code.google.com/p/skia/source/detail?r=13955 R=bsalomon@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/205343008 git-svn-id: http://skia.googlecode.com/svn/trunk@13958 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert of Distance field fixes for Android ↵Gravatar commit-bot@chromium.org2014-03-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/205343008/) Reason for revert: compile error at line 110 in GrDistanceFieldTextureEffect.cpp Original issue's description: > Distance field fixes for Android > - Expand glyph size by 2 on each side to compensate for bilerp lookup > - Correct for Adreno tendency to drop entire tile if any pixel has divide-by-0 > - Fix blurriness on Adreno by using uv coords to compute gradient instead > of st coords > - Add faster version for uniform scale > > BUG=skia:2173 > > Committed: http://code.google.com/p/skia/source/detail?r=13955 R=bsalomon@google.com TBR=bsalomon@google.com NOTREECHECKS=true NOTRY=true BUG=skia:2173 Author: jvanverth@google.com Review URL: https://codereview.chromium.org/212953008 git-svn-id: http://skia.googlecode.com/svn/trunk@13956 2bbb7eff-a529-9590-31e7-b0007b416f81
* Distance field fixes for AndroidGravatar commit-bot@chromium.org2014-03-26
| | | | | | | | | | | | | | | | | - Expand glyph size by 2 on each side to compensate for bilerp lookup - Correct for Adreno tendency to drop entire tile if any pixel has divide-by-0 - Fix blurriness on Adreno by using uv coords to compute gradient instead of st coords - Add faster version for uniform scale BUG=skia:2173 R=bsalomon@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/205343008 git-svn-id: http://skia.googlecode.com/svn/trunk@13955 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2014-03-25
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@13928 2bbb7eff-a529-9590-31e7-b0007b416f81
* More distance field improvements:Gravatar commit-bot@chromium.org2014-03-24
| | | | | | | | | | | | | | | | | - Make sure we only use the 0,0 subpixel glyph - Copy image data into outsized buffer to ensure we capture outer edges - Change edge dump to blend better with original glyph - Edges are detected across >128 and <128 boundaries, or when there are two non-zero <128 pixels next to each other BUG=skia: R=robertphillips@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/208893003 git-svn-id: http://skia.googlecode.com/svn/trunk@13916 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2014-03-15
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@13820 2bbb7eff-a529-9590-31e7-b0007b416f81
* Get correct text metrics for distance fields, and fix dropouts due to thin ↵Gravatar commit-bot@chromium.org2014-03-14
| | | | | | | | | | | | | features. BUG=skia:2173 R=robertphillips@google.com, reed@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/200423003 git-svn-id: http://skia.googlecode.com/svn/trunk@13815 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2014-03-14
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@13800 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix distance field edge detection.Gravatar commit-bot@chromium.org2014-03-13
| | | | | | | | | | | | | | When computing the initial edges for distance field generation, I was skipping the outer pixels of glyphs to avoid accessing out of range memory. However, there might be an edge transition on those pixels. This detects those cases. R=robertphillips@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/197423003 git-svn-id: http://skia.googlecode.com/svn/trunk@13791 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2014-03-12
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@13755 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add new module for distance field generation.Gravatar commit-bot@chromium.org2014-03-11
| | | | | | | | | | | | | | | | This improves the speed over the previous method by 10x+, and makes using distance fields practical. BUG=skia:2173 Committed: http://code.google.com/p/skia/source/detail?r=13729 R=bsalomon@google.com, robertphillips@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/178543007 git-svn-id: http://skia.googlecode.com/svn/trunk@13740 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert of Add new module for distance field generation. ↵Gravatar commit-bot@chromium.org2014-03-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/178543007/) Reason for revert: multiple compile errors Original issue's description: > Add new module for distance field generation. > > This improves the speed over the previous method by 10x+, and makes using distance fields practical. > > BUG=skia:2173 > > Committed: http://code.google.com/p/skia/source/detail?r=13729 R=bsalomon@google.com, robertphillips@google.com, jvanverth@google.com TBR=bsalomon@google.com, jvanverth@google.com, robertphillips@google.com NOTREECHECKS=true NOTRY=true BUG=skia:2173 Author: halcanary@google.com Review URL: https://codereview.chromium.org/190753015 git-svn-id: http://skia.googlecode.com/svn/trunk@13732 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add new module for distance field generation.Gravatar commit-bot@chromium.org2014-03-10
This improves the speed over the previous method by 10x+, and makes using distance fields practical. BUG=skia:2173 R=bsalomon@google.com, robertphillips@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/178543007 git-svn-id: http://skia.googlecode.com/svn/trunk@13729 2bbb7eff-a529-9590-31e7-b0007b416f81