aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkPictureShader.cpp
Commit message (Collapse)AuthorAge
* 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
* add local-matrix to shader::contextGravatar commit-bot@chromium.org2014-05-06
| | | | | | | | | | | BUG=skia: R=scroggo@google.com, dominikg@chromium.org Author: reed@google.com Review URL: https://codereview.chromium.org/263293005 git-svn-id: http://skia.googlecode.com/svn/trunk@14592 2bbb7eff-a529-9590-31e7-b0007b416f81
* don't leak the bitmapShaderGravatar commit-bot@chromium.org2014-05-06
| | | | | | | | | | | BUG=skia: R=fmalita@google.com, robertphillips@google.com, fmalita@chromium.org Author: reed@google.com Review URL: https://codereview.chromium.org/269163004 git-svn-id: http://skia.googlecode.com/svn/trunk@14588 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove SkShader virtual method validContextGravatar commit-bot@chromium.org2014-05-05
| | | | | | | | | | | | | patch from issue 267923005 BUG=skia: R=scroggo@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/261773005 git-svn-id: http://skia.googlecode.com/svn/trunk@14573 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove setLocalMatrix calls from picture shader GM.Gravatar commit-bot@chromium.org2014-05-02
| | | | | | | | | | | | | | | | This makes all --skr tests pass for me. Enabling it by default in DM. BUG=skia:2378 Committed: http://code.google.com/p/skia/source/detail?r=14549 R=reed@google.com, mtklein@google.com, fmalita@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/260863007 git-svn-id: http://skia.googlecode.com/svn/trunk@14551 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert of Remove setLocalMatrix calls from picture shader GM. ↵Gravatar commit-bot@chromium.org2014-05-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/260863007/) Reason for revert: changed GM unexpectedly. will sort out and try again Original issue's description: > Remove setLocalMatrix calls from picture shader GM. > > This makes all --skr tests pass for me. Enabling it by default in DM. > > BUG=skia:2378 > > Committed: http://code.google.com/p/skia/source/detail?r=14549 R=reed@google.com, fmalita@google.com, mtklein@chromium.org TBR=fmalita@google.com, mtklein@chromium.org, reed@google.com NOTREECHECKS=true NOTRY=true BUG=skia:2378 Author: mtklein@google.com Review URL: https://codereview.chromium.org/265013003 git-svn-id: http://skia.googlecode.com/svn/trunk@14550 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove setLocalMatrix calls from picture shader GM.Gravatar commit-bot@chromium.org2014-05-02
| | | | | | | | | | | | | This makes all --skr tests pass for me. Enabling it by default in DM. BUG=skia:2378 R=reed@google.com, mtklein@google.com, fmalita@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/260863007 git-svn-id: http://skia.googlecode.com/svn/trunk@14549 2bbb7eff-a529-9590-31e7-b0007b416f81
* create struct to hold all the params passed around for shader::contextGravatar commit-bot@chromium.org2014-05-01
| | | | | | | | | | | BUG=skia: R=scroggo@google.com, dominikg@chromium.org Author: reed@google.com Review URL: https://codereview.chromium.org/264843006 git-svn-id: http://skia.googlecode.com/svn/trunk@14514 2bbb7eff-a529-9590-31e7-b0007b416f81
* Move SkShader::fLocalMatrix into SkShader constructor.Gravatar commit-bot@chromium.org2014-04-28
| | | | | | | | | | | | | | | | As a first step towards removing SkShader::setLocalMatrix, which will make SkShader thread-safe, remove calls to setLocalMatrix that happen immediately after the shader is being created. Instead, pass the matrix into the constructor or factory method. BUG=skia:1976 R=scroggo@google.com, reed@google.com, skyostil@google.com, mtklein@google.com Author: dominikg@chromium.org Review URL: https://codereview.chromium.org/245963010 git-svn-id: http://skia.googlecode.com/svn/trunk@14401 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert of Revert of Extract most of the mutable state of SkShader into a ↵Gravatar commit-bot@chromium.org2014-04-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | separate Context object. (https://codereview.chromium.org/249643002/) Reason for revert: Chromium side change landed along side DEPS roll that includes r14323. Original issue's description: > Revert of Extract most of the mutable state of SkShader into a separate Context object. (https://codereview.chromium.org/207683004/) > > Reason for revert: > This is blocking the DEPS roll into Chromium. Failures can be seen here: > > http://build.chromium.org/p/tryserver.chromium/builders/android_dbg/builds/174333 > > Original issue's description: > > Extract most of the mutable state of SkShader into a separate Context object. > > > > SkShader currently stores some state during draw calls via setContext(...). > > Move that mutable state into a separate SkShader::Context class that is > > constructed on demand for the duration of the draw. > > > > Calls to setContext() are replaced with createContext() which returns a context > > corresponding to the shader object or NULL if the parameters to createContext > > are invalid. > > > > TEST=out/Debug/dm > > BUG=skia:1976 > > > > Committed: http://code.google.com/p/skia/source/detail?r=14216 > > > > Committed: http://code.google.com/p/skia/source/detail?r=14323 > > TBR=scroggo@google.com,skyostil@chromium.org,tomhudson@chromium.org,senorblanco@chromium.org,reed@google.com,bungeman@google.com,dominikg@chromium.org > NOTREECHECKS=true > NOTRY=true > BUG=skia:1976 > > Committed: http://code.google.com/p/skia/source/detail?r=14326 R=scroggo@google.com, skyostil@chromium.org, tomhudson@chromium.org, senorblanco@chromium.org, reed@google.com, bungeman@google.com, dominikg@chromium.org TBR=bungeman@google.com, dominikg@chromium.org, reed@google.com, scroggo@google.com, senorblanco@chromium.org, skyostil@chromium.org, tomhudson@chromium.org NOTREECHECKS=true NOTRY=true BUG=skia:1976 Author: bsalomon@google.com Review URL: https://codereview.chromium.org/246403013 git-svn-id: http://skia.googlecode.com/svn/trunk@14328 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert of Extract most of the mutable state of SkShader into a separate ↵Gravatar commit-bot@chromium.org2014-04-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Context object. (https://codereview.chromium.org/207683004/) Reason for revert: This is blocking the DEPS roll into Chromium. Failures can be seen here: http://build.chromium.org/p/tryserver.chromium/builders/android_dbg/builds/174333 Original issue's description: > Extract most of the mutable state of SkShader into a separate Context object. > > SkShader currently stores some state during draw calls via setContext(...). > Move that mutable state into a separate SkShader::Context class that is > constructed on demand for the duration of the draw. > > Calls to setContext() are replaced with createContext() which returns a context > corresponding to the shader object or NULL if the parameters to createContext > are invalid. > > TEST=out/Debug/dm > BUG=skia:1976 > > Committed: http://code.google.com/p/skia/source/detail?r=14216 > > Committed: http://code.google.com/p/skia/source/detail?r=14323 R=scroggo@google.com, skyostil@chromium.org, tomhudson@chromium.org, senorblanco@chromium.org, reed@google.com, bungeman@google.com, dominikg@chromium.org TBR=bungeman@google.com, dominikg@chromium.org, reed@google.com, scroggo@google.com, senorblanco@chromium.org, skyostil@chromium.org, tomhudson@chromium.org NOTREECHECKS=true NOTRY=true BUG=skia:1976 Author: bsalomon@google.com Review URL: https://codereview.chromium.org/249643002 git-svn-id: http://skia.googlecode.com/svn/trunk@14326 2bbb7eff-a529-9590-31e7-b0007b416f81
* Extract most of the mutable state of SkShader into a separate Context object.Gravatar commit-bot@chromium.org2014-04-23
| | | | | | | | | | | | | | | | | | | | | | | SkShader currently stores some state during draw calls via setContext(...). Move that mutable state into a separate SkShader::Context class that is constructed on demand for the duration of the draw. Calls to setContext() are replaced with createContext() which returns a context corresponding to the shader object or NULL if the parameters to createContext are invalid. TEST=out/Debug/dm BUG=skia:1976 Committed: http://code.google.com/p/skia/source/detail?r=14216 R=scroggo@google.com, skyostil@chromium.org, tomhudson@chromium.org, senorblanco@chromium.org, reed@google.com, bungeman@google.com Author: dominikg@chromium.org Review URL: https://codereview.chromium.org/207683004 git-svn-id: http://skia.googlecode.com/svn/trunk@14323 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fixes for SkPictureShader.Gravatar commit-bot@chromium.org2014-04-21
| | | | | | | | | | | | | | | | | | | | | Update comment in header to make it more clear that the picture should be unaltered after creating the shader. We want our shaders to be immutable, and this supports that. Make the factory return NULL if the shader would have never drawn anyway i.e. for a null picture or picture with no width/height. Addresses comments I brought up in https://codereview.chromium.org/221923007/#msg16. BUG=skia:1976 R=reed@google.com, fmalita@chromium.org, robertphillips@google.com Author: scroggo@google.com Review URL: https://codereview.chromium.org/238253005 git-svn-id: http://skia.googlecode.com/svn/trunk@14288 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert of Extract most of the mutable state of SkShader into a separate ↵Gravatar commit-bot@chromium.org2014-04-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Context object. (https://codereview.chromium.org/207683004/) Reason for revert: Causing memory leaks in Chromium. Original issue's description: > Extract most of the mutable state of SkShader into a separate Context object. > > SkShader currently stores some state during draw calls via setContext(...). > Move that mutable state into a separate SkShader::Context class that is > constructed on demand for the duration of the draw. > > Calls to setContext() are replaced with createContext() which returns a context > corresponding to the shader object or NULL if the parameters to createContext > are invalid. > > TEST=out/Debug/dm > BUG=skia:1976 > > Committed: http://code.google.com/p/skia/source/detail?r=14216 R=scroggo@google.com, skyostil@chromium.org, tomhudson@chromium.org, senorblanco@chromium.org, reed@google.com, dominikg@chromium.org TBR=dominikg@chromium.org, reed@google.com, scroggo@google.com, senorblanco@chromium.org, skyostil@chromium.org, tomhudson@chromium.org NOTREECHECKS=true NOTRY=true BUG=skia:1976 Author: bungeman@google.com Review URL: https://codereview.chromium.org/241283003 git-svn-id: http://skia.googlecode.com/svn/trunk@14247 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert of Fix memory leak in SkGradientShader. ↵Gravatar commit-bot@chromium.org2014-04-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/240303003/) Reason for revert: This and https://codereview.chromium.org/207683004 are causing memory leaks. Original issue's description: > Fix memory leak in SkGradientShader. > > Make sure pointer to gradient shader cache is unreffed in SkGradientShaderBase::getGradientTableBitmap. > Rename methods returning a "pre-reffed" object to indicate obligations. > > BUG=skia:1976 > > Committed: http://code.google.com/p/skia/source/detail?r=14223 R=reed@google.com, scroggo@google.com, dominikg@chromium.org TBR=dominikg@chromium.org, reed@google.com, scroggo@google.com NOTREECHECKS=true NOTRY=true BUG=skia:1976 Author: bungeman@google.com Review URL: https://codereview.chromium.org/241603002 git-svn-id: http://skia.googlecode.com/svn/trunk@14245 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix memory leak in SkGradientShader.Gravatar commit-bot@chromium.org2014-04-16
| | | | | | | | | | | | | | Make sure pointer to gradient shader cache is unreffed in SkGradientShaderBase::getGradientTableBitmap. Rename methods returning a "pre-reffed" object to indicate obligations. BUG=skia:1976 R=reed@google.com, scroggo@google.com Author: dominikg@chromium.org Review URL: https://codereview.chromium.org/240303003 git-svn-id: http://skia.googlecode.com/svn/trunk@14223 2bbb7eff-a529-9590-31e7-b0007b416f81
* Extract most of the mutable state of SkShader into a separate Context object.Gravatar commit-bot@chromium.org2014-04-16
| | | | | | | | | | | | | | | | | | | | SkShader currently stores some state during draw calls via setContext(...). Move that mutable state into a separate SkShader::Context class that is constructed on demand for the duration of the draw. Calls to setContext() are replaced with createContext() which returns a context corresponding to the shader object or NULL if the parameters to createContext are invalid. TEST=out/Debug/dm BUG=skia:1976 R=scroggo@google.com, skyostil@chromium.org, tomhudson@chromium.org, senorblanco@chromium.org, reed@google.com, bungeman@google.com Author: dominikg@chromium.org Review URL: https://codereview.chromium.org/207683004 git-svn-id: http://skia.googlecode.com/svn/trunk@14216 2bbb7eff-a529-9590-31e7-b0007b416f81
* Initial picture shader implementationGravatar commit-bot@chromium.org2014-04-08
| | | | | | | | | | | | | | | | | | This CL adds an SkPictureShader class to support SkPicture-based patterns. The implementation renders the picture into an SkBitmap tile and then delegates to SkBitmapProcShader for the actual operation. R=bsalomon@google.com, reed@google.com, robertphillips@google.com Committed: http://code.google.com/p/skia/source/detail?r=14085 Author: fmalita@chromium.org Review URL: https://codereview.chromium.org/221923007 git-svn-id: http://skia.googlecode.com/svn/trunk@14092 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert of Initial picture shader implementation ↵Gravatar commit-bot@chromium.org2014-04-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/221923007/) Reason for revert: breaking the buildbots. Subsequent CL only addressed CompareGMs but GenerateGMs are also failing. Original issue's description: > Initial picture shader implementation > > This CL adds an SkPictureShader class to support SkPicture-based > patterns. > > The implementation renders the picture into an SkBitmap tile and then > delegates to SkBitmapProcShader for the actual operation. > > R=reed@google.com,robertphillips@google.com,bsalomon@google.com > > Committed: http://code.google.com/p/skia/source/detail?r=14085 R=bsalomon@google.com, reed@google.com, robertphillips@google.com, fmalita@chromium.org TBR=bsalomon@google.com, fmalita@chromium.org, reed@google.com, robertphillips@google.com NOTREECHECKS=true NOTRY=true Author: bensong@google.com Review URL: https://codereview.chromium.org/227553010 git-svn-id: http://skia.googlecode.com/svn/trunk@14087 2bbb7eff-a529-9590-31e7-b0007b416f81
* Initial picture shader implementationGravatar commit-bot@chromium.org2014-04-07
This CL adds an SkPictureShader class to support SkPicture-based patterns. The implementation renders the picture into an SkBitmap tile and then delegates to SkBitmapProcShader for the actual operation. R=bsalomon@google.com, reed@google.com, robertphillips@google.com Author: fmalita@chromium.org Review URL: https://codereview.chromium.org/221923007 git-svn-id: http://skia.googlecode.com/svn/trunk@14085 2bbb7eff-a529-9590-31e7-b0007b416f81