Commit Graph

500 Commits

Author SHA1 Message Date
bsalomon@google.com
d3353646c3 Revert r6330 thru 6333 while we figure out what to do about Intel bots (possible driver bug).
git-svn-id: http://skia.googlecode.com/svn/trunk@6037 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-22 20:36:53 +00:00
bsalomon@google.com
159d42b546 Remove two params from GrGLProgramStage::setData that are no longer necessary.
R=senorblanco@chromium.org
Review URL: https://codereview.appspot.com/6744062

git-svn-id: http://skia.googlecode.com/svn/trunk@6031 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-22 17:47:22 +00:00
bsalomon@google.com
4fe9b1b740 Automatically handle converting gl_FragCoord to Skia's y-down device coords.
NOTE: THIS WILL LIKELY REQUIRE GM REBASELINING.

R=robertphillips@google.com,senorblanco@chromium.org
Review URL: https://codereview.appspot.com/6744061

git-svn-id: http://skia.googlecode.com/svn/trunk@6030 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-22 17:40:14 +00:00
senorblanco@chromium.org
c2e8cef479 Remove use of varargs in SkImageFilter. This is causing a crash in recent
builds of clang.  (It was also masking the fact that SkMergeImageFilter was
calling the wrong constructor!)

Review URL: https://codereview.appspot.com/6709066

git-svn-id: http://skia.googlecode.com/svn/trunk@6029 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-22 15:07:14 +00:00
skia.committer@gmail.com
989a95ea77 Sanitizing source files in Skia_Periodic_House_Keeping
git-svn-id: http://skia.googlecode.com/svn/trunk@5989 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-18 02:01:23 +00:00
bsalomon@google.com
b2ad101313 Make table color filter use asNewCustomStage.
R=robertphillips@google.com
Review URL: https://codereview.appspot.com/6713051

git-svn-id: http://skia.googlecode.com/svn/trunk@5976 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-17 15:00:32 +00:00
bsalomon@google.com
67e78c9e47 Use GrCustomStage to implement color matrix.
R=robertphillips@google.com
Review URL: https://codereview.appspot.com/6716044

git-svn-id: http://skia.googlecode.com/svn/trunk@5975 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-17 13:36:14 +00:00
skia.committer@gmail.com
20c301bd1a Sanitizing source files in Skia_Periodic_House_Keeping
git-svn-id: http://skia.googlecode.com/svn/trunk@5972 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-17 02:01:13 +00:00
bsalomon@google.com
dfdb7e5240 Reland r5963 with two fixes:
Missing ref in GrSweepGradient::TestCreate.
Must reset() the sampler in setup_drawstate_aaclip() to avoid hitting a (dubious) assert.



git-svn-id: http://skia.googlecode.com/svn/trunk@5964 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-16 15:19:45 +00:00
bsalomon@google.com
f6eac8af58 Revert r5962 because of failures.
git-svn-id: http://skia.googlecode.com/svn/trunk@5963 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-16 14:31:26 +00:00
bsalomon@google.com
b022177777 Require matrix for custom stage to be set when custom stage is installed.
Review URL: https://codereview.appspot.com/6696044

git-svn-id: http://skia.googlecode.com/svn/trunk@5962 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-16 14:16:11 +00:00
skia.committer@gmail.com
f57c01bdcf Sanitizing source files in Skia_Periodic_House_Keeping
git-svn-id: http://skia.googlecode.com/svn/trunk@5943 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-13 02:01:56 +00:00
senorblanco@chromium.org
8d21f6c7a9 When two or more color matrix image filters are connected together, and the non-leaf matrices do not require clamping, we can concatenate their matrices and apply them together.
Review URL: https://codereview.appspot.com/6489054

git-svn-id: http://skia.googlecode.com/svn/trunk@5931 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-12 19:14:06 +00:00
bsalomon@google.com
3cbaa2d4da Beef up GrContext::AutoMatrix to handle doing GrPaint matrix adjustments.
R=robertphillips@google.com
Review URL: https://codereview.appspot.com/6656047

git-svn-id: http://skia.googlecode.com/svn/trunk@5918 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-12 14:51:52 +00:00
senorblanco@chromium.org
9f25de7900 This patch implements generalized DAG connectivity for SkImageFilter. SkImageFilter maintains a list of inputs, which can be constructed either from a SkImageFilter** or zero or more SkImageFilter* arguments (varargs).
Existing filters which maintained their own filter connectivity were refactored to use the new constructors and flattening/unflattening code.  Modifying the remaining filters which are not yet DAG-friendly is left for future work; they are considered to have zero inputs for now.

Review URL: https://codereview.appspot.com/6443119

git-svn-id: http://skia.googlecode.com/svn/trunk@5891 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-10 20:36:13 +00:00
bsalomon@google.com
c7448cef09 GrPaint encapsulation.
R=robertphillips@google.com
Review URL: https://codereview.appspot.com/6624052

git-svn-id: http://skia.googlecode.com/svn/trunk@5838 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-05 19:04:13 +00:00
senorblanco@chromium.org
254eae2b04 Change SkLightingImageFilter to derive from SkSingleInputImageFilter, so that it can participate in filter DAGs.
No tests yet.

Review URL: https://codereview.appspot.com/6620055

git-svn-id: http://skia.googlecode.com/svn/trunk@5832 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-05 17:38:00 +00:00
bsalomon@google.com
88becf450f Rename GrPaint fields/enums/members texture->color mask->coverage.
R=robertphillips@google.com
Review URL: https://codereview.appspot.com/6615046

git-svn-id: http://skia.googlecode.com/svn/trunk@5827 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-05 14:54:42 +00:00
skia.committer@gmail.com
dda28c9bde Sanitizing source files in Skia_Periodic_House_Keeping
git-svn-id: http://skia.googlecode.com/svn/trunk@5821 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-05 02:01:40 +00:00
senorblanco@chromium.org
9f7827fcd9 Build fix: work around what appears to be an Intel GLSL driver bug. Unreviewed.
git-svn-id: http://skia.googlecode.com/svn/trunk@5812 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-04 18:15:15 +00:00
senorblanco@chromium.org
3bc16c8bc1 Implement GPU path for matrix convolution. Note that when not convolving alpha,
the premultiplying is done less efficiently than in the raster path:  it's
done on each texture access, rather than as a pre-processing pass.   This was
so I could do the filter as a single custom stage; will try the optimization
separately.

This implementation gives a ~30X speedup on the GPU results for the
matrixconvolution bench (~10X due to the GPU, and ~3X due to texture
uploads/readback removal).

Note:  this changes the matrixconvolution for the software path as well, so
it will likely break the bots until that test is rebaselined.

Review URL:  https://codereview.appspot.com/6585069/



git-svn-id: http://skia.googlecode.com/svn/trunk@5809 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-04 17:18:20 +00:00
bsalomon@google.com
e6e62d1de9 Make numTextures() be non-virtual on GrCustomStage.
R=tomhudson@google.com,robertphillips@google.com,senorblanco@chromium.org
Review URL: https://codereview.appspot.com/6586081

git-svn-id: http://skia.googlecode.com/svn/trunk@5805 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-04 14:38:48 +00:00
senorblanco@chromium.org
4e3875348b When processing a morphology filter on the GPU, pass the processed texture,
not the original source texture.

Review URL:  https://codereview.appspot.com/6587057/



git-svn-id: http://skia.googlecode.com/svn/trunk@5766 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-02 14:24:22 +00:00
senorblanco@chromium.org
9c39744a00 Fix recursive GPU processing for SkImageFilter. Plumb through the
SkImageFilter::Proxy parameter to the GPU recursion path.  Extract
DeviceImageFilterProxy from SkCanvas.cpp into its own .h, and rename it.

https://codereview.appspot.com/6575059/



git-svn-id: http://skia.googlecode.com/svn/trunk@5720 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-27 21:57:45 +00:00
senorblanco@chromium.org
8640d5024d This patch adds support for optional processing of the alpha channel in
the matrix convolution filter.  Test cases are added to the GM and the
bench.

NOTE:  This will require rebaselining the matrixconvolution GM, so it will 
likely turn the bots red until that is done.

https://codereview.appspot.com/6547049/



git-svn-id: http://skia.googlecode.com/svn/trunk@5661 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-25 14:32:42 +00:00
scroggo@google.com
a0c2bc2438 Make flattenables no longer depend on global static initializers.
Instead, force all builds to call InitializeFlattenables.

Remove the make_debugger script, which was created to force
rebuilding without global static initializers so that all flattenables
would be linked. It is no longer necessary since all flattenables
will be linked thanks to InitializeFlattenables, which now can (and
must) be called when global static initializers are turned on.

BUG=https://code.google.com/p/skia/issues/detail?id=903
BUG=https://code.google.com/p/skia/issues/detail?id=902

Review URL: https://codereview.appspot.com/6548044

git-svn-id: http://skia.googlecode.com/svn/trunk@5642 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-21 17:54:46 +00:00
senorblanco@chromium.org
cc9471c36d Fix premul alpha problems w/matrix convolution filter, and re-enable the bench.
http://codereview.appspot.com/6541043/



