aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/effects/SkMatrixConvolutionImageFilter.cpp
Commit message (Collapse)AuthorAge
* Let them eat GrEffectRef.Gravatar bsalomon@google.com2013-01-22
| | | | | | | Changes the remaining existing code that operates on naked GrEffects to GrEffectRef. Review URL: https://codereview.appspot.com/7124058 git-svn-id: http://skia.googlecode.com/svn/trunk@7321 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove default implementation of GrEffect::isEqual. Make ↵Gravatar bsalomon@google.com2013-01-17
| | | | | | | | GrSingleTextureEffect abstract. Review URL: https://codereview.appspot.com/7142049 git-svn-id: http://skia.googlecode.com/svn/trunk@7254 2bbb7eff-a529-9590-31e7-b0007b416f81
* Change some function/vars from EffectPtr to EffectRef to reflect ↵Gravatar bsalomon@google.com2013-01-16
| | | | | | GrEffectPtr->GrEffectRef renaming. git-svn-id: http://skia.googlecode.com/svn/trunk@7226 2bbb7eff-a529-9590-31e7-b0007b416f81
* Wrap GrEffects in GrEffectPtr.Gravatar bsalomon@google.com2013-01-16
| | | | | | | | | This is the first step towards automatic recycling of scratch resouces in the cache via ref-cnts. R=robertphillips@google.com Review URL: https://codereview.appspot.com/7092061 git-svn-id: http://skia.googlecode.com/svn/trunk@7222 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix a problem in the matrix convolution image filter exposed by ↵Gravatar senorblanco@chromium.org2013-01-14
| | | | | | | | | | https://code.google.com/p/skia/source/detail?r=7152: when offsetting texture coordinates in a GrEffect, take the origin of the source bitmap origin into account, and flip Y coordinates when we need to. NOTE: this will cause the matrixconvolution GM's to need to be rebaselined (again!). Review URL: https://codereview.appspot.com/7086054 git-svn-id: http://skia.googlecode.com/svn/trunk@7168 2bbb7eff-a529-9590-31e7-b0007b416f81
* Implement getConstantColorComponents() for matrix convolution.Gravatar bsalomon@google.com2013-01-11
| | | | | | | R=senorblanco@chromium.org Review URL: https://codereview.appspot.com/7092047 git-svn-id: http://skia.googlecode.com/svn/trunk@7146 2bbb7eff-a529-9590-31e7-b0007b416f81
* fix warning from scalar --> int32 conversionGravatar humper@google.com2013-01-07
| | | | | | | | BUG= Review URL: https://codereview.appspot.com/7065050 git-svn-id: http://skia.googlecode.com/svn/trunk@7061 2bbb7eff-a529-9590-31e7-b0007b416f81
* Clean up some Windows compiler warnings.Gravatar senorblanco@chromium.org2012-11-29
| | | | | | Review URL: https://codereview.appspot.com/6844111 git-svn-id: http://skia.googlecode.com/svn/trunk@6628 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove default texture coords / texture matrixGravatar bsalomon@google.com2012-11-05
| | | | | | Review URL: https://codereview.appspot.com/6775100 git-svn-id: http://skia.googlecode.com/svn/trunk@6293 2bbb7eff-a529-9590-31e7-b0007b416f81
* Attempt to patch Chrome compiler failuresGravatar robertphillips@google.com2012-11-05
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@6289 2bbb7eff-a529-9590-31e7-b0007b416f81
* Make all remaining effects use GrGLEffectMatrixGravatar bsalomon@google.com2012-11-02
| | | | | | | R=robertphillips@google.com Review URL: https://codereview.appspot.com/6817079 git-svn-id: http://skia.googlecode.com/svn/trunk@6286 2bbb7eff-a529-9590-31e7-b0007b416f81
* Pass GrCustomStage to key-generation functions and emitCode().Gravatar bsalomon@google.com2012-10-29
| | | | | | | R=robertphillips@google.com Review URL: https://codereview.appspot.com/6819046 git-svn-id: http://skia.googlecode.com/svn/branches/gpu_dev@6182 2bbb7eff-a529-9590-31e7-b0007b416f81
* Make a bunch of GrGLEffects derive directly from GrGLEffect rather than ↵Gravatar bsalomon@google.com2012-10-26
| | | | | | | | GrGLLegacyEffect. Review URL: https://codereview.appspot.com/6783053 git-svn-id: http://skia.googlecode.com/svn/branches/gpu_dev@6150 2bbb7eff-a529-9590-31e7-b0007b416f81
* Make the orientation of a texture accessible from and known by GrSurface.Gravatar bsalomon@google.com2012-10-26
| | | | | | | R=robertphillips@google.com Review URL: https://codereview.appspot.com/6801044 git-svn-id: http://skia.googlecode.com/svn/branches/gpu_dev@6148 2bbb7eff-a529-9590-31e7-b0007b416f81
* Make GrGLEffect::setData take GrEffectStage rather than GrEffect.Gravatar bsalomon@google.com2012-10-26
| | | | | | | | | This allows the coord-change matrix to be communicated to setData(). An accessor for this matrix is also added to GrEffectStage. R=robertphillips@google.com Review URL: https://codereview.appspot.com/6779057 git-svn-id: http://skia.googlecode.com/svn/branches/gpu_dev@6143 2bbb7eff-a529-9590-31e7-b0007b416f81
* Rename StageKey and related stuff.Gravatar bsalomon@google.com2012-10-25
| | | | | | | R=robertphillips@google.com Review URL: https://codereview.appspot.com/6785049 git-svn-id: http://skia.googlecode.com/svn/trunk@6130 2bbb7eff-a529-9590-31e7-b0007b416f81
* Rename GrProgramStageFactory to GrBackendEffectFactory.Gravatar bsalomon@google.com2012-10-25
| | | | | | Review URL: https://codereview.appspot.com/6773044 git-svn-id: http://skia.googlecode.com/svn/trunk@6125 2bbb7eff-a529-9590-31e7-b0007b416f81
* GrGLProgramStage Renaming Part 3Gravatar bsalomon@google.com2012-10-25
| | | | | | | | | | s/GLProgramStage/GLEffect minor whitespace/spelling fixup R=robertphillips@google.com Review URL: https://codereview.appspot.com/6767054 git-svn-id: http://skia.googlecode.com/svn/trunk@6095 2bbb7eff-a529-9590-31e7-b0007b416f81
* GrGLProgramStage Renaming Part 2Gravatar bsalomon@google.com2012-10-25
| | | | | | | s/GrGLLegacyProgramStage/GrGLLegacyEffect Review URL: https://codereview.appspot.com/6761056 git-svn-id: http://skia.googlecode.com/svn/trunk@6091 2bbb7eff-a529-9590-31e7-b0007b416f81
* GrGLProgramStage Renaming Part 1.Gravatar bsalomon@google.com2012-10-25
| | | | | | | | Renamed cpp and h s/GrGLProgramStage/GrGLEffect/ Review URL: https://codereview.appspot.com/6759054 git-svn-id: http://skia.googlecode.com/svn/trunk@6090 2bbb7eff-a529-9590-31e7-b0007b416f81
* GrCustomStage Renaming Part 5Gravatar bsalomon@google.com2012-10-25
| | | | | | | | | Stuff found by searching for "stage". R=robertphillips@google.com Review URL: https://codereview.appspot.com/6772043 git-svn-id: http://skia.googlecode.com/svn/trunk@6089 2bbb7eff-a529-9590-31e7-b0007b416f81
* GrCustomStage Renaming Part 4Gravatar bsalomon@google.com2012-10-24
| | | | | | | Rename a bunch of things found by searching for "custom". Review URL: https://codereview.appspot.com/6765048 git-svn-id: http://skia.googlecode.com/svn/trunk@6085 2bbb7eff-a529-9590-31e7-b0007b416f81
* GrCustomStage Renaming Part 3Gravatar bsalomon@google.com2012-10-24
| | | | | | | | | Rename all things *CUSTOM_STAGE*, customStage*, and other miscellany R=robertphillips@google.com Review URL: https://codereview.appspot.com/6769048 git-svn-id: http://skia.googlecode.com/svn/trunk@6081 2bbb7eff-a529-9590-31e7-b0007b416f81
* GrCustomStage Renaming Part 2Gravatar bsalomon@google.com2012-10-24
| | | | | | | | | GrSamplerState member rename GrCustomStageUnitTest rename some comment updates Review URL: https://codereview.appspot.com/6771043 git-svn-id: http://skia.googlecode.com/svn/trunk@6078 2bbb7eff-a529-9590-31e7-b0007b416f81
* CustomStage Renaming Part 1Gravatar bsalomon@google.com2012-10-24
| | | | | | | | | | | | | | | | | | | Search and replace: GrCustomStage->GrEffect GrCustomStageTestFactory->GrEffectTestFactory renamed the cpp/h files from customStage->effect reordered gypi, #includes, forward decls to maintain alphabetical sort. manually fixed up some whitespace and linewraps deleted a commented out #include R=robertphillips@google.com Review URL: https://codereview.appspot.com/6758046 git-svn-id: http://skia.googlecode.com/svn/trunk@6076 2bbb7eff-a529-9590-31e7-b0007b416f81
* Combine the emit functions in GrGLProgramStage.Gravatar bsalomon@google.com2012-10-23
| | | | | | | R=robertphillips@google.com Review URL: https://codereview.appspot.com/6741064 git-svn-id: http://skia.googlecode.com/svn/trunk@6057 2bbb7eff-a529-9590-31e7-b0007b416f81
* Reland r6330 thru r6333 but do without enabling ↵Gravatar bsalomon@google.com2012-10-23
| | | | | | GL_ARB_fragment_coord_conventions on Intel GPUs. git-svn-id: http://skia.googlecode.com/svn/trunk@6048 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert r6330 thru 6333 while we figure out what to do about Intel bots ↵Gravatar bsalomon@google.com2012-10-22
| | | | | | (possible driver bug). git-svn-id: http://skia.googlecode.com/svn/trunk@6037 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove two params from GrGLProgramStage::setData that are no longer necessary.Gravatar bsalomon@google.com2012-10-22
| | | | | | | R=senorblanco@chromium.org Review URL: https://codereview.appspot.com/6744062 git-svn-id: http://skia.googlecode.com/svn/trunk@6031 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Skia_Periodic_House_KeepingGravatar skia.committer@gmail.com2012-10-05
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@5821 2bbb7eff-a529-9590-31e7-b0007b416f81
* Build fix: work around what appears to be an Intel GLSL driver bug. ↵Gravatar senorblanco@chromium.org2012-10-04
| | | | | | Unreviewed. git-svn-id: http://skia.googlecode.com/svn/trunk@5812 2bbb7eff-a529-9590-31e7-b0007b416f81
* Implement GPU path for matrix convolution. Note that when not convolving alpha,Gravatar senorblanco@chromium.org2012-10-04
| | | | | | | | | | | | | | | | | | | | the premultiplying is done less efficiently than in the raster path: it's done on each texture access, rather than as a pre-processing pass. This was so I could do the filter as a single custom stage; will try the optimization separately. This implementation gives a ~30X speedup on the GPU results for the matrixconvolution bench (~10X due to the GPU, and ~3X due to texture uploads/readback removal). Note: this changes the matrixconvolution for the software path as well, so it will likely break the bots until that test is rebaselined. Review URL: https://codereview.appspot.com/6585069/ git-svn-id: http://skia.googlecode.com/svn/trunk@5809 2bbb7eff-a529-9590-31e7-b0007b416f81
* This patch adds support for optional processing of the alpha channel inGravatar senorblanco@chromium.org2012-09-25
| | | | | | | | | | | | | | the matrix convolution filter. Test cases are added to the GM and the bench. NOTE: This will require rebaselining the matrixconvolution GM, so it will likely turn the bots red until that is done. https://codereview.appspot.com/6547049/ git-svn-id: http://skia.googlecode.com/svn/trunk@5661 2bbb7eff-a529-9590-31e7-b0007b416f81
* Make flattenables no longer depend on global static initializers.Gravatar scroggo@google.com2012-09-21
| | | | | | | | | | | | | | | | | Instead, force all builds to call InitializeFlattenables. Remove the make_debugger script, which was created to force rebuilding without global static initializers so that all flattenables would be linked. It is no longer necessary since all flattenables will be linked thanks to InitializeFlattenables, which now can (and must) be called when global static initializers are turned on. BUG=https://code.google.com/p/skia/issues/detail?id=903 BUG=https://code.google.com/p/skia/issues/detail?id=902 Review URL: https://codereview.appspot.com/6548044 git-svn-id: http://skia.googlecode.com/svn/trunk@5642 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix premul alpha problems w/matrix convolution filter, and re-enable the bench.Gravatar senorblanco@chromium.org2012-09-20
| | | | | | | | http://codereview.appspot.com/6541043/ git-svn-id: http://skia.googlecode.com/svn/trunk@5610 2bbb7eff-a529-9590-31e7-b0007b416f81
* Yet another speculative Android fix. Unreviewed.Gravatar senorblanco@chromium.org2012-09-19
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@5600 2bbb7eff-a529-9590-31e7-b0007b416f81
* Speculative fix for Android GMs. Unreviewed.Gravatar senorblanco@chromium.org2012-09-19
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@5598 2bbb7eff-a529-9590-31e7-b0007b416f81
* Implements a matrix convolution filter (raster path only). The filtering loopGravatar senorblanco@chromium.org2012-09-18
is templated on the tiling mode for speed: interior pixels are unconditionally fetched; border pixels apply the appropriate tiling mode before fetching. It handles target, bias, divisor (as gain), and edge modes (named to be more skia-like). It does not handle the "preserveAlpha" semantics of feConvolveMatrix, nor "kernelUnitLength". git-svn-id: http://skia.googlecode.com/svn/trunk@5592 2bbb7eff-a529-9590-31e7-b0007b416f81