Commit Graph

238 Commits

Author SHA1 Message Date
caryclark@google.com
543c719a6d Revert r3036. This change breaks loading images as
described in Chromium issue 114107. The Chromium break
may be fixed by WebKit patch 78239, at which time
this patch can be reapplied.
Review URL: https://codereview.appspot.com/5675077

git-svn-id: http://skia.googlecode.com/svn/trunk@3219 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-02-17 14:42:22 +00:00
bsalomon@google.com
6843ac4beb Turn off test in fixed pt build.
git-svn-id: http://skia.googlecode.com/svn/trunk@3217 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-02-17 13:49:03 +00:00
bsalomon@google.com
f0ed80a7eb Make cross_prod used in SkPath::cheapComputeDirection fallback to double computation when result is 0. Verbal LGTM from reed.
git-svn-id: http://skia.googlecode.com/svn/trunk@3216 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-02-17 13:38:26 +00:00
reed@google.com
80cdb9a213 aaclip needs to handle paths with holes
Review URL: https://codereview.appspot.com/5671066

git-svn-id: http://skia.googlecode.com/svn/trunk@3209 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-02-16 18:56:17 +00:00
tomhudson@google.com
6bf38b59c9 Move GL-specific include files to their own subdirectory, to better
coexist alongside D3D backend.
Requires gyp change.

http://codereview.appspot.com/5665045/



git-svn-id: http://skia.googlecode.com/svn/trunk@3185 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-02-14 15:11:59 +00:00
junov@chromium.org
b1e218e782 Adding missing SkIntToScalar to resolve DeferredCanvas unit test failures with fixed-point build
TBR=reed
TEST=DeferredCanvas unit test



git-svn-id: http://skia.googlecode.com/svn/trunk@3182 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-02-13 22:27:58 +00:00
junov@chromium.org
8f9ecbd346 Adding API and unit testing for deferred canvas clearing/purging
REVIEW=http://codereview.appspot.com/5646057/
TEST=DeferredCanvas unit test



git-svn-id: http://skia.googlecode.com/svn/trunk@3181 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-02-13 21:53:45 +00:00
tomhudson@google.com
4072556641 Add two files missed in r3165; most critically the gyp!
git-svn-id: http://skia.googlecode.com/svn/trunk@3166 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-02-10 21:35:06 +00:00
bsalomon@google.com
b447d21577 Fix dumb error of starting loop with 0 instead of 1 that uses shift to increment.
git-svn-id: http://skia.googlecode.com/svn/trunk@3163 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-02-10 20:25:36 +00:00
bsalomon@google.com
89ec61e33d Add GrGLContextInfo
Review URL: http://codereview.appspot.com/5653060/



git-svn-id: http://skia.googlecode.com/svn/trunk@3162 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-02-10 20:05:18 +00:00
bsalomon@google.com
b9f026fb21 Turn on read pixels test for raster backend
Review URL: http://codereview.appspot.com/5643070/



git-svn-id: http://skia.googlecode.com/svn/trunk@3156 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-02-09 13:53:48 +00:00
junov@chromium.org
1f9767c03b Fixing backing store access in SkDeferredCanvas.
Chromium CL required for rolling skia DEPS past this change is posted here: https://chromiumcodereview.appspot.com/9341003/
 
BUG=http://code.google.com/p/skia/issues/detail?id=475
REVIEW=http://codereview.appspot.com/5626047/
TEST=DeferredCanvas unit test



git-svn-id: http://skia.googlecode.com/svn/trunk@3147 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-02-07 16:27:57 +00:00
reed@google.com
d414666d18 add additional tests for path direction with multiple pts on y-max
git-svn-id: http://skia.googlecode.com/svn/trunk@3121 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-31 15:42:29 +00:00
reed@google.com
ac8543ff57 use contour with global ymax to determine direction
git-svn-id: http://skia.googlecode.com/svn/trunk@3110 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-30 20:51:25 +00:00
reed@google.com
5546ef2dd9 inject a 32767 bounded cliprect before using SuperSampler blitter, to avoid
crash/assert when our run-array is larger than int16_t. Better fix may be to
"tile" the drawing, so we never see a clip that's too wide, and perhaps this
technique can help us avoid disabling AA for large parths (not sure tho).



git-svn-id: http://skia.googlecode.com/svn/trunk@3104 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-30 17:09:45 +00:00
tomhudson@google.com
13e812c69a Interpolate vertical linear gradients for improved quality.
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
2012-01-18 21:28:01 +00:00
schenney@chromium.org
a6d04d90e2 Fixing the behavior of SkPathMeasure to reflect changes in SkPath::Iter.
This implementation modifies SkPath::Iter extensively to avoid copying
the points when used to measure path length.

BUG=446
TEST=tests/PathMeasureTest.cpp
Review URL: https://codereview.appspot.com/5533074