git-svn-id: http://skia.googlecode.com/svn/trunk@5610 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-20 17:59:49 +00:00
senorblanco@chromium.org
b4ca9df976 Yet another speculative Android fix. Unreviewed.
git-svn-id: http://skia.googlecode.com/svn/trunk@5600 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-19 22:50:21 +00:00
senorblanco@chromium.org
bc55a3c1c1 Speculative fix for Android GMs. Unreviewed.
git-svn-id: http://skia.googlecode.com/svn/trunk@5598 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-19 22:40:54 +00:00
senorblanco@chromium.org
5faa2dc266 Implements a matrix convolution filter (raster path only). The filtering loop
is templated on the tiling mode for speed:  interior pixels are unconditionally
fetched; border pixels apply the appropriate tiling mode before fetching.  It
handles target, bias, divisor (as gain), and edge modes (named to be more
skia-like).  It does not handle the "preserveAlpha" semantics of
feConvolveMatrix, nor "kernelUnitLength".



git-svn-id: http://skia.googlecode.com/svn/trunk@5592 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-18 20:32:34 +00:00
bsalomon@google.com
1ce49fc917 Move GrTextureParams from GrSamplerState to GrTextureAccess
Review URL: https://codereview.appspot.com/6496135/



git-svn-id: http://skia.googlecode.com/svn/trunk@5582 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-18 14:14:49 +00:00
scroggo@google.com
d8a6cc814f Make texteffects gm work through serialization and pipe.
Move Line2DPathEffect (now Sk_) into a separate header file so it can
be shared and initialized.

Switch to the shared version in SampleAll and SampleSlides.

Remove the skip pipe flag from texteffects, since it can now be serialized.

I have a separate change to turn serialization on by default at https://codereview.appspot.com/6498121/

Review URL: https://codereview.appspot.com/6503106

git-svn-id: http://skia.googlecode.com/svn/trunk@5512 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-12 18:53:49 +00:00
bsalomon@google.com
6d003d1ddc Wrap all GrCustomStage textures in GrTextureAccess, remove StageDesc::fInConfigFlags
Review URL: https://codereview.appspot.com/6494114



git-svn-id: http://skia.googlecode.com/svn/trunk@5485 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-11 15:45:20 +00:00
bsalomon@google.com
f06df1bb9a Introduce GrGLShaderBuilder::TextureSampler
Review URL: https://codereview.appspot.com/6495099/



git-svn-id: http://skia.googlecode.com/svn/trunk@5422 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-06 20:22:31 +00:00
bsalomon@google.com
100abf49e1 Shut up some Mac (xcode 3) warnings
Review URL: http://codereview.appspot.com/6503053/



