Commit Graph

2826 Commits

Author SHA1 Message Date
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
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
epoger@google.com
7412282c84 whitespace change to tri
gger buildbots

git-svn-id: http://skia.googlecode.com/svn/trunk@2899 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-20 14:34:31 +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
epoger@google.com
20f7b61fd6 Commit base-macmini-lion-float gm baselines that are similar to those in base-macpro
Review URL: http://codereview.appspot.com/5491076

git-svn-id: http://skia.googlecode.com/svn/trunk@2897 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-19 20:26:22 +00:00
caryclark@google.com
8f3c44aeeb partial fix for vertical text on Lion
M    src/ports/SkFontHost_mac_coretext.cpp



git-svn-id: http://skia.googlecode.com/svn/trunk@2896 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-19 16:09:26 +00:00
reed@google.com
24569b5bad sk_float_round isn't a function, so call this instead: sk_float_floor((x) + 0.5f)
git-svn-id: http://skia.googlecode.com/svn/trunk@2895 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-16 20:53:22 +00:00
reed@google.com
aaa41ed800 add baselines
git-svn-id: http://skia.googlecode.com/svn/trunk@2894 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-16 20:48:49 +00:00
reed@google.com
467ed51fc2 add baselines
git-svn-id: http://skia.googlecode.com/svn/trunk@2893 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-16 20:44:03 +00:00
epoger@google.com
baf204afc6 Delete temporary files I accidentally committed previously
git-svn-id: http://skia.googlecode.com/svn/trunk@2892 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-16 20:37:19 +00:00
reed@google.com
838e866289 remove obsolete printf
git-svn-id: http://skia.googlecode.com/svn/trunk@2891 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-16 20:34:11 +00:00
epoger@google.com
887531d97f GM baselines that we already had for SnowLeopard, and are identical in Lion.
Review URL: http://codereview.appspot.com/5489068

git-svn-id: http://skia.googlecode.com/svn/trunk@2890 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-16 20:26:32 +00:00
reed@google.com
538f784e3d change typeface::purgeall to not assume that the array is empty, as it may
contain typefaces that still are referenced.

change SkTypeface::UniqueID to internally hold onto a reference to the default
typeface, so that it will always be available if the font cache tries to resolve
it. Then general rule being: if we have a fontID specified by SkPaint, then its
associated typeface object must be alive.



git-svn-id: http://skia.googlecode.com/svn/trunk@2889 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-16 17:56:23 +00:00
caryclark@google.com
f86ab8472e cleanup font purging functions
M    include/core/SkGraphics.h
M    src/core/SkGraphics.cpp



git-svn-id: http://skia.googlecode.com/svn/trunk@2887 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-16 17:11:17 +00:00
caryclark@google.com
9245498e40 fix debug comment
M    src/core/SkPixelRef.cpp
M    src/core/SkFlattenable.cpp



git-svn-id: http://skia.googlecode.com/svn/trunk@2886 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-16 16:54:07 +00:00
epoger@google.com
1b19d6b363 whitespace commit to trigger buildbots
git-svn-id: http://skia.googlecode.com/svn/trunk@2885 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-15 20:28:00 +00:00
junov@chromium.org
b052129a41 Exposing the isImmutable/setImmutable API of SkPixelRef in SkBitmap
REVIEW=http://codereview.appspot.com/5491055/



git-svn-id: http://skia.googlecode.com/svn/trunk@2883 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-15 20:14:06 +00:00
bsalomon@google.com
c315aeb480 GCC requires reinterpret_cast rather than static_cast to cast to privately inherited subclass
git-svn-id: http://skia.googlecode.com/svn/trunk@2882 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-15 19:51:05 +00:00
bsalomon@google.com
6b2445eb15 Make GrStencilState a class to enable future optimizations
Review URL: http://codereview.appspot.com/5492047/


git-svn-id: http://skia.googlecode.com/svn/trunk@2881 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-15 19:47:46 +00:00
epoger@google.com
8c0aab1443 whitespace commit to trigger android buildbot
git-svn-id: http://skia.googlecode.com/svn/trunk@2880 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-15 18:43:40 +00:00
bsalomon@google.com
35ff38458b Compile time vertex layout masks
Review URL: http://codereview.appspot.com/5493049/


