Commit Graph

29 Commits

Author SHA1 Message Date
reed@google.com
84e9c0801f speed up 2-point-radial gradients by 9x, using float instead of fixed
git-svn-id: http://skia.googlecode.com/svn/trunk@1118 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-13 17:44:24 +00:00
wjmaclean@chromium.org
1fbf760a12 Fix SkFixed overflows in SkFixedSquare, SkGradientShader.
Return SK_FixedMax when overflow occurs.

git-svn-id: http://skia.googlecode.com/svn/trunk@1117 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-13 13:31:06 +00:00
bsalomon@google.com
dc66c42d7d Fix Two Pt Radial when circles are concentric.
Review URL: http://codereview.appspot.com/4368047/



git-svn-id: http://skia.googlecode.com/svn/trunk@1069 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-06 19:35:37 +00:00
reed@google.com
7c2f27d788 make asABitmap() const
change private cache fields in gradient to be mutable



git-svn-id: http://skia.googlecode.com/svn/trunk@898 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-07 19:29:00 +00:00
vandebo@chromium.org
d3ae77965e Add asAGradient shader extraction API.
Store initial gradient parameters.
Add compile asserts in GPU code for BitmapType ordering.

Review URL: http://codereview.appspot.com/4178063

git-svn-id: http://skia.googlecode.com/svn/trunk@845 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-24 00:21:06 +00:00
reed@google.com
82065d667f remove SkRefCnt safeRef() and safeUnref(), and replace the call-sites with
SkSafeRef() and SkSafeUnref().

This is basically a bug waiting to happen. An optimizing compiler can remove
checks for null on "this" if it chooses. However, SkRefCnt::safeRef() relies on
precisely this check...

void SkRefCnt::safeRef() {
    if (this) {
        this->ref();
    }
}

Since a compiler might skip the if-clause, it breaks the intention of this
method, hence its removal.

static inline void SkSafeRef(SkRefCnt* obj) {
    if (obj) {
        obj->ref();
    }
}

This form is not ignored by an optimizing compile, so we use it instead.




git-svn-id: http://skia.googlecode.com/svn/trunk@762 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-07 15:30:46 +00:00
reed@google.com
9c7443db62 add SK_DISABLE_DITHER_32BIT_GRADIENT flag. If defined, disables the newly added
dithering for 32bit linear gradients.



git-svn-id: http://skia.googlecode.com/svn/trunk@699 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-01-17 18:46:37 +00:00
reed@google.com
55b8e8c81a add dithering to 32bit linear gradients
git-svn-id: http://skia.googlecode.com/svn/trunk@691 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-01-13 16:22:35 +00:00
reed@google.com
dc731fd483 merge in gpu changes to gradientshaders
git-svn-id: http://skia.googlecode.com/svn/trunk@655 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-12-23 15:19:47 +00:00
reed@android.com
e191b16fda update windows port
git-svn-id: http://skia.googlecode.com/svn/trunk@461 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-12-18 21:33:39 +00:00
reed@android.com
200645d50e fix repeat/mirror for new larger 16bit cache
update gm images



git-svn-id: http://skia.googlecode.com/svn/trunk@459 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-12-14 16:41:57 +00:00
reed@android.com
512a87641f make the 16bit cache larger, to handle multiple colors in the gradient w/o
obvious artifacts. We need a more comprehensive fix for all gradients (32bit
and 16bit) when we have a large number of colors (or they are spaced out very
non-linearly), to avoid banding.



git-svn-id: http://skia.googlecode.com/svn/trunk@458 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-12-14 15:25:36 +00:00
reed@android.com
bcfc73321d flatten/unflatten custom fields for 2-point gradient
git-svn-id: http://skia.googlecode.com/svn/trunk@423 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-11-10 16:19:39 +00:00
reed@android.com
6c59a17e1b clear the kHasSpan16 bit for two-point-radial, since we don't implement that
fix perspective loop x (dstX)