git-svn-id: http://skia.googlecode.com/svn/trunk@5402 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-05 17:40:04 +00:00
bsalomon@google.com
868a8e7fc8 Recommit r5350 with fix for image failures (which affected GLs that don't support ARB_texture_swizzle).
git-svn-id: http://skia.googlecode.com/svn/trunk@5353 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-30 19:11:34 +00:00
bsalomon@google.com
a3d707b4ec Revert 5350 while image changes are diagnosed.
git-svn-id: http://skia.googlecode.com/svn/trunk@5351 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-30 18:11:48 +00:00
bsalomon@google.com
b41b2bc29c Remove fModulate from GrGLShaderBuilder
Review URL: https://codereview.appspot.com/6495051/




git-svn-id: http://skia.googlecode.com/svn/trunk@5350 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-30 17:54:14 +00:00
bsalomon@google.com
34bcb9f803 Some GrGLShaderBuilder cleanup
Review URL: https://codereview.appspot.com/6500043/



git-svn-id: http://skia.googlecode.com/svn/trunk@5322 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-28 18:20:18 +00:00
senorblanco@chromium.org
d912ca4199 Proper Android fix, and revert of workaround in r5267. Unreviewed.
git-svn-id: http://skia.googlecode.com/svn/trunk@5269 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-23 19:10:04 +00:00
senorblanco@chromium.org
42e1f0f573 Workaround for Android crash (unreviewed).
git-svn-id: http://skia.googlecode.com/svn/trunk@5267 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-23 18:58:24 +00:00
rmistry@google.com
fbfcd56021 Result of running tools/sanitize_source_files.py (which was added in https://codereview.appspot.com/6465078/)
This CL is part I of IV (I broke down the 1280 files into 4 CLs).
Review URL: https://codereview.appspot.com/6485054

git-svn-id: http://skia.googlecode.com/svn/trunk@5262 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-23 18:09:54 +00:00
senorblanco@chromium.org
e52f209aec Speculative Android GM blend fix (unreviewed).
git-svn-id: http://skia.googlecode.com/svn/trunk@5257 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-23 16:27:48 +00:00
senorblanco@chromium.org
84207c4278 Move the code for the GPU implementation of morphology effects from GrContext
and GrMorphologyEffect.* into SkMorphologyImageFilter.cpp.

Review URL:  https://codereview.appspot.com/6458065/



git-svn-id: http://skia.googlecode.com/svn/trunk@5241 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-22 20:51:19 +00:00
senorblanco@chromium.org
ab2246fa08 Another speculative Android build fix (unreviewed).
git-svn-id: http://skia.googlecode.com/svn/trunk@5240 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-22 18:57:28 +00:00
senorblanco@chromium.org
cfe57e520e Fix for no-GPU build (unreviewed).
git-svn-id: http://skia.googlecode.com/svn/trunk@5232 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-22 16:29:42 +00:00
senorblanco@chromium.org
b2ee33c535 Implements the non-Porter-Duff compositing modes required for SVG's feBlend
element.  This filter has two inputs, since normal blending can't be used.  The
GPU side uses two filter stages to accomplish this:  one to sample the
background, and one to sample the foreground and blend it.

Review URL:  https://codereview.appspot.com/6463081/



git-svn-id: http://skia.googlecode.com/svn/trunk@5231 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-22 16:24:44 +00:00
senorblanco@chromium.org
44888c66d4 Move SkColorFilterImageFilter into its own file.
Review URL:  https://codereview.appspot.com/6463072/



git-svn-id: http://skia.googlecode.com/svn/trunk@5197 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-20 19:23:24 +00:00
rileya@google.com
b3e50f23c5 Reapply r5101 and r5102: Made gradient effects use GrTextureStripAtlas.
git-svn-id: http://skia.googlecode.com/svn/trunk@5192 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-20 17:43:08 +00:00
senorblanco@chromium.org
f1369ce607 Implements a new class, SkSingleInputImageFilter, to handle DAG connectivity
for filters with a single image input.  This provides functionality to store,
flatten and unflatten a single SkImageFilter input, as well as to recursively
evaluate it on the CPU or GPU.  The following classes were re-parented to 
implement DAG connectivity:  SkBlurImageFilter, SkDilateImageFilter,
SkErodeImageFilter, SkColorFilterImageFilter.  The constructors for each
have been appended with a new parameter, representing the input filter
(default NULL).

This change also implements an arbitrary SkBitmap input source for filtering,
SkBitmapSource.

NOTE:  This CL will require gyp file changes when rolling past this revision.

Review URL:  https://codereview.appspot.com/6462071/



git-svn-id: http://skia.googlecode.com/svn/trunk@5170 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-20 14:53:21 +00:00
robertphillips@google.com
1f47f4f732 Replaced TextureCacheEntry with GrTexture* and a back pointer to GrResourceEntry (in GrTexture)
http://codereview.appspot.com/6460089/



git-svn-id: http://skia.googlecode.com/svn/trunk@5122 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-16 14:49:16 +00:00
robertphillips@google.com
5d8d18651a Addressed Windows compiler complaints
http://codereview.appspot.com/6462062/

This CL will require re-baselining of the imagemagnifier GM



git-svn-id: http://skia.googlecode.com/svn/trunk@5108 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-15 14:36:41 +00:00
rileya@google.com
9a92714d13 Revert GrTextureStripAtlas change due to performance concerns.
git-svn-id: http://skia.googlecode.com/svn/trunk@5103 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-14 21:33:15 +00:00
rileya@google.com
9766ecd04f Fix for GPU-less Linux build: move #include GrTextureStripAtlas into SK_SUPPORT_GPU ifdefs. Unreviewed.
git-svn-id: http://skia.googlecode.com/svn/trunk@5102 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-14 21:14:08 +00:00
rileya@google.com
50b2bcf321 Made gradient effects use GrTextureStripAtlas.
Review URL: https://codereview.appspot.com/6450131

git-svn-id: http://skia.googlecode.com/svn/trunk@5101 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-14 21:06:15 +00:00
tomhudson@google.com
3f11353d94 Fix Windows build from r5056.
We don't use STL, so std::min and std::max won't compile.
This new effect still does some undisciplined mixing of float and scalar which deserves
to be cleaned up.



git-svn-id: http://skia.googlecode.com/svn/trunk@5061 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-13 15:16:42 +00:00
bsalomon@google.com
03245700d6 Fix GPU-less build from r5056.
git-svn-id: http://skia.googlecode.com/svn/trunk@5058 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-13 14:31:30 +00:00
bsalomon@google.com
82aa7482cb Add a zoom filter to Skia. This will be used on ChromeOS to implement the screen magnifier.
Committed on behalf of zork@chromium.org

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


git-svn-id: http://skia.googlecode.com/svn/trunk@5056 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-13 14:22:17 +00:00
mike@reedtribe.org
56d5bfa90e privatize SkBuffer.h
git-svn-id: http://skia.googlecode.com/svn/trunk@5050 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-13 00:01:39 +00:00
mike@reedtribe.org
0e330ae5f9 revert arith change, until I can rebaseline all the images (and check chrome)
git-svn-id: http://skia.googlecode.com/svn/trunk@5044 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-12 19:08:41 +00:00
mike@reedtribe.org
d51ea26ea1 use premul macro to pack components
git-svn-id: http://skia.googlecode.com/svn/trunk@5043 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-12 18:50:34 +00:00
reed@google.com
6db9375b4f use SkRegion instead of SkScan/SkBlitter, as we want to privatize the latter
git-svn-id: http://skia.googlecode.com/svn/trunk@5037 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-09 19:18:02 +00:00
reed@google.com
d74e710c00 remove SkShape (unused)
Review URL: https://codereview.appspot.com/6461069

git-svn-id: http://skia.googlecode.com/svn/trunk@5033 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-09 18:05:33 +00:00
bsalomon@google.com
a1bf0fffff uniquely name FS functions, add lighting effects to unit test
Review URL: http://codereview.appspot.com/6458080/


git-svn-id: http://skia.googlecode.com/svn/trunk@4992 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-07 17:36:29 +00:00
djsollen@google.com
c73dd5c688 Update SkFlattenable buffers to be more modular.
This CL is an effort to stage the conversion to named
parameters for all SkFlattenable commands. This particular
stage only does the following two things...

1. Move flattenable buffers from SkFlattenable.h into
   their own header.
2. Update and Add new read write methods for better clarity
   and convenience.

BUG=

Review URL: https://codereview.appspot.com/6448095

git-svn-id: http://skia.googlecode.com/svn/trunk@4980 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-07 15:54:32 +00:00
reed@google.com
e763951a5c document OwnDeviceCanvas
git-svn-id: http://skia.googlecode.com/svn/trunk@4970 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-07 14:25:44 +00:00
reed@google.com
02f65f2d91 move SkFilterShader into private header
Review URL: https://codereview.appspot.com/6454107

git-svn-id: http://skia.googlecode.com/svn/trunk@4961 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-06 21:20:05 +00:00
reed@google.com
d9ee348720 If we lose precision computing sum of the dash intervals, then we can have the
same error when we subtract-in-a-loop with the phase. The result is that we can
read past the end of the array.

To fix this, we just pin the loop counter, and if we exhaust our intervals, we
just treat the phase as 0. Not precisely the exact answer, but we aren't going
to draw this dash correctly anyway, since it contains massive interval values
that will be imprecise given our current float implementation.

Fixes http://code.google.com/p/chromium/issues/detail?id=140642
Review URL: https://codereview.appspot.com/6458088

git-svn-id: http://skia.googlecode.com/svn/trunk@4959 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-06 14:58:35 +00:00
bsalomon@google.com
d472620458 Registry-based unit test for custom effects
Review URL: http://codereview.appspot.com/6447085/



git-svn-id: http://skia.googlecode.com/svn/trunk@4946 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-03 14:34:46 +00:00
twiz@google.com
a5e65ec434 Introduction of set of functions to manage generation of texture fetch shader code.
A new set of routines have been added to GrGLShaderBuilder to emit texture fetches, taking into consideration the format of the texture to be accessed, and the channel swizzle.  
Review URL: https://codereview.appspot.com/6446072

git-svn-id: http://skia.googlecode.com/svn/trunk@4919 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-02 15:15:16 +00:00
bsalomon@google.com
cf8fb1f6f0 Create GPU-less build of Skia.
git-svn-id: http://skia.googlecode.com/svn/trunk@4912 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-02 14:03:32 +00:00
senorblanco@chromium.org
302cffba86 Replace the asAFoo() functions in SkImageFilter with canFilterImageGPU() and
onFilterImageGPU() virtuals.  This allows each filter to implement its own GPU
processing code, even for multi-pass filters.

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



git-svn-id: http://skia.googlecode.com/svn/trunk@4900 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-01 20:16:34 +00:00
rileya@google.com
98e8b6de04 Remove old constructors from GrGradientEffect subclasses, and moved their declarations into source files.
Review URL: https://codereview.appspot.com/6449067

git-svn-id: http://skia.googlecode.com/svn/trunk@4870 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-31 20:38:06 +00:00
rileya@google.com
1ee7c6a18a Modified GrGpuGL_unittest to no longer use the old constructors to create gradients, also added TwoPointConical to the tests.
Review URL: https://codereview.appspot.com/6452068

git-svn-id: http://skia.googlecode.com/svn/trunk@4860 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-31 16:00:13 +00:00
reed@google.com
076f4c9791 fix LayerDrawLooper to record its fFlagsMask
convert SampleDrawLooper to a GM



git-svn-id: http://skia.googlecode.com/svn/trunk@4854 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-31 14:32:38 +00:00
rileya@google.com
1c6d64b78b Renamed and made public SkGradientShaderBases's 'commonAsAGradient' to 'getGradientTableBitmap', and use that instead of asABitmap in gradient custom stage setup.
Also tidied up Gr gradient implementation constructors, to take the appropriate SkGradientShaderBase subclass, and where necessary (namely 2pt radial/conical) made them obtain extra parameters from that object, rather than passing them in in addition to it.
Review URL: https://codereview.appspot.com/6449057

git-svn-id: http://skia.googlecode.com/svn/trunk@4808 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-27 15:49:05 +00:00
rileya@google.com
d7cc651b8d Move GPU gradients into src/effects/gradients.
Review URL: https://codereview.appspot.com/6453055

git-svn-id: http://skia.googlecode.com/svn/trunk@4805 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-27 14:00:39 +00:00
rileya@google.com
589708bf7c Split SkGradientShader into separate files for each gradient subclass.
Review URL: https://codereview.appspot.com/6447049

git-svn-id: http://skia.googlecode.com/svn/trunk@4792 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-26 20:04:23 +00:00
bsalomon@google.com
b8670998a5 Move filter/wrap out of GrSamplerState into GrTextureParams
Review URL: http://codereview.appspot.com/6440046/




git-svn-id: http://skia.googlecode.com/svn/trunk@4773 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-25 21:27:09 +00:00
bsalomon@google.com
777c3aab0a Remove uniform names from top of GrGLProgram.cpp, builder responsible for "u" and stage num tags.
Also add LF eol-style property to some files in src/gpu/effects.

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



git-svn-id: http://skia.googlecode.com/svn/trunk@4770 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-25 20:58:20 +00:00
bsalomon@google.com
b9119a6b56 Fix static assert on non-windows compilers(?)
git-svn-id: http://skia.googlecode.com/svn/trunk@4759 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-25 17:55:26 +00:00
bsalomon@google.com
dbbc4e2da9 Add GL uniform manager
Review URL: http://codereview.appspot.com/6423066/



git-svn-id: http://skia.googlecode.com/svn/trunk@4758 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-25 17:48:39 +00:00
rileya@google.com
91f319c5dc Use asNewCustomStage instead of asABitmap in SkGpuDevice, also removed now-unecessary twoPointRadialParams parameter from asABitmap.
In SkGpuDevice we still fall back on using asABitmap for effects that don't have asNewCustomStage implemented, but it still simplifies things a fair amount.
Review URL: https://codereview.appspot.com/6430060

git-svn-id: http://skia.googlecode.com/svn/trunk@4755 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-25 17:18:31 +00:00
bungeman@google.com
0567f222b9 Add SkScalarPow.
git-svn-id: http://skia.googlecode.com/svn/trunk@4754 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-25 17:00:47 +00:00
tomhudson@google.com
1bb4be2384 Fix TableColorFilter memory leak.
http://codereview.appspot.com/6437045/



git-svn-id: http://skia.googlecode.com/svn/trunk@4733 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-24 17:24:21 +00:00
tomhudson@google.com
060ef18d5c Replace new with SkNEW in more effects classes.
http://codereview.appspot.com/6431052/



git-svn-id: http://skia.googlecode.com/svn/trunk@4727 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-24 12:22:40 +00:00
rileya@google.com
03c1c359b3 Added asNewCustomStage to SkShader and implemented it for all the gradient shaders.
Not actually hooked up yet, but it should be ready to replace asABitmap for a future CL.
Review URL: https://codereview.appspot.com/6351113

git-svn-id: http://skia.googlecode.com/svn/trunk@4702 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-20 20:02:43 +00:00
tomhudson@google.com
300f562ded SkNEW instead of new for lighting effects.
http://codereview.appspot.com/6351112/



git-svn-id: http://skia.googlecode.com/svn/trunk@4689 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-20 14:15:22 +00:00
rileya@google.com
22e57f9916 New subclasses for both Gr and GrGL gradient effect classes.
This replaces GrSingleTextureEffect as the base for gradient effects (so we'll be able to do gradient effects without textures), and adds a base class to the GL gradient custom stage implementations (which will soon handle generating the appropriate code to pass colors in and lerp instead of using a cached texture for simpler gradient cases).

Also added a custom stage for linear gradients.
Review URL: https://codereview.appspot.com/6426049

git-svn-id: http://skia.googlecode.com/svn/trunk@4674 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-19 15:16:19 +00:00
twiz@google.com
5807116946 This CL implements the Ganesh path for the SkTable_ColorFilter color transformation.
A new texture stage dedicated to color transforms has been added, along with the new custom stage implementing the LUT.
Review URL: https://codereview.appspot.com/6351081

git-svn-id: http://skia.googlecode.com/svn/trunk@4663 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-18 21:41:50 +00:00
bsalomon@google.com
187c15c847 Fix bad allocator access in r4616
git-svn-id: http://skia.googlecode.com/svn/trunk@4619 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-16 14:16:22 +00:00
bsalomon@google.com
032b221dad Remove uniform var pointers from custom effects
Review URL: http://codereview.appspot.com/6374067/



git-svn-id: http://skia.googlecode.com/svn/trunk@4616 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-16 13:36:18 +00:00
senorblanco@chromium.org
f4770d7e84 There were three different problems with lighting filters:
1)  Texture offsets (fImageIncrement) have to be signed depending on
whether the texture is "right way up" (texture upload) or "upside down"
(render target), so the surface normals were coming out upside down.
2)  Light normals have to y-negated on upload
These two bugs were cancelling each other out in SampleApp, (where we
were testing w/textures) but not in Chrome (where we were testing
w/render targets).
3)  The extract-the-height-from-the-view-matrix hack I was using to
compare light positions vs. gl_FragCoord doesn't work in Chrome where we
compile with GR_STATIC_RECT_VB, and the view matrix contains more than
the viewport transform (to accomodate the canonical vertex buffer).
Fixed by passing the destination render target to
GrGLProgramStage::setData(), so it can flip the light positions in Y on
the CPU.

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



