aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm/imageblur.cpp
Commit message (Collapse)AuthorAge
* add drawString helper to canvasGravatar Cary Clark2017-04-28
| | | | | | | | | | | | | | | | | | Many tests and examples use drawText with a guess of how long the text is in bytes, or a call to strlen(). Add a helper to SkCanvas to simplify these examples. Add another helper for SkString. R=reed@google.com Change-Id: I0204a31e938f065606f08ee7cd9a6b36db791ee2 Reviewed-on: https://skia-review.googlesource.com/13642 Commit-Queue: Cary Clark <caryclark@google.com> Reviewed-by: Cary Clark <caryclark@google.com> Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Cary Clark <caryclark@skia.org>
* GM: some header cleanupGravatar Mike Klein2017-03-22
| | | | | | | | | | | | | | gm.h includes sk_tool_utils.h but does not use it. The bulk of this CL makes each gm that uses sk_tool_utils include it. sk_tool_utils.h also provided SkRandom and SkTDArray, so a couple GMs add those headers too. Change-Id: Ieb2a7c542f0ca89c3223f744fc11b0ff37af36c1 Reviewed-on: https://skia-review.googlesource.com/10014 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Herb Derby <herb@google.com>
* Update SkBlurImageFilter to sk_spGravatar robertphillips2016-04-04
| | | | | | | | TBR=reed@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1852743002 Review URL: https://codereview.chromium.org/1852743002
* SkBlurImageFilter returns input when sigma = 0Gravatar xidachen2015-12-10
| | | | | | | | | | In the current implementation, a blur filter is always created even in the case when sigma.fX == 0 && sigma.fY == 0. This CL makes the blur filter return input in this case. BUG=568393 Review URL: https://codereview.chromium.org/1518643002
* GM: replace boilerplate with macrosGravatar halcanary2015-09-09
| | | | | | | | | | | I have verified locally that nothing draws differently. Motivation: * SK_SIMPLE_GM makes it easier to write a GM. * Reducing 1100 lines of code makes maintenance easier. * Simple GMs are easy to convert to Fiddles. Review URL: https://codereview.chromium.org/1333553002
* Style Change: NULL->nullptrGravatar halcanary2015-08-27
| | | | | | DOCS_PREVIEW= https://skia.org/?cl=1316233002 Review URL: https://codereview.chromium.org/1316233002
* rename portable_typeface_always to portable_typefaceGravatar caryclark2015-07-24
| | | | | | TBR=reed@google.com Review URL: https://codereview.chromium.org/1257773002
* make glyph_pos imageblur* largeglyphblur portableGravatar caryclark2015-07-16
| | | | | | R=reed@google.com,bungeman@google.com Review URL: https://codereview.chromium.org/1243493003
* C++11 override should now be supported by all of {bots,Chrome,Android,Mozilla}Gravatar mtklein2015-03-25
| | | | | | | | | NOPRESUBMIT=true BUG=skia: DOCS_PREVIEW= https://skia.org/?cl=1037793002 Review URL: https://codereview.chromium.org/1037793002
* remove unused GM flagsGravatar mtklein2015-01-23
| | | | | | | | | | Depends on https://codereview.chromium.org/873753002/ Thumbs up to CLion for refactoring this for me. BUG=skia: Review URL: https://codereview.chromium.org/867963004
* Fix up all the easy virtual ... SK_OVERRIDE cases.Gravatar mtklein2015-01-09
| | | | | | | | | | | | This fixes every case where virtual and SK_OVERRIDE were on the same line, which should be the bulk of cases. We'll have to manually clean up the rest over time unless I level up in regexes. for f in (find . -type f); perl -p -i -e 's/virtual (.*)SK_OVERRIDE/\1SK_OVERRIDE/g' $f; end BUG=skia: Review URL: https://codereview.chromium.org/806653007
* Cleanup: More override fixes - another round.Gravatar tfarina2015-01-05
| | | | | | | | BUG=skia:3075 TEST=ninja -C out/Debug TBR=reed@google.com Review URL: https://codereview.chromium.org/831113002
* Add standard fonts to all GMs.Gravatar Cary Clark2014-07-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow GM results to be compared across machines and platforms by standardizing the fonts used by all tests. This adds runtime flags to DM to use either the system font context (the default), the fonts in the resources directory ( --resourceFonts ) or a set of canonical paths generated from the fonts ( --portableFonts ). This CL should leave the current DM results unchanged by default. If the portable font data or resource font is missing when DM is run, it falls back to using the system font context. The create_test_font tool generates the paths and metrics read by DM with the --portableFonts flag set, and generates the font substitution tables read by DM with the --resourceFonts flag set. If DM is run in SkDebug mode with the --reportUsedChars flag set, it generates the corresponding data compiled into the create_test_font tool. All GM tests set their typeface information by calling either sk_tool_utils::set_portable_typeface or sk_tool_utils::portable_typeface . (The former takes the paint, the latter returns a SkTypeface.) These calls can be removed in the future when the Font Manager can be superceded. BUG=skia:2687 R=mtklein@google.com Review URL: https://codereview.chromium.org/407183003
* Cleanup: Get rid of make_isize() function from gm.h.Gravatar tfarina2014-06-09
| | | | | | | | | | | | | | | This helper function is not necessary. The same thing can be achieved by using SkISize::Make() provided by SkTSize API. BUG=skia:2645 TEST=make dm && out/Debug/dm R=robertphillips@google.com, reed@google.com Author: tfarina@chromium.org Review URL: https://codereview.chromium.org/326523002
* Turn on quilt mode in DM.Gravatar commit-bot@chromium.org2014-04-30
| | | | | | | | | | | | | | | | | | - Rename TileGrid -> Quilt to avoid the name overload. - Tag all failing GMs with kSkipTiled_Flag. You may be wondering, do any GMs pass? Yes, some do! And that trends towards all of them as we increase --quiltTile. Two GMs only fail in --quilt mode in 565. Otherwise all GMs which fail are skipped, and those which don't fail aren't. (The 8888 variants of those two GMs are skipped even though they pass.) BUG=skia:2477 R=reed@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/256373002 git-svn-id: http://skia.googlecode.com/svn/trunk@14457 2bbb7eff-a529-9590-31e7-b0007b416f81
* Factory methods for heap-allocated SkImageFilter objects.Gravatar commit-bot@chromium.org2014-03-10
| | | | | | | | | | | | | | | | | | This is part of an effort to ensure that all SkPaint effects can only be allocated on the heap. This patch makes the constructors of SkImageFilter and its subclasses non-public and instead provides factory methods for creating these objects on the heap. We temporarily keep constructor of publicly visible classes public behind a flag. BUG=skia:2187 R=scroggo@google.com, mtklein@chromium.org, reed@google.com, senorblanco@google.com, senorblanco@chromium.org, bsalomon@google.com, sugoi@chromium.org, zork@chromium.org Author: dominikg@chromium.org Review URL: https://codereview.chromium.org/182983003 git-svn-id: http://skia.googlecode.com/svn/trunk@13718 2bbb7eff-a529-9590-31e7-b0007b416f81
* NEON fast path for box blurGravatar commit-bot@chromium.org2014-01-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Calculate 8 channels in parallel by using 16-bits to store each channel. Due to the limitation of VQRDMULH, (int16 * int16 * 2 + 0x8000) >> 16, the fast path can only support kernelSize < 128. 8 significant bits are kept at least in each stage, the final error should less-equal than 1. Pre-fetching memory for X-direction read. In fact pre-fetching memory doesn't help much for Y direction read, since it is a waste to load a cache line for only read 8 bytes.(I left it there to keep the symmetry. pre-fetch is cheap :) ) bench data on Nexus 10 before: running bench [640 480] blur_image_filter_large_10.00_10.00 8888: cmsecs = 25081.48 running bench [640 480] blur_image_filter_small_10.00_10.00 8888: cmsecs = 25038.04 running bench [640 480] blur_image_filter_large_1.00_1.00 8888: cmsecs = 25209.04 running bench [640 480] blur_image_filter_small_1.00_1.00 8888: cmsecs = 24928.01 running bench [640 480] blur_image_filter_large_0.00_1.00 8888: cmsecs = 17160.98 running bench [640 480] blur_image_filter_large_0.00_10.00 8888: cmsecs = 17924.11 running bench [640 480] blur_image_filter_large_1.00_0.00 8888: cmsecs = 14609.19 running bench [640 480] blur_image_filter_large_10.00_0.00 8888: cmsecs = 14625.91 after: running bench [640 480] blur_image_filter_large_10.00_10.00 8888: cmsecs = 14848.42 running bench [640 480] blur_image_filter_small_10.00_10.00 8888: cmsecs = 16037.29 running bench [640 480] blur_image_filter_large_1.00_1.00 8888: cmsecs = 14819.55 running bench [640 480] blur_image_filter_small_1.00_1.00 8888: cmsecs = 14563.69 running bench [640 480] blur_image_filter_large_0.00_1.00 8888: cmsecs = 11905.34 running bench [640 480] blur_image_filter_large_0.00_10.00 8888: cmsecs = 11883.85 running bench [640 480] blur_image_filter_large_1.00_0.00 8888: cmsecs = 9576.51 running bench [640 480] blur_image_filter_large_10.00_0.00 8888: cmsecs = 9793.84 BUG= R=senorblanco@chromium.org, mtklein@google.com, reed@google.com, kevin.petit@arm.com, kevin.petit.arm@gmail.com Author: zheng.xu@arm.com Review URL: https://codereview.chromium.org/105893003 git-svn-id: http://skia.googlecode.com/svn/trunk@13036 2bbb7eff-a529-9590-31e7-b0007b416f81
* text size is an SkScalar, Windows reminds me.Gravatar mtklein@google.com2013-09-16
| | | | | | | | | BUG= R=jvanverth@google.com Review URL: https://codereview.chromium.org/23967014 git-svn-id: http://skia.googlecode.com/svn/trunk@11297 2bbb7eff-a529-9590-31e7-b0007b416f81
* srand() + rand() -> SkRandomGravatar mtklein@google.com2013-09-16
| | | | | | | | | | | | rand() makes these two GMs thread-unsafe. When run concurrently they can interfere with each other. Use SkRandom instead to guarantee independence. BUG=skia:1590 R=jvanverth@google.com Review URL: https://codereview.chromium.org/24105003 git-svn-id: http://skia.googlecode.com/svn/trunk@11295 2bbb7eff-a529-9590-31e7-b0007b416f81
* Result of running tools/sanitize_source_files.py (which was added in ↵Gravatar rmistry@google.com2012-08-23
| | | | | | | | | https://codereview.appspot.com/6465078/) This CL is part II of IV (I broke down the 1280 files into 4 CLs). Review URL: https://codereview.appspot.com/6474054 git-svn-id: http://skia.googlecode.com/svn/trunk@5263 2bbb7eff-a529-9590-31e7-b0007b416f81
* Clean up the use of AutoScratchTexture in the gaussian blur and morphologyGravatar senorblanco@chromium.org2012-07-18
| | | | | | | | | | | | | | | | | | filters. Instead of passing in AutoScratchTextures for temporaries, we allocate them inside the function and detach() after rendering. Since the functions now return a ref()'ed texture, we no longer ref() the result in filter_texture(). Also, the imageblur gm was passing a paint with an image filter both to saveLayer()/restore(), and to every text draw call. Back when only restore() was applying filters, this was fine, but since we're now applying filters on all draw calls, this means we're double-blurring in this GM. I've reverted the Mac baselines for the imageblur GM to their previous versions; hopefully this will be correct. git-svn-id: http://skia.googlecode.com/svn/trunk@4659 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix miscellaneous compiler warnings from Visual Studio 2010.Gravatar tomhudson@google.com2012-04-10
| | | | | | | | | Changes serialization path for MorphologyImageFilter, handling of Windows HRESULTS; otherwise just tweaks tests. git-svn-id: http://skia.googlecode.com/svn/trunk@3642 2bbb7eff-a529-9590-31e7-b0007b416f81
* This change makes SkImageFilter and SkBlurImageFilter flattenable/unflattenable.Gravatar senorblanco@chromium.org2011-11-16
| | | | | | | | | The imageblur test also needed to stop calling getDeviceSize(), since it was returning 99999x99999 for the SkPicture case. git-svn-id: http://skia.googlecode.com/svn/trunk@2699 2bbb7eff-a529-9590-31e7-b0007b416f81
* Implement Gaussian blurs for images. The caller creates an anGravatar senorblanco@chromium.org2011-11-09
SkBlurImageFilter, sets it on an SkPaint, passes that paint to saveLayer(), draws the primitives which are to be blurred, then calls restore(), which applies the blur. The blurs have separate sizes in the horizontal and vertical direction. This feature is GPU-only for now. NB: Due to the clipping change, there are slight pixel differences on the blurs_gpu and shadows_gpu tests, so those will require rebaselining on all platforms, as will some of the WebKit layout tests (TBD). Review URL: http://codereview.appspot.com/5322068/ git-svn-id: http://skia.googlecode.com/svn/trunk@2643 2bbb7eff-a529-9590-31e7-b0007b416f81