aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/image
Commit message (Collapse)AuthorAge
* Remove SkPixelRef::getTexture()Gravatar bsalomon2016-08-23
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2264293003 Review-Url: https://codereview.chromium.org/2264293003
* Add alpha type to texture producerGravatar brianosman2016-08-18
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2250403003 Review-Url: https://codereview.chromium.org/2250403003
* Add alphaType() to SkImageGravatar brianosman2016-08-17
| | | | | | | | | | | | | | Keep isOpaque as a convenience method -- many places really only need to know that for optimization purposes (SrcOver -> Src, etc...). In all the places where we pull data back out or convert to another object and need to supply an SkImageInfo, we can avoid losing information about premulness. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2250663002 Review-Url: https://codereview.chromium.org/2250663002
* fix no-gpu buildGravatar reed2016-08-17
| | | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2253073003 TBR=robertphilips NOTREECHECKS=true Review-Url: https://codereview.chromium.org/2253073003
* pin as texture apiGravatar reed2016-08-17
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2241353002 Review-Url: https://codereview.chromium.org/2241353002
* fix memory leak, remake Imageshader to use sk_spGravatar reed2016-08-11
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2239723002 Review-Url: https://codereview.chromium.org/2239723002
* Deserialize pictures with custom image-deserializerGravatar reed2016-08-11
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2187613002 Review-Url: https://codereview.chromium.org/2187613002
* Revert of Store mipmap levels in deferred texture image (patchset #11 ↵Gravatar halcanary2016-08-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | id:200001 of https://codereview.chromium.org/2115023002/ ) Reason for revert: speculative revert: android dm crashes Original issue's description: > Store mipmap levels in deferred texture image > > This is a follow-up to https://codereview.chromium.org/2034933003/ which > was reverted due to a memory leak. > > When creating the deferred texture image, detect if using medium / high > quality. If so, generate and store mipmaps in the deferred texture > image. > > When creating a texture from that be sure to read it back out. > > BUG=578304 > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2115023002 > > Committed: https://skia.googlesource.com/skia/+/d6113140f7ae8996f679ac6698a60fb8c1386da3 TBR=brianosman@google.com,bsalomon@google.com,ericrk@chromium.org,cblume@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=578304 Review-Url: https://codereview.chromium.org/2227323002
* Store mipmap levels in deferred texture imageGravatar cblume2016-08-09
| | | | | | | | | | | | | | | | This is a follow-up to https://codereview.chromium.org/2034933003/ which was reverted due to a memory leak. When creating the deferred texture image, detect if using medium / high quality. If so, generate and store mipmaps in the deferred texture image. When creating a texture from that be sure to read it back out. BUG=578304 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2115023002 Review-Url: https://codereview.chromium.org/2115023002
* use onPeekBitmap instead of asLegacyBitmapGravatar reed2016-08-08
| | | | | | | | | Since we know we are raster-backed at this point, it is fine, plus it avoids the copy-mutable logic in asLegacyBitmap, which is not needed here (and is slower if our bitmap was built with kNever_SkCopyPixelsMode). BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2223653002 Review-Url: https://codereview.chromium.org/2223653002
* use tmp allocator for images in temp shadersGravatar reed2016-08-05
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2222593003 Review-Url: https://codereview.chromium.org/2222593003
* rename FoceCopyMode to SkCopyPixelModeGravatar reed2016-08-05
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2220603002 Review-Url: https://codereview.chromium.org/2220603002
* Remove SkSurface::MakeRenderTargetDirectGravatar robertphillips2016-08-04
| | | | | | | | | | | | | | | | | split into: https://codereview.chromium.org/2182543003/ (Move prepareForExternalIO from GrRenderTarget to GrDrawContext) https://codereview.chromium.org/2187573002/ (Reduce usage of MakeRenderTargetDirect) https://codereview.chromium.org/2186073002/ (Rename GrContext's newDrawContext & drawContext to makeDrawContext) https://codereview.chromium.org/2178353005/ (Remove use of MakeRenderTargetDirect from view system) https://codereview.chromium.org/2198433003/ (Remove some ancillary users of SkSurface::MakeRenderTargetDirect) https://codereview.chromium.org/2208483004/ (Remove GrRenderTarget member variable from SkGpuDevice) https://codereview.chromium.org/2211473002/ (Move GrContext::makeDrawContext to new GrContextPriv object) TBR=bsalomon@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2176333002 Review-Url: https://codereview.chromium.org/2176333002
* Convert SkAutoTUnref<SkData> to sk_sp<SkData>.Gravatar bungeman2016-08-03
| | | | | | | | | With the move from SkData::NewXXX to SkData::MakeXXX most SkAutoTUnref<SkData> were changed to sk_sp<SkData>. However, there are still a few SkAutoTUnref<SkData> around, so clean them up. Review-Url: https://codereview.chromium.org/2212493002
* Move off SK_SUPPORT_LEGACY_DATA_FACTORIES.Gravatar bungeman2016-08-02
| | | | | | | This moves Skia code off of SK_SUPPORT_LEGACY_DATA_FACTORIES. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2206633004 Review-Url: https://codereview.chromium.org/2206633004
* Always return ImageShader, even from SkShader::MakeBitmapShaderGravatar reed2016-08-02
| | | | | | | | | | | | | | | Lessons learned 1. ImageShader (correctly) always compresses (typically via PNG) during serialization. This has the surprise results of - if the image was marked opaque, but has some non-opaque pixels (i.e. bug in blitter or caller), then compressing may "fix" those pixels, making the deserialized version draw differently. bug filed. - 565 compressess/decompresses to 8888 (at least on Mac), which draws differently (esp. under some filters). bug filed. 2. BitmapShader did not enforce a copy for mutable bitmaps, but ImageShader does (since it creates an Image). Thus the former would see subsequent changes to the pixels after shader creation, while the latter does not, hence the change to the BlitRow test to avoid this modify-after-create pattern. I sure hope this prev. behavior was a bug/undefined-behavior, since this CL changes that. BUG=skia:5595 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2195893002 Review-Url: https://codereview.chromium.org/2195893002
* implement isABitmap for imageshader, return localmatrix for bitmap's implGravatar reed2016-08-01
| | | | | | | | | For imageshader, I only return true if the image is explicitly raster-backed. I do not return true for texture, nor for generator (i.e. lazy/picture) backed. Is that ok? BUG=skia:5592 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2197323002 Review-Url: https://codereview.chromium.org/2197323002
* make an image from a mutable bitmapGravatar reed2016-08-01
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2199813002 Review-Url: https://codereview.chromium.org/2199813002
* Serialize SkColorSpace into DeferredTextureImageGravatar bsalomon2016-07-28
| | | | | | | | This fixes a memory leak that occurs when DeferredTextureImage is deallocated without being destroyed. It is intended to be stored in discarable memory and thus this has to be safe. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2184823010 Review-Url: https://codereview.chromium.org/2184823010
* Rename GrContext's newDrawContext & drawContext to makeDrawContextGravatar robertphillips2016-07-27
| | | | | | | | These both return sk_sp. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2186073002 Review-Url: https://codereview.chromium.org/2186073002
* Reduce usage of MakeRenderTargetDirectGravatar robertphillips2016-07-26
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2187573002 Review-Url: https://codereview.chromium.org/2187573002
* remove/deprecate SkBitmap::getTexture, as it now always returns falseGravatar reed2016-07-25
| | | | | | | | | oh happy day BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2175873002 Review-Url: https://codereview.chromium.org/2175873002
* Bundle SkShader::asFragmentProcessor arguments in a structGravatar brianosman2016-07-22
| | | | | | | | | | The signature of this thing keeps changing (and is about to change again). This just makes maintenance much easier. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2175563003 Review-Url: https://codereview.chromium.org/2175563003
* Cleanup of code that converts from GPU-backed resources to SkImageInfoGravatar brianosman2016-07-22
| | | | | | | | | | | | | | | | | Functions like GrMakeInfoFromTexture encouraged incorrect code to be written. Similarly, the ability to construct an info from any GrSurface was never going to be correct. Luckily, the only client of that had all of the correct parameters much higher on the stack (and dictated or replaced most of the properties of the returned info anyway). With this, I can finally remove the color space as an output of the pixel config -> color type conversion, which was never going to be correct. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2173513002 Review-Url: https://codereview.chromium.org/2173513002
* Add SkColorSpace to GrDrawContextGravatar brianosman2016-07-21
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2164363002 Review-Url: https://codereview.chromium.org/2164363002
* Remove SkGrPixelRefGravatar robertphillips2016-07-21
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2167173002 Review-Url: https://codereview.chromium.org/2167173002
* Deprecate SkDevice::accessBitmap methodGravatar robertphillips2016-07-21
| | | | | | | | | | Relies on https://codereview.chromium.org/2162423003/ (Add SK_SUPPORT_LEGACY_ACCESSBITMAP Skia guard) landing in Chromium first. Calved off: https://codereview.chromium.org/2163323002/ (Add desired width & height to drawContext (as opposed to using the width & height of the RT)) GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2168483003 Review-Url: https://codereview.chromium.org/2168483003
* Adding an SkColorSpace to SkImage_GpuGravatar brianosman2016-07-20
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2165703003 Review-Url: https://codereview.chromium.org/2165703003
* Remove SkDevice::accessRenderTarget virtualGravatar robertphillips2016-07-20
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2167723002 Review-Url: https://codereview.chromium.org/2167723002
* Remove unused MakeFromTextureCopy APIGravatar brianosman2016-07-19
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2165803002 Review-Url: https://codereview.chromium.org/2165803002
* Introduce GrColorSpaceXform, for gamut conversion on texturesGravatar brianosman2016-07-18
| | | | | | | | | | | | | | | | | | | | | | | | | GrTextureAccess optionally includes an instance, computed from the src and dst color spaces. In all common cases (no color space for either src or dst, or same color space for both), no object is allocated. This change is orthogonal to my attempts to get color space attached to render targets - regardless of how we choose to do that, this will give us the source color space at all points where we are connecting src to dst. There are many dangling injection points where I've been inserting nullptr, but I have a record of all of them. Additionally, there are now three places (the most common simple paths for bitmap/image rendering) where things are plumbed enough that I expect to have access to the dst color space (all marked with XFORMTODO). In addition to getting the dst color space, I need to inject shader code and uniform uploading for appendTextureLookup and friends. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2154753003 Review-Url: https://codereview.chromium.org/2154753003
* Add a function to convert a texture backed SkImage to raster.Gravatar bsalomon2016-07-12
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2147493004 Review-Url: https://codereview.chromium.org/2147493004
* Document SkSurface::MakeRaster's memory initializationGravatar fmalita2016-07-06
| | | | | | | | | So clients don't go clearing w/ SK_ColorTRANSPARENT unnecessarily. R=reed@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2066903003 Review-Url: https://codereview.chromium.org/2066903003
* Revert of Store mipmap levels in deferred texture image (patchset #15 ↵Gravatar brianosman2016-06-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | id:280001 of https://codereview.chromium.org/2034933003/ ) Reason for revert: Crashes on a few different bots (including ASAN). Examples: https://build.chromium.org/p/client.skia.android/builders/Test-Android-GCC-Nexus7-GPU-Tegra3-Arm7-Release/builds/6324 https://build.chromium.org/p/client.skia/builders/Test-iOS-Clang-iPad4-GPU-SGX554-Arm7-Debug/builds/5400 https://build.chromium.org/p/client.skia/builders/Test-Ubuntu-GCC-Golo-GPU-GT610-x86_64-Debug-ASAN/builds/3539 Original issue's description: > Store mipmap levels in deferred texture image > > When creating the deferred texture image, detect if using medium / high > quality. If so, generate and store mipmaps in the deferred texture > image. > > When creating a texture from that be sure to read it back out. > > BUG=578304 > R=bsalomon@google.com > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2034933003 > > Committed: https://skia.googlesource.com/skia/+/b3105190a6e02d37f1d7f07a3a8bdd368ec7f157 TBR=bsalomon@google.com,ericrk@chromium.org,cblume@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=578304 Review-Url: https://codereview.chromium.org/2083393002
* Store mipmap levels in deferred texture imageGravatar cblume2016-06-21
| | | | | | | | | | | | | | When creating the deferred texture image, detect if using medium / high quality. If so, generate and store mipmaps in the deferred texture image. When creating a texture from that be sure to read it back out. BUG=578304 R=bsalomon@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2034933003 Review-Url: https://codereview.chromium.org/2034933003
* Lots of progress on switching to SkColorSpace rather than SkColorProfileTypeGravatar brianosman2016-06-16
| | | | | | | | | | Fixed a bunch of code in Ganesh, as well as usage of SkColorProfileType in most of our tools (DM, SampleApp, Viewer, nanobench, skiaserve, HelloWorld). BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2069173002 Committed: https://skia.googlesource.com/skia/+/6a61a875467646f8dbc37cfecf49e12d1f475170 Review-Url: https://codereview.chromium.org/2069173002
* Revert of Lots of progress switching to SkColorSpace rather than ↵Gravatar brianosman2016-06-16
| | | | | | | | | | | | | | | | | | | | | | | | | | SkColorProfileType (patchset #10 id:180001 of https://codereview.chromium.org/2069173002/ ) Reason for revert: Mac crashes in GrUploadPixmapToTexture Original issue's description: > Lots of progress on switching to SkColorSpace rather than SkColorProfileType > > Fixed a bunch of code in Ganesh, as well as usage of SkColorProfileType in most of our tools (DM, SampleApp, Viewer, nanobench, skiaserve, HelloWorld). > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2069173002 > > Committed: https://skia.googlesource.com/skia/+/6a61a875467646f8dbc37cfecf49e12d1f475170 TBR=reed@google.com,herb@google.com,msarett@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/2072813002
* Lots of progress on switching to SkColorSpace rather than SkColorProfileTypeGravatar brianosman2016-06-16
| | | | | | | | | Fixed a bunch of code in Ganesh, as well as usage of SkColorProfileType in most of our tools (DM, SampleApp, Viewer, nanobench, skiaserve, HelloWorld). BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2069173002 Review-Url: https://codereview.chromium.org/2069173002
* Fix SkImage::asLegacyBitmap() to respect color space infoGravatar msarett2016-06-13
| | | | | | | BUG=skia:5428 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2061783002 Review-Url: https://codereview.chromium.org/2061783002
* Add prescale option to deferred paramsGravatar ericrk2016-06-13
| | | | | | | | | | | Currently, Skia always uploads GPU textures at full resolution. This change allows us to pass a pre-scale mip level to the deferred texture image logic, which causes us to pre-scale the image to the given mip level, and upload that mip level instead of the full image. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2007113008 Review-Url: https://codereview.chromium.org/2007113008
* Add NV12 texture conversion support.Gravatar jbauman2016-06-09
| | | | | | | | | | | If textures 1 and 2 passed into MakeFromYUVTexturesCopy are the same, then treat the input as NV12 and sample from the g component of texture 2. BUG=skia:5209 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2016593002 Review-Url: https://codereview.chromium.org/2016593002
* sk_sp for Ganesh.Gravatar bungeman2016-06-09
| | | | | | | | | | Convert use of GrFragmentProcessor, GrGeometryProcessor, and GrXPFactory to sk_sp. This clarifies ownership and should reduce reference count churn by moving ownership. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2041113004 Review-Url: https://codereview.chromium.org/2041113004
* Add new SkSourceGammaTreatment enum, used in situations like mipmap ↵Gravatar brianosman2016-06-06
| | | | | | | | | construction, where we need to know if we should respect (vs. ignore) the gamma encoding of sRGB tagged images. Plumb that extensively. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2037413002 Review-Url: https://codereview.chromium.org/2037413002
* Plumbing mipmaps to the point of creation.Gravatar cblume2016-06-03
| | | | | | | | | | | | When creating a DeferredTextureImage we may create mipmaps. Those mipmaps need to then be passed along for when the texture is actually created. R=bsalomon@google.com BUG=578304 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2031273002 Review-Url: https://codereview.chromium.org/2031273002
* Add mip support to *DeferredTextureImageData functions.Gravatar cblume2016-05-31
| | | | | | | | | | | | | | | As a first step, I want to add the ability to store multiple mip levels in the opaque object. I will follow this with using SkMipMap to generate and store the mip levels and generating the texture from those stored mip levels. R=bsalomon@chromium.org CC=ericrk@chromium.org BUG=578304 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2023573002 Review-Url: https://codereview.chromium.org/2023573002
* Fix leak in SkImage_Gpu::onMakeSubset().Gravatar senorblanco2016-05-20
| | | | | | | BUG=skia:5327 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2003573002 Review-Url: https://codereview.chromium.org/2003573002
* Image filters: implement SkImage::makeWithFilter().Gravatar senorblanco2016-05-19
| | | | | | | | | | This API provides a way to directly filter a subregion of an SkImage (usually texture-backed), and returns an SkImage which may include extra padding, along with a size to indicate the active region. GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1964043002 Review-Url: https://codereview.chromium.org/1964043002
* (Mostly) Retract GrRenderTarget from SkGpuDeviceGravatar robertphillips2016-05-17
| | | | | | | | | | | | | | | This gets us most of the way to having SkGpuDevice exclusively use a GrDrawContext instead of a GrRenderTarget. There are a few other refactorings (e.g., rm need for fLegacyBitmap and accessRenderTarget) before the GrRenderTarget can be completely removed. Has calved off: https://codereview.chromium.org/1925313002/ (Tighten up SkSpecialSurface factory functions) https://codereview.chromium.org/1925803004/ (Add sk_sp to SkSurface_Gpu and SkGpuDevice) https://codereview.chromium.org/1956473002/ (Retract GrRenderTarget a bit within SkGpuDevice) https://codereview.chromium.org/1979913002/ (Rename GrDrawingMgr::abandon to wasAbandoned & add a matching entry point to GrDrawingContext) https://codereview.chromium.org/1982583002/ (Add isUnifiedMultisampled entry point to GrDrawContext) GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1930013002 Review-Url: https://codereview.chromium.org/1930013002
* Retract GrRenderTarget a bit within SkGpuDeviceGravatar robertphillips2016-05-13
| | | | | | | | | | Split off of: https://codereview.chromium.org/1930013002/ ((Mostly) Retract GrRenderTarget from SkGpuDevice) GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1956473002 Committed: https://skia.googlesource.com/skia/+/d215a95882485026d176a81bf58871276b21c89c Review-Url: https://codereview.chromium.org/1956473002
* Convert GrClip to an abstract base classGravatar cdalton2016-05-13
| | | | | | | | | | | | | | | | Converts GrClip to an abstract base class and adds a "GrFixedClip" implementation. GrFixedClip denotes a clip implemented with fixed- function hardware. GrFixedClip allows us to remove the stateful "fClipMode" member from GrClipMaskManager, and in the future will be able to nicely encapsulate window rectangles. After this change GrClipMaskManager is just a wrapper around GrDrawTarget. We may want to consider removing it altogether. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1971343002 Review-Url: https://codereview.chromium.org/1971343002