git-svn-id: http://skia.googlecode.com/svn/trunk@4605 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-13 18:25:06 +00:00
tomhudson@google.com
d0c1a06cb9 Introduces new SingleTextureEffect base class for GrCustomStage objects.
This class tracks the texture that the object uses. A future commit will get rid of the
GrTexture pointer currenty stored in the GrDrawState, allowing us to have CustomStages
*without* textures.

Requires gyp change on next roll.

http://codereview.appspot.com/6306097/



git-svn-id: http://skia.googlecode.com/svn/trunk@4576 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-12 17:23:52 +00:00
senorblanco@chromium.org
eb311845c1 Fix lighting filters on Windows, and re-enable the GPU path.
Review URL:  http://codereview.appspot.com/6354094/



git-svn-id: http://skia.googlecode.com/svn/trunk@4557 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-11 20:49:26 +00:00
senorblanco@chromium.org
a2fdb338c7 Disable GPU path for lighting filters, due to Windows weirdness. Unreviewed.
git-svn-id: http://skia.googlecode.com/svn/trunk@4547 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-11 18:47:11 +00:00
senorblanco@chromium.org
0ec1eab877 Mac GLSL fixes; unreviewed.
git-svn-id: http://skia.googlecode.com/svn/trunk@4539 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-11 16:44:49 +00:00
senorblanco@chromium.org
6730cbb80a More build fixes; unreviewed.
git-svn-id: http://skia.googlecode.com/svn/trunk@4537 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-11 16:35:00 +00:00
senorblanco@chromium.org
bd9fad67b8 Mac build fix; unreviewed.
git-svn-id: http://skia.googlecode.com/svn/trunk@4536 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-11 16:25:37 +00:00
senorblanco@chromium.org
894790d77c This patch implements the diffuse and specular lighting filters in Ganesh.
There are three light types for each:  distant, point and spot, whose code
generation lives in a GrGLLight class hierarchy.  This similar to the CPU
implementation, where each light type provides a function to compute the vector
from the surface plane to the light (surfaceToLight) and to compute the light
colour (emitLightColour).  Instead of templated member functions, as in the CPU
implementation, these are virtual functions to emit the light-specific GLSL
code.

All of the code for the GPU path lives in the same file as that for the CPU
path, SkLightingImageFilter.cpp.  In order to provide Ganesh a hook to access
it, SkImageFilter now has a asNewCustomStage() virtual, which allows an image
filter to return a GrCustomStage representing that filter.

Note that this patch does not handle the border conditions correctly (the
[top|bottom][Left|Right]Normal() functions in the CPU implementation).  That
will come in a future patch.

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



git-svn-id: http://skia.googlecode.com/svn/trunk@4535 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-11 16:01:22 +00:00
senorblanco@chromium.org
bdb1ec453a Minor cleanup in lighting image filters: Made the light color a member of the
light, rather than the filter, so computation is localized.  Changed a couple
of non-const refs in the image filter creation API const refs.  Changed "const
SkColor&" to "SkColor", since it's just a uint32_t anyway.

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


git-svn-id: http://skia.googlecode.com/svn/trunk@4466 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-09 14:29:51 +00:00
rileya@google.com
3e33258cd1 Added GPU implementation of 2-point conical gradient.
Review URL: https://codereview.appspot.com/6354062

git-svn-id: http://skia.googlecode.com/svn/trunk@4442 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-03 13:43:35 +00:00
reed@google.com
51f3866995 fix leak of Light object (in this private instance, the caller is transferring
ownership of the object, so the receive does not need to call ref).
Review URL: https://codereview.appspot.com/6348045

git-svn-id: http://skia.googlecode.com/svn/trunk@4360 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-27 14:24:29 +00:00
robertphillips@google.com
0456e0b7b8 Added Inst counting to SkFlattenable-derived classes
http://codereview.appspot.com/6355043/



git-svn-id: http://skia.googlecode.com/svn/trunk@4359 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-27 14:03:26 +00:00
djsollen@google.com
0833777df1 Cleanup flattening code to properly serialize lighting image filters.
Review URL: https://codereview.appspot.com/6333070

git-svn-id: http://skia.googlecode.com/svn/trunk@4340 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-26 14:33:13 +00:00
scroggo@google.com
6eb0d62cc3 Register some flattenable factories.
Now, SkComposeShaders, SkDiscreteMapper, SkCosineMapper,
Line2DPathEffect, and SkTransparentShader can be flattened
and unflattened. This makes more of our samples work when
using a pipe.

Review URL: https://codereview.appspot.com/6338064

git-svn-id: http://skia.googlecode.com/svn/trunk@4334 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-25 20:32:12 +00:00
senorblanco@chromium.org
f49b429cef Raster implementation of diffuse and specular lighting filters. Externally,
the caller instantiates a light (distant, point or spot), and an
SkDiffuseLightingFilter or SkSpecularLightingImageFilter with that light.  A
Sobel edge detection filter is applied to the alpha of the incoming bitmap, and
the result is used as a height map for lighting calculations.

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



git-svn-id: http://skia.googlecode.com/svn/trunk@4314 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-22 21:01:23 +00:00
djsollen@google.com
64a0ec3655 Move SkColorTable into its own header and reduce includes in SkFlattenable.h
Review URL: https://codereview.appspot.com/6299072

git-svn-id: http://skia.googlecode.com/svn/trunk@4236 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-12 15:17:27 +00:00
scroggo@google.com
db15a420c3 Register Two_Point_Conical_Gradient for flattening.
Without being registered, the twopointconical GM fails
when using --pipe or --serialize, since this gradient
will not be flattened/unflattened.
Review URL: https://codereview.appspot.com/6294060

git-svn-id: http://skia.googlecode.com/svn/trunk@4226 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-11 16:51:45 +00:00
mike@reedtribe.org
23113dd420 fix typo: fA is dx^2 + dx^2 - dr^2, not dx^2 - dy^2 - dr^2
git-svn-id: http://skia.googlecode.com/svn/trunk@4217 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-09 02:03:40 +00:00
reed@google.com
83226976b5 extend asAGradient for Conical type (to be implemented by PDF and XPS)
Review URL: https://codereview.appspot.com/6308051

git-svn-id: http://skia.googlecode.com/svn/trunk@4207 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-07 20:26:47 +00:00
reed@google.com
aca29ae8cd optimize quad-root for conical gradients
Review URL: https://codereview.appspot.com/6307052

git-svn-id: http://skia.googlecode.com/svn/trunk@4204 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-07 14:20:52 +00:00
reed@google.com
cb7be694c3 Add new gradient to support HTML Canvas2D two-point-radial-gradient. Ours is
called (for now at least) TwoPointConical, to distinguish it from the
existing one (TwoPointRadial), and to reflect its odd behavior where it draws
transparent outside the boundary of the "cone" between the two circles.

This impl is unsupported by GPU and Printing at the moment, and Chrome does not
yet invoke it.
Review URL: https://codereview.appspot.com/6299051

git-svn-id: http://skia.googlecode.com/svn/trunk@4197 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-06 20:31:56 +00:00
caryclark@google.com
383d5d4949 fix warnings on Mac in src/effects
Fix these class of warnings:
- unused functions
- unused locals
- sign mismatch
- missing function prototypes
- missing newline at end of file
- 64 to 32 bit truncation

The changes prefer to link in dead code in the debug build
with 'if (false)' than to comment it out, but trivial cases
are commented out or sometimes deleted if it appears to be
a copy/paste error.
Review URL: https://codereview.appspot.com/6299049