git-svn-id: http://skia.googlecode.com/svn/trunk@3062 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-18 18:02:10 +00:00
skyostil@google.com
0eb7576c65 Modify SkBitmap::extractSubset() to respect volatility
The resulting subset bitmap will always have the same volatility flag as the
source bitmap.

BUG=452
Review URL: http://codereview.appspot.com/5544052

git-svn-id: http://skia.googlecode.com/svn/trunk@3039 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-16 10:45:53 +00:00
bungeman@google.com
2211b62327 Subpixel text 3/8 of a pixel too far to the right.
http://codereview.appspot.com/5502097/


git-svn-id: http://skia.googlecode.com/svn/trunk@3037 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-13 15:02:58 +00:00
skyostil@google.com
ce7adb580e Modify SkBitmap::extractSubset() to respect opaqueness
The resulting subset bitmap will always have the same opaqueness flag as the
source bitmap.

BUG=439
Review URL: http://codereview.appspot.com/5534051

git-svn-id: http://skia.googlecode.com/svn/trunk@3036 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-13 14:56:51 +00:00
schenney@chromium.org
510c6b186d Adding new SkPathMeasure tests, defined out for now as they fail.
Review URL: http://codereview.appspot.com/5529078

git-svn-id: http://skia.googlecode.com/svn/trunk@3029 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-12 20:04:06 +00:00
reed@google.com
d335d1d784 automatically inject a moveTo if we see a close followed by a line/quad/cubic
git-svn-id: http://skia.googlecode.com/svn/trunk@3027 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-12 18:17:11 +00:00
reed@google.com
cabaf1daf3 reenable direction test, fix handling of degenerate segments in the non-convex case
git-svn-id: http://skia.googlecode.com/svn/trunk@3021 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-11 21:03:05 +00:00
epoger@google.com
dc7a506018 Fix SkScalar values in ClipperTest.cpp; these were breaking one Windows buildbot
TBR=reed
Review URL: http://codereview.appspot.com/5535052

git-svn-id: http://skia.googlecode.com/svn/trunk@3020 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-11 20:43:29 +00:00
reed@google.com
47628314a1 disable test until I can fix it
git-svn-id: http://skia.googlecode.com/svn/trunk@3018 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-11 19:17:23 +00:00
reed@google.com
6da3d1757c improve clamping logic when handling imprecise chopping of cubics
http://code.google.com/p/skia/issues/detail?id=444



git-svn-id: http://skia.googlecode.com/svn/trunk@3011 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-11 16:41:26 +00:00
reed@google.com
e354397dd9 use SkIntToScalar(10) instead of 10 for parameters (for scalar==fixed)
git-svn-id: http://skia.googlecode.com/svn/trunk@3002 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-10 18:59:22 +00:00
reed@google.com
3e71a88762 add gm for reverseAddPath
git-svn-id: http://skia.googlecode.com/svn/trunk@3001 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-10 18:44:37 +00:00
djsollen@google.com
8688e5b7d1 Exclude BGRA readPixel tests on Android until bug 438 is resolved.
Review URL: http://codereview.appspot.com/5522053

git-svn-id: http://skia.googlecode.com/svn/trunk@2987 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-09 13:02:20 +00:00
mike@reedtribe.org
c52b1927c2 add unittest for sk_memset16 and sk_memset32
git-svn-id: http://skia.googlecode.com/svn/trunk@2985 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-07 03:49:13 +00:00
bsalomon@google.com
cadbcb8e53 Towards enabling -Werror in skia on Linux
Review URL: http://codereview.appspot.com/5516044/



git-svn-id: http://skia.googlecode.com/svn/trunk@2983 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-06 19:22:11 +00:00
schenney@chromium.org
6630d8d8ea Add the ability to iterate through a path without modification. This change is
required by WebKit SVG in order to correctly draw markers and endcaps.

BUG=415
TEST=TestPath in the unit tests
Review URL: http://codereview.appspot.com/5505097

git-svn-id: http://skia.googlecode.com/svn/trunk@2962 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-04 21:05:51 +00:00
vandebo@chromium.org
9ad3599a3a Fix ToUnicode generation bug.
Code from arthurhsu@chromium.org Original CL: http://codereview.appspot.com/5492061/

BUG=Chromium:104062

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

git-svn-id: http://skia.googlecode.com/svn/trunk@2944 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-03 18:35:39 +00:00
reed@google.com
21e0bc2045 add move-close-move and move-close-move-close to the "empty" paths to test
git-svn-id: http://skia.googlecode.com/svn/trunk@2921 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-21 20:26:01 +00:00
reed@google.com
ee068aae55 add unittest for invariants for empty paths, still need to think about
hairlines in those cases



git-svn-id: http://skia.googlecode.com/svn/trunk@2919 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-21 19:36:21 +00:00
reed@google.com
419f43348a add SkUnichar_IsVariationSelector()
git-svn-id: http://skia.googlecode.com/svn/trunk@2915 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-21 15:21:32 +00:00
schenney@chromium.org
6c31d9d9b4 Fixing PathTest. It was always broken in the convexity test code due
to a failure to correctly use SkScalar.

