aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/core/SkImageGenerator.h
Commit message (Collapse)AuthorAge
* Enable generating SkImage with the same uniqueID in SkImageGenerator subclassGravatar aleksandar.stojiljkovic2016-05-02
| | | | | | | | | | | | | | | | | | | | | Enable reusing uniqueID when instantiating SkImageGenerator subclasses enables using uniqueID in client code to cache generated bitmaps with no need to keep the reference to SkImageGenerator. This is a bug fix for out of memory cause in chromium and 100% CPU usage described in issue 165750#13: - cache uses SkImage::uniqueID() to cache decoded bitmaps. - every animation loop creates new SkImage instances. - after decoding, bitmap copies are added to cache, filling it up with duplicates of previous loops frames. BUG=165750 Blink patch that depends on this: https://codereview.chromium.org/1925533003/ "High CPU and increased memory usage fix for high-res (GIF, WEBP...) animations." Review-Url: https://codereview.chromium.org/1928403002
* Update Skia's YUV APIGravatar msarett2016-03-10
| | | | | | | | | | | | | | We should match the recently designed API in SkCodec. https://codereview.chromium.org/1549473003/ This requires changes in Chromium as well. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1716523002 Committed: https://skia.googlesource.com/skia/+/095d31c8a0eeb5d491febf064bc3c8a44e22b94f Review URL: https://codereview.chromium.org/1716523002
* Revert of Update Skia's YUV API (patchset #5 id:160001 of ↵Gravatar msarett2016-03-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1716523002/ ) Reason for revert: Blimp failures with manual roll in Chrome. Original issue's description: > Update Skia's YUV API > > We should match the recently designed API in SkCodec. > https://codereview.chromium.org/1549473003/ > > This requires changes in Chromium as well. > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1716523002 > > Committed: https://skia.googlesource.com/skia/+/095d31c8a0eeb5d491febf064bc3c8a44e22b94f TBR=scroggo@google.com,reed@google.com,bsalomon@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/1775493002
* Update Skia's YUV APIGravatar msarett2016-03-07
| | | | | | | | | | | | We should match the recently designed API in SkCodec. https://codereview.chromium.org/1549473003/ This requires changes in Chromium as well. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1716523002 Review URL: https://codereview.chromium.org/1716523002
* take gr-context parameter to refEncoded, indicating a desire for only ↵Gravatar reed2016-01-05
| | | | | | | | | | | | | | | gpu-specific formats Prime motivator: - we always call refEncoded on the generator when trying to upload - we call it *before* we ask for raster or YUV - for blink, this call can be very slow, as they have to cons-up their SkData the first time (and grab a mutex to do it) - this parameter will indicate to them that we're only interested in gpu formats, which they will know if they have. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1556333004 Review URL: https://codereview.chromium.org/1556333004
* API to support native scaling by image-generatorGravatar reed2015-12-02
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1396323007
* Remove params from Cacherator_GrTextureMakerGravatar bsalomon2015-10-15
| | | | Review URL: https://codereview.chromium.org/1403313003
* Remove image usage type enum. Use GrTextureParams instead.Gravatar bsalomon2015-10-12
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1404433002
* SkInstallDiscardablePixelRef is deprecated, enforce thatGravatar reed2015-09-25
| | | | | | | | | No functionality change, just a renaming. BUG=skia: TBR= Review URL: https://codereview.chromium.org/1372593002
* Remove SkNEW and SkDELETE macrosGravatar mdempsky2015-09-22
| | | | | | | | | | | | | | | This CL removes the uses of SkNEW that have resprouted since commit 385fe4d, and removes the macros entirely now that Android and Chromium have been cleaned up to no longer depend on them. A bunch of files implicitly depend on #include <new> from SkPostConfig.h still though, so keep that for now. To be fixed in a followup CL. [mtklein mucking around] Only public API removed. TBR=reed@google.com Review URL: https://codereview.chromium.org/1360653004
* use allocator (if present) when we allocate our cache bitmapGravatar reed2015-09-17
| | | | | | | | Remove some bogus tests on the cache, as they are not thread-reliable. Running w/ discardable these are racy. BUG=532981 Review URL: https://codereview.chromium.org/1351453004
* formalize generate->bitmapGravatar reed2015-09-13
| | | | | | | | | just move block of code to expose it BUG=skia:4328 TBR= Review URL: https://codereview.chromium.org/1334033004
* Add subsets to SkImageGenerator and SkImageCacheratorGravatar reed2015-08-18
| | | | | | | | ... to support subsets in SkImage! BUG=skia: Review URL: https://codereview.chromium.org/1301633002
* some catchup CL revisionsGravatar reed2015-08-13
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1295593002
* Extend SkImageGenerator to support natively generated GrTextures. As part of ↵Gravatar reed2015-08-13
| | | | | | | | | | | | this, added uniqueID() to the generator, and made it be in the same namespace is bitmaps, pixelrefs, images. To do this, create SkImageCacherator, which wraps a generator and provides an interface to get a cached answer for either the raster or texture output of the generator. BUG=skia: Review URL: https://codereview.chromium.org/1291803002
* SkPictureImageGeneratorGravatar fmalita2015-08-04
| | | | | | R=reed@google.com Review URL: https://codereview.chromium.org/1240093004
* Remove SK_LEGACY_IMAGE_GENERATOR_ENUMS_AND_OPTIONSGravatar scroggo2015-07-30
| | | | | | Now that Chrome no longer depends on it, remove dead code. Review URL: https://codereview.chromium.org/1263013002
* remove getter for imagegenerator factory, update testGravatar reed2015-07-09
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1223413002
* add runtime option to provide data->imagegenerator factoryGravatar reed2015-07-09
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1229933003
* Remove SkImageGenerator pieces only for SkCodec.Gravatar scroggo2015-07-09
| | | | | | | | | | | Follow up to the split between SkImageGenerator and SkCodec. Now that SkCodec does not inherit from SkImageGenerator, SkImageGenerator no longer needs Options or Result, which were added for SkCodec. Remove them, but keep them behind a flag, since Chromium has its own subclasses of SkImageGenerator which assume the old signature for onGetPixels. Review URL: https://codereview.chromium.org/1226023003
* remove SK_SUPPORT_LEGACY_OPTIONLESS_GET_PIXELSGravatar reed2015-06-23
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1201233002
* remove dead code behind BOOL_ONGETINFOGravatar reed2015-05-05
| | | | | | | | | need this to land in chrome first https://codereview.chromium.org/1125573002 BUG=skia: TBR= Review URL: https://codereview.chromium.org/1123473004
* guarded change to SkImageGenerator to make getInfo() constGravatar reed2015-03-19
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1017293002
* Option for SkCodec to treat dst as all zeroes.Gravatar scroggo2015-03-17
| | | | | | | This recreates SkImageDecoder's feature to skip writing zeroes for SkCodec. Review URL: https://codereview.chromium.org/980903002
* Remove SK_SUPPORT_LEGACY_GET_PIXELS_ENUM.Gravatar scroggo2015-02-23
| | | | | | | | | | | | | | SK_SUPPORT_LEGACY_GET_PIXELS_ENUM just set a \#define to convert onGetPixelsEnum to onGetPixels Now that Chrome has been updated to override onGetPixels, there is no need for the define. BUG=skia:3257 Review URL: https://codereview.chromium.org/933853004
* Rename onGetPixelsEnum back to onGetPixels.Gravatar scroggo2015-02-19
| | | | | | | | | | | | | | | | Replace the old signature of onGetPixels (return bool) to return an enum (Result). Remove onGetPixelsEnum. Add a define for onGetPixelsEnum to onGetPixels. This is for staging in Chromium, where some implementations override onGetPixelsEnum. Add the define in skia_for_chromium_defines. Remove SK_SUPPORT_LEGACY_IMAGE_GENERATOR_RETURN, which is no longer needed by Chromium. BUG=skia:3257 Review URL: https://codereview.chromium.org/939113002
* Make SkImageGenerator::getPixels() return an enum.Gravatar scroggo2015-02-13
| | | | | | | | | | | | | | | | | | | | | | The new enum describes the nature of the failure. This is in preparation for writing a replacement for SkImageDecoder, which will use this interface. Update the comments for getPixels() to specify what it means to pass an SkImageInfo with a different size. Make SkImageGenerator Noncopyable. Leave onGetYUV8Planes alone, since we have separate discussions regarding modifying that API. Make callers of SkImageDecoder consistently handle kPartialSuccess. Previously, some callers considered it a failure, and others considered it a success. BUG=skia:3257 Review URL: https://codereview.chromium.org/919693002
* need to rebaseline (changed) c_gms, update doxGravatar reed2015-01-07
| | | | | | | | BUG=skia: TBR= NOTRY=True Review URL: https://codereview.chromium.org/844663002
* add ImageGenerator::NewFromData to porting layerGravatar reed2015-01-07
| | | | | | BUG=skia:3275 Review URL: https://codereview.chromium.org/834633006
* will write a custom one for blink laterGravatar reed2015-01-06
| | | | | | | | BUG=skia: TBR= NOTRY=True Review URL: https://codereview.chromium.org/810603003
* remove obsolete code for SK_SUPPORT_LEGACY_IMAGEGENERATORAPIGravatar reed2014-09-30
| | | | | | | | | BUG=skia: R=reed@google.com Author: reed@chromium.org Review URL: https://codereview.chromium.org/613933002
* Add support for the Rec601 YUV color space to GrYUVtoRGBEffect.Gravatar rileya2014-09-12
| | | | | | | | R=bsalomon@google.com, senorblanco@chromium.org, sugoi@chromium.org, reed@google.com Author: rileya@chromium.org Review URL: https://codereview.chromium.org/516463005
* remove SkPurgeGlobalDiscardableMemoryPoolGravatar halcanary2014-08-25
| | | | | | | | | BUG=skia:2721 R=reed@google.com Author: halcanary@google.com Review URL: https://codereview.chromium.org/495453004
* Skia side RGB to YUV gpu conversionGravatar sugoi2014-07-21
| | | | | | | | | | | This code is the one that's currently working in my local chromium build. A few things still need to be addressed and I'll highlight these directly in the code. BUG=skia: R=reed@google.com, bsalomon@google.com, senorblanco@google.com, senorblanco@chromium.org, robertphillips@google.com, scroggo@google.com, halcanary@google.com Author: sugoi@chromium.org Review URL: https://codereview.chromium.org/374743003
* legacy refEncodedData() returns data, not boolGravatar reed@google.com2014-05-29
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@14961 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert "Revert of add colortable support to imagegenerator ↵Gravatar commit-bot@chromium.org2014-05-29
| | | | | | | | | | | | | | | | | (https://codereview.chromium.org/304443003/)" Fix is to add colortable param to installPixels() This reverts commit 924205aaf2e0c3c65dda13e0eaccde3e7b2a5c40. BUG=skia: R=scroggo@google.com, reed@chromium.org Author: reed@google.com Review URL: https://codereview.chromium.org/300263005 git-svn-id: http://skia.googlecode.com/svn/trunk@14958 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add SkPurgeGlobalDiscardableMemoryPool, needed to replace SkImageRefGravatar commit-bot@chromium.org2014-05-28
| | | | | | | | | | | BUG=skia:2389 R=reed@google.com, scroggo@google.com Author: halcanary@google.com Review URL: https://codereview.chromium.org/298423002 git-svn-id: http://skia.googlecode.com/svn/trunk@14925 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert of add colortable support to imagegenerator ↵Gravatar commit-bot@chromium.org2014-05-28
| | | | | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/304443003/) Reason for revert: failing tests Original issue's description: > add colortable support to imagegenerator > > BUG=skia: > > Committed: http://code.google.com/p/skia/source/detail?r=14916 R=halcanary@google.com, scroggo@google.com TBR=halcanary@google.com, scroggo@google.com NOTREECHECKS=true NOTRY=true BUG=skia: Author: reed@google.com Review URL: https://codereview.chromium.org/300873007 git-svn-id: http://skia.googlecode.com/svn/trunk@14917 2bbb7eff-a529-9590-31e7-b0007b416f81
* add colortable support to imagegeneratorGravatar commit-bot@chromium.org2014-05-28
| | | | | | | | | | | BUG=skia: R=halcanary@google.com, scroggo@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/304443003 git-svn-id: http://skia.googlecode.com/svn/trunk@14916 2bbb7eff-a529-9590-31e7-b0007b416f81
* hide discardable factory from public imagegenerator apiGravatar commit-bot@chromium.org2014-05-27
| | | | | | | | | | | BUG=skia: R=halcanary@google.com, scroggo@google.com, djsollen@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/295243006 git-svn-id: http://skia.googlecode.com/svn/trunk@14889 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add Options to SkDecodingImageGenerator, simplify API.Gravatar halcanary@google.com2014-01-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Motivation: We want to remove redundant classes from Skia. To that end we want to remove SkImageRef and its subclasses and replace their uses with SkDiscardablePixelRef + SkDecodingImageGenerator. Since Android uses SkImageRef, we need to make sure that SkDecodingImageGenerator allows all of the settings that Android exposes in BitmapFactory.Options. To that end, we have created an Options struct for the SkDecodingImageGenerator which lets the client of the generator set sample size, dithering, and bitmap config. We have made the SkDecodingImageGenerator constructor private and replaced the SkDecodingImageGenerator::Install functions with a SkDecodingImageGenerator::Create functions (one for SkData and one for SkStream) which now take a SkDecodingImageGenerator::Options struct. Also added a ImageDecoderOptions test which loops through a list of sets of options and tries them on a set of 5 small encoded images. Also updated several users of SkDecodingImageGenerator::Install to follow new call signature - gm/factory.cpp, LazyDecodeBitmap.cpp, and PictureTest.cpp, CachedDecodingPixelRefTest.cpp. We also added a new ImprovedBitmapFactory Test which simulates the exact function that Android will need to modify to use this, installPixelRef() in BitmapFactory. R=reed@google.com, scroggo@google.com Committed: https://code.google.com/p/skia/source/detail?r=12744 Review URL: https://codereview.chromium.org/93703004 git-svn-id: http://skia.googlecode.com/svn/trunk@12855 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert of https://codereview.chromium.org/93703004/Gravatar commit-bot@chromium.org2013-12-18
| | | | | | | | | | | | | | | Reason for revert: Test failures R=scroggo@google.com, djsollen@google.com, reed@google.com, halcanary@google.com TBR=djsollen@google.com, halcanary@google.com, reed@google.com, scroggo@google.com NOTREECHECKS=true NOTRY=true Author: robertphillips@google.com Review URL: https://codereview.chromium.org/103753007 git-svn-id: http://skia.googlecode.com/svn/trunk@12747 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add Options to SkDecodingImageGenerator, simplify API.Gravatar halcanary@google.com2013-12-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Motivation: We want to remove redundant classes from Skia. To that end we want to remove SkImageRef and its subclasses and replace their uses with SkDiscardablePixelRef + SkDecodingImageGenerator. Since Android uses SkImageRef, we need to make sure that SkDecodingImageGenerator allows all of the settings that Android exposes in BitmapFactory.Options. To that end, we have created an Options struct for the SkDecodingImageGenerator which lets the client of the generator set sample size, dithering, and bitmap config. We have made the SkDecodingImageGenerator constructor private and replaced the SkDecodingImageGenerator::Install functions with a SkDecodingImageGenerator::Create functions (one for SkData and one for SkStream) which now take a SkDecodingImageGenerator::Options struct. Also added a ImageDecoderOptions test which loops through a list of sets of options and tries them on a set of 5 small encoded images. Also updated several users of SkDecodingImageGenerator::Install to follow new call signature - gm/factory.cpp, LazyDecodeBitmap.cpp, and PictureTest.cpp, CachedDecodingPixelRefTest.cpp. We also added a new ImprovedBitmapFactory Test which simulates the exact function that Android will need to modify to use this, installPixelRef() in BitmapFactory. R=reed@google.com, scroggo@google.com Review URL: https://codereview.chromium.org/93703004 git-svn-id: http://skia.googlecode.com/svn/trunk@12744 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sk_API for SkImageGenerator and SkInstallDiscardablePixelRefGravatar halcanary@google.com2013-12-10
| | | | | | | | | | | | | | | | | | | | Added SK_API to SkImageGenerator (already in include/). Moved SkDiscardablePixelRef::Install to SkInstallDiscardablePixelRef, added SK_API to that function, and moved declaration to SkImageGenerator.h This keeps the SkDiscardablePixelRef internal to Skia, but exposes a method to install it into a bitmap. Modifed tests that rely on this functio to use new version. BUG= R=mtklein@google.com, reed@google.com Review URL: https://codereview.chromium.org/111713002 git-svn-id: http://skia.googlecode.com/svn/trunk@12612 2bbb7eff-a529-9590-31e7-b0007b416f81
* SkDiscardablePixelRef objects are now marked immutable.Gravatar commit-bot@chromium.org2013-12-02
| | | | | | | | | | | | | | | | | | | I also specifically mentioned in the SkImageGenerator documentation that it should always return the same information on subsequent calls to getInfo() and getPixels(). Motivation: When a bitmap is recorded into a SkPicture, it will choose whether to shallow- or deep-copy itself into the SkBitmapHeap based on the immutable flag. Failing to set it would make picture recording slow. BUG= R=fmalita@google.com, reed@google.com, scroggo@google.com Author: halcanary@google.com Review URL: https://codereview.chromium.org/99303003 git-svn-id: http://skia.googlecode.com/svn/trunk@12445 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add SkImageGenerator InterfaceGravatar halcanary@google.com2013-11-21
- Add SkDiscardablePixelRef class that uses SkDiscardableMemory and a SkImageGenerator. - Add SkDecodingImageGenerator class as an example of a SkImageGenerator. - Add DecodingImageGenerator unit test. - Add SkBasicDiscardableMemory implmentation for unit tests only. R=reed@google.com, scroggo@google.com Review URL: https://codereview.chromium.org/74793011 git-svn-id: http://skia.googlecode.com/svn/trunk@12341 2bbb7eff-a529-9590-31e7-b0007b416f81