git-svn-id: http://skia.googlecode.com/svn/trunk@4181 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-06 12:09:18 +00:00
reed@google.com
b83f7978d7 temporary avoid zero-divide (to avoid assert in fixedpoint build)
git-svn-id: http://skia.googlecode.com/svn/trunk@4166 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-05 17:39:22 +00:00
reed@google.com
070a8002b4 temporary:
- suppress PDF for twopointradial GM until we fix its assert/failure (vandebo)
- detect divide-by-zero and abort for now (reed)



git-svn-id: http://skia.googlecode.com/svn/trunk@4165 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-05 17:15:30 +00:00
robertphillips@google.com
941ee9303b Fixed flattening of SkStippleMaskFilter
http://codereview.appspot.com/6279052/



git-svn-id: http://skia.googlecode.com/svn/trunk@4154 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-05 12:55:05 +00:00
reed@google.com
7b6c19392c remove mutable apis on SkColorMatrixFilter, must use constructor.
fix flattening to not write function-ptrs (no go for serialization), so we
store the raw float values now.

Slight change to GM/DRT images for GPU possible. Just rebaseline.
Review URL: https://codereview.appspot.com/6273052

git-svn-id: http://skia.googlecode.com/svn/trunk@4143 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-04 19:07:41 +00:00
reed@google.com
8b0d0f6a9c remove public function-ptr based colorfilter
Review URL: https://codereview.appspot.com/6286046

git-svn-id: http://skia.googlecode.com/svn/trunk@4141 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-04 18:10:33 +00:00
robertphillips@google.com
d414406073 Windows compiler complaint cleanup
http://codereview.appspot.com/6262047/



git-svn-id: http://skia.googlecode.com/svn/trunk@4098 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-31 15:29:44 +00:00
djsollen@google.com
d2700eec7e Refactor dictionaries for use by entities other than just SkPicture
Review URL: https://codereview.appspot.com/6101043

git-svn-id: http://skia.googlecode.com/svn/trunk@4077 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-30 16:54:13 +00:00
reed@google.com
3ec68f047a special-case dashing a single line-segment. We can go much faster since we
can apply the stroke as we go, eliminating the generic stroker.
Review URL: https://codereview.appspot.com/6250070

git-svn-id: http://skia.googlecode.com/svn/trunk@4062 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-29 20:48:50 +00:00
reed@google.com
fd4be26c42 Change patheffect to take a (new) StrokeRec object, which encapsulates the fill
or stroke parameters for a path.

Today, the patheffect only sees if the caller was going to stroke or fill, and
if stroke, it just sees the width. With this change, the effect can see all of the
related parameters (e.g. cap/join/miter). No other change is intended at this
time.

After this change, I hope to use this additional data to allow SkDashPathEffect
to, at times, apply the stroke as part of its effect, which may be much more
efficient than first dashing, and then reading that and stroking it.

Most of these files changed just because of the new parameter to filterPath. The
key changes are in SkPathEffect.[h,cpp], SkPaint.cpp and SkScalerContext.cpp
Review URL: https://codereview.appspot.com/6250051

git-svn-id: http://skia.googlecode.com/svn/trunk@4048 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-25 01:04:12 +00:00
reed@google.com
d3521f1a8d revert 4046 -- GM:pathfill failed on one bot, maybe uninitialized memory somewhere?
git-svn-id: http://skia.googlecode.com/svn/trunk@4047 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-24 20:32:22 +00:00
reed@google.com
9797272edf Change patheffect to take a (new) StrokeRec object, which encapsulates the fill
or stroke parameters for a path.

Today, the patheffect only sees if the caller was going to stroke or fill, and if
stroke, it just sees the width. With this change, the effect can see all of the
related parameters (e.g. cap/join/miter). No other change is intended at this
time.

After this change, I hope to use this additional data to allow SkDashPathEffect
to, at times, apply the stroke as part of its effect, which may be much more
efficient than first dashing, and then reading that and stroking it.

Most of these files changed just because of the new parameter to filterPath. The
key changes are in SkPathEffect.[h,cpp], SkPaint.cpp and SkScalerContext.cpp
Review URL: https://codereview.appspot.com/6249050

git-svn-id: http://skia.googlecode.com/svn/trunk@4046 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-24 20:13:57 +00:00
reed@google.com
4a3b714d73 Iter::next takes a bool (defaults to true for now) if we want to consume degenerates.
path-filling and stroking pass false, as they already are written to handle
small segments (and it makes next() run 2x faster if you pass false).
Review URL: https://codereview.appspot.com/6214049

git-svn-id: http://skia.googlecode.com/svn/trunk@3974 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-16 17:16:46 +00:00
reed@google.com
7096dc6b27 fix SK_RESTRICT warnings related to overrides on windows
git-svn-id: http://skia.googlecode.com/svn/trunk@3913 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-11 18:01:50 +00:00
reed@google.com
75a0972dd7 move SkStrokePathEffect into hiding for now, as its functionality is rethought.
git-svn-id: http://skia.googlecode.com/svn/trunk@3890 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-10 12:56:16 +00:00
epoger@google.com
20bf4ca8f5 Clean up DashPathEffect modulo math from r3761
Review URL: https://codereview.appspot.com/6124048

git-svn-id: http://skia.googlecode.com/svn/trunk@3773 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-04-27 13:34:52 +00:00
reed@google.com
1df888bc3a check for numerical imprecision on phase
fixes http://code.google.com/p/chromium/issues/detail?id=124652



git-svn-id: http://skia.googlecode.com/svn/trunk@3761 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-04-24 22:47:21 +00:00
scroggo@google.com
72ae6bd24e Fix the Android build.
Use the correct macro for SkEmbossMaskFilter
Review URL: https://codereview.appspot.com/6081045

git-svn-id: http://skia.googlecode.com/svn/trunk@3743 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-04-20 18:42:55 +00:00
scroggo@google.com
5a2e879ef8 Fixes for drawing through an SkGPipe.
Implement SkGPipeCanvas::drawBitmap.

Fix a bug where needOpBytes did not necessarily provide as
many bytes as requested.

Fix a bug where needOpBytes would wipe old data without
calling notify.

Register SkEmbossMaskFilter so it can be flattened.

Override drawBitmapNine (currently unimplemented) so an
SkGPipeCanvas does not call its base class' method (which
would fail).
Review URL: https://codereview.appspot.com/6071045

git-svn-id: http://skia.googlecode.com/svn/trunk@3741 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-04-20 17:39:51 +00:00
mike@reedtribe.org
90bf427001 proper handling if SkMatrix::invert failes, addresses hack fix in rev. 3657
git-svn-id: http://skia.googlecode.com/svn/trunk@3679 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-04-14 19:06:16 +00:00
reed@google.com
f3edf9fdc9 add SK_WARN_UNUSED_RESULT warning to SkPathMeasure methods that might leave
POD var-arguments uninitialized.



git-svn-id: http://skia.googlecode.com/svn/trunk@3665 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-04-12 19:44:38 +00:00
reed@google.com
fc9a3be3d2 always check the result of SkMatrix::invert
git-svn-id: http://skia.googlecode.com/svn/trunk@3657 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-04-12 13:52:14 +00:00
djsollen@google.com
2b2ede3e71 Decouple the SkFlattenable from SkReader32/SkWriter32.
The current impl for SkFlattenable read/write buffers is 
that they extend from SkReader32 and SkWriter32, but that
dependency must be abstract if we are to add any other
serialization format.
Review URL: https://codereview.appspot.com/5999045

git-svn-id: http://skia.googlecode.com/svn/trunk@3654 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-04-12 13:24:04 +00:00
tomhudson@google.com
5efe0cb049 Clean up more Visual Studio warnings, including apparent bug in Arithmetic mode.
git-svn-id: http://skia.googlecode.com/svn/trunk@3645 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-04-10 19:14:48 +00:00
tomhudson@google.com
75589257c6 Fix miscellaneous compiler warnings from Visual Studio 2010.
Changes serialization path for MorphologyImageFilter, handling of Windows
HRESULTS; otherwise just tweaks tests.



git-svn-id: http://skia.googlecode.com/svn/trunk@3642 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-04-10 17:42:21 +00:00
senorblanco@chromium.org
56dd630c41 Clamp dilate and erode radius to image width and height.
NOTE:  This will require new baselines for the morphology GM.



git-svn-id: http://skia.googlecode.com/svn/trunk@3641 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-04-10 17:25:44 +00:00
junov@chromium.org
2ac4ef5e6e Fixing the drawing of blurred shodows for hairline paths with software rendering
BUG=http://code.google.com/p/chromium/issues/detail?id=121251
REVIEW=http://codereview.appspot.com/5981053/



git-svn-id: http://skia.googlecode.com/svn/trunk@3592 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-04-04 15:16:51 +00:00
djsollen@google.com
257fc5bd13 Remove unused static functions from SampleApp and effects
Review URL: https://codereview.appspot.com/5956050

git-svn-id: http://skia.googlecode.com/svn/trunk@3543 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-03-29 17:54:05 +00:00
djsollen@google.com
54924243c1 Cleanup code related to SkFlattenable::flatten()
The following changes were made by this CL:

1. Make flatten() a protected method as callers should use
   SkFlattenableWriteBuffer to flatten an object
