robertphillips@google.com
491493119c
Add canFilterMaskGPU & filterMaskGPU to SkMaskFilter
...
https://codereview.chromium.org/18110012/
git-svn-id: http://skia.googlecode.com/svn/trunk@9888 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-07-03 15:34:35 +00:00
commit-bot@chromium.org
b8d00db075
Change undefined SkGpuRenderTarget and SkGpuTexture forward declares to GrRenderTarget and GrTexture.
...
R=robertphillips@google.com , reed@google.com
Author: bsalomon@google.com
Review URL: https://chromiumcodereview.appspot.com/17269003
git-svn-id: http://skia.googlecode.com/svn/trunk@9775 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-06-26 19:18:23 +00:00
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
commit-bot@chromium.org
344cf45a40
*** Perlin noise GM needs to be rebaselined ***
...
Enabling Perlin Noise on Android
I enabled the Perlin Noise shader on Android after doing some minor modifications to the shader, specifically for Android (and #ifdefed for Android, to make sure none of this affects other platforms).
For Tegra devices (Nexus 7, Xoom), a precision issue related to the color values read from textures caused the noise to read the wrong indices and produce bad noise. I fixed this by adding a founding of the values read by simply doing the equivalent of "colorValue = floor(colorValue * 255.0) / 255.0" to make sure we retrieve the colors that were written in the texture originally.
For non-Tegra devices (Nexus 10), dealing with values in the order of 4096.0 was problematic without using the "highp" precision setting. To solve this, a few variables were given the high precision setting.
Since both fixes don't seem to do considerable harm to the platforms that are not being targetted, I left both fixes on all android devices for now.
I also reduced the Perlin noise gm so that it takes less time to test it on the Xoom (Original time was about 20 seconds, this shold take less than 10, hopefully)
BUG=
R=senorblanco@google.com , bsalomon@google.com , sugoi@google.com , senorblanco@chromium.org
Author: sugoi@chromium.org
Review URL: https://chromiumcodereview.appspot.com/16818013
git-svn-id: http://skia.googlecode.com/svn/trunk@9637 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-06-17 14:19:01 +00:00
senorblanco@chromium.org
b1b3d5122e
Disable the unpremultiply/remultiply in SkArithmeticMode, both raster and GPU, since the SVG spec actually defines arithmetic compositing to operate on premul colours directly.
...
The unpremul/remul code has been placed behind a gUseUnpremul global, which is default false. The non-unpremul path uses a min() to keep the colours to valid premult values.
Note: This change will require new baselines for the arithmode and xfermodeimagefilter GMs.
R=reed@google.com
Review URL: https://codereview.chromium.org/16034013
git-svn-id: http://skia.googlecode.com/svn/trunk@9555 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-06-12 22:15:43 +00:00
commit-bot@chromium.org
0a1c3872de
Remove the non-separable blur because it is no longer used.
...
R=senorblanco@chromium.org , reed@google.com
Author: arbesfeld@chromium.org
Review URL: https://chromiumcodereview.appspot.com/16750002
git-svn-id: http://skia.googlecode.com/svn/trunk@9503 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-06-11 15:23:42 +00:00
sugoi@google.com
d537af50fc
Fixed gpu perlin noise on Windows
...
I just cleaned up and re-ordered some instructions to reduce the number of registers used under the register limit. Instead of looping over channels, the function now only loops over octaves and computes all 4 channels separately within each octave loop. I made a noise function to make it simpler to make the changes and I fixed the code's alignment so that it's more readable.
R=bsalomon@google.com , senorblanco@chromium.org
Review URL: https://codereview.chromium.org/15753005
git-svn-id: http://skia.googlecode.com/svn/trunk@9486 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-06-10 13:59:25 +00:00
commit-bot@chromium.org
e904b45696
Fix leak of effect in SkXfermodeImageFilter::filterImageGPU()
...
R=senorblanco@chromium.org
Author: bsalomon@google.com
Review URL: https://chromiumcodereview.appspot.com/16305016
git-svn-id: http://skia.googlecode.com/svn/trunk@9418 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-06-03 19:40:17 +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
reed@google.com
277c3f8765
bump picture version since SkPath has changed (conics)
...
enable conics in SkPath
git-svn-id: http://skia.googlecode.com/svn/trunk@9370 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-31 15:17:50 +00:00
reed@google.com
fa2f2a48f6
Revert "add asserts to point<-->verb helpers"
...
This reverts commit b4775ac7b55802e87231768f002e4b42f233b0aa.
git-svn-id: http://skia.googlecode.com/svn/trunk@9347 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-30 15:29:48 +00:00
reed@google.com
7950a9eba7
add asserts to point<-->verb helpers
...
patch from issue 16153005
BUG=
Review URL: https://codereview.chromium.org/16195004
git-svn-id: http://skia.googlecode.com/svn/trunk@9344 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-30 14:57:55 +00:00
senorblanco@chromium.org
1afa3fff29
Speculative fix for Tegra-based Androids: don't try to unpremultiply dstColor in-place; put it in a temporary.
...
TBR=bsalomon
Review URL: https://codereview.chromium.org/16214002
git-svn-id: http://skia.googlecode.com/svn/trunk@9336 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-29 23:41:28 +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
senorblanco@chromium.org
35c733cc9c
Fix alpha computation in SkArithmeticMode.
...
Note: this will require new baselines for the arithmode GM.
R=reed@google.com
Review URL: https://codereview.chromium.org/15917010
git-svn-id: http://skia.googlecode.com/svn/trunk@9302 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-28 19:43:05 +00:00
commit-bot@chromium.org
c7d624ec53
check texture is not NULL to aovid segmentation fault. If the texture created by GrLockAndRefCachedBitmapTexture() is NULL, ColorTableEffect::Create will cause segmentation fault by GrAssert in src/gpu/GrTextureAccess.cpp. The simple patch checked texture to avoid segment fault, and returned a NULL effect to the caller. The caller will handle NULL effect, for example, it will set default effect.
...
R=bsalomon@google.com , robertphillips@google.com
Author: yunchao.he@intel.com
Review URL: https://chromiumcodereview.appspot.com/15824003
git-svn-id: http://skia.googlecode.com/svn/trunk@9287 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-28 13:13:56 +00:00
senorblanco@chromium.org
68400767be
Remove SkImageFilter::getInputResult(), since its return value is not
...
style-compliant, and doesn't allow us to abort on failure.
R=reed@google.com
Committed: https://code.google.com/p/skia/source/detail?r=9245
Review URL: https://codereview.chromium.org/15600003
git-svn-id: http://skia.googlecode.com/svn/trunk@9274 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-24 15:04:07 +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
skia.committer@gmail.com
3e2345a8d5
Sanitizing source files in Housekeeper-Nightly
...
git-svn-id: http://skia.googlecode.com/svn/trunk@9266 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-24 07:01:26 +00:00
reed@google.com
437d6eb4e0
use Descriptor struct to encapsulate all the common paramaeters between our various gradient types. If we like it, might promote it to the public API.
...
BUG=
R=bsalomon@google.com
Review URL: https://codereview.chromium.org/15733007
git-svn-id: http://skia.googlecode.com/svn/trunk@9260 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-23 19:03:05 +00:00
robertphillips@google.com
0fb775cd77
Fix compiler error/warning in r9255
...
git-svn-id: http://skia.googlecode.com/svn/trunk@9256 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-23 14:11:41 +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
robertphillips@google.com
f0656c140a
Reverting r9245 due to Chrome breakage
...
git-svn-id: http://skia.googlecode.com/svn/trunk@9250 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-22 23:56:49 +00:00
senorblanco@chromium.org
be1d02e528
Remove SkImageFilter::getInputResult(), since its return value is not
...
style-compliant, and doesn't allow us to abort on failure.
R=reed@google.com
Review URL: https://codereview.chromium.org/15600003
git-svn-id: http://skia.googlecode.com/svn/trunk@9245 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-22 18:59:58 +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
robertphillips@google.com
83d1a68141
Add special handling of rectori case for gpu
...
https://codereview.chromium.org/15080010/
git-svn-id: http://skia.googlecode.com/svn/trunk@9175 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-17 12:50:27 +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
commit-bot@chromium.org
8d47ddc19a
Make GrGLShaderBuilder check whether GrEffect advertised that it would require the dst color or fragment position
...
R=senorblanco@chromium.org , robertphillips@google.com
Author: bsalomon@google.com
Review URL: https://chromiumcodereview.appspot.com/14998007
git-svn-id: http://skia.googlecode.com/svn/trunk@9074 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-09 14:55:46 +00:00
caryclark@google.com
9584b9ebd8
Fix compile warning
...
Review URL: https://codereview.chromium.org/14227005
git-svn-id: http://skia.googlecode.com/svn/trunk@8748 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-18 17:44:57 +00:00
sugoi@google.com
f738cf0689
Adding a bit of rebustness to SkRectShaderImageFilter
...
Since SkRectShaderImageFilter is an image filter, I added logic so that it can actually use the size of an input image as the rect if an empty rect is provided as an argument. I also added logic to prevent creating an empty device.
Review URL: https://codereview.chromium.org/14093008
git-svn-id: http://skia.googlecode.com/svn/trunk@8739 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-18 14:13:10 +00:00
sugoi@google.com
423ac13f35
Disabling GPU noise on Windows since Angle can't do a proper translation of this shader to HLSL.
...
git-svn-id: http://skia.googlecode.com/svn/trunk@8738 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-18 14:04:57 +00:00
sugoi@google.com
319baf9963
Reducing the complexity of the noise test for Angle
...
git-svn-id: http://skia.googlecode.com/svn/trunk@8725 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-17 15:34:09 +00:00
sugoi@google.com
0a1db4a489
Fixing debug bench assert on Android
...
git-svn-id: http://skia.googlecode.com/svn/trunk@8724 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-17 14:50:38 +00:00
sugoi@google.com
4775cba7b3
Perlin noise adjustments
...
1 ) Added GPU simplex noise as a comparison to GPU Perlin noise. It can be enabled simply by using a #define (SK_USE_SIMPLEX_NOISE)
2 ) Enabled GPU Perlin noise tests
3 ) Added a small benchmark for noise
4 ) Disabled GPU Perlin noise on Android based on benchmarks
Review URL: https://codereview.chromium.org/14087002
git-svn-id: http://skia.googlecode.com/svn/trunk@8719 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-17 13:46:56 +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
skia.committer@gmail.com
cff0243b0f
Sanitizing source files in Skia_Periodic_House_Keeping
...
git-svn-id: http://skia.googlecode.com/svn/trunk@8548 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-06 07:01:10 +00:00
sugoi@google.com
b4bdb6518e
Unreviewed test fix
...
Just commenting out the test for now, will investigate...
git-svn-id: http://skia.googlecode.com/svn/trunk@8544 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-05 14:38:08 +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
bsalomon@google.com
b8eb2e89ed
Make GrGLShaderBuilder::TextureSampler extract only required info from GrTextureAccess.
...
This will make it possible to init a TextureSampler without a texture or a specific config.
Also unify two separate bitfields of color components in GPU code.
Review URL: https://codereview.chromium.org/13121002
git-svn-id: http://skia.googlecode.com/svn/trunk@8428 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-28 13:46:42 +00:00
tfarina@chromium.org
48552314f6
Fix a few clang errors while trying to build tools target.
...
Most of the errors were like:
../../src/gpu/gl/GrGLEffectMatrix.cpp:74:9: error: variable 'varyingType' is used uninitialized whenever switch default is taken [-Werror,-Wsometimes-uninitialized]
../../src/gpu/gl/debug/GrDebugGL.h:125:21: error: private field 'fMaxTextureUnits' is not used [-Werror,-Wunused-private-field]
../../src/core/SkBitmapSampler.cpp:312:25: error: private field 'fProcTable' is not used [-Werror,-Wunused-private-field]
R=bsalomon@google.com ,scroggo@google.com
Review URL: https://codereview.chromium.org/12915007
git-svn-id: http://skia.googlecode.com/svn/trunk@8403 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-26 21:48:58 +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
2874906bf2
Unreviewed build fix
...
git-svn-id: http://skia.googlecode.com/svn/trunk@8373 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-25 20:14:08 +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
bsalomon@google.com
c26d94fd7d
Move nested class GrDrawTarget::Caps out as GrDrawTargetCaps.
...
Pass caps to GrEffect::TestCreate() functions so that they can return effects that will work with the capabilities.
Review URL: https://codereview.chromium.org/12965018
git-svn-id: http://skia.googlecode.com/svn/trunk@8369 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-25 18:19:00 +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
sugoi@google.com
4d94e1bb06
Removed the "any" command from the displacement glsl shader.
...
WebKit's version of Mesa's compiler seems to crash on the "any" command even though it's a GLSL 1.1 command.
Review URL: https://codereview.chromium.org/12413030
git-svn-id: http://skia.googlecode.com/svn/trunk@8300 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-21 18:38:03 +00:00