Commit Graph

167 Commits

Author SHA1 Message Date
reed@google.com
3d19c385e7 fix cheapComputeDirection() in the non-convex case to pivot on the y-max point
rather than pivoting on the next. Also remove the loop, as it is just logically
wrong to think we can use this trick only a non-extrema pt.



git-svn-id: http://skia.googlecode.com/svn/trunk@3014 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-11 18:16:39 +00:00
reed@google.com
b435bd7d49 use SkIntToScalar
git-svn-id: http://skia.googlecode.com/svn/trunk@3003 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-10 19:28:01 +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
reed@google.com
d1ab9320b0 restore (debugged) cheapComputeDirection
git-svn-id: http://skia.googlecode.com/svn/trunk@3000 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-10 18:40:03 +00:00
reed@google.com
df6bcb1412 disable for now
git-svn-id: http://skia.googlecode.com/svn/trunk@2999 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-10 18:13:23 +00:00
reed@google.com
69a9943b67 add SkPath::cheapComputeDirection() plus unittests
git-svn-id: http://skia.googlecode.com/svn/trunk@2996 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-10 18:00:10 +00:00
reed@google.com
63d73749fb add SkPath::reverseAddPath()
git-svn-id: http://skia.googlecode.com/svn/trunk@2995 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-10 15:33:12 +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
reed@google.com
76dd277b1f add filterImage() entry-point to SkDevice, to allow it to specialize on 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
2012-01-05 21:15:07 +00:00
vandebo@chromium.org
663515bc59 [PDF] Fix some scalar/int assumptions.
Review URL: http://codereview.appspot.com/5516043

git-svn-id: http://skia.googlecode.com/svn/trunk@2975 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-05 18:45:27 +00:00
senorblanco@chromium.org
b3a39b5b01 When applying a color matrix, unpremultiply the source, and premultiply the
result.  If the input color is missing, set to all-zeros or all-ones as
appropriate.  Add an alpha test case to the colormatrix GM.

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



git-svn-id: http://skia.googlecode.com/svn/trunk@2974 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-05 18:28:56 +00:00
bungeman@google.com
a682b93736 Make font scaler gm work correctly in fixed point.
http://codereview.appspot.com/5509049/


git-svn-id: http://skia.googlecode.com/svn/trunk@2973 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-05 18:10:48 +00:00
senorblanco@chromium.org
8ff9c74892 Reverting r2969, since it broke the GLPrograms RunTests step.
Unreviewed; build fix.



git-svn-id: http://skia.googlecode.com/svn/trunk@2972 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-05 17:34:38 +00:00
senorblanco@chromium.org
c3e159a325 When applying a color matrix, unpremultiply the source, and premultiply
the result.

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



git-svn-id: http://skia.googlecode.com/svn/trunk@2969 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-05 16:59:27 +00:00
bungeman@google.com
dc9a695a62 The units used to setup XPS should be SkScalars.
http://codereview.appspot.com/5509050/


git-svn-id: http://skia.googlecode.com/svn/trunk@2968 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-05 16:56:29 +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
schenney@chromium.org
0b71f6cedd Removing path drawing gm tests that produce either an entirely
filled or entirely empty clip area. Requested but not reviewed by
reed@google.com.

TEST=Covered now by unit testing.

git-svn-id: http://skia.googlecode.com/svn/trunk@2956 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-04 00:18:53 +00:00
schenney@chromium.org
68f11dee77 Removing unnecessary gm tests. Unreviewed but approved by reed@google.com.
TEST=Test coverage now in unit tests.

git-svn-id: http://skia.googlecode.com/svn/trunk@2951 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-03 21:37:19 +00:00
senorblanco@chromium.org
50bdad85db Implement the color matrix filter in Ganesh. Also, fix and enable the color
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
2012-01-03 20:51:57 +00:00
reed@google.com
2d6ef528e5 add helper drawSizeBounds to show the GM's size
git-svn-id: http://skia.googlecode.com/svn/trunk@2943 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-03 17:20:38 +00:00
mike@reedtribe.org
10afbefa5b add optional --forceBWtext to gm, forcing all text to BW to ease
comparisons between platform variations (e.g. mac 10.5,6,7)

probably only make sense in conjunction with some flag on GM allowing
the slide to opt in-or-out, so we only hack text labels, and not GMs
that are explicitly trying to test text rendering.



git-svn-id: http://skia.googlecode.com/svn/trunk@2938 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-30 16:02:53 +00:00
mike@reedtribe.org
a69b48c29d Add SkTableColorFilter, as a foundation for several SVG filters
git-svn-id: http://skia.googlecode.com/svn/trunk@2933 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-28 20:31:00 +00:00
tomhudson@google.com
abfa8d137b Fix fixed-point antialiased clipping GM; upload baselines.
http://codereview.appspot.com/5503077/



git-svn-id: http://skia.googlecode.com/svn/trunk@2930 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-28 19:40:48 +00:00
epoger@google.com
c7cf2b351f Add number-of-missing-baseline-images report to gm
Review URL: http://codereview.appspot.com/5489123

git-svn-id: http://skia.googlecode.com/svn/trunk@2929 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-28 19:31:01 +00:00
caryclark@google.com
5fbb4dc0a5 support vertical text and typeface-by-name on Leopard
M    src/ports/SkFontHost_mac_coretext.cpp
M    gyp/gmslides.gypi
A    gm/verttext2.cpp



git-svn-id: http://skia.googlecode.com/svn/trunk@2920 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-21 20:06:30 +00:00
tomhudson@google.com
ef279d36ca New gm to test anti-aliased clipping.
git-svn-id: http://skia.googlecode.com/svn/trunk@2914 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-21 14:27:14 +00:00
schenney@chromium.org
45cbfdd535 Unreviewed changes to the gm tests for paths. Each test is broken into four
smaller images to avoid problems with XPS on Windows hanging on large images.