git-svn-id: http://skia.googlecode.com/svn/trunk@2878 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-15 16:58:19 +00:00
djsollen@google.com
62b24b1c80 Fix android build and cleanup references to SkMMapStream
Review URL: http://codereview.appspot.com/5489050

git-svn-id: http://skia.googlecode.com/svn/trunk@2877 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-15 16:16:22 +00:00
caryclark@google.com
d26147adbb add optional manual global initialization
M    include/effects/SkAvoidXfermode.h
M    include/effects/SkDiscretePathEffect.h
M    include/effects/Sk1DPathEffect.h
M    include/effects/Sk2DPathEffect.h
M    include/effects/SkBlurDrawLooper.h
M    include/effects/SkPixelXorXfermode.h
M    include/effects/SkDashPathEffect.h
M    include/effects/SkColorMatrixFilter.h
M    include/effects/SkEmbossMaskFilter.h
M    include/effects/SkLayerDrawLooper.h
M    include/effects/SkGroupShape.h
M    include/effects/SkBlurImageFilter.h
M    include/effects/SkRectShape.h
A    include/effects/SkEffects.h
M    include/effects/SkCornerPathEffect.h
M    include/effects/SkGradientShader.h
M    include/effects/SkBlurMaskFilter.h
M    include/effects/SkLayerRasterizer.h
M    include/core/SkMallocPixelRef.h
M    include/core/SkFlattenable.h
M    include/core/SkShape.h
M    include/core/SkPixelRef.h
M    include/core/SkGraphics.h
M    include/core/SkPathEffect.h
M    include/core/SkPostConfig.h
M    include/core/SkXfermode.h
M    include/core/SkColorFilter.h
M    include/images/SkFlipPixelRef.h
M    include/images/SkImageRef_GlobalPool.h
M    src/effects/SkDashPathEffect.cpp
M    src/effects/SkColorMatrixFilter.cpp
M    src/effects/SkBlurImageFilter.cpp
M    src/effects/SkGroupShape.cpp
M    src/effects/SkCornerPathEffect.cpp
M    src/effects/SkGradientShader.cpp
M    src/effects/SkBlurMaskFilter.cpp
M    src/effects/SkAvoidXfermode.cpp
M    src/effects/Sk2DPathEffect.cpp
M    src/effects/SkBlurDrawLooper.cpp
M    src/effects/SkPixelXorXfermode.cpp
M    src/effects/SkColorFilters.cpp
M    src/effects/SkLayerDrawLooper.cpp
M    src/effects/SkRectShape.cpp
A    src/effects/SkEffects.cpp
M    src/effects/SkLayerRasterizer.cpp
M    src/effects/SkDiscretePathEffect.cpp
M    src/effects/Sk1DPathEffect.cpp
A    src/effects/SkEffects_none.cpp
M    src/core/SkPixelRef.cpp
M    src/core/SkGraphics.cpp
M    src/core/SkFlattenable.cpp
M    src/core/SkBitmapProcShader.h
M    src/core/SkPathEffect.cpp
M    src/core/SkShape.cpp
M    src/core/SkXfermode.cpp
M    src/core/SkMallocPixelRef.cpp
M    src/core/SkBitmapProcShader.cpp
M    src/images/SkFlipPixelRef.cpp
M    src/images/SkImageRef_GlobalPool.cpp
A    src/ports/SkGlobalInitialization_chromium.cpp
M    src/ports/SkImageRef_ashmem.h
M    src/ports/SkImageRef_ashmem.cpp
A    src/ports/SkGlobalInitialization_default.cpp
M    gyp/effects.gyp
M    gyp/tools.gyp
M    gyp/ports.gyp



git-svn-id: http://skia.googlecode.com/svn/trunk@2876 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-15 14:16:43 +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
caryclark@google.com
afcb55c8cb move ports into its own gyp file
git-svn-id: http://skia.googlecode.com/svn/trunk@2874 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-14 17:12:04 +00:00
bsalomon@google.com
88939aee05 Revert r2872
git-svn-id: http://skia.googlecode.com/svn/trunk@2873 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-14 15:58:11 +00:00
bsalomon@google.com
9a4c389258 two loops for setting stage descs
Review URL: http://codereview.appspot.com/5486054/


git-svn-id: http://skia.googlecode.com/svn/trunk@2872 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-14 15:34:33 +00:00
bsalomon@google.com
987dbc08d8 reset cpu shadow of vertex buffer to our usual vb size
Review URL: reset cpu shadow of vertex buffer to our usual vb size