2. Make flatten a const method (including subclasses)
3. Mark subclass implementation of flatten with SK_OVERRIDE
4. Ensure overridden flatten impls call their parent
5. Remove no-op implementations of flatten from subclasses

Additionally, if necessary the unflattening constructor was
also moved to the protected section of the subclasses
header if it was not already there.

git-svn-id: http://skia.googlecode.com/svn/trunk@3540 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-03-29 15:18:04 +00:00
bungeman@google.com
998547641c Move SkColorMatrix to effects.
git-svn-id: http://skia.googlecode.com/svn/trunk@3535 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-03-28 21:14:17 +00:00
vandebo@chromium.org
a728e35edc Fix a bunch of Coverity defects - class members not initialized in the constructor.
CID=14533,14036,9275,9271,4156,4153,4151,1666,1665,1618,1617,1616,1615

Review URL: https://codereview.appspot.com/5940049

git-svn-id: http://skia.googlecode.com/svn/trunk@3532 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-03-28 20:29:38 +00:00
djsollen@google.com
ba28d03e94 Create macro for registering classes for deserialization
Review URL: https://codereview.appspot.com/5909063

git-svn-id: http://skia.googlecode.com/svn/trunk@3494 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-03-26 17:57:35 +00:00
djsollen@google.com
41b46be215 Fix android build
git-svn-id: http://skia.googlecode.com/svn/trunk@3484 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-03-23 19:36:53 +00:00
djsollen@google.com
a2ca41e3af Cleanup Macros arround static initializers for SkFlattenable.
This CL also removes an unused debugging function from the class
Review URL: https://codereview.appspot.com/5890043

git-svn-id: http://skia.googlecode.com/svn/trunk@3483 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-03-23 19:00:34 +00:00
djsollen@google.com
e63793a2c8 Upstream changes from Android repository.
Review URL: https://codereview.appspot.com/5752055

git-svn-id: http://skia.googlecode.com/svn/trunk@3449 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-03-21 15:39:03 +00:00
tomhudson@google.com
599445130c Move SkClampRange into src/effects, where it isn't being advertised as
something for end-users.

http://codereview.appspot.com/5864044/



git-svn-id: http://skia.googlecode.com/svn/trunk@3445 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-03-20 21:18:43 +00:00
djsollen@google.com
8ff1e51c5a Updating SkAvoidXferMode to use new 4byte interp function.
Review URL: https://codereview.appspot.com/5795058

git-svn-id: http://skia.googlecode.com/svn/trunk@3363 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-03-12 14:39:20 +00:00
senorblanco@chromium.org
05054f1a78 Erode and dilate image filter effects, CPU and GPU implementations.
Review URL:  http://codereview.appspot.com/5656067/



git-svn-id: http://skia.googlecode.com/svn/trunk@3310 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-03-02 21:05:45 +00:00
reed@google.com
48b481bc22 fix SkFixed build (I hope)
git-svn-id: http://skia.googlecode.com/svn/trunk@3201 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-02-15 19:09:54 +00:00
epoger@google.com
5468c9006e Disable optimization of certain bit-shift operations on Visual Studio 2010 only
to address http://code.google.com/p/skia/issues/detail?id=472
Review URL: https://codereview.appspot.com/5607058

git-svn-id: http://skia.googlecode.com/svn/trunk@3137 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-02-02 20:41:45 +00:00
reed@google.com
c98a0aadc4 rearrange functions to group clamp, repeat, mirror helpers together.
git-svn-id: http://skia.googlecode.com/svn/trunk@3135 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-02-02 19:33:08 +00:00
tomhudson@google.com
480e21f239 Add dithering to 32b radial gradients. Behind the same #ifdef as dithered
32b linear gradients so that we don't impact clients unexpectedly.
This commit *will* break GM.

http://codereview.appspot.com/5599050/



git-svn-id: http://skia.googlecode.com/svn/trunk@3126 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-02-02 14:11:18 +00:00
reed@google.com
9efd9a048a extend fastbounds impls to include maskfilters and drawloopers. This allows
us to perform quick-rejects when drawing objects with shadows (esp. text).
WebKit draws shadows w/ a looper (fg and shadow) and a maskfilter on the
shadow layer.



git-svn-id: http://skia.googlecode.com/svn/trunk@3103 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-30 15:41:43 +00:00
digit@google.com
1771cbf43d posix: Avoid static initializers in static/global mutexes
This patch removes static initializers related to static and
global mutexes from the final library's machine code when
building on a pthread-capable system.

We use PTHREAD_MUTEX_INITIALIZER to perform POD-style
initialization. You need a line like the following to declare
a global mutex with it:

    SkBaseMutex gMutex = { PTHREAD_MUTEX_INITIALIZER };

We introduce the SK_DECLARE_STATIC_MUTEX and SK_DECLARE_GLOBAL_MUTEX
macros to be able to declare static/global mutexes in the source tree
uniformly.

SkMutex is now defined as a sub-class of SkBaseMutex, with standard
construction/destruction semantics. This is useful if the mutex
object is a member of another C++ class, or allocated dynamically.

We also modify a few places to refer to SkBaseMutex instead of a
SkMutex, where it makes sense. Generally speaking, client code
should hold and use pointers to SkBaseMutex whenever they can
now.

We defined a new built-time macro named SK_USE_POSIX_THREADS
to indicate that we're using a pthread-based SkThread.h
interface. The macro will also be used in future patches
to implement other helper thread synchronization classes.

Finally, we inline the acquire() and release() functions in the
case of Posix to improve performance a bit.

Running: 'bench -repeat 10 -match mutex' on an Android device or
a 2.4GHz Xeon Linux desktop shows the following improvements:

                      Before     After

        Galaxy Nexus    1.64      1.45
        Nexus S         1.47      1.16
        Xoom            1.86      1.66
        Xeon            0.36      0.31

This removes 5 static mutex initializers from the library
Review URL: https://codereview.appspot.com/5501066

git-svn-id: http://skia.googlecode.com/svn/trunk@3091 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-26 21:26:40 +00:00
tomhudson@google.com
13a847a82c Temporarily allow linear interpolation of 2-color vertical gradients to be
turned off. With a Chromium gyp change to add
SK_SIMPLE_TWOCOLOR_VERTICAL_GRADIENTS, this reduces the rebaselining from
r3073 from ~200 to ~20.

codereview.appspot.com/5558055/



git-svn-id: http://skia.googlecode.com/svn/trunk@3077 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-20 13:59:14 +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
tomhudson@google.com
6a8df70f44 Create floating-point square root path for 16b mirrored radial gradients
(6x-16x speedup).  Create specialized dy=0 path for clamped radial gradients
(25% speedup).  Make 16b radial gradient proc signature similar to 32b,
passing in SkScalar instead of SkFixed and/or SkFloat.



git-svn-id: http://skia.googlecode.com/svn/trunk@3030 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-12 20:13:49 +00:00
tomhudson@google.com
51a283b4ad Convert 32b radial gradient procs to take SkScalar instead of
SkFixed AND SkFloat.

http://codereview.appspot.com/5532083/



git-svn-id: http://skia.googlecode.com/svn/trunk@3026 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-12 16:21:43 +00:00
tomhudson@google.com
f925ba4332 Remove obsolete SK_USE_FLOAT_SQRT
http://codereview.appspot.com/5535053/



git-svn-id: http://skia.googlecode.com/svn/trunk@3023 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-11 21:54:26 +00:00
tomhudson@google.com
054ff1efa4 Fix the string we're checking for in the #if defined(), so that loops actually do get unrolled on Windows (15% perf win claimed many months ago).
http://codereview.appspot.com/5528078



git-svn-id: http://skia.googlecode.com/svn/trunk@3019 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-11 19:29:08 +00:00
reed@google.com
e582869023 detect (and reject) if radius ia NaN, by using !(radius > 0) instead of (radius <= 0)
git-svn-id: http://skia.googlecode.com/svn/trunk@3007 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-11 14:07:27 +00:00
tomhudson@google.com
e8c984d11a Code cleanup: move gradient inner loops into procs.
http://codereview.appspot.com/5523048/



git-svn-id: http://skia.googlecode.com/svn/trunk@2988 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-09 13:45:36 +00:00
mike@reedtribe.org
f23f5f7f49 override asComponentTable()
git-svn-id: http://skia.googlecode.com/svn/trunk@2984 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-07 03:48:45 +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
senorblanco@chromium.org
a0b0c122b5 Fix incorrect use of the SK_RESTRICT macro in SkColorMatrixFilter, and re-enable
the colormatrix GM test.

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



git-svn-id: http://skia.googlecode.com/svn/trunk@2963 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-04 22:00:34 +00:00
reed@google.com
998343a134 implement dithering for vertical grads (was a todo:)
git-svn-id: http://skia.googlecode.com/svn/trunk@2960 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-04 17:26:27 +00:00
senorblanco@chromium.org
df28f077b0 Improve the quality of color matrix filters by using SkPremultiplyARGBInline.
This is closer (but not exactly the same as) WebKit's implementation.

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



git-svn-id: http://skia.googlecode.com/svn/trunk@2955 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-01-03 22:42:26 +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
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
0c00f21fee Add SkDEBUGFAIL to clean up use of SkASSERT(!"text");
catch a couple of latent SkASSERT("text") bugs.