git-svn-id: http://skia.googlecode.com/svn/trunk@2911 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-20 21:48:14 +00:00
senorblanco@chromium.org
e5ff3cefe0 Implement SkColorFilter::asColorMatrix() virtual, and override in
SkColorMatrixFilter.  Implement missing SkColorMatrixFilter::setMatrix() and
setArray() functions (were in .h, just not implemented).  Add a gm for color
matrix filters.

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



git-svn-id: http://skia.googlecode.com/svn/trunk@2909 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-20 20:58:18 +00:00
reed@google.com
32d25b6f5f initial impl of SkImageFilters : virtual signature will change!
Do not invest too much in other subclasses until this API solidifies.



git-svn-id: http://skia.googlecode.com/svn/trunk@2903 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-20 16:19:00 +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
263cb3a79c can't pass const to setPixels :(
git-svn-id: http://skia.googlecode.com/svn/trunk@2900 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-20 14:35:32 +00:00
reed@google.com
5213c04216 defer creating offscreen until our first draw (so our constructor runs fast)
git-svn-id: http://skia.googlecode.com/svn/trunk@2898 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-20 13:41:09 +00:00
reed@google.com
eb85630fd6 fix positioning for scalar=fixed, still need to fix actual mode
git-svn-id: http://skia.googlecode.com/svn/trunk@2862 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-12 22:15:18 +00:00
reed@google.com
eb0fa29fc4 try to make it draw correctly in fixed point
git-svn-id: http://skia.googlecode.com/svn/trunk@2860 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-12 22:01:06 +00:00
bsalomon@google.com
aa814fe4a1 Access sampler matrices directly, cleanup GrSamplerState::reset()s
Review URL: http://codereview.appspot.com/5488048/


git-svn-id: http://skia.googlecode.com/svn/trunk@2854 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-12 18:45:07 +00:00
mike@reedtribe.org
e51755fc64 add first cut at arithmetic mode
git-svn-id: http://skia.googlecode.com/svn/trunk@2849 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-10 19:36:56 +00:00
reed@google.com
a8f60f2502 change to complexclip_bw and complexclip_aa, adding more combinations as well
git-svn-id: http://skia.googlecode.com/svn/trunk@2833 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-08 16:18:29 +00:00
reed@google.com
b4b49ccc41 add getBGColor() getter
git-svn-id: http://skia.googlecode.com/svn/trunk@2809 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-06 16:15:42 +00:00
bsalomon@google.com
39ee0ffa72 Prep #1 for making GrDrawState a class
Review URL: http://codereview.appspot.com/5437138/




git-svn-id: http://skia.googlecode.com/svn/trunk@2808 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-06 15:32:52 +00:00
bsalomon@google.com
5bc34f04fe Remove fConfig/fFormat union in GrTextureDesc
Review URL: http://codereview.appspot.com/5448116/


git-svn-id: http://skia.googlecode.com/svn/trunk@2806 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-06 14:46:34 +00:00
senorblanco@chromium.org
ef843cdcd1 When a bitmap is texture-backed, change SkBitmap::copyTo() to do a deep
copy of the texels in VRAM rather than a readback and re-upload.  This
gives a 3-10X speedup on recursive canvas-to-canvas draws.

N.B.:  This introduces a new GM test, which will need new baselines.



git-svn-id: http://skia.googlecode.com/svn/trunk@2790 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-02 19:11:17 +00:00
bsalomon@google.com
29d3501e3b Fix issue where bumping the max gm width/height affects gpu images
Review URL: http://codereview.appspot.com/5440065/


git-svn-id: http://skia.googlecode.com/svn/trunk@2766 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-30 16:57:21 +00:00
reed@google.com
2f6c957afd update verttext to remove leading space from image name
add mac-desktop baseline images



git-svn-id: http://skia.googlecode.com/svn/trunk@2763 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-30 14:58:16 +00:00
reed@google.com
fb82300d1b enable shadermask optimization all the time
update gm for shadermask
fix bugs in lcd_blend math



git-svn-id: http://skia.googlecode.com/svn/trunk@2761 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-30 14:29:55 +00:00
bsalomon@google.com
fb30951cd9 [GPU] tile when large bitmap pased drawBitmap and only a small fraction is used
Review URL: http://codereview.appspot.com/5450048/



git-svn-id: http://skia.googlecode.com/svn/trunk@2760 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-30 14:13:48 +00:00
reed@google.com
e805535b19 add test for shader text w/ and w/o lcd (and w/ and w/o opaque)
git-svn-id: http://skia.googlecode.com/svn/trunk@2753 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-28 16:31:28 +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
bsalomon@google.com
6f3795105b Make all pixel ops go thru ctx so we can correctly flush. Unify two texture upload code paths.
Review URL: http://codereview.appspot.com/5373108/



git-svn-id: http://skia.googlecode.com/svn/trunk@2701 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-16 20:36:03 +00:00
senorblanco@chromium.org
54e01b2ab9 This change makes SkImageFilter and SkBlurImageFilter flattenable/unflattenable.
The imageblur test also needed to stop calling getDeviceSize(), since it was
 returning 99999x99999 for the  SkPicture case.



git-svn-id: http://skia.googlecode.com/svn/trunk@2699 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-16 18:20:47 +00:00
reed@google.com
761661580e add test for bad scanconversion (disabled)
git-svn-id: http://skia.googlecode.com/svn/trunk@2673 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-14 13:14:58 +00:00