aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/image
Commit message (Collapse)AuthorAge
* Add ability to extract YUV planes from SkImageGravatar bsalomon2016-02-01
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1513393002 Review URL: https://codereview.chromium.org/1513393002
* Add SkImage factory method that forces image to be resolved to a texture.Gravatar bsalomon2016-01-30
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1631053003 Review URL: https://codereview.chromium.org/1631053003
* allow the caller to specified raster-surface rowbytes.Gravatar reed2016-01-30
| | | | | | | | | along the way, simplify how we copy the surface's bitmap BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1643873002 Review URL: https://codereview.chromium.org/1643873002
* Cleaning up trailing spaces and typos.Gravatar cblume2016-01-26
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1631993002 Review URL: https://codereview.chromium.org/1631993002
* remove SkImage::applyFilter() -- unused, can always re-add laterGravatar reed2016-01-08
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1573653002 Review URL: https://codereview.chromium.org/1573653002
* 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
* Two malloc+bzero -> calloc.Gravatar mtklein2016-01-04
| | | | | | | | | | | | | | I was profiling DM and noticed a couple spots where we malloc then bzero. These might as well call calloc instead: - any time DM itself allocates bitmaps for raster drawing; - any time Skia allocates memory for a raster SkSurface. We could use malloc for opaque surfaces, but it seems simpler to always calloc. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1557713003 Review URL: https://codereview.chromium.org/1557713003
* Remove SkImageMinRowBytesGravatar scroggo2015-12-18
| | | | | | | | | | | | | | As stated in the comments in crrev.com/1379193002, this method name is misleading. It returns a larger number than the minimum rowbytes - it increases to the next four-byte alignment. This has the effect that the one place that calls it does not support 565 (which is not already four-byte aligned), but does not serve any other purpose. Remove it and the only call-site. BUG=skia:4396 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1528383004 Review URL: https://codereview.chromium.org/1528383004
* default SkPixelSerializerGravatar halcanary2015-12-10
| | | | | | | | | | | | | | | Add SkImageEncoder::EncodeData(const SkPixmap&, ...) function. Add SkImageEncoder::CreatePixelSerializer() to return a PixelSerializer that calls into SkImageEncoder::EncodeData. SkImage::encode() make use of SkImageEncoder::CreatePixelSerializer. Committed: https://skia.googlesource.com/skia/+/b0bd1516bff3f5afcbfd615e805867531657811b Committed: https://skia.googlesource.com/skia/+/808ce2886d732b1055f89c8fb0f1b11b47fcb0ce Review URL: https://codereview.chromium.org/1507123002
* Make "alpha only" be a property of GrTextureProducerGravatar bsalomon2015-12-09
| | | | Review URL: https://codereview.chromium.org/1507973005
* Revert of default SkPixelSerializer (patchset #2 id:20001 of ↵Gravatar halcanary2015-12-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1507123002/ ) Reason for revert: I was overconfident. Original issue's description: > default SkPixelSerializer > > Add SkImageEncoder::EncodeData(const SkPixmap&, ...) function. > > Add SkImageEncoder::CreatePixelSerializer() to return a > PixelSerializer that calls into SkImageEncoder::EncodeData. > > SkImage::encode() make use of SkImageEncoder::CreatePixelSerializer. > > Committed: https://skia.googlesource.com/skia/+/b0bd1516bff3f5afcbfd615e805867531657811b > > Committed: https://skia.googlesource.com/skia/+/808ce2886d732b1055f89c8fb0f1b11b47fcb0ce TBR=reed@google.com,scroggo@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1511183002
* default SkPixelSerializerGravatar halcanary2015-12-08
| | | | | | | | | | | | | Add SkImageEncoder::EncodeData(const SkPixmap&, ...) function. Add SkImageEncoder::CreatePixelSerializer() to return a PixelSerializer that calls into SkImageEncoder::EncodeData. SkImage::encode() make use of SkImageEncoder::CreatePixelSerializer. Committed: https://skia.googlesource.com/skia/+/b0bd1516bff3f5afcbfd615e805867531657811b Review URL: https://codereview.chromium.org/1507123002
* Revert of default SkPixelSerializer (patchset #1 id:1 of ↵Gravatar reed2015-12-08
| | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1507123002/ ) Reason for revert: Breaking DEPS roll (linker error) Original issue's description: > default SkPixelSerializer > > Add SkImageEncoder::EncodeData(const SkPixmap&, ...) function. > > Add SkImageEncoder::CreatePixelSerializer() to return a > PixelSerializer that calls into SkImageEncoder::EncodeData. > > SkImage::encode() make use of SkImageEncoder::CreatePixelSerializer. > > Committed: https://skia.googlesource.com/skia/+/b0bd1516bff3f5afcbfd615e805867531657811b TBR=scroggo@google.com,halcanary@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1505203003
* Stop wrapping images backed by generators as bitmaps in SkGpuDevice (except ↵Gravatar bsalomon2015-12-08
| | | | | | when tiling) Review URL: https://codereview.chromium.org/1510903002
* default SkPixelSerializerGravatar halcanary2015-12-08
| | | | | | | | | | | Add SkImageEncoder::EncodeData(const SkPixmap&, ...) function. Add SkImageEncoder::CreatePixelSerializer() to return a PixelSerializer that calls into SkImageEncoder::EncodeData. SkImage::encode() make use of SkImageEncoder::CreatePixelSerializer. Review URL: https://codereview.chromium.org/1507123002
* SkPixelSerializer: support indexed pixelsGravatar halcanary2015-12-07
| | | | | | By taking a SkPixmap, SkPixelSerializer::encode() can now handle colortables. Review URL: https://codereview.chromium.org/1501303002
* detect when we can filter bitmaps/images directly, w/o a tmp layerGravatar reed2015-12-05
| | | | | | | | | | | | | | | | visual bench run on Mac Pro curr/maxrss loops min median mean max stddev samples config bench 100/100 MB 16 412µs 413µs 413µs 414µs 0% ▄▁▇▄▄▄▄█▄▃▅ gpu warmupbench 101/102 MB 32 547µs 548µs 611µs 1.24ms 34% █▁▁▁▁▁▁▁▁▁▁ gpu image-filter-sprite-draw-image 102/103 MB 32 547µs 548µs 721µs 1.23ms 41% █▁▇▁▁█▁▁▁▁▁ gpu image-filter-sprite-draw-bitmap 103/103 MB 64 546µs 546µs 546µs 547µs 0% ▆▄▂▁▇█▅▇▅▇▃ gpu image-filter-sprite-draw-sprite Should have no effect on Chrome while SK_SUPPORT_LEGACY_LAYER_BITMAP_IMAGEFILTERS is defined (which it is in chrome) BUG=skia:1073 Review URL: https://codereview.chromium.org/1491293002
* optimize the disable-caching case for SkImage::readPixelsGravatar reed2015-11-24
| | | | | | | | | | If the client wants no caching, and we haven't already cached it, pass the caller's dst-buffer directly down to the generator, avoiding the (previous) extra memcpy. BUG=skia:4594 Review URL: https://codereview.chromium.org/1473373002
* scaling API on SkPixmapGravatar reed2015-11-23
| | | | | | BUG=skia:4481 Review URL: https://codereview.chromium.org/1463373002
* Make bicubic FP factories return const FPsGravatar bsalomon2015-11-05
| | | | | | TBR=egdaniel@google.com Review URL: https://codereview.chromium.org/1413403008
* Pull texture-backed bitmap resampler out of GrTextureParamsAdjuster code ↵Gravatar bsalomon2015-10-29
| | | | | | into its own class. Review URL: https://codereview.chromium.org/1420963008
* Remove min texture size supportGravatar bsalomon2015-10-28
| | | | | | BUG=skia:4524 Review URL: https://codereview.chromium.org/1430643002
* tunnel down texture-size-constraint to imagefiltersGravatar reed2015-10-22
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1421493003
* use (temp) gpu-imagefilter-cache for applyFilterGravatar reed2015-10-20
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1414653003
* Rewrite GrTextureMaker to disentangle bitmap case from base class and give ↵Gravatar bsalomon2015-10-20
| | | | | | | | | | GPU object a say in what copying needs to be done. Committed: https://skia.googlesource.com/skia/+/fcffaf22d697f06f903c3193308f9dc54a959f79 Committed: https://skia.googlesource.com/skia/+/1a197ea31e0aac7ea312e9a6c0d9f5df626b0350 Review URL: https://codereview.chromium.org/1409163002
* Revert recent CLs around GrTextureMaker/GrTextureParamsAdjusterGravatar Brian Salomon2015-10-19
| | | | Review URL: https://codereview.chromium.org/1411353002 .
* change SkImage_Gpu to handle all filters (w/ and w/o gpu supportGravatar reed2015-10-19
| | | | | | | | | | The result is that the set of "generic" imagefilters (e.g. SkColorFilterImageFilter) that use drawing commands to return their results will now stay in the same domain as their src (i.e. gpu-src --> gpu-dst). ApplyFilterGM exercises this, and now asserts this same-domain invariant. BUG=skia:4467 Review URL: https://codereview.chromium.org/1401053003
* Rewrite GrTextureMaker to disentangle bitmap case from base class and give ↵Gravatar bsalomon2015-10-19
| | | | | | | | GPU object a say in what copying needs to be done. Committed: https://skia.googlesource.com/skia/+/fcffaf22d697f06f903c3193308f9dc54a959f79 Review URL: https://codereview.chromium.org/1409163002
* Revert of Rewrite GrTextureMaker to disentangle bitmap case from base class ↵Gravatar egdaniel2015-10-16
| | | | | | | | | | | | | | | | | | | and give GPU object a say in what… (patchset #4 id:60001 of https://codereview.chromium.org/1409163002/ ) Reason for revert: breaking nanobench Original issue's description: > Rewrite GrTextureMaker to disentangle bitmap case from base class and give GPU object a say in what copying needs to be done. > > Committed: https://skia.googlesource.com/skia/+/fcffaf22d697f06f903c3193308f9dc54a959f79 TBR=reed@google.com,bsalomon@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1409923003
* Rewrite GrTextureMaker to disentangle bitmap case from base class and give ↵Gravatar bsalomon2015-10-16
| | | | | | GPU object a say in what copying needs to be done. Review URL: https://codereview.chromium.org/1409163002
* GrDrawContext now holds GrRenderTarget pointerGravatar robertphillips2015-10-15
| | | | Review URL: https://codereview.chromium.org/1404823005
* post-commit fixes to applyFilter CLGravatar reed2015-10-12
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1404483002
* 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 image usage type enum. Use GrTextureParams instead.Gravatar bsalomon2015-10-12
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1404433002
* Move functions from SkGr to SkGrPriv.hGravatar bsalomon2015-10-09
| | | | Review URL: https://codereview.chromium.org/1397123002
* Bye bye processor data manager.Gravatar bsalomon2015-10-06
| | | | Review URL: https://codereview.chromium.org/1388113002
* SkImage doesn't use props, so don't need to store itGravatar reed2015-10-04
| | | | | | | BUG=skia: TBR=bsalomon Review URL: https://codereview.chromium.org/1372153006
* Revert[4] of add ImageShader, sharing code with its Bitmap cousinGravatar reed2015-09-30
| | | | | | | | | | Now with GrTextureMaker subclasses to handle npot usage. This reverts commit 476506d070dbc59b158acc1a00c34bff95ab2968. BUG=skia: Review URL: https://codereview.chromium.org/1370223002
* Have /src files use header directly.Gravatar herb2015-09-29
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1373253003
* SkImage::NewFromBitmap works with Index8Gravatar halcanary2015-09-28
| | | | | | BUG=skia:4390 Review URL: https://codereview.chromium.org/1377473002
* Move SkAtomics.h to private.Gravatar herb2015-09-28
| | | | | | | | | | There are no API changes. TBR=reed@google.com BUG=skia: Review URL: https://codereview.chromium.org/1369333004
* Revert of Revert[2] of add ImageShader, sharing code with its Bitmap cousin ↵Gravatar reed2015-09-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | (patchset #11 id:200001 of https://codereview.chromium.org/1352293002/ ) Reason for revert: guess: Need to handle NPOT support in shader case Original issue's description: > Revert[2] of add ImageShader, sharing code with its Bitmap cousin > > Adjustment from previous land : runtime check for npot-support when texture is requested for tiling. > > (patchset #10 id:180001 of https://codereview.chromium.org/1342113002/ ) > > This reverts commit f2608513626264459a00388537175600b515cae2. > > BUG=skia:4365 > > Committed: https://skia.googlesource.com/skia/+/fe05707c356d2a8c2c69222591d4cafbd456b4e5 TBR=fmalita@chromium.org,robertphillips@google.com,bsalomon@google.com,reed@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:4365 Review URL: https://codereview.chromium.org/1375673002
* Revert of change pixel-serializer to support reencoding existing data ↵Gravatar reed2015-09-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | (patchset #5 id:80001 of https://codereview.chromium.org/1373683003/ ) Reason for revert: Need to somehow get access to encoders in chrome -- link error on the roll since SkImageEncoder is not built as part of chrome. Original issue's description: > change pixel-serializer to support reencoding existing data > > Trying to evolve this interface so it can > - support rich set of backend-encoders (including ones like ETC1 that can cheaply convert to KXT > - allow for encoding images as well as bitmaps (e.g. for picture serialization) > - perhaps replace SkImageEncoder as an API (assuming we create a factory that returns a serializer given a format) > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/13f48dc85aa68a60da66aaf39c93d527d11d1278 TBR=scroggo@google.com,msarett@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1371983003
* change pixel-serializer to support reencoding existing dataGravatar reed2015-09-28
| | | | | | | | | | | Trying to evolve this interface so it can - support rich set of backend-encoders (including ones like ETC1 that can cheaply convert to KXT - allow for encoding images as well as bitmaps (e.g. for picture serialization) - perhaps replace SkImageEncoder as an API (assuming we create a factory that returns a serializer given a format) BUG=skia: Review URL: https://codereview.chromium.org/1373683003
* Make skpaint->grpaint flow work for composing draws (verts and atlas)Gravatar bsalomon2015-09-28
| | | | | | One side effect is that the SkShader's (or implicit shader's) fragment processor is responsible for the transition from an unpremul paint color to a premul color. Review URL: https://codereview.chromium.org/1348583002
* Revert[2] of add ImageShader, sharing code with its Bitmap cousinGravatar reed2015-09-25
| | | | | | | | | | | | Adjustment from previous land : runtime check for npot-support when texture is requested for tiling. (patchset #10 id:180001 of https://codereview.chromium.org/1342113002/ ) This reverts commit f2608513626264459a00388537175600b515cae2. BUG=skia:4365 Review URL: https://codereview.chromium.org/1352293002
* Remove SkImage::newImage()Gravatar fmalita2015-09-24
| | | | | | | | All clients converted to newSubset(). R=reed@google.com Review URL: https://codereview.chromium.org/1364263002
* remove unused (by the outside) SkImage::newSurface, and simplify newImage -> ↵Gravatar reed2015-09-24
| | | | | | | | newSubset BUG=skia: Review URL: https://codereview.chromium.org/1364443002
* 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
* Revert of add ImageShader, sharing code with its Bitmap cousin (patchset #10 ↵Gravatar tomhudson2015-09-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | id:180001 of https://codereview.chromium.org/1342113002/ ) Reason for revert: Failing ImageNewShaderTest on both Android (Tegra3 GPU) and iOS bots. e.g. /Users/chrome-bot/buildbot/skiabot-ipad4-000/build/slave/workdir/build/skia/tests/ ImageNewShaderTest.cpp:24 0 == memcmp(bm1.getPixels(), bm2.getPixels(), bm1.getSize()) ImageNewShaderTest.cpp:95 0xFFFF0000 == bmt.getColor(0, y) ImageNewShaderTest.cpp:98 0xFFDEDEDE == bmt.getColor(x, y) ImageNewShaderTest.cpp:98 0xFFDEDEDE == bmt.getColor(x, y) ImageNewShaderTest.cpp:98 0xFFDEDEDE == bmt.getColor(x, y) ImageNewShaderTest.cpp:98 0xFFDEDEDE == bmt.getColor(x, y) ImageNewShaderTest.cpp:95 0xFFFF0000 == bmt.getColor(0, y) ... Original issue's description: > add ImageShader, sharing code with its Bitmap cousin > > This is done by having abstracted the BitmapShaderContext to take a BitmapProvider, instead of just a bitmap. This allows us to share all of that code between SkBitmap and SkImage, since both are valid providers. > > It also means that we can simplify SkImage_Base to not need a virtual for onNewShader, since ALL images can uniformly be turned into a shader now. > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/0b93e3149d2cb30860c51f9f3204ae811d9a97ca TBR=fmalita@chromium.org,bsalomon@google.com,robertphillips@google.com,reed@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1355863002