git-svn-id: http://skia.googlecode.com/svn/trunk@364 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-09-22 20:24:05 +00:00
senorblanco@chromium.org
7ef071fc2f Two-point radial gradient implementation.
Review URL:  http://codereview.appspot.com/112058



git-svn-id: http://skia.googlecode.com/svn/trunk@361 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-09-22 17:25:29 +00:00
reed@android.com
3c9b2a4a0e expand SkShader's flag kConstInY to 16 and 32 variants, allowing a shader
(like gradients) to support predithering. If they do, then they would suppress
kConstInY16, since they no longer are const.

The blitters now check for each flag separately, so we don't have to give up
const-in-Y in the 32bit case, since in that mode we don't care about dithering.



git-svn-id: http://skia.googlecode.com/svn/trunk@339 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-08-27 19:28:37 +00:00
reed@android.com
3d06a8c38d add FIXME to comment
git-svn-id: http://skia.googlecode.com/svn/trunk@253 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-07-07 18:19:59 +00:00
reed@android.com
1c12abe350 fix gradients with alpha to convert to premul *after* the intermediate color
has been computed, othewise we can't distinguish 0x00000000 from 0x00FF0000
Add fast case for index blit where we read 4 src pixels at a time



git-svn-id: http://skia.googlecode.com/svn/trunk@248 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-07-02 15:01:02 +00:00
reed@android.com
ab840b81a9 remove (ack) test code in lineargradient when pos array is null
git-svn-id: http://skia.googlecode.com/svn/trunk@247 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-07-01 17:00:03 +00:00
reed@android.com
5119bdb952 add shader flag kConstInY_Flag
this signals blitters that the shader will return the same results for a given
x value, independent of y. Useful inside blitRect(), where it can cache the
first call to shadeSpan() and reuse it on all subsequent scans. Works with
(non-rotated) linear-gradients, and Nx1 bitmaps.



git-svn-id: http://skia.googlecode.com/svn/trunk@214 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-06-12 21:27:03 +00:00
reed@android.com
b2c5f2d260 make the same prerounding fix for the shadeSpan16 case
git-svn-id: http://skia.googlecode.com/svn/trunk@213 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-06-12 20:09:24 +00:00
reed@android.com
c552a43c7f preround our fx fractional coordiante, so we get rounded integers (0..255) when
stepping through the gradient.



git-svn-id: http://skia.googlecode.com/svn/trunk@212 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-06-12 20:02:50 +00:00
reed@android.com
ec3d6e5a2f update for cache updates
git-svn-id: http://skia.googlecode.com/svn/trunk@202 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-06-05 14:43:55 +00:00
reed@android.com
9b46e77ec2 fix dumpcanvas to recurse on pictures and shapes
add cached bitmap for gradients to avoid thrashing textures in gl



git-svn-id: http://skia.googlecode.com/svn/trunk@201 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-06-05 12:24:41 +00:00
reed@android.com
4a7fd2bd27 initialize fFlags in gradients
fix trailing WS in SkGLDevice



git-svn-id: http://skia.googlecode.com/svn/trunk@198 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-06-02 19:46:20 +00:00
reed@android.com
41bccf55b5 extend gradients to handle (by clamping) the first and last color position if
it is not at 0 or 1.



git-svn-id: http://skia.googlecode.com/svn/trunk@146 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-04-03 13:33:51 +00:00
reed@android.com
fc25abdabf fix warnings
git-svn-id: http://skia.googlecode.com/svn/trunk@68 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-01-15 14:38:33 +00:00
reed@android.com
0becfc5b76 add optimization for width==1 bitmaps in shader procs
odd warning fixes and cleanup



git-svn-id: http://skia.googlecode.com/svn/trunk@63 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-01-13 13:26:44 +00:00
reed@android.com
8a1c16ff38 grab from latest android
git-svn-id: http://skia.googlecode.com/svn/trunk@27 2bbb7eff-a529-9590-31e7-b0007b416f81
2008-12-17 15:59:43 +00:00