Commit Graph

235 Commits

Author SHA1 Message Date
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
senorblanco@chromium.org
5b2d8b750b Disable colorfilter GM for now, since it causes Debug Fixed builds to assert.
Unreviewed; build fix.



git-svn-id: http://skia.googlecode.com/svn/trunk@2910 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-20 21:12:58 +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
senorblanco@chromium.org
ae814c7476 A software implementation of the Gaussian blur filter, using 3 box blurs. Also
re-enable the imageblur GM test, since the SkPicture path now works.

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



git-svn-id: http://skia.googlecode.com/svn/trunk@2905 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-20 20:02:19 +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
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
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
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
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
tomhudson@google.com
086e5354fe Make GrGLShaderVar objects aware of whether they are uniform, varying, or
attribute varibles. Extract GLSL generation enum and utility function into
new GrGLSL header.



git-svn-id: http://skia.googlecode.com/svn/trunk@2827 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-08 14:44:10 +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
44360bcca3 Changes to the android gyp system to build without RTTI and exceptions.
Review URL: http://codereview.appspot.com/5437089

git-svn-id: http://skia.googlecode.com/svn/trunk@2794 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-05 13:55:55 +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
bd7c64150c Add SkWGLExtensionInterface for dealing with WGL extensions
Review URL: http://codereview.appspot.com/5447059

git-svn-id: http://skia.googlecode.com/svn/trunk@2777 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-01 16:34:28 +00:00
bsalomon@google.com
06711bd972 Move SkGLCanvas.h to obsolete, delete from gyp
Review URL: http://codereview.appspot.com/5451065/



git-svn-id: http://skia.googlecode.com/svn/trunk@2776 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-01 15:47:23 +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
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
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
897e66cb0b Add windowscodecs.lib to images.gyp
Review URL: http://codereview.appspot.com/5422046/


git-svn-id: http://skia.googlecode.com/svn/trunk@2728 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-21 21:04:06 +00:00
reed@google.com
3d60812865 don't quickReject bitmaps if there is a looper or other possible bounds-modifier
add unittest for the above change



git-svn-id: http://skia.googlecode.com/svn/trunk@2722 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-21 15:16:16 +00:00
reed@google.com
9998c66930 remove all references to SkGlobals (obsolete)
git-svn-id: http://skia.googlecode.com/svn/trunk@2713 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-17 22:09:47 +00:00
reed@google.com
0069aa5708 add commented line to try to add additional warnings
git-svn-id: http://skia.googlecode.com/svn/trunk@2706 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-17 15:35:47 +00:00
bungeman@google.com
39698b1bd7 Add paging support for handle based typefaces.
http://codereview.appspot.com/5379043/
http://codereview.appspot.com/5364052/


git-svn-id: http://skia.googlecode.com/svn/trunk@2693 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-15 22:26:41 +00:00
reed@google.com
cc58651183 add bench for shader+blitMask
git-svn-id: http://skia.googlecode.com/svn/trunk@2685 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-15 15:29:45 +00:00
bsalomon@google.com
1dcf506a1a Remove GrGpuGLFixed subclass and ES1 support
Review URL: http://codereview.appspot.com/5376094/


git-svn-id: http://skia.googlecode.com/svn/trunk@2678 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-14 19:29:53 +00:00
tomhudson@google.com
410e9dc9aa New SkMutex benchmark - used when we suspected mutex performance issues;
committed not because they're a bottleneck now but because we might do
something with them in the future & it's quite lightweight.



git-svn-id: http://skia.googlecode.com/svn/trunk@2675 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-14 17:30:08 +00:00
vandebo@chromium.org
beb7fe1869 [PDF] Optimize W-array generation with respect to subsetted fonts and add test.
Testing framework originally from http://codereview.appspot.com/4916044

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

git-svn-id: http://skia.googlecode.com/svn/trunk@2667 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-11 19:38:54 +00:00
bsalomon@google.com
d58a1cd00b Add config8888 support to writePixels
Review URL: http://codereview.appspot.com/5374052/



git-svn-id: http://skia.googlecode.com/svn/trunk@2662 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-10 20:57:43 +00:00
reed@google.com
14debba629 add test gm for vertical text
git-svn-id: http://skia.googlecode.com/svn/trunk@2661 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-10 20:06:01 +00:00
reed@google.com
830a23e39b add vertical-text bit to paint (not supported yet)
check-point for using freetype on mac (not enabled yet)