http://codereview.appspot.com/5504090/



git-svn-id: http://skia.googlecode.com/svn/trunk@2926 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-28 14:59:50 +00:00
schenney@chromium.org
73f3dedf59 Unreviewed. Fixing the Windows build, due to a non definition of M_PI.
git-svn-id: http://skia.googlecode.com/svn/trunk@2912 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-20 22:31:40 +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
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
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
reed@google.com
0e734bdc42 revert 2826, restore option for non-dithered gradients (used by chrome)
git-svn-id: http://skia.googlecode.com/svn/trunk@2836 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-08 17:24:44 +00:00
reed@google.com
88ca1b4102 use dithered gradients by default
git-svn-id: http://skia.googlecode.com/svn/trunk@2826 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-08 14:14:02 +00:00
reed@google.com
8e6d914b87 fix win compile: sure wish SK_OVERRIDE was testable on mac build
git-svn-id: http://skia.googlecode.com/svn/trunk@2821 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-07 15:30:34 +00:00
reed@google.com
7716afbb97 add SK_OVERRIDEs
git-svn-id: http://skia.googlecode.com/svn/trunk@2820 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-07 15:17:50 +00:00
tomhudson@google.com
01224d5d0a Unroll loops in SkBlurMask for speedup on Windows (benchmarks should see
15% on interpolated blurs, 5-10% on simple blurs).



git-svn-id: http://skia.googlecode.com/svn/trunk@2755 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-28 18:22:01 +00:00
tomhudson@google.com
8caac6447d Add fractional-radius blurs to blur benchmark.
Specialize loops in apply_kernel and apply_kernel_interp,
improving blur benchmark performance by 25%.



git-svn-id: http://skia.googlecode.com/svn/trunk@2731 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-22 15:58:06 +00:00
reed@google.com
8426058dee ensure we never change the text_encoding of the master paint, since it is used
to interpret the text/length parameters in draw[Pos]Text.



git-svn-id: http://skia.googlecode.com/svn/trunk@2724 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-21 16:42:10 +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
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
56c69773ae Update files to use SK_BUILD_FOR_ANDROID.
This CL also removes any unecessary references to
the ANDROID definition.
Review URL: http://codereview.appspot.com/5354049

git-svn-id: http://skia.googlecode.com/svn/trunk@2629 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-08 19:00:26 +00:00
reed@google.com
045e62d715 enable soft clipping (yikes)
git-svn-id: http://skia.googlecode.com/svn/trunk@2515 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-10-24 12:19:46 +00:00
bungeman@google.com
18ac1ba3d1 Make asBlur method const.
http://codereview.appspot.com/5190041/

This change makes asBlur const consistent with SkShader::asAGradient and asABitmap.


git-svn-id: http://skia.googlecode.com/svn/trunk@2404 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-10-04 15:11:38 +00:00
bungeman@google.com
5eba98c4d1 Now that layout tests are fixed, remove flag to ignore margin fix.
http://codereview.appspot.com/5186044/


git-svn-id: http://skia.googlecode.com/svn/trunk@2403 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-10-04 13:39:37 +00:00
tomhudson@google.com
3e0f22c060 Add SK_RESTRICT inside radial gradient shader - we can't currently see a benefit, but it shouldn't hurt, and some compiler somewhere ought to benefit from it.
git-svn-id: http://skia.googlecode.com/svn/trunk@2383 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-09-30 14:31:28 +00:00
tomhudson@google.com
889bd8bd7f Make SkMath.h less visible in public header files.
git-svn-id: http://skia.googlecode.com/svn/trunk@2340 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-09-27 17:38:17 +00:00
tomhudson@google.com
5ea050f662 Optimize software radial gradients (remove branches from the inner loop where
we can, because an entire row is conservatively either outside or inside the
gradient.) Change the gradient benchmark to capture both cases, and add new
gm to detect errors in these optimized paths.



git-svn-id: http://skia.googlecode.com/svn/trunk@2327 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-09-26 15:03:55 +00:00
reed@google.com
51baf5abe7 speed up radial-mirror 16x, sweep by ~2x
git-svn-id: http://skia.googlecode.com/svn/trunk@2294 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-09-21 13:38:36 +00:00
reed@google.com
dd5bd670e6 add SK_RESTRICT in shadeSpan methods
git-svn-id: http://skia.googlecode.com/svn/trunk@2288 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-09-20 15:56:13 +00:00
bungeman@google.com
1c8e874b92 Ignore blur margin fix flag for backward bug compatibility.
http://codereview.appspot.com/4981046/


git-svn-id: http://skia.googlecode.com/svn/trunk@2219 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-09-06 15:34:31 +00:00
bungeman@google.com
5af16f8d67 Reduce size of filter mask.
http://codereview.appspot.com/4965057/

Reduce the size of filter masks, fix HQ blur when clipped, and add tests.


git-svn-id: http://skia.googlecode.com/svn/trunk@2211 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-09-02 15:06:44 +00:00
reed@google.com
03016a3620 style cleanup
git-svn-id: http://skia.googlecode.com/svn/trunk@2104 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-08-12 14:59:59 +00:00
reed@google.com
16edff2b1c style cleanup
git-svn-id: http://skia.googlecode.com/svn/trunk@2101 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-08-12 14:10:27 +00:00
reed@google.com
d7a6fb9779 style cleanup
git-svn-id: http://skia.googlecode.com/svn/trunk@2100 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-08-12 14:04:15 +00:00
reed@google.com
43e9f20f4b add serialization to SkLayerRasterizer
git-svn-id: http://skia.googlecode.com/svn/trunk@2088 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-08-09 19:01:50 +00:00
reed@google.com
18dc47731f use common subclass SkPath2DPathEffect, which can be serialized
git-svn-id: http://skia.googlecode.com/svn/trunk@2087 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-08-09 18:47:40 +00:00
reed@google.com
e28b917669 register 1D and 2D patheffects, so they work when serialized (and piperized)
git-svn-id: http://skia.googlecode.com/svn/trunk@2085 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-08-09 18:14:31 +00:00
epoger@google.com
ec3ed6a5eb Automatic update of all copyright notices to reflect new license terms.
I have manually examined all of these diffs and restored a few files that
seem to require manual adjustment.

The following files still need to be modified manually, in a separate CL:

android_sample/SampleApp/AndroidManifest.xml
android_sample/SampleApp/res/layout/layout.xml
android_sample/SampleApp/res/menu/sample.xml
android_sample/SampleApp/res/values/strings.xml
android_sample/SampleApp/src/com/skia/sampleapp/SampleApp.java
android_sample/SampleApp/src/com/skia/sampleapp/SampleView.java
experimental/CiCarbonSampleMain.c
experimental/CocoaDebugger/main.m
experimental/FileReaderApp/main.m
experimental/SimpleCocoaApp/main.m
experimental/iOSSampleApp/Shared/SkAlertPrompt.h
experimental/iOSSampleApp/Shared/SkAlertPrompt.m
experimental/iOSSampleApp/SkiOSSampleApp-Base.xcconfig
experimental/iOSSampleApp/SkiOSSampleApp-Debug.xcconfig
experimental/iOSSampleApp/SkiOSSampleApp-Release.xcconfig
gpu/src/android/GrGLDefaultInterface_android.cpp
gyp/common.gypi
gyp_skia
include/ports/SkHarfBuzzFont.h
include/views/SkOSWindow_wxwidgets.h
make.bat
make.py
src/opts/memset.arm.S
src/opts/memset16_neon.S
src/opts/memset32_neon.S
src/opts/opts_check_arm.cpp
src/ports/SkDebug_brew.cpp
src/ports/SkMemory_brew.cpp
src/ports/SkOSFile_brew.cpp
src/ports/SkXMLParser_empty.cpp
src/utils/ios/SkImageDecoder_iOS.mm
src/utils/ios/SkOSFile_iOS.mm
src/utils/ios/SkStream_NSData.mm
tests/FillPathTest.cpp
Review URL: http://codereview.appspot.com/4816058

git-svn-id: http://skia.googlecode.com/svn/trunk@1982 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-07-28 14:26:00 +00:00
reed@google.com
9de4dc9b1e check for non-finite values that can make us overshoot
git-svn-id: http://skia.googlecode.com/svn/trunk@1870 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-07-15 14:14:45 +00:00
reed@google.com
895ce131de remove dead code
git-svn-id: http://skia.googlecode.com/svn/trunk@1824 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-07-07 20:04:22 +00:00
reed@google.com
2b75f4279a add asABlur() to maskfilters, so devices like gpu and pdf can query them.
git-svn-id: http://skia.googlecode.com/svn/trunk@1816 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-07-07 13:43:38 +00:00
reed@google.com
95eed983be ensure that our bitmap is built with opaque cachedalpha
git-svn-id: http://skia.googlecode.com/svn/trunk@1789 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-07-05 17:01:56 +00:00
reed@google.com
0b8b3bb083 make inline version of premultiply, to speed up gradient creation.
We could speed-up again if we...
- respected kDither and only built 1/2 of the table for non-dither requests
- output simple params to the gpu rather than always a texture
- detected that we have no alpha, and then can skip premul per-entry



