aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/effects
Commit message (Collapse)AuthorAge
* Change patheffect to take a (new) StrokeRec object, which encapsulates the fillGravatar reed@google.com2012-05-24
| | | | | | | | | | | | | | | | | | | or stroke parameters for a path. Today, the patheffect only sees if the caller was going to stroke or fill, and if stroke, it just sees the width. With this change, the effect can see all of the related parameters (e.g. cap/join/miter). No other change is intended at this time. After this change, I hope to use this additional data to allow SkDashPathEffect to, at times, apply the stroke as part of its effect, which may be much more efficient than first dashing, and then reading that and stroking it. Most of these files changed just because of the new parameter to filterPath. The key changes are in SkPathEffect.[h,cpp], SkPaint.cpp and SkScalerContext.cpp Review URL: https://codereview.appspot.com/6249050 git-svn-id: http://skia.googlecode.com/svn/trunk@4046 2bbb7eff-a529-9590-31e7-b0007b416f81
* Iter::next takes a bool (defaults to true for now) if we want to consume ↵Gravatar reed@google.com2012-05-16
| | | | | | | | | | degenerates. path-filling and stroking pass false, as they already are written to handle small segments (and it makes next() run 2x faster if you pass false). Review URL: https://codereview.appspot.com/6214049 git-svn-id: http://skia.googlecode.com/svn/trunk@3974 2bbb7eff-a529-9590-31e7-b0007b416f81
* fix SK_RESTRICT warnings related to overrides on windowsGravatar reed@google.com2012-05-11
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@3913 2bbb7eff-a529-9590-31e7-b0007b416f81
* move SkStrokePathEffect into hiding for now, as its functionality is rethought.Gravatar reed@google.com2012-05-10
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@3890 2bbb7eff-a529-9590-31e7-b0007b416f81
* Clean up DashPathEffect modulo math from r3761Gravatar epoger@google.com2012-04-27
| | | | | | Review URL: https://codereview.appspot.com/6124048 git-svn-id: http://skia.googlecode.com/svn/trunk@3773 2bbb7eff-a529-9590-31e7-b0007b416f81
* check for numerical imprecision on phaseGravatar reed@google.com2012-04-24
| | | | | | | | fixes http://code.google.com/p/chromium/issues/detail?id=124652 git-svn-id: http://skia.googlecode.com/svn/trunk@3761 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix the Android build.Gravatar scroggo@google.com2012-04-20
| | | | | | | Use the correct macro for SkEmbossMaskFilter Review URL: https://codereview.appspot.com/6081045 git-svn-id: http://skia.googlecode.com/svn/trunk@3743 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fixes for drawing through an SkGPipe.Gravatar scroggo@google.com2012-04-20
| | | | | | | | | | | | | | | | | | | Implement SkGPipeCanvas::drawBitmap. Fix a bug where needOpBytes did not necessarily provide as many bytes as requested. Fix a bug where needOpBytes would wipe old data without calling notify. Register SkEmbossMaskFilter so it can be flattened. Override drawBitmapNine (currently unimplemented) so an SkGPipeCanvas does not call its base class' method (which would fail). Review URL: https://codereview.appspot.com/6071045 git-svn-id: http://skia.googlecode.com/svn/trunk@3741 2bbb7eff-a529-9590-31e7-b0007b416f81
* proper handling if SkMatrix::invert failes, addresses hack fix in rev. 3657Gravatar mike@reedtribe.org2012-04-14
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@3679 2bbb7eff-a529-9590-31e7-b0007b416f81
* add SK_WARN_UNUSED_RESULT warning to SkPathMeasure methods that might leaveGravatar reed@google.com2012-04-12
| | | | | | | | POD var-arguments uninitialized. git-svn-id: http://skia.googlecode.com/svn/trunk@3665 2bbb7eff-a529-9590-31e7-b0007b416f81
* always check the result of SkMatrix::invertGravatar reed@google.com2012-04-12
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@3657 2bbb7eff-a529-9590-31e7-b0007b416f81
* Decouple the SkFlattenable from SkReader32/SkWriter32.Gravatar djsollen@google.com2012-04-12
| | | | | | | | | | The current impl for SkFlattenable read/write buffers is that they extend from SkReader32 and SkWriter32, but that dependency must be abstract if we are to add any other serialization format. Review URL: https://codereview.appspot.com/5999045 git-svn-id: http://skia.googlecode.com/svn/trunk@3654 2bbb7eff-a529-9590-31e7-b0007b416f81
* Clean up more Visual Studio warnings, including apparent bug in Arithmetic mode.Gravatar tomhudson@google.com2012-04-10
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@3645 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix miscellaneous compiler warnings from Visual Studio 2010.Gravatar tomhudson@google.com2012-04-10
| | | | | | | | | Changes serialization path for MorphologyImageFilter, handling of Windows HRESULTS; otherwise just tweaks tests. git-svn-id: http://skia.googlecode.com/svn/trunk@3642 2bbb7eff-a529-9590-31e7-b0007b416f81
* Clamp dilate and erode radius to image width and height.Gravatar senorblanco@chromium.org2012-04-10
| | | | | | | | NOTE: This will require new baselines for the morphology GM. git-svn-id: http://skia.googlecode.com/svn/trunk@3641 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fixing the drawing of blurred shodows for hairline paths with software renderingGravatar junov@chromium.org2012-04-04
| | | | | | | | | BUG=http://code.google.com/p/chromium/issues/detail?id=121251 REVIEW=http://codereview.appspot.com/5981053/ git-svn-id: http://skia.googlecode.com/svn/trunk@3592 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove unused static functions from SampleApp and effectsGravatar djsollen@google.com2012-03-29
| | | | | | Review URL: https://codereview.appspot.com/5956050 git-svn-id: http://skia.googlecode.com/svn/trunk@3543 2bbb7eff-a529-9590-31e7-b0007b416f81
* Cleanup code related to SkFlattenable::flatten()Gravatar djsollen@google.com2012-03-29
| | | | | | | | | | | | | | | | | The following changes were made by this CL: 1. Make flatten() a protected method as callers should use SkFlattenableWriteBuffer to flatten an object 2. Make flatten a const method (including subclasses) 3. Mark subclass implementation of flatten with SK_OVERRIDE 4. Ensure overridden flatten impls call their parent 5. Remove no-op implementations of flatten from subclasses Additionally, if necessary the unflattening constructor was also moved to the protected section of the subclasses header if it was not already there. git-svn-id: http://skia.googlecode.com/svn/trunk@3540 2bbb7eff-a529-9590-31e7-b0007b416f81
* Move SkColorMatrix to effects.Gravatar bungeman@google.com2012-03-28
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@3535 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix a bunch of Coverity defects - class members not initialized in the ↵Gravatar vandebo@chromium.org2012-03-28
| | | | | | | | | | constructor. CID=14533,14036,9275,9271,4156,4153,4151,1666,1665,1618,1617,1616,1615 Review URL: https://codereview.appspot.com/5940049 git-svn-id: http://skia.googlecode.com/svn/trunk@3532 2bbb7eff-a529-9590-31e7-b0007b416f81
* Create macro for registering classes for deserializationGravatar djsollen@google.com2012-03-26
| | | | | | Review URL: https://codereview.appspot.com/5909063 git-svn-id: http://skia.googlecode.com/svn/trunk@3494 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix android buildGravatar djsollen@google.com2012-03-23
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@3484 2bbb7eff-a529-9590-31e7-b0007b416f81
* Cleanup Macros arround static initializers for SkFlattenable.Gravatar djsollen@google.com2012-03-23
| | | | | | | This CL also removes an unused debugging function from the class Review URL: https://codereview.appspot.com/5890043 git-svn-id: http://skia.googlecode.com/svn/trunk@3483 2bbb7eff-a529-9590-31e7-b0007b416f81
* Upstream changes from Android repository.Gravatar djsollen@google.com2012-03-21
| | | | | | Review URL: https://codereview.appspot.com/5752055 git-svn-id: http://skia.googlecode.com/svn/trunk@3449 2bbb7eff-a529-9590-31e7-b0007b416f81
* Move SkClampRange into src/effects, where it isn't being advertised asGravatar tomhudson@google.com2012-03-20
| | | | | | | | | | something for end-users. http://codereview.appspot.com/5864044/ git-svn-id: http://skia.googlecode.com/svn/trunk@3445 2bbb7eff-a529-9590-31e7-b0007b416f81
* Updating SkAvoidXferMode to use new 4byte interp function.Gravatar djsollen@google.com2012-03-12
| | | | | | Review URL: https://codereview.appspot.com/5795058 git-svn-id: http://skia.googlecode.com/svn/trunk@3363 2bbb7eff-a529-9590-31e7-b0007b416f81
* Erode and dilate image filter effects, CPU and GPU implementations.Gravatar senorblanco@chromium.org2012-03-02
| | | | | | | | Review URL: http://codereview.appspot.com/5656067/ git-svn-id: http://skia.googlecode.com/svn/trunk@3310 2bbb7eff-a529-9590-31e7-b0007b416f81
* fix SkFixed build (I hope)Gravatar reed@google.com2012-02-15
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@3201 2bbb7eff-a529-9590-31e7-b0007b416f81
* Disable optimization of certain bit-shift operations on Visual Studio 2010 onlyGravatar epoger@google.com2012-02-02
| | | | | | | to address http://code.google.com/p/skia/issues/detail?id=472 Review URL: https://codereview.appspot.com/5607058 git-svn-id: http://skia.googlecode.com/svn/trunk@3137 2bbb7eff-a529-9590-31e7-b0007b416f81
* rearrange functions to group clamp, repeat, mirror helpers together.Gravatar reed@google.com2012-02-02
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@3135 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add dithering to 32b radial gradients. Behind the same #ifdef as ditheredGravatar tomhudson@google.com2012-02-02
| | | | | | | | | | | 32b linear gradients so that we don't impact clients unexpectedly. This commit *will* break GM. http://codereview.appspot.com/5599050/ git-svn-id: http://skia.googlecode.com/svn/trunk@3126 2bbb7eff-a529-9590-31e7-b0007b416f81
* extend fastbounds impls to include maskfilters and drawloopers. This allowsGravatar reed@google.com2012-01-30
| | | | | | | | | | us to perform quick-rejects when drawing objects with shadows (esp. text). WebKit draws shadows w/ a looper (fg and shadow) and a maskfilter on the shadow layer. git-svn-id: http://skia.googlecode.com/svn/trunk@3103 2bbb7eff-a529-9590-31e7-b0007b416f81
* posix: Avoid static initializers in static/global mutexesGravatar digit@google.com2012-01-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch removes static initializers related to static and global mutexes from the final library's machine code when building on a pthread-capable system. We use PTHREAD_MUTEX_INITIALIZER to perform POD-style initialization. You need a line like the following to declare a global mutex with it: SkBaseMutex gMutex = { PTHREAD_MUTEX_INITIALIZER }; We introduce the SK_DECLARE_STATIC_MUTEX and SK_DECLARE_GLOBAL_MUTEX macros to be able to declare static/global mutexes in the source tree uniformly. SkMutex is now defined as a sub-class of SkBaseMutex, with standard construction/destruction semantics. This is useful if the mutex object is a member of another C++ class, or allocated dynamically. We also modify a few places to refer to SkBaseMutex instead of a SkMutex, where it makes sense. Generally speaking, client code should hold and use pointers to SkBaseMutex whenever they can now. We defined a new built-time macro named SK_USE_POSIX_THREADS to indicate that we're using a pthread-based SkThread.h interface. The macro will also be used in future patches to implement other helper thread synchronization classes. Finally, we inline the acquire() and release() functions in the case of Posix to improve performance a bit. Running: 'bench -repeat 10 -match mutex' on an Android device or a 2.4GHz Xeon Linux desktop shows the following improvements: Before After Galaxy Nexus 1.64 1.45 Nexus S 1.47 1.16 Xoom 1.86 1.66 Xeon 0.36 0.31 This removes 5 static mutex initializers from the library Review URL: https://codereview.appspot.com/5501066 git-svn-id: http://skia.googlecode.com/svn/trunk@3091 2bbb7eff-a529-9590-31e7-b0007b416f81
* Temporarily allow linear interpolation of 2-color vertical gradients to beGravatar tomhudson@google.com2012-01-20
| | | | | | | | | | | | turned off. With a Chromium gyp change to add SK_SIMPLE_TWOCOLOR_VERTICAL_GRADIENTS, this reduces the rebaselining from r3073 from ~200 to ~20. codereview.appspot.com/5558055/ git-svn-id: http://skia.googlecode.com/svn/trunk@3077 2bbb7eff-a529-9590-31e7-b0007b416f81
* Interpolate vertical linear gradients for improved quality.Gravatar tomhudson@google.com2012-01-18
| | | | | | | | | Consolidate interpolation functions, add new faster more accurate dithering interpolator. git-svn-id: http://skia.googlecode.com/svn/trunk@3072 2bbb7eff-a529-9590-31e7-b0007b416f81
* Create floating-point square root path for 16b mirrored radial gradientsGravatar tomhudson@google.com2012-01-12
| | | | | | | | | | (6x-16x speedup). Create specialized dy=0 path for clamped radial gradients (25% speedup). Make 16b radial gradient proc signature similar to 32b, passing in SkScalar instead of SkFixed and/or SkFloat. git-svn-id: http://skia.googlecode.com/svn/trunk@3030 2bbb7eff-a529-9590-31e7-b0007b416f81
* Convert 32b radial gradient procs to take SkScalar instead ofGravatar tomhudson@google.com2012-01-12
| | | | | | | | | | SkFixed AND SkFloat. http://codereview.appspot.com/5532083/ git-svn-id: http://skia.googlecode.com/svn/trunk@3026 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove obsolete SK_USE_FLOAT_SQRTGravatar tomhudson@google.com2012-01-11
| | | | | | | | http://codereview.appspot.com/5535053/ git-svn-id: http://skia.googlecode.com/svn/trunk@3023 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix the string we're checking for in the #if defined(), so that loops ↵Gravatar tomhudson@google.com2012-01-11
| | | | | | | | | | actually do get unrolled on Windows (15% perf win claimed many months ago). http://codereview.appspot.com/5528078 git-svn-id: http://skia.googlecode.com/svn/trunk@3019 2bbb7eff-a529-9590-31e7-b0007b416f81
* detect (and reject) if radius ia NaN, by using !(radius > 0) instead of ↵Gravatar reed@google.com2012-01-11
| | | | | | (radius <= 0) git-svn-id: http://skia.googlecode.com/svn/trunk@3007 2bbb7eff-a529-9590-31e7-b0007b416f81
* Code cleanup: move gradient inner loops into procs.Gravatar tomhudson@google.com2012-01-09
| | | | | | | | http://codereview.appspot.com/5523048/ git-svn-id: http://skia.googlecode.com/svn/trunk@2988 2bbb7eff-a529-9590-31e7-b0007b416f81
* override asComponentTable()Gravatar mike@reedtribe.org2012-01-07
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@2984 2bbb7eff-a529-9590-31e7-b0007b416f81
* Towards enabling -Werror in skia on LinuxGravatar bsalomon@google.com2012-01-06
| | | | | | | | Review URL: http://codereview.appspot.com/5516044/ git-svn-id: http://skia.googlecode.com/svn/trunk@2983 2bbb7eff-a529-9590-31e7-b0007b416f81
* add filterImage() entry-point to SkDevice, to allow it to specialize on ↵Gravatar reed@google.com2012-01-05
| | | | | | | | | | subclasses of SkImageFilter. If that returns false, then the filter itself is invoked. git-svn-id: http://skia.googlecode.com/svn/trunk@2977 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix incorrect use of the SK_RESTRICT macro in SkColorMatrixFilter, and re-enableGravatar senorblanco@chromium.org2012-01-04
| | | | | | | | | | the colormatrix GM test. Review URL: http://codereview.appspot.com/5509048/ git-svn-id: http://skia.googlecode.com/svn/trunk@2963 2bbb7eff-a529-9590-31e7-b0007b416f81
* implement dithering for vertical grads (was a todo:)Gravatar reed@google.com2012-01-04
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@2960 2bbb7eff-a529-9590-31e7-b0007b416f81
* Improve the quality of color matrix filters by using SkPremultiplyARGBInline.Gravatar senorblanco@chromium.org2012-01-03
| | | | | | | | | | This is closer (but not exactly the same as) WebKit's implementation. Review URL: http://codereview.appspot.com/5504117/ git-svn-id: http://skia.googlecode.com/svn/trunk@2955 2bbb7eff-a529-9590-31e7-b0007b416f81
* Implement the color matrix filter in Ganesh. Also, fix and enable the colorGravatar senorblanco@chromium.org2012-01-03
| | | | | | | | | | | | matrix test slide. This was basically implemented in the same places where the blending-based color filter was being done. The shader simply does a mat4 matrix multiply and a vec4 add. Review URL: http://codereview.appspot.com/5489107/ git-svn-id: http://skia.googlecode.com/svn/trunk@2948 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add SkTableColorFilter, as a foundation for several SVG filtersGravatar mike@reedtribe.org2011-12-28
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@2933 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add SkDEBUGFAIL to clean up use of SkASSERT(!"text");Gravatar tomhudson@google.com2011-12-28
| | | | | | | | | | catch a couple of latent SkASSERT("text") bugs. http://codereview.appspot.com/5504090/ git-svn-id: http://skia.googlecode.com/svn/trunk@2926 2bbb7eff-a529-9590-31e7-b0007b416f81