git-svn-id: http://skia.googlecode.com/svn/trunk@2657 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-10 15:20:49 +00:00
reed@google.com
b76b34e04f add initial gyp to build freetype lib (problems with cflags not showing up in xcode)
git-svn-id: http://skia.googlecode.com/svn/trunk@2655 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-10 15:00:52 +00:00
senorblanco@chromium.org
5a412e51c8 Build fix; unreviewed.
Remove the imageblur test from gmslides.gypi for now, since SkPicture output
is incorrect.  SkImageFilter is not flattenable, so the output is black.



git-svn-id: http://skia.googlecode.com/svn/trunk@2647 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-09 17:02:15 +00:00
senorblanco@chromium.org
60014ca387 Implement Gaussian blurs for images. The caller creates an an
SkBlurImageFilter, sets it on an SkPaint, passes that paint to saveLayer(),
draws the primitives which are to be blurred, then calls restore(), which
applies the blur.  The blurs have separate sizes in the horizontal and vertical
direction.  This feature is GPU-only for now.

NB:  Due to the clipping change, there are slight pixel differences on the
blurs_gpu and shadows_gpu tests, so those will require rebaselining on all
platforms, as will some of the WebKit layout tests (TBD).


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



git-svn-id: http://skia.googlecode.com/svn/trunk@2643 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-09 16:05:58 +00:00
djsollen@google.com
318cf92202 Cleanup for the Android build.
git-svn-id: http://skia.googlecode.com/svn/trunk@2630 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-08 19:03:43 +00:00
bungeman@google.com
24babf45b1 Add font scaler gm.
http://codereview.appspot.com/5337044/


git-svn-id: http://skia.googlecode.com/svn/trunk@2619 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-07 16:33:40 +00:00
djsollen@google.com
6ff82553df Add support for building Android SampleApp.
Review URL: http://codereview.appspot.com/5342051

git-svn-id: http://skia.googlecode.com/svn/trunk@2617 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-07 15:43:57 +00:00
bsalomon@google.com
85b505bedc Add support for GL_ARB_texture_swizzle
Review URL: http://codereview.appspot.com/5347042/



git-svn-id: http://skia.googlecode.com/svn/trunk@2615 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-07 14:56:51 +00:00
bungeman@google.com
ce1d9e2e42 Back out fontscaler gm, as it seems to show up a gpu issue.
git-svn-id: http://skia.googlecode.com/svn/trunk@2604 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-04 16:06:33 +00:00
bungeman@google.com
0f0c2888e0 Add font scaler gm.
http://codereview.appspot.com/5337044/


git-svn-id: http://skia.googlecode.com/svn/trunk@2603 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-04 15:47:41 +00:00
djsollen@google.com
fad4510d43 Move the Android sample app into the android repo.
Review URL: http://codereview.appspot.com/5332054

git-svn-id: http://skia.googlecode.com/svn/trunk@2602 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-04 13:00:18 +00:00
djsollen@google.com
3839ca146a Update the Skia gyp files to use the external android sources.
Review URL: http://codereview.appspot.com/5336048

git-svn-id: http://skia.googlecode.com/svn/trunk@2598 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-03 17:31:41 +00:00
djsollen@google.com
51c2fa7bb1 Fix for missing file from previous CL that broke the build.
The file defines skia_target_arch to '' for non-arm platforms.

git-svn-id: http://skia.googlecode.com/svn/trunk@2593 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-03 13:13:27 +00:00
djsollen@google.com
58629291bc Adding support to trunk for building Skia using the Android NDK.
This CL depends on a subsequent CL to add the appropriate NDK
toolchain and system sources to the skia repo.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@2592 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-03 13:08:29 +00:00
reed@google.com
6e5a45c038 add bench for building the font cache
git-svn-id: http://skia.googlecode.com/svn/trunk@2590 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-02 21:02:57 +00:00
bsalomon@google.com
c69809745e Recommit r2584 with gpu pass of the new ReadPixels test disabled in fixed pt (gpu code doesn't work in general in fixed pt).
git-svn-id: http://skia.googlecode.com/svn/trunk@2586 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-02 19:57:21 +00:00
bsalomon@google.com
ace7bd5623 Revert r2584 (new test fails in fixed pt builds)
git-svn-id: http://skia.googlecode.com/svn/trunk@2585 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-02 19:39:51 +00:00
bsalomon@google.com
1a8ddf0a35 Changes the SkCanvas::readPixels API. Allows caller to read into prealloced bitmap pixels. Changes how clipping to device bounds is handled.
Review URL: http://codereview.appspot.com/5307077/



git-svn-id: http://skia.googlecode.com/svn/trunk@2584 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-02 19:34:16 +00:00