git-svn-id: http://skia.googlecode.com/svn/trunk@1772 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-30 21:06:22 +00:00
reed@google.com
21031e9ee8 fix div-by-zero (triggers debugging assert when scalar=fixed) and add master
(raster only) images for degenerate gradient test



git-svn-id: http://skia.googlecode.com/svn/trunk@1729 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-27 18:38:27 +00:00
reed@google.com
8871a84935 detect when our quadratic is really linear for 2-point radial, and don't
divide by zero, but rather just return -c/b



git-svn-id: http://skia.googlecode.com/svn/trunk@1684 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-23 15:07:04 +00:00
vandebo@chromium.org
3c898186c9 Fix more coverity defects - Uninitialized class fields.
In SkCanvas, SkBitmapCache::Entry, SkDrawLooper

CID=13440,1366,16236,14393

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

git-svn-id: http://skia.googlecode.com/svn/trunk@1671 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-22 05:01:28 +00:00
reed@google.com
6bac947cd5 Add option in flattening to write factory names inline, as we are recording.
SkGPipe needs this, since it cannot (unlike SkPicture) see all of the factories
before it hands its data to the reader.

In this mode, the writer embedds the factory name the first time it sees it,
and then after that writes an index (referencing the fFactorySet). The reader
installs an empty array, and as it encounters names, appends them to that array
so that subsequent indices can be used to retrieve the previously named factory.

Some of the existing patheffects did not register their factory names, so those
changes are also part of this CL. Annoyingly, to register your factory using the
current scheme, it has to be in the public section of the class definition.




git-svn-id: http://skia.googlecode.com/svn/trunk@1663 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-21 19:24:00 +00:00
tomhudson@google.com
a87cd2af4c Increase compatibility with clang, mostly around SK_RESTRICT.
Attempting to fix up our use of __restrict__ so Chrome can enable it.



git-svn-id: http://skia.googlecode.com/svn/trunk@1597 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-15 16:50:27 +00:00
epoger@google.com
baa677b248 delete all old (non-Gyp) buildfiles
git-svn-id: http://skia.googlecode.com/svn/trunk@1583 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-14 18:35:08 +00:00
senorblanco@chromium.org
1a39493b32 Fix unnitialized memory in Sk2DPathEffect. The SkDescriptor checksum
calculation for Sk2DPathEffect currently evaluates all the bytes in the
embedded SkMatrix.  This includes the type mask, which contains some
uninitialized padding.  Changing it to use SkMatrix::flatten() and
SkMatrix::unflatten() (as SkGroupShape was doing) avoids the uninitialized
data errors.

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



git-svn-id: http://skia.googlecode.com/svn/trunk@1395 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-20 19:19:09 +00:00
senorblanco@chromium.org
e4c98ff48d Clean up some valgrind errors in SkTransparentShader. Valgrind complains
about overlapping memcpy().  In fact, it seems that src and dest are the same,
so we should be able to skip the copy in this case.

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



git-svn-id: http://skia.googlecode.com/svn/trunk@1393 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-20 19:06:10 +00:00
reed@google.com
f2eb5ab780 fix bug where we wrote uninitialized data to the flatten stream for shaders.
Both shader and gradient_shader write matrices to the flatten stream. However, they were
just calling write(&matrix, sizeof(SkMatrix)) and the matrix can contain lazily-computed
function ptrs as part of its internal cache. Thus two matrices that are logically the
same may write different bytes.

This is a problem because picture relies on flattening objects and then using the
flatten stream as a key into its cache. This matrix-write bug effectively kills the
effectiveness of the cache for shaders.

The fix is to write proper read/write functions for matrix (and region btw). These
call through to the existing low-level flatten routines (which just write into a
memory ptr).



git-svn-id: http://skia.googlecode.com/svn/trunk@1290 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-10 22:56:42 +00:00
tomhudson@google.com
1447c6f7f4 Add missing flattenable registrations and CreateProc() functions;
fixes gm --serialize xfermode test case.



git-svn-id: http://skia.googlecode.com/svn/trunk@1199 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-27 14:09:52 +00:00
tomhudson@google.com
938d604026 Add flattenable registrar for Two_Point_Radial_Gradient.
git-svn-id: http://skia.googlecode.com/svn/trunk@1198 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-27 13:57:03 +00:00
tomhudson@google.com
9ce767c413 Fix to (two-point radial) gradient playback error in SkPictures that swapped
the X and Y coordinates of their centers.



git-svn-id: http://skia.googlecode.com/svn/trunk@1179 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-25 20:49:39 +00:00
mike@reedtribe.org
3334c3a1fa code style
git-svn-id: http://skia.googlecode.com/svn/trunk@1160 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-20 11:39:28 +00:00
reed@google.com
13659f1f8d handle overflow
note: gradient caller doesn't so we can still draw wrong when the caller
converts its initial fx from float->fixed. Perhaps SkClampRange should offer
a float interface as well.



git-svn-id: http://skia.googlecode.com/svn/trunk@1149 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-18 19:59:38 +00:00
reed@google.com
b692a14984 disable fast linear for now (really this time)
git-svn-id: http://skia.googlecode.com/svn/trunk@1144 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-18 13:31:48 +00:00
reed@google.com
17705075b1 disable fast linear until we handle the overflow cases
git-svn-id: http://skia.googlecode.com/svn/trunk@1143 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-18 12:43:32 +00:00
reed@google.com
e61414ce7b add SK_USE_SLOW_2POINT_RADIAL_GRADIENT option for clients that like slowness
(or the previous images)



git-svn-id: http://skia.googlecode.com/svn/trunk@1140 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-15 18:14:16 +00:00
reed@google.com
5eb158d84d use SkClampRange to speedup clamp iterators
speeds up linear gradients 4x



git-svn-id: http://skia.googlecode.com/svn/trunk@1139 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-15 15:50:34 +00:00
djsollen@google.com
f5dbe2f00f Upstream android changes.
reviewed by: reed


git-svn-id: http://skia.googlecode.com/svn/trunk@1134 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-15 13:41:26 +00:00
reed@google.com
61eb040e2f code style
git-svn-id: http://skia.googlecode.com/svn/trunk@1133 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-15 12:11:12 +00:00
reed@google.com
43c50c8c77 add reflection asColorMode to SkColorFilter (for gpu)
git-svn-id: http://skia.googlecode.com/svn/trunk@1126 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-14 15:50:52 +00:00
mike@reedtribe.org
a8282ef8f9 add mask for paint-bits to layerdrawlooper
change addLayer variants that don't respect paint changes to return void



git-svn-id: http://skia.googlecode.com/svn/trunk@1123 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-14 01:22:45 +00:00
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
reed@google.com
0716c63332 expand SkLayerDrawLooper to allow for an xfermode when transfering the paint's color,
and allow that the offset be applied pre or post



git-svn-id: http://skia.googlecode.com/svn/trunk@1115 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-12 18:32:06 +00:00
mike@reedtribe.org
3c1225bee4 fast return if no part of the paint gets replaced
git-svn-id: http://skia.googlecode.com/svn/trunk@1088 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-09 18:54:08 +00:00
mike@reedtribe.org
0e2810be95 add optional bitflags to control which aspect of each layer's paint is applied
git-svn-id: http://skia.googlecode.com/svn/trunk@1083 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-08 02:41:54 +00:00
mike@reedtribe.org
e5d0def6d9 fix infinite loop (doh)
git-svn-id: http://skia.googlecode.com/svn/trunk@1081 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-08 00:53:48 +00:00
reed@google.com
4e2b3d3fb1 Simplify drawloopers and drawfilters. This allows the canvas to keep its
promise that const SkPaint& stay const (so we don't have bugs if a const paint
is referenced from two threads in pictures)



git-svn-id: http://skia.googlecode.com/svn/trunk@1074 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-07 14:18:59 +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
djsollen@google.com
cd9d69b9ce Upstreaming changes from android.
- fix compile warnings in the GPU code
- upstream android specific code (ifdef protected)
- fail gracefully when a custom allocator fails



git-svn-id: http://skia.googlecode.com/svn/trunk@936 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-14 20:30:14 +00:00
junov@google.com
a639891117 Fixes shadow colors with alpha value smaller that one. Results were too transparent.
code review: codereview.appspot.com/4267052
skia bug: 170



git-svn-id: http://skia.googlecode.com/svn/trunk@924 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-11 16:45:00 +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
4c09d5cd4b rename SkDeque::Iter to SkDeque::F2BIter, since it runs front-to-back (in preparation
for another iter that runs back-to-front (B2FIter).

add unittest for Deque



git-svn-id: http://skia.googlecode.com/svn/trunk@821 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-22 13:16:38 +00:00
senorblanco@chromium.org
4868e6b221 [Committed on behalf of junov@chromium.org]
Fixed rendering of shadows under bitmaps.  
Added an option to SkBlurMask to produce higher quality blurs.  
The HQ blur option is propagated through SkBlurDrawLooper so that it can be invoked by WebKit for drawing shadows.
Added a shadow rendering test to gm.

Bugs fixed: 146, 150
Related Chromium bugs: 11153, 42654
Code review: http://codereview.appspot.com/4174049



git-svn-id: http://skia.googlecode.com/svn/trunk@818 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-18 19:03:01 +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