aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkPictureShader.cpp
Commit message (Collapse)AuthorAge
* skia: Add runtime option to disable picture IO security precautionsGravatar hendrikw2015-06-16
| | | | | | | | Replaced the compile time file IO security setting with a runtime setting. Unfortunately the setting is global. Review URL: https://codereview.chromium.org/1183853003
* Add direct getter for GrCaps to GrContext.Gravatar bsalomon2015-05-29
| | | | | | | | TBR=joshualitt@google.com Committed: https://skia.googlesource.com/skia/+/9138c46e572085870638b6f7ad7fcdfcdf3cac99 Review URL: https://codereview.chromium.org/1149773005
* Revert of Add direct getter for GrCaps to GrContext. (patchset #4 id:60001 ↵Gravatar bsalomon2015-05-28
| | | | | | | | | | | | | | | | | | | | | of https://codereview.chromium.org/1149773005/) Reason for revert: Breaking Original issue's description: > Add direct getter for GrCaps to GrContext. > > TBR=joshualitt@google.com > > Committed: https://skia.googlesource.com/skia/+/9138c46e572085870638b6f7ad7fcdfcdf3cac99 TBR=joshualitt@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1164443002
* Add direct getter for GrCaps to GrContext.Gravatar bsalomon2015-05-28
| | | | | | TBR=joshualitt@google.com Review URL: https://codereview.chromium.org/1149773005
* Don't serialize SkPictures in SkPictureShaders when in untrusted mode.Gravatar mtklein2015-05-20
| | | | | | | | This requires we "first" add a has-picture bool to SkPictureShader serialized format. BUG=chromium:486947, billions and billions of others. Review URL: https://codereview.chromium.org/1151663002
* Empty picture shaders should draw nothing.Gravatar mtklein2015-05-18
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1142053004
* Revert of Revert of stop calling SkScalarDiv (patchset #1 id:1 of ↵Gravatar reed2015-05-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1138263002/) Reason for revert: android patched, blink has rolled Original issue's description: > Revert of stop calling SkScalarDiv (patchset #4 id:60001 of https://codereview.chromium.org/1135053002/) > > Reason for revert: > need to wait for Blink roll (and patch android) > > Original issue's description: > > stop calling SkScalarDiv > > > > BUG=skia: > > TBR= > > > > Committed: https://skia.googlesource.com/skia/+/67d71c898249a7af3523b16c6a69895a63bfae0a > > TBR= > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/2629697933b5cc975e45d2a45c48f803fc6cbcec TBR= NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1135693003
* Revert of stop calling SkScalarDiv (patchset #4 id:60001 of ↵Gravatar reed2015-05-12
| | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1135053002/) Reason for revert: need to wait for Blink roll (and patch android) Original issue's description: > stop calling SkScalarDiv > > BUG=skia: > TBR= > > Committed: https://skia.googlesource.com/skia/+/67d71c898249a7af3523b16c6a69895a63bfae0a TBR= NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1138263002
* stop calling SkScalarDivGravatar reed2015-05-12
| | | | | | | BUG=skia: TBR= Review URL: https://codereview.chromium.org/1135053002
* SkPictureShader: floor scaledSize not to exceed maxTextureSizeGravatar gen.kim2015-05-10
| | | | | | | | | scaledSize becomes larger than maxTextureSize by zoom level because it is rounded. BUG=chromium:485916 Review URL: https://codereview.chromium.org/1129413002
* SkPictureShader: scale down if width or height is larger than maxTextureSizeGravatar gen.kim2015-05-03
| | | | | | | | | | Grdient renders black because of failure onCreateTexture if one of width or height is larger than maxTextureSize with --force-gpu-rasterization. BUG=chromium:473166 Review URL: https://codereview.chromium.org/1101513004
* 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
* add SkMatrix::decomposeScaleGravatar reed2015-03-19
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1006173005
* Lower SkPictureShader tile size limitsGravatar fmalita2015-03-13
| | | | | | | | | | Let's drop this to 4M pixels - maybe it will help relieve DM pressure on mobile devices. R=reed@google.com,mtklein@google.com BUG=462348 Review URL: https://codereview.chromium.org/998423004
* Revert of Use an image generator to back SkPictureShader tiles. (patchset #4 ↵Gravatar fmalita2015-02-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | id:60001 of https://codereview.chromium.org/866773002/) Reason for revert: TSAN troubles. Original issue's description: > Use an image generator to back SkPictureShader tiles. > > To avoid lifetime issues for tiles backed by discardable memory, use an > image generator to re-generate them on the fly. > > With this CL, we are now caching bitmap shaders wrapping discardable > pixel ref bitmaps backed by picture image generators. > > (the CL also includes some minor/unrelated SkPictureShader cleanup) > > BUG=skia:3220 > R=reed@google.com,halcanary@google.com > > Committed: https://skia.googlesource.com/skia/+/4739955e98ba86900a5bbac0e3661601427a54d4 TBR=reed@google.com,halcanary@google.com,mtklein@google.com,reed@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:3220 Review URL: https://codereview.chromium.org/956143002
* Notify resource caches when pixelref genID goes staleGravatar reed2015-02-24
| | | | | | | | patch from issue 954443002 at patchset 40001 (http://crrev.com/954443002#ps40001) BUG=skia: Review URL: https://codereview.chromium.org/950363002
* Use an image generator to back SkPictureShader tiles.Gravatar fmalita2015-02-24
| | | | | | | | | | | | | | | To avoid lifetime issues for tiles backed by discardable memory, use an image generator to re-generate them on the fly. With this CL, we are now caching bitmap shaders wrapping discardable pixel ref bitmaps backed by picture image generators. (the CL also includes some minor/unrelated SkPictureShader cleanup) BUG=skia:3220 R=reed@google.com,halcanary@google.com Review URL: https://codereview.chromium.org/866773002
* remove unneeded prerollGravatar reed2015-02-15
| | | | | | | BUG=skia: TBR=robertphilips Review URL: https://codereview.chromium.org/927443006
* Disable LCD text when rasterizing SkPictureShader tiles.Gravatar fmalita2015-02-02
| | | | | | | BUG=chromium:453299 R=reed@google.com Review URL: https://codereview.chromium.org/884163003
* initial preroll apiGravatar reed2015-01-25
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/855473002
* SkPictureShader should handle negative scaling gracefully.Gravatar fmalita2015-01-15
| | | | | | | | | Let's not choke on inverted tiles. BUG=chromium:447707 R=robertphillips@google.com,reed@google.com Review URL: https://codereview.chromium.org/852213002
* 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
* remove view matrix from contextGravatar joshualitt2014-12-17
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/808703006
* Don't store an SkMatrix in BitmapShaderKey.Gravatar fmalita2014-12-10
| | | | | | | | | | SkMatrix makes for a poor key component due to mutable/cache fields. Use its canonical scalars instead. R=reed@google.com,mtklein@google.com Review URL: https://codereview.chromium.org/792123002
* Detect discarded SkPictureShader pixel refs.Gravatar fmalita2014-12-10
| | | | | | | | | | This doesn't address the more general problem, but reduces the race window significantly. BUG=440282 R=reed@google.com Review URL: https://codereview.chromium.org/787043006
* Tweak SkPictureShader's tile semantics.Gravatar fmalita2014-12-08
| | | | | | | | | | | | | | | | | | | | | | | | | | Currently, the tile offset is added when drawing the picture. This might have made a tiny bit of sense when the picture was always positioned at origin, but with a picture cull rect offset things looks really strange. For example, to specify a tile == the picture cull rect we have to pass in [-cullrect.x, -cullrect.y, cullrect.width, cullrect.height]. Yikes. (there's also a bug when not passing a tile, as we use a default tile == cullrect but don't compensate for the above oddity) This changes the semantics of the tile offset: it is now subtracted when drawing the picture tile. As a consequence, one can pass in a tile equal to the cull rect and get the expected behavior (same when not passing a tile). This will require a minor Blink change with the roll, as one client works around the current behavior: https://codereview.chromium.org/789503003 R=reed@google.com,robertphillips@google.com BUG=440046 Review URL: https://codereview.chromium.org/733203005
* Remove SK_SUPPORT_LEGACY_DEEPFLATTENING.Gravatar mtklein2014-12-01
| | | | | | | | | | | | This was needed for pictures before v33, and we're now requiring v35+. Will follow up with the same for skia/ext/pixel_ref_utils_unittest.cc BUG=skia: Committed: https://skia.googlesource.com/skia/+/52c293547b973f7fb5de3c83f5062b07d759ab88 Review URL: https://codereview.chromium.org/769953002
* Revert of Remove SK_SUPPORT_LEGACY_DEEPFLATTENING. (patchset #1 id:1 of ↵Gravatar mtklein2014-12-01
| | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/769953002/) Reason for revert: Breaks canary builds. Will reland after the Chromium change lands. Original issue's description: > Remove SK_SUPPORT_LEGACY_DEEPFLATTENING. > > This was needed for pictures before v33, and we're now requiring v35+. > > Will follow up with the same for skia/ext/pixel_ref_utils_unittest.cc > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/52c293547b973f7fb5de3c83f5062b07d759ab88 TBR=reed@google.com,mtklein@chromium.org NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/768183002
* Remove SK_SUPPORT_LEGACY_DEEPFLATTENING.Gravatar mtklein2014-12-01
| | | | | | | | | | This was needed for pictures before v33, and we're now requiring v35+. Will follow up with the same for skia/ext/pixel_ref_utils_unittest.cc BUG=skia: Review URL: https://codereview.chromium.org/769953002
* SkResourceCache::Key namespace support.Gravatar fmalita2014-10-22
| | | | | | | | | | | | Add a unique-per-subclass namespace tag to make Keys from different domains comparable. Also drop the SkPictureShader cache and convert to using the global resource cache instead. R=reed@google.com,mtklein@google.com,robertphillips@google.com Review URL: https://codereview.chromium.org/668223002
* Picture shader resource caching.Gravatar fmalita2014-10-22
| | | | | | | | | | | | | Replace the current/naive shader caching mechanism with a more general implementation based on SkResourceCache. Caching the bitmap shader itself (as opposed to just the tile bitmap) makes for a chunkier key, but OTOH avoids allocating new shaders on cache hit. R=reed@google.com,mtklein@google.com Review URL: https://codereview.chromium.org/671683004
* Patch to create a distinct geometry processor. The vast majority of this patchGravatar joshualitt2014-09-23
| | | | | | | | | | | | | is just a rename. The meat is in GrGeometryProcessor, GrProcessor, GrGL*Processor, GrProcessorStage, Gr*BackendProcessorFactory, GrProcessUnitTestFactory, and the builders BUG=skia: R=bsalomon@google.com Author: joshualitt@chromium.org Review URL: https://codereview.chromium.org/582963002
* "NULL !=" = NULLGravatar bsalomon2014-09-05
| | | | | | | | R=reed@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/544233002
* make allocPixels throw on failureGravatar reed2014-09-02
| | | | | | | | | BUG=skia: R=mtklein@google.com, fmalita@google.com, fmalita@chromium.org Author: reed@google.com Review URL: https://codereview.chromium.org/510423005
* Try out scalar picture sizesGravatar robertphillips2014-08-29
| | | | | | | | | | This paves the way for removing the 'fTile' parameter from SkPictureShader (although that should be a different CL). If we like this we could also move to providing an entire cull SkRect. R=reed@google.com, mtklein@google.com, fmalita@google.com, fmalita@chromium.org Author: robertphillips@google.com Review URL: https://codereview.chromium.org/513983002
* Simplify flattening to just write enough to call the ↵Gravatar reed2014-08-21
| | | | | | | | | | | | | | | | | | factory/public-constructor for the class. We want to *not* rely on private constructors, and not rely on calling through the inheritance hierarchy for either flattening or unflattening(CreateProc). Refactoring pattern: 1. guard the existing constructor(readbuffer) with the legacy build-flag 2. If you are a instancable subclass, implement CreateProc(readbuffer) to create a new instances from the buffer params (or return NULL). If you're a shader subclass 1. You must read/write the local matrix if your class accepts that in its factory/constructor, else ignore it. R=robertphillips@google.com, mtklein@google.com, senorblanco@google.com, senorblanco@chromium.org, sugoi@chromium.org Author: reed@google.com Review URL: https://codereview.chromium.org/395603002
* Clamp SkPictureShader's tile size.Gravatar fmalita2014-08-07
| | | | | | | | | | | | | | Blink used to clamp the max size for its pattern bitmaps (several SVG pattern tests rely on/verify this behavior). This CL clamps the maximum tile area to a reasonable value (16M pixels), and scales beyond that. R=bsalomon@google.com, reed@google.com, robertphillips@google.com Author: fmalita@chromium.org Review URL: https://codereview.chromium.org/446243002
* Explicit tile bounds for SkPictureShaderGravatar fmalita2014-08-06
| | | | | | | | | | | | | | | The integer picture size is not granular enough to allow precise tiling in arbitrary coordinate systems. This CL adds an optional tile bounds float rect param to control the tile size and location. (this also allows tile spacing emulation for picture shaders). R=reed@google.com, robertphillips@google.com Author: fmalita@chromium.org Review URL: https://codereview.chromium.org/437393003
* Make SkPictureShader and SkPictureImageFilter use const SkPicturesGravatar robertphillips2014-07-14
| | | | | | | | | R=mtklein@google.com, reed@google.com TBR=reed@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/390023002
* No need to cache local matrix in picture shader.Gravatar scroggo2014-07-11
| | | | | | | | | | | | | Now that the local matrix cannot be changed, we no longer need to keep track of it to regenerate the bitmap shader. Depends on https://codereview.chromium.org/379323002 R=fmalita@google.com, fmalita@chromium.org Author: scroggo@google.com Review URL: https://codereview.chromium.org/387043002
* Goodbye GrEffectRef.Gravatar bsalomon2014-07-08
| | | | | | | | | | Also, reworked some var names and comments around SkShader::asNewEffect. R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/374923002
* Make GrDrawState and GrPaint take GrEffect* instead of GrEffectRef*.Gravatar bsalomon2014-07-08
| | | | | | | | | | | | | | Make Sk-effect virtuals produce GrEffect* rather than GrEffectRef* Make GrEffectRef a typedef for GrEffect. Committed: https://skia.googlesource.com/skia/+/2011fe9cdfa63b83489a146cea6a724cede352c8 R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/377503004
* Revert of Make GrDrawState and GrPaint take GrEffect* instead of ↵Gravatar reed2014-07-07
| | | | | | | | | | | | | | | | | | | | | | | | | GrEffectRef*. (https://codereview.chromium.org/377503004/) Reason for revert: broke linux builders Original issue's description: > Make GrDrawState and GrPaint take GrEffect* instead of GrEffectRef*. > > Make Sk-effect virtuals produce GrEffect* rather than GrEffectRef* > > Make GrEffectRef a typedef for GrEffect. > > Committed: https://skia.googlesource.com/skia/+/2011fe9cdfa63b83489a146cea6a724cede352c8 R=robertphillips@google.com, bsalomon@google.com TBR=bsalomon@google.com, robertphillips@google.com NOTREECHECKS=true NOTRY=true Author: reed@google.com Review URL: https://codereview.chromium.org/372053003
* Make GrDrawState and GrPaint take GrEffect* instead of GrEffectRef*.Gravatar bsalomon2014-07-07
| | | | | | | | | | | | Make Sk-effect virtuals produce GrEffect* rather than GrEffectRef* Make GrEffectRef a typedef for GrEffect. R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/377503004
* SkShader::asNewEffect RefactoringGravatar dandov2014-06-10
| | | | | | | | | | | | | | | The new signature is: bool asNewEffect(GrContext* context, const SkPaint& paint, GrColor* grColor, GrEffectRef** grEffect, const SkMatrix* localMatrixOrNull) const; It will fix the hack for skcolorshader by modifying the GrColor parameter in SkGr::SkPaint2GrPaintShader. BUG=skia:2646 R=jvanverth@google.com, bsalomon@google.com Author: dandov@google.com Review URL: https://codereview.chromium.org/318923005
* Alter SkCanvas::drawPicture (devirtualize, take const SkPicture, take pointer)Gravatar robertphillips2014-06-04
| | | | | | | | R=reed@google.com, bsalomon@google.com, mtklein@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/313613004
* re-land hide get/setLocalMatrixGravatar commit-bot@chromium.org2014-05-12
| | | | | | | | | | | | This reverts commit b1d702a43b07934f5b001b1b09db2c57ede909a1. TBR=scroggo@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/279903002 git-svn-id: http://skia.googlecode.com/svn/trunk@14702 2bbb7eff-a529-9590-31e7-b0007b416f81
* add localmatrix parameter to shader's asNewEffectGravatar commit-bot@chromium.org2014-05-09
| | | | | | | | | | | BUG=skia: R=bsalomon@google.com, dominikg@chromium.org Author: reed@google.com Review URL: https://codereview.chromium.org/278963002 git-svn-id: http://skia.googlecode.com/svn/trunk@14686 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert of hide get/setLocalMatrix (https://codereview.chromium.org/279563002/)Gravatar commit-bot@chromium.org2014-05-09
| | | | | | | | | | | | | | | | | | | | | | | | Reason for revert: broke gms Original issue's description: > hide get/setLocalMatrix > > BUG=skia: > > Committed: http://code.google.com/p/skia/source/detail?r=14675 R=fmalita@google.com, dominikg@chromium.org, fmalita@chromium.org TBR=dominikg@chromium.org, fmalita@chromium.org, fmalita@google.com NOTREECHECKS=true NOTRY=true BUG=skia: Author: reed@google.com Review URL: https://codereview.chromium.org/278903002 git-svn-id: http://skia.googlecode.com/svn/trunk@14677 2bbb7eff-a529-9590-31e7-b0007b416f81
* hide get/setLocalMatrixGravatar commit-bot@chromium.org2014-05-09
| | | | | | | | | | | BUG=skia: R=fmalita@google.com, dominikg@chromium.org, fmalita@chromium.org Author: reed@google.com Review URL: https://codereview.chromium.org/279563002 git-svn-id: http://skia.googlecode.com/svn/trunk@14675 2bbb7eff-a529-9590-31e7-b0007b416f81