git-svn-id: http://skia.googlecode.com/svn/trunk@2904 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-20 16:33:30 +00:00
schenney@chromium.org
3287949868 Fixing the build for FIXED tests. PathTest was incorrect using "1" instead of "SK_Scalar1".
git-svn-id: http://skia.googlecode.com/svn/trunk@2902 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-20 15:33:11 +00:00
schenney@chromium.org
4da06ab335 Modifying SkPath to store all verbs provided by the user, and to give
correct results for all stroke and fill modes even on the various types
of degenerate paths.

The goals of this patch include:
1. Have Skia store all of the verbs implied by path construction methods, even
if those define degenerate paths. The SVG implementation in WebKit, which is
backed by Skia, needs to know about all elements of the path, even degenerate
ones, for the correct drawing of markers and line caps. For example, in SVG you
should be able to draw a scatter plot by specifying a marker for vertices and
then giving a sequence of moveTo commands. Skia will not store the moveTos,
requiring a different storage mechanism.

2. Assuming 1, maintain the current Skia behavior. That is, make Skia robust to
degenerate paths.

3. Fix an existing bug in Skia where a degenerate moveTo-lineTo pair spits out
warnings from rasterization and produces incorrect results in inverse-fill
renderings.

4. Adds extensive testing for degenerate paths and path rendering in general.

To meet these goals, the patch I am proposing will result in minor additional
storage for degenerate paths (a few bytes per degenerate path, only if the user
defines such paths). There is also some additional overhead in the iteration
code, with the path now cleaned to remove degenerate segments as part of the
iteration process. I suspect this will also fix issues with computing normal
vectors to degenerate segments. Benchmarking suggests that this change may
result in slightly (< 1%) slower path drawing due to the checks for
degeneracy. This overhead could be removed (in fact, a significant speedup
could occur) if the results of iterating to clean up the path were cached.
This would cost memory, of course, and quite a bit of it.

BUG=398
TEST=tests/PathTest.cpp
     gm/cubicpaths.cpp
     gm/degeneratesegments.cpp
     gm/movepaths.cpp
     gm/linepaths.cpp
     gm/quadpaths.cpp
Review URL: http://codereview.appspot.com/5482051

git-svn-id: http://skia.googlecode.com/svn/trunk@2901 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-20 15:14:18 +00:00
reed@google.com
7c2029367c add canvas::isDrawingToLayer(), as a fast query for chrome; faster than
setting up a drawiter and counting the layers.



git-svn-id: http://skia.googlecode.com/svn/trunk@2875 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-14 18:48:05 +00:00
junov@chromium.org
b6e161937b Adding isOpaque method to skia shader classes
REVIEW=http://codereview.appspot.com/5451102/
TEST=unit test ShaderOpacity



git-svn-id: http://skia.googlecode.com/svn/trunk@2840 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-09 15:48:03 +00:00
reed@google.com
5ae777dcad rename sk_float_isNaN to sk_float_isnan to match related functions
add sk_float_isinf returning non-zero if the argument is +/- infinity



git-svn-id: http://skia.googlecode.com/svn/trunk@2813 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-06 20:18:05 +00:00
reed@google.com
1607863b60 rename hasValidCoordinates to isFinite (on SkRect) and reimplement for speed
git-svn-id: http://skia.googlecode.com/svn/trunk@2811 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-06 18:56:37 +00:00
reed@google.com
61873a59d7 add sk_float_isfinite to mask platform differences
git-svn-id: http://skia.googlecode.com/svn/trunk@2803 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-05 21:47:25 +00:00
reed@google.com
d230e3e532 add test for isFinite
git-svn-id: http://skia.googlecode.com/svn/trunk@2800 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-05 20:49:37 +00:00
djsollen@google.com
b44cd65a53 Fix Paint == comparison on Android.
The == operator was incorrect because of Androids use of
fGenerationID. This change moves the ID to the end of the
paint struct and omits it from the == comparison.
Review URL: http://codereview.appspot.com/5437098

git-svn-id: http://skia.googlecode.com/svn/trunk@2780 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-01 17:09:21 +00:00
reed@google.com
37f3ae0b9f add unittest for save/restore
git-svn-id: http://skia.googlecode.com/svn/trunk@2751 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-28 16:06:04 +00:00
reed@google.com
a052aca410 more rgn==aaclip tests
git-svn-id: http://skia.googlecode.com/svn/trunk@2744 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-23 19:43:46 +00:00
bsalomon@google.com
31648eb1cf Fix warnings
Review URL: http://codereview.appspot.com/5433054/


git-svn-id: http://skia.googlecode.com/svn/trunk@2741 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-23 15:01:08 +00:00
mike@reedtribe.org
95b85bd1ba add test that aaclip.setRegion creates the same mask as the region
... in prep for optimizatin work on setRegion.



git-svn-id: http://skia.googlecode.com/svn/trunk@2739 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-23 03:12:58 +00:00