reed@google.com
6ba4572eed
remove dst/rendertarget support for kARGB_4444_Config
...
BUG=
Review URL: https://codereview.chromium.org/17335008
git-svn-id: http://skia.googlecode.com/svn/trunk@9727 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-06-21 18:30:53 +00:00
senorblanco@chromium.org
86fc266eda
Implement SkXfermode image filter. This required changing the signature of SkXfermode::asNewEffectOrCoeffs(), to add an optional background texture.
...
For the raster path, we do a straightforward 2-pass method: draw background, then composite the foreground over it.
For the GPU path, if the xfermode can be expressed as an effect, we build an effect with the background texture incorporated, then do a single-pass draw fetching both foreground and background textures, and compositing to the result. If the xfermode is expressed as src/dst coefficients, we do a 2-pass draw as in the raster path and use fixed-function blending.
R=bsalomon@google.com , reed@google.com
Review URL: https://codereview.chromium.org/16125008
git-svn-id: http://skia.googlecode.com/svn/trunk@9373 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-31 17:49:12 +00:00
senorblanco@chromium.org
9a6eb0e1e8
Provide a GPU implementation of SkArithmeticMode, using a custom GrEffect exposed via asNewEffectOrCoeff().
...
Doing it this way required modifying the arithmode GM to use saveLayer()/restore() rather than creating an offscreen SkBitmap, since otherwise the compositing is always done in raster mode. Fixing that in turn exposed that SkArithmeticMode did not work in Picture mode, since it wasn't flattenable. Made it so.
Note: this will require rebaselining the arithmode GM (again).
R=bsalomon@google.com , reed@google.com
Originally committed: https://code.google.com/p/skia/source/detail?r=9324
Reverted: https://code.google.com/p/skia/source/detail?r=9325
Review URL: https://codereview.chromium.org/16064002
git-svn-id: http://skia.googlecode.com/svn/trunk@9330 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-29 20:55:09 +00:00
senorblanco@chromium.org
06e7424c70
Revert "Provide a GPU implementation of SkArithmeticMode, using a custom GrEffect exposed via asNewEffectOrCoeff()."
...
This reverts commit b8ffe17b5c684f9cfff02285f27e6aa1f75c9b53.
TBR=robertphillips
Review URL: https://codereview.chromium.org/16115007
git-svn-id: http://skia.googlecode.com/svn/trunk@9325 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-29 19:05:54 +00:00
senorblanco@chromium.org
6b6c1dc34c
Provide a GPU implementation of SkArithmeticMode, using a custom GrEffect exposed via asNewEffectOrCoeff().
...
Doing it this way required modifying the arithmode GM to use saveLayer()/restore() rather than creating an offscreen SkBitmap, since otherwise the compositing is always done in raster mode. Fixing that in turn exposed that SkArithmeticMode did not work in Picture mode, since it wasn't flattenable. Made it so.
Note: this will require rebaselining the arithmode GM (again).
R=bsalomon@google.com , reed@google.com
Review URL: https://codereview.chromium.org/16064002
git-svn-id: http://skia.googlecode.com/svn/trunk@9324 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-29 18:50:46 +00:00
reed@google.com
3d3a860d0b
Add flag to gradients to interpolate colors in premul space. Experimental API to encapsulate the shared parameters for all gradients into a struct.
...
BUG=
R=bsalomon@google.com
Review URL: https://codereview.chromium.org/15893002
git-svn-id: http://skia.googlecode.com/svn/trunk@9273 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-24 14:58:44 +00:00
robertphillips@google.com
1202c2ac56
Add printing of SkColorFilter-derived classes to debugger
...
https://codereview.chromium.org/15697012/
git-svn-id: http://skia.googlecode.com/svn/trunk@9255 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-23 14:00:17 +00:00
commit-bot@chromium.org
8f838259ab
Add methods to SkLayerDrawLooper to allow adding layers on top
...
as well as on the bottom.
This is more convenient for some callers who generate layers
from a data structure in bottom-to-top, rather than top-to-bottom,
order.
BUG=242529
R=tomhudson@chromium.org
Author: jbroman@chromium.org
Review URL: https://chromiumcodereview.appspot.com/15314003
git-svn-id: http://skia.googlecode.com/svn/trunk@9233 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-22 12:35:50 +00:00
reed@google.com
b83cb9bf89
add SkLerpXfermode
...
BUG=
R=bsalomon@google.com
Review URL: https://codereview.chromium.org/15602003
git-svn-id: http://skia.googlecode.com/svn/trunk@9229 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-21 21:33:11 +00:00
commit-bot@chromium.org
5da3f22003
Fix includes in SkLayerDrawLooper.h. It was previously not possible to
...
include this header unless SkPoint and SkPaint were previously defined.
BUG=
R=reed@google.com , senorblanco@chromium.org
Author: jbroman@chromium.org
Review URL: https://chromiumcodereview.appspot.com/14607015
git-svn-id: http://skia.googlecode.com/svn/trunk@9130 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-14 20:11:23 +00:00
sugoi@google.com
384f5e2a9b
Adding missing SK_API identifier to class so that it's accessible in debug blink.
...
Review URL: https://codereview.chromium.org/14190016
git-svn-id: http://skia.googlecode.com/svn/trunk@8857 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-25 14:54:15 +00:00
senorblanco@chromium.org
d043ccee37
Allow single-pass filters (which use asNewEffect()) to participate in the image filter DAG. This was done by introducing the SkSinglePassImageFilter abstract base class, which implements canFilterImageGPU() and filterImageGPU() on behalf of the derived class. The derived class still only needs to asNewEffect(). This allows us to recurse on the filter input in SkSinglePassImageFilter::onFilterImageGPU(). It also allows us to remove any knowledge of single-pass image filters from SkGpuDevice and from the SkImageFilter base class as well.
...
BUG=
Review URL: https://codereview.chromium.org/13602013
git-svn-id: http://skia.googlecode.com/svn/trunk@8563 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-08 19:43:22 +00:00
sugoi@google.com
e3b4c5097a
New SVG turbulence in Skia
...
This cl contains the code for CPU generation of noise.
TEST:Added 'perlinnoise' gm
Review URL: https://codereview.chromium.org/13094003
git-svn-id: http://skia.googlecode.com/svn/trunk@8541 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-05 13:47:09 +00:00
robertphillips@google.com
8cf10efe75
Reverting r8376, r8373 and r8371 due to Android shader compilation failures
...
git-svn-id: http://skia.googlecode.com/svn/trunk@8378 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-25 22:16:02 +00:00
sugoi@google.com
2daa365123
New SVG turbulence in Skia
...
This cl contains the code for both CPU and GPU generation of noise. Both
codepaths yield equivalent results.
TEST:Added 'perlinnoise' gm
Review URL: https://codereview.chromium.org/13047005
git-svn-id: http://skia.googlecode.com/svn/trunk@8371 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-25 19:31:04 +00:00
robertphillips@google.com
b7636d3fad
Reverting 8313 (SVG turbulence) due to Ubuntu failures
...
git-svn-id: http://skia.googlecode.com/svn/trunk@8316 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-21 21:22:03 +00:00
sugoi@google.com
3067cc904d
New SVG turbulence in Skia
...
This cl contains the code for both CPU and GPU generation of noise. Both codepaths yield equivalent results.
TEST:Added 'perlinnoise' gm
Review URL: https://codereview.appspot.com/7322060
git-svn-id: http://skia.googlecode.com/svn/trunk@8313 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-21 21:01:07 +00:00
robertphillips@google.com
0bd80fa01b
Added toString to SkMaskFilter-derived classes
...
https://codereview.appspot.com/7889043/
git-svn-id: http://skia.googlecode.com/svn/trunk@8194 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-18 17:53:38 +00:00
sugoi@google.com
4b6d432f1e
Small adjustments to SkRectShaderImageFilter to follow up on original cl.
...
Review URL: https://codereview.appspot.com/7377049
git-svn-id: http://skia.googlecode.com/svn/trunk@7816 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-21 20:26:50 +00:00
sugoi@google.com
a1c511b870
New SkRectShaderImageFilter image filter
...
This new changelist also introduces a new image filter called SkRectShaderImageFilter which is make to simply apply a shader on a region without using any inputs.
TEST=Added ShaderImageFilter test
Review URL: https://codereview.appspot.com/7300046
git-svn-id: http://skia.googlecode.com/svn/trunk@7808 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-21 15:02:28 +00:00
senorblanco@chromium.org
377c14a1e6
Nuke SkSingleInputImageFilter. 99% of its functionality was refactored into SkImageFilterUtils in https://code.google.com/p/skia/source/detail?r=7467 , so it has outlived its usefulness.
...
Review URL: https://codereview.appspot.com/7277055
git-svn-id: http://skia.googlecode.com/svn/trunk@7563 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-04 22:57:21 +00:00
reed@google.com
ba3a3c93b2
revert name changes to SkBlendImageFilter. It (correctly) named its enum kMultiply_Mode,
...
and handled that itself internally, rather than calling SkXfermode. This CL removes
the kModulate_Mode alias from its list.
git-svn-id: http://skia.googlecode.com/svn/trunk@7509 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-01 14:35:09 +00:00
robertphillips@google.com
6cfe1fba33
Adding kMultiply_Mode (as an alias to kModulate_Mode) in SkBlendImageFilter.h to get Chrome compiling
...
git-svn-id: http://skia.googlecode.com/svn/trunk@7482 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-31 01:47:58 +00:00
reed@google.com
8d3cd7a170
clone of https://codereview.appspot.com/7208043/
...
Review URL: https://codereview.appspot.com/7232062
git-svn-id: http://skia.googlecode.com/svn/trunk@7476 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-30 21:36:11 +00:00
senorblanco@chromium.org
c2594f4106
This changes the signature of SkImageFilter::filterImageGPU() to use SkBitmaps for input and output, and removes the rect param. This allows us to return textures which are larger than the actual result, such as when GrAutoScratchTextures are used. The SkBitmap's size represents the active region, while the GrTexture's size is the full texture size.
...
This fixes the bicubic image filter GM on the GPU, which otherwise draws garbage outside the filtered region. It also moves us closer to unifying the signatures of SkImageFilter::onFilterImage() and SkImageFilter::filterImageGPU().
Review URL: https://codereview.appspot.com/7180048
git-svn-id: http://skia.googlecode.com/svn/trunk@7467 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-30 19:08:47 +00:00
robertphillips@google.com
4991b8f234
Added toString to SkDrawLooper-derived classes
...
https://codereview.appspot.com/7195054/
git-svn-id: http://skia.googlecode.com/svn/trunk@7422 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-28 20:21:59 +00:00
skia.committer@gmail.com
e16efc1882
Sanitizing source files in Skia_Periodic_House_Keeping
...
git-svn-id: http://skia.googlecode.com/svn/trunk@7406 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-26 07:06:02 +00:00
reed@google.com
4bbdeac58c
add optional cull-rect to patheffects, so they can do less work if their results
...
lie outside of the current clip-bounds (the cull rect).
Review URL: https://codereview.appspot.com/7206044
git-svn-id: http://skia.googlecode.com/svn/trunk@7378 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-24 21:03:11 +00:00
skia.committer@gmail.com
98ded84b80
Sanitizing source files in Skia_Periodic_House_Keeping
...
git-svn-id: http://skia.googlecode.com/svn/trunk@7332 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-23 07:06:17 +00:00
robertphillips@google.com
b83b6b4f76
Added toString to SkXfermode-derived classes (for debugger)
...
https://codereview.appspot.com/7139058/
git-svn-id: http://skia.googlecode.com/svn/trunk@7308 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-22 14:32:09 +00:00
senorblanco@chromium.org
3f2d45aff6
(Relanding r7275 with assert fix, plus fixes from r7276, r7280, r7283.)
...
Implement a bicubic resampling image filter, with raster and GPU backends.
In order to get this to work on the GPU side, I had to modify the width and height of the drawn texture in drawSprite() and drawDevice() to use the filtered texture's dimensions, instead of the source texture. (This wasn't a problem before since all other image filters produce results the same dimensions as their input texture.)
For now, this implementation only does axis-aligned scaling (same as the Lanczos-3 implementation in Chrome). It's also done for correctness and clarity, not speed, so there are lots of opportunities for speedups.
Committed: https://code.google.com/p/skia/source/detail?r=7275
Review URL: https://codereview.appspot.com/7033049
git-svn-id: http://skia.googlecode.com/svn/trunk@7287 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-18 20:48:20 +00:00
robertphillips@google.com
c51f752554
Reverting chain of SkBicubicImageFilter changes (7275, 7276, 7280 & 7283)
...
git-svn-id: http://skia.googlecode.com/svn/trunk@7285 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-18 19:20:52 +00:00
senorblanco@chromium.org
744820e657
Implement a bicubic resampling image filter, with raster and GPU backends.
...
In order to get this to work on the GPU side, I had to modify the width and height of the drawn texture in drawSprite() and drawDevice() to use the filtered texture's dimensions, instead of the source texture. (This wasn't a problem before since all other image filters produce results the same dimensions as their input texture.)
For now, this implementation only does axis-aligned scaling (same as the Lanczos-3 implementation in Chrome). It's also done for correctness and clarity, not speed, so there are lots of opportunities for speedups.
Review URL: https://codereview.appspot.com/7033049
git-svn-id: http://skia.googlecode.com/svn/trunk@7275 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-18 17:29:15 +00:00
bsalomon@google.com
0ac6af4997
Wrap GrEffects in GrEffectPtr.
...
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
2013-01-16 15:16:18 +00:00
robertphillips@google.com
76f9e938df
Added print out of SkShader information to debugger
...
https://codereview.appspot.com/7105045/
git-svn-id: http://skia.googlecode.com/svn/trunk@7201 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-15 20:17:47 +00:00
sugoi@google.com
781cc76e0f
Implementation of the displacement effect (both CPU and GPU)
...
TEST=Added new GM called "displacement"
Review URL: https://codereview.appspot.com/7058075
git-svn-id: http://skia.googlecode.com/svn/trunk@7182 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-15 15:40:19 +00:00
senorblanco@chromium.org
171f5c76b9
Rename onFilterImageGPU to filterImageGPU(), to match skia convention. No change in functionality.
...
(Note that this does mean that clients must override onFilterImage() to implement the raster path, but filterImageGPU() to implement the GPU path.)
Review URL: https://codereview.appspot.com/7058078
git-svn-id: http://skia.googlecode.com/svn/trunk@7123 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-10 19:55:18 +00:00
mike@reedtribe.org
61490fa4d2
fix warnings related to constness in overrides of SkColorFilter
...
update samples for circle testing
git-svn-id: http://skia.googlecode.com/svn/trunk@6943 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-24 14:38:46 +00:00
reed@google.com
30711b764b
change SkMaskFilter methods to const, in preparation for making the class as
...
immutable and re-entrant safe.
Review URL: https://codereview.appspot.com/6944069
git-svn-id: http://skia.googlecode.com/svn/trunk@6881 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-18 19:18:39 +00:00
reed@google.com
fdba4041c3
change all interfaces for SkRasterizer to const, in preparation for marking it
...
as immutable/re-entrant safe.
Review URL: https://codereview.appspot.com/6936064
git-svn-id: http://skia.googlecode.com/svn/trunk@6878 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-18 16:57:03 +00:00
reed@google.com
548a1f3210
change all patheffect methods to const, in preparation for marking its
...
subclasses as immutable/re-entrant safe.
Review URL: https://codereview.appspot.com/6949071
git-svn-id: http://skia.googlecode.com/svn/trunk@6877 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-18 16:12:09 +00:00
reed@google.com
bada64428a
Make all colorfilter methods const, in preparation for declaring them
...
to be immutable and reentrant-safe
git-svn-id: http://skia.googlecode.com/svn/trunk@6856 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-17 20:21:44 +00:00
reed@google.com
30da745bbf
Mark all methods on SkXfermode as const, in preparation for declaring all
...
xfermodes as immutable/reentrant-safe
Review URL: https://codereview.appspot.com/6941065
git-svn-id: http://skia.googlecode.com/svn/trunk@6855 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-17 19:55:24 +00:00
senorblanco@chromium.org
4a9a612b52
Pull SkMergeImageFilter out into its own file.
...
Review URL: https://codereview.appspot.com/6873052
git-svn-id: http://skia.googlecode.com/svn/trunk@6662 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-04 14:18:50 +00:00
senorblanco@chromium.org
91f489a65d
Modify the blur bench to add tests for high-quality blurs, and large non-integer blurs. Change the Coarse flag (which just turns on separable blurs) to an #ifdef, since separable is no longer just Coarse. (This #ifdef will hopefully be shortlived, once Chrome has switched).
...
The separable blur algorithm gives +45% on SampleBlur, +84% on SampleBigBlur, +31% on TheVerge, +35 to +85% on blurbench in HQ (depending on size), +8 to +35% in low quality. (All of these on 32bit MacPro).
Review URL: https://codereview.appspot.com/6851117
git-svn-id: http://skia.googlecode.com/svn/trunk@6601 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-29 17:09:27 +00:00
skia.committer@gmail.com
687c57c7d5
Sanitizing source files in Skia_Periodic_House_Keeping
...
git-svn-id: http://skia.googlecode.com/svn/trunk@6594 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-29 02:01:19 +00:00
robertphillips@google.com
629ab54066
Added dashing fast path
...
https://codereview.appspot.com/6844067/
git-svn-id: http://skia.googlecode.com/svn/trunk@6585 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-28 17:18:11 +00:00
reed@google.com
971aca7557
change SkDrawFilter::filter to return a bool, where false means don't-draw
...
Review URL: https://codereview.appspot.com/6851111
git-svn-id: http://skia.googlecode.com/svn/trunk@6551 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-26 20:26:54 +00:00
senorblanco@chromium.org
336b4da6b0
Separable mask blurs: Add compile-time flag. Fix reversed offsets in asymmetrical blurs (this bug cancels itself out, but I thought it might be confusing for future readers). Use correct stride in asymmetrical blurs (this is a real bug).
...
Review URL: https://codereview.appspot.com/6782089
git-svn-id: http://skia.googlecode.com/svn/trunk@6508 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-20 17:09:40 +00:00
senorblanco@chromium.org
9daf96afb3
Break out SkOffsetImageFilter into its own file, and derive it from
...
SkSingleInputImageFilter, to make it DAG-friendly.
Review URL: https://codereview.appspot.com/6822086
git-svn-id: http://skia.googlecode.com/svn/trunk@6315 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-06 20:29:39 +00:00