git-svn-id: http://skia.googlecode.com/svn/trunk@2871 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-14 14:44:19 +00:00
bsalomon@google.com
40d9293b62 Skip flush functions for disabled stages
Review URL: http://codereview.appspot.com/5483061



git-svn-id: http://skia.googlecode.com/svn/trunk@2870 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-13 18:40:47 +00:00
bsalomon@google.com
508824bd4b Make null gl a top level config in bench
Review URL: http://codereview.appspot.com/5484052/



git-svn-id: http://skia.googlecode.com/svn/trunk@2867 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-13 16:49:49 +00:00
epoger@google.com
0d7f5a4fb9 whitespace commit to try performance graph upload
git-svn-id: http://skia.googlecode.com/svn/trunk@2866 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-13 14:55:10 +00:00
bsalomon@google.com
6b5fdc1bcf Use a stack variable for hash computation in GrBinHashKey
Review URL: http://codereview.appspot.com/5484054/



git-svn-id: http://skia.googlecode.com/svn/trunk@2863 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-12 22:35:18 +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
f864ec467d skip paint->drawstate sampler copies when there is no texture
Review URL: http://codereview.appspot.com/5484053/




git-svn-id: http://skia.googlecode.com/svn/trunk@2859 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-12 21:57:03 +00:00
reed@google.com
089130c24e check for empty glyph run and exit early if so.
git-svn-id: http://skia.googlecode.com/svn/trunk@2858 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-12 21:52:18 +00:00
epoger@google.com
3e9fbe866a whitespace commit to try performance graph upload
git-svn-id: http://skia.googlecode.com/svn/trunk@2857 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-12 21:18:20 +00:00
bsalomon@google.com
71bd1ef280 Don't update vertex/index buffer twice!
Review URL: http://codereview.appspot.com/5483053/


git-svn-id: http://skia.googlecode.com/svn/trunk@2855 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-12 20:42:26 +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
bsalomon@google.com
4d4f281b28 Fix int->float conversion warning in VS2010
git-svn-id: http://skia.googlecode.com/svn/trunk@2853 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-12 18:34:01 +00:00
bsalomon@google.com
1e266f8ff2 Remove GrDrawState::setSampler, use direct access to sampler
Review URL: http://codereview.appspot.com/5476052/



git-svn-id: http://skia.googlecode.com/svn/trunk@2852 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-12 16:11:33 +00:00
bsalomon@google.com
1fadb20c50 Remove static initiazled gClampNearest in gpu backend
Review URL: http://codereview.appspot.com/5487044/


git-svn-id: http://skia.googlecode.com/svn/trunk@2851 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-12 16:10:08 +00:00
epoger@google.com
4ad7e580e0 whitespace commit to trigger windows build
git-svn-id: http://skia.googlecode.com/svn/trunk@2850 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-12 15:16:37 +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
bsalomon@google.com
6b20c2ded4 Fix inverse union complex clip stencil rules, skip screen filling rectangles
Review URL: http://codereview.appspot.com/5480054/



git-svn-id: http://skia.googlecode.com/svn/trunk@2848 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-09 21:23:46 +00:00
djsollen@google.com
59204b4813 Closing fd for mmap after mapping succeeds.
Review URL: http://codereview.appspot.com/5467058

git-svn-id: http://skia.googlecode.com/svn/trunk@2847 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-09 21:19:38 +00:00
bsalomon@google.com
e9f091d7cd Use : as separator between "GM" and slide name in SampleApp. This makes it easier to jump to a GM slide using command line args on windows.
git-svn-id: http://skia.googlecode.com/svn/trunk@2846 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-09 19:50:48 +00:00
bsalomon@google.com
07dd2bfd74 Add support for GL_ANGLE_texture_usage
Review URL: http://codereview.appspot.com/5478052/



git-svn-id: http://skia.googlecode.com/svn/trunk@2845 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-09 19:40:36 +00:00
bsalomon@google.com
b1d14fd63d use uploadTexData() to create init textures w/out data, and restore pixelstorei state on failure
Review URL: http://codereview.appspot.com/5467053/



git-svn-id: http://skia.googlecode.com/svn/trunk@2844 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-09 18:41:34 +00:00