Commit Graph

5505 Commits

Author SHA1 Message Date
sugoi@google.com
b48a59ae81 Checking structure sizes before reading them from memory to avoid overflowing the buffer's stream.
BUG=
R=reed@google.com

Committed: https://code.google.com/p/skia/source/detail?r=12114

Review URL: https://codereview.chromium.org/41253002

git-svn-id: http://skia.googlecode.com/svn/trunk@12119 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-04 20:28:23 +00:00
reed@google.com
ac9d306a92 speed up A8 by creating a new entry-point in SkDraw that blits the path's coverage directly into an A8 target, regardless of the previous pixel values.
R=bsalomon@google.com, mtklein@google.com

Review URL: https://codereview.chromium.org/56453002

git-svn-id: http://skia.googlecode.com/svn/trunk@12118 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-04 20:10:33 +00:00
epoger@google.com
eb221268ab Revert r12114 due to https://code.google.com/p/skia/issues/detail?id=1794 ('Assertion failures on various buildbots as of r12114')
git-svn-id: http://skia.googlecode.com/svn/trunk@12115 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-04 18:06:12 +00:00
sugoi@google.com
305f78e8c1 Checking structure sizes before reading them from memory to avoid overflowing the buffer's stream.
BUG=
R=reed@google.com

Review URL: https://codereview.chromium.org/41253002

git-svn-id: http://skia.googlecode.com/svn/trunk@12114 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-04 16:18:15 +00:00
senorblanco@chromium.org
fe2faa8b16 Change SkBlurImageFilter to use fixed-point division. Yields ~1.8X speedup on
MacBookPro.

Note: this will require defining SK_DISABLE_BLUR_DIVISION_OPTIMIZATION in
Chrome, a la https://codereview.chromium.org/49973005.

R=mtklein@google.com

Review URL: https://codereview.chromium.org/57513002

git-svn-id: http://skia.googlecode.com/svn/trunk@12113 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-04 16:07:33 +00:00
robertphillips@google.com
d998bec918 Fix for Chromium-side compilation complaint:
src/pathops/SkIntersectionHelper.h:10:13: error: #if with no expression



git-svn-id: http://skia.googlecode.com/svn/trunk@12108 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-03 13:40:34 +00:00
skia.committer@gmail.com
f54ad6f488 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@12101 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-02 07:02:02 +00:00
robertphillips@google.com
32700ace30 Reverting r12082 (Add bevel-stroke support in GrAARectRenderer) due to GM failures
git-svn-id: http://skia.googlecode.com/svn/trunk@12091 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-01 19:22:42 +00:00
caryclark@google.com
a2bbc6e19d pathops work in progress
BUG=

Review URL: https://codereview.chromium.org/52653002

git-svn-id: http://skia.googlecode.com/svn/trunk@12089 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-01 17:36:03 +00:00
reed@google.com
f0784bde75 Revert "Avoid re-rendering stencil clip for every draw with reducable clip stack"
This reverts commit 92a7d4bf6a371f1f864154be902e8d86938e560b.

Revert "fix mac 10.6 build"

This reverts commit 114cd1a9f2734aaed6914718814364811b78bd7f.

BUG=

Review URL: https://codereview.chromium.org/54543008

git-svn-id: http://skia.googlecode.com/svn/trunk@12087 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-01 16:25:59 +00:00
commit-bot@chromium.org
f91aaecbe9 Construct round rects with perpendicular tangents.
The round rects are constructed as before out of quadratics,
but without fudging the control points. Instead, the mid on-
curve point is nudged slightly outward to prevent the
convexity test from failing.

The convexity test now includes an error term for sign
inequality after computing the cross product of the control
lines. When the control points are represented as vectors,
the number of bits of precision may be greatly reduced.

Account for this by passing the number of bits available
from the original control point values into the equality
check.

Making round rect construction lines perpendicular improves
the chances of success when path ops encounters clips.

No new tests are needed -- this change is exercised by the
convex Path unit tests and the gm tests arcofzorro and
hairlines.

R=robertphillips@google.com, reed@google.com

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/48783002

git-svn-id: http://skia.googlecode.com/svn/trunk@12085 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-01 15:24:55 +00:00
commit-bot@chromium.org
679eb674fc Avoid re-rendering stencil clip for every draw with reducable clip stack
Fixes the cases where clip stack reduction would cause clip to be
re-rendered to stencil for each draw call. This causes unneeded
slowdown.

Stencil cache would not be used because the clip stack generation id communicated
by the clip stack element list would be invalid. This happended due to

 a) clip stack reduction creating new elements in the element list.

 b) purging logic removing the generation id, but reduction logic
    selecting already purged element, and thus the generation id, as
    the representative state of the clip.

Cases of a) where reduction would flatten the stack to a single new
element were fixed by assigning the generation id of the top-most
element of the clip stack as the generation id of the new
element. This is not strictly minimal, but enables more caching than
using invalid id.

Cases of a) where reduction would substitute a stack element with a
new element the generation id of the substituted element is used.

The b) part was fixed by removing the purging logic. It was not
exactly correct, as the previously purged states were actually
used. The purging was not used for anything.

Changes SkClipStack API to highlight that invalid generation id is
never returned by SkClipStack. Empty stacks are wide open. Changes the
clients to reflect this.

Fixes a crash when not passing anti-alias out parameter to
GrReducedClip::ReduceClipStack. The crash is not exercised in the
current code.

R=bsalomon@google.com, robertphillips@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/48593003

git-svn-id: http://skia.googlecode.com/svn/trunk@12084 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-01 15:24:20 +00:00
commit-bot@chromium.org
5c8ee2539b Make GrContext cache the gpu paths
Creating paths for nv_path_rendering is costly. Try to reduce this
cost by caching paths based on the SkPath "hash" (i.e. SkPathRef
generation id) and stroke properties.

Adds the paths to GrContext::fTextureCache instance. Later this should
be renamed and the GrContext API should reflect the nature of the cache
better.

R=bsalomon@google.com, mtklein@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/26557003

git-svn-id: http://skia.googlecode.com/svn/trunk@12083 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-01 15:23:44 +00:00
commit-bot@chromium.org
e1e99ef0af Add bevel-stroke support in GrAARectRenderer
R=robertphillips@google.com, bsalomon@google.com

Author: yunchao.he@intel.com

Review URL: https://codereview.chromium.org/23712005

git-svn-id: http://skia.googlecode.com/svn/trunk@12082 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-01 15:23:17 +00:00
robertphillips@google.com
8995b7b626 Only disable scratch texture reuse on the N10 and N4
https://codereview.chromium.org/48903017/



git-svn-id: http://skia.googlecode.com/svn/trunk@12080 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-01 15:03:34 +00:00
reed@google.com
2bd8b81005 move SkImage::ColorType into SkColorType
objective -- move clients over to SkImage

tasks
- use SkImageInfo instead of SkBitmap::Config
- add support for colortables to SkImage
- add drawImage to SkCanvas
- return SkImage from readPixels

This CL works towards the first task

R=robertphillips@google.com

Review URL: https://codereview.chromium.org/54363008

git-svn-id: http://skia.googlecode.com/svn/trunk@12077 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-01 13:46:54 +00:00
commit-bot@chromium.org
f2f8f3a43c Adding a way to disable SkOffsetImageFilter's optimized path in blink/chrome
BUG=
R=senorblanco@chromium.org, reed@google.com, sugoi@google.com

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/54543005

git-svn-id: http://skia.googlecode.com/svn/trunk@12075 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-01 11:55:06 +00:00
commit-bot@chromium.org
2080722493 Fix two inconsistencies in handling fixed-function texture coordinate set generation
Prevent off-by-one bug leaving the texture coordinate set 0 always enabled if
it ever was used. This makes the code consistent with its apparent purpose.

When enabling / disabling texture coordinate sets, call glPathTexGen
only if path rendering is applicable. This makes the functions
consistent with GrGpuGL::resetContext.

R=cdalton@nvidia.com, bsalomon@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/54403003

git-svn-id: http://skia.googlecode.com/svn/trunk@12074 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-01 11:54:54 +00:00
skia.committer@gmail.com
18bb41e956 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@12071 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-01 07:02:15 +00:00
robertphillips@google.com
3b60c14e66 Fix for r12069 (actually turn on don't-reuse-scratch-textures feature)
git-svn-id: http://skia.googlecode.com/svn/trunk@12070 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-01 01:55:40 +00:00
robertphillips@google.com
f7ee05fa9d Turn on don't-reuse-scratch-textures for all Android devices
https://codereview.chromium.org/54493005/



git-svn-id: http://skia.googlecode.com/svn/trunk@12069 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-01 00:40:47 +00:00
robertphillips@google.com
56ce48ade3 Add can-ignore-rect hint to clear call
https://codereview.chromium.org/53823003/



git-svn-id: http://skia.googlecode.com/svn/trunk@12064 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-31 21:44:25 +00:00
commit-bot@chromium.org
3843f3fc89 Partial fix for Skia issue 1769: GenerateGMs crashing (out of memory)
GenerateGMs was crashing because we were adding genID listeners for
textures even when creation failed -- in this case the key generated
is not valid, so when it comes time to purge it, it triggers an
assert and then an apparent crash. The solution is to not add
a genID listener in this case.

This doesn't solve the problem of running out of memory, it just prevents it
from causing a crash in Debug builds.

BUG=
R=bsalomon@google.com, robertphillips@google.com, mtklein@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/55023005

git-svn-id: http://skia.googlecode.com/svn/trunk@12062 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-31 20:22:47 +00:00
commit-bot@chromium.org
0251288112 Adding size parameter to read array functions
In some cases, the allocated array into which the data will be read is using getArrayCount() to allocate itself, which should be safe, but some cases use fixed length arrays or compute the array size before reading, which could overflow if the stream is compromised.

To prevent that from happening, I added a check that will verify that the number of bytes to read will not exceed the capacity of the input buffer argument passed to all the read...Array() functions.

I chose to use the byte array for this initial version, so that "size" represents the same value across all read...Array() functions, but I could also use the element count, if it is preferred.

Note : readPointArray and writePointArray are unused, so I could also remove them

BUG=
R=reed@google.com, mtklein@google.com, senorblanco@chromium.org

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/37803002

git-svn-id: http://skia.googlecode.com/svn/trunk@12058 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-31 18:37:50 +00:00
reed@google.com
4469938e92 Revert "Revert "add SK_ATTR_DEPRECATED -- will need to disable for chrome, since it triggers a warning""
This reverts commit 1e787c38fa71f2a21fd728f1b1d620b9b09b0d3d.

BUG=

Review URL: https://codereview.chromium.org/54603004

git-svn-id: http://skia.googlecode.com/svn/trunk@12057 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-31 17:28:30 +00:00
reed@google.com
6fcbfcead5 Revert "add SK_ATTR_DEPRECATED -- will need to disable for chrome, since it triggers a warning"
This reverts commit 1d22c4aaf9d8f053f25194a1ed74b137bfb19497.

git-svn-id: http://skia.googlecode.com/svn/trunk@12056 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-31 16:31:11 +00:00
reed@google.com
081560e3ab add SK_ATTR_DEPRECATED -- will need to disable for chrome, since it triggers a warning
BUG=
R=robertphillips@google.com, senorblanco@chromium.org, vandebo@chromium.org

Review URL: https://codereview.chromium.org/51033004

git-svn-id: http://skia.googlecode.com/svn/trunk@12055 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-31 16:24:08 +00:00
robertphillips@google.com
94bdd7e3fc Fix bug in don't-reuse-scratch-textures path
https://codereview.chromium.org/50853003/



git-svn-id: http://skia.googlecode.com/svn/trunk@12054 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-31 15:50:43 +00:00
skia.committer@gmail.com
7ed98df9ba Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@12043 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-31 07:01:53 +00:00
robertphillips@google.com
cb505101a2 No longer use scratch textures on ARM devices
https://codereview.chromium.org/50643003/



git-svn-id: http://skia.googlecode.com/svn/trunk@12042 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-31 00:51:18 +00:00
senorblanco@chromium.org
f49a0955e2 Mac build fix.
TBR=robertphillips

Review URL: https://codereview.chromium.org/45963007

git-svn-id: http://skia.googlecode.com/svn/trunk@12039 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-30 22:14:24 +00:00
senorblanco@chromium.org
7a47ad3bac Implement SSE2-based implementations of the morphology filters (dilate & erode). This gives a 3-5X speedup over the naive implementation, and also mitigates a timing-based security attack in Chrome (https://code.google.com/p/chromium/issues/detail?id=251711).
NOTE: this will require a corresponding GYP change on the Skia roll into Chrome: https://codereview.chromium.org/52453004/

R=mtklein@google.com, reed@google.com

Review URL: https://codereview.chromium.org/52603004

git-svn-id: http://skia.googlecode.com/svn/trunk@12038 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-30 21:57:04 +00:00
robertphillips@google.com
2d2e5c4e24 Make not-reusing-scratch-textures only apply to texture uploads
https://codereview.chromium.org/53133002/



git-svn-id: http://skia.googlecode.com/svn/trunk@12037 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-30 21:30:43 +00:00
vandebo@chromium.org
fd3c8c243a Fix int/SkScalar mismatch.
Review URL: https://codereview.chromium.org/51043005

git-svn-id: http://skia.googlecode.com/svn/trunk@12035 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-30 21:00:47 +00:00
vandebo@chromium.org
3b416216d1 [PDF] Improve complex xfer mode support.
Xfer mode applies only to the shape of the source drawing, not everything in the clip as in currently implemented.  It's just that the current gm examples draw a shape that fills the visible layer.

R=edisonn@google.com, reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12034 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-30 20:48:05 +00:00
commit-bot@chromium.org
c9424b8e6d Don't check if shaders compile or program links in release Chromium
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/52843003

git-svn-id: http://skia.googlecode.com/svn/trunk@12032 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-30 20:03:16 +00:00
commit-bot@chromium.org
1ab9f737f0 Use SkPathRef gen id for SkPath::getGenerationID
R=mtklein@google.com, robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/49693002

git-svn-id: http://skia.googlecode.com/svn/trunk@12029 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-30 18:57:55 +00:00
reed@google.com
4db592c408 remove contains(x,y) for rects and rrects ... not well defined, and unused
BUG=
R=robertphillips@google.com

Review URL: https://codereview.chromium.org/51953003

git-svn-id: http://skia.googlecode.com/svn/trunk@12022 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-30 17:39:43 +00:00
robertphillips@google.com
4e5559af89 Allow specifying the max texture count on the bots
https://codereview.chromium.org/50413011/



git-svn-id: http://skia.googlecode.com/svn/trunk@12020 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-30 17:04:16 +00:00
reed@google.com
35fe7372b1 prototype for kerning api
BUG=
R=bungeman@google.com

Review URL: https://codereview.chromium.org/29363009

git-svn-id: http://skia.googlecode.com/svn/trunk@12018 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-30 15:07:03 +00:00
skia.committer@gmail.com
b77f0f4ae5 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@12013 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-30 07:01:56 +00:00
robertphillips@google.com
7101abe5b3 Reverting r12010 (Use SkPathRef gen id for SkPath::getGenerationID https://codereview.chromium.org/49693002) due to test failures in PathTest on Android
git-svn-id: http://skia.googlecode.com/svn/trunk@12012 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-29 22:45:37 +00:00
commit-bot@chromium.org
4cc7518d9b Use SkPathRef gen id for SkPath::getGenerationID
R=mtklein@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/49693002

git-svn-id: http://skia.googlecode.com/svn/trunk@12010 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-29 21:34:55 +00:00
commit-bot@chromium.org
658e28b081 Remove SkMatrix44 float conversions without precision loss
BUG=none
R=reed@google.com

Author: enne@chromium.org

Review URL: https://codereview.chromium.org/50423004

git-svn-id: http://skia.googlecode.com/svn/trunk@12009 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-29 21:08:51 +00:00
commit-bot@chromium.org
950923b437 All SkAnnotations are no-draw. Propose we fold that through.
BUG=
R=edisonn@google.com, reed@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/48523008

git-svn-id: http://skia.googlecode.com/svn/trunk@12008 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-29 20:44:39 +00:00
commit-bot@chromium.org
89ff3dd5af Little changes to SkAnnotation in pipe:
- store size in the op data field rather than separately (saves 4 bytes);
  - trim out a malloc/memcpy in each of read and write;
  - remove unused enum value;
  - use the right _unpackOp function;
  - make sure we call needOpBytes().

BUG=
R=reed@google.com, scroggo@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/50523004

git-svn-id: http://skia.googlecode.com/svn/trunk@12007 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-29 20:29:38 +00:00
commit-bot@chromium.org
7585479202 Allow SkLazyPixelRef to use SkScaledImageCache
-   SkScaledImageCache:
    -   Add new FindAndLock/AddAndLock variants that work well with
        SkLazyPixelRefs (take width, height, generation_id).
    -   Add static versions of these new variants.

-   SkLazyPixelRef:
    -   If NULL passed in as SkImageCache* in the constructor, it will
        now default to using the static SkScaledImageCache methods to
        cache decoded images.
    -   If (fImageCache==NULL), the default allocator can be changed
        with the setAllocator method.  If (fImageCache!=NULL), the
        SkImageCache handles allocation.

-   CachedDecodingPixelRefTest to test the new functionality.

BUG=
R=scroggo@google.com, mtklein@google.com, reed@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/37343002

git-svn-id: http://skia.googlecode.com/svn/trunk@12006 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-29 19:55:00 +00:00
commit-bot@chromium.org
40258a5be9 Fix pipe/annotation.
We weren't keeping track of the annotation that's on the other side of the pipe.

BUG=skia:1761
R=scroggo@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/48273011

git-svn-id: http://skia.googlecode.com/svn/trunk@12004 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-29 19:23:26 +00:00
commit-bot@chromium.org
602b9608f5 Get rid of two unused variables from the .data section.
Before:
$ objdump -x out/Release/libskia_opts.a | grep "\.data" | c++filt
1 .data         00000000  0000000000000000  0000000000000000  000004ec  2**2
0000000000000000 l    d  .data        0000000000000000 .data
1 .data         00000000  0000000000000000  0000000000000000  00000f58  2**2
0000000000000000 l    d  .data      0000000000000000 .data
2 .data         00000008  0000000000000000  0000000000000000  00001774  2**2
0000000000000000 l    d  .data    0000000000000000 .data
0000000000000000 g     O .data    0000000000000004 debug_x
0000000000000004 g     O .data    0000000000000004 debug_y
1 .data         00000000  0000000000000000  0000000000000000  00001d8c  2**2
0000000000000000 l    d  .data  0000000000000000 .data
1 .data         00000000  0000000000000000  0000000000000000  00000054  2**2
0000000000000000 l    d  .data        0000000000000000 .data
1 .data         00000000  0000000000000000  0000000000000000  000001f0  2**2
0000000000000000 l    d  .data      0000000000000000 .data
1 .data         00000000  0000000000000000  0000000000000000  00000044  2**2
0000000000000000 l    d  .data    0000000000000000 .data

After:
$ objdump -x out/Release/libskia_opts.a | grep "\.data" | c++filt
1 .data         00000000  0000000000000000  0000000000000000  000004ec  2**2
0000000000000000 l    d  .data        0000000000000000 .data
1 .data         00000000  0000000000000000  0000000000000000  00000f58  2**2
0000000000000000 l    d  .data      0000000000000000 .data
2 .data         00000000  0000000000000000  0000000000000000  00001774  2**2
0000000000000000 l    d  .data    0000000000000000 .data
1 .data         00000000  0000000000000000  0000000000000000  00001d8c  2**2
0000000000000000 l    d  .data  0000000000000000 .data
1 .data         00000000  0000000000000000  0000000000000000  00000054  2**2
0000000000000000 l    d  .data        0000000000000000 .data
1 .data         00000000  0000000000000000  0000000000000000  000001f0  2**2
0000000000000000 l    d  .data      0000000000000000 .data
1 .data         00000000  0000000000000000  0000000000000000  00000044  2**2
0000000000000000 l    d  .data    0000000000000000 .data

Not sure why clang didn't catch them.

R=mtklein@google.com
BUG=

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/50013002

git-svn-id: http://skia.googlecode.com/svn/trunk@11999 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-29 15:32:09 +00:00
robertphillips@google.com
9ef0426e7c Don't reuse scratch textures patch
https://codereview.chromium.org/24222004/



git-svn-id: http://skia.googlecode.com/svn/trunk@11997 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-29 14:06:15 +00:00
robertphillips@google.com
0b7ab3bb49 Fix bug in erosion filtering
https://codereview.chromium.org/50813002/



git-svn-id: http://skia.googlecode.com/svn/trunk@11996 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-29 13:59:31 +00:00
skia.committer@gmail.com
70402c3168 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@11992 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-29 07:01:50 +00:00
commit-bot@chromium.org
8ab77eae2c Fix narrowing conversion errors from r11986
Although this function only gets used for SkMScalar=float, it gets
compiled in when SkMScalar=double.

R=epoger@google.com
BUG=1764

Author: enne@chromium.org

Review URL: https://codereview.chromium.org/49463005

git-svn-id: http://skia.googlecode.com/svn/trunk@11991 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-28 22:05:41 +00:00
commit-bot@chromium.org
c01ba70afc Remove float/double conversions from SkMatrix44's map2_pf
BUG=chromium:303811
R=reed@google.com

Author: enne@chromium.org

Review URL: https://codereview.chromium.org/37693004

git-svn-id: http://skia.googlecode.com/svn/trunk@11986 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-28 20:20:54 +00:00
commit-bot@chromium.org
77e079af1a Enabling validation code in serialization and adding serialization to fuzzer
BUG=

Committed: http://code.google.com/p/skia/source/detail?r=11968

R=reed@google.com, mtklein@google.com, senorblanco@chromium.org, bsalomon@google.com, robertphillips@google.com

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/44573002

git-svn-id: http://skia.googlecode.com/svn/trunk@11981 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-28 15:52:02 +00:00
commit-bot@chromium.org
42a895730f Fix for issue 1728: raster vs. gpu text draws with the wrong color
The blend mode for LCD text was not set up correctly when using colors with alpha. This takes the color's alpha value
into account when setting up the blending function.

BUG=Skia:1728
R=bsalomon@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/45363002

git-svn-id: http://skia.googlecode.com/svn/trunk@11980 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-28 15:13:50 +00:00
commit-bot@chromium.org
da3d69ce71 Fix broken MSAA for RGBA
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/46763003

git-svn-id: http://skia.googlecode.com/svn/trunk@11979 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-28 15:09:13 +00:00
robertphillips@google.com
3721ee652a Reverting r11968 (Enabling validation code in serialization and adding serialization to fuzzer - https://codereview.chromium.org/44573002) due to failure on Chromium AllQuads test.
git-svn-id: http://skia.googlecode.com/svn/trunk@11974 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-28 12:08:52 +00:00
commit-bot@chromium.org
b2e9fa5298 Clean up the GrTHashTable API.
removeAt() and slowFindIndex() were only used by GrFontCache, and didn't really need to exist: they can be replaced by a simple remove() call.  This new code should actually be faster; slowFindIndex() was O(N), and this should be O(lg N).

BUG=
R=bsalomon@google.com, jvanverth@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/43383006

git-svn-id: http://skia.googlecode.com/svn/trunk@11973 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-27 20:50:23 +00:00
skia.committer@gmail.com
0673efeea2 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@11969 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-26 07:01:53 +00:00
commit-bot@chromium.org
d25d6c7b8e Enabling validation code in serialization and adding serialization to fuzzer
BUG=
R=reed@google.com, mtklein@google.com, senorblanco@chromium.org, bsalomon@google.com

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/44573002

git-svn-id: http://skia.googlecode.com/svn/trunk@11968 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-25 21:04:40 +00:00
bungeman@google.com
10ba006631 Allow users to build on top of, instead of beneath, SkRefCnt.
Alternative to r11811.

The Chromium half of this can be seen at https://codereview.chromium.org/40973002/ .

R=reed@google.com

Review URL: https://codereview.chromium.org/40503002

git-svn-id: http://skia.googlecode.com/svn/trunk@11967 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-25 18:40:24 +00:00
bungeman@google.com
72b8cb2320 onCharsToGlyphs to handle non-bmp on Mac.
CTFontGetGlyphsForCharacters is a strange API for non-bmp code points.

R=caryclark@google.com

Review URL: https://codereview.chromium.org/43463005

git-svn-id: http://skia.googlecode.com/svn/trunk@11965 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-25 17:49:08 +00:00
commit-bot@chromium.org
7edad87cdc Compute clipped src rect once in tiled bitmap draws
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/40403002

git-svn-id: http://skia.googlecode.com/svn/trunk@11962 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-25 14:58:12 +00:00
bungeman@google.com
fb1663a0a5 Fix non-bmp in generateCharToGlyph on Mac.
git-svn-id: http://skia.googlecode.com/svn/trunk@11957 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-24 22:32:43 +00:00
bungeman@google.com
172c363a68 Add missing braces for r11955.
git-svn-id: http://skia.googlecode.com/svn/trunk@11956 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-24 21:50:12 +00:00
bungeman@google.com
3c996f8a15 Implement charToGlyph on remaining ports.
R=reed@google.com

Review URL: https://codereview.chromium.org/22859070

git-svn-id: http://skia.googlecode.com/svn/trunk@11955 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-24 21:39:35 +00:00
bsalomon@google.com
af562b437e Tile large bitmaps that are clipped.
R=robertphillips@google.com

Review URL: https://codereview.chromium.org/31033002

git-svn-id: http://skia.googlecode.com/svn/trunk@11951 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-24 17:52:07 +00:00
commit-bot@chromium.org
50a3043194 We want to give SkPixelRef a way to signal over to GrResourceCache that it's become pointless to keep around textures based on that SkPixelRef when its pixels change, so that it can be a good citizen and free those textures.
This adds an invalidation listener mechanism to SkPixelRef to let it send this message while still staying ignorant of who's listening.

These messages are tricky to deliver.  The SkPixelRefs they originates from and the GrResourceCaches they ultimately end up at may be on different threads; neither class is threadsafe; their object lifetimes are totally independent; it's a many-senders-to-many-receivers relation; and neither codebase should really know about the other.

So I've added a per-message-type global message bus to broadcast messages to threadsafe inboxes.  Anyone can post() a message, which will show up in all the inboxes of that type, read whenever the inbox's owner calls poll().  The implementation is _dumb_; it can be improved in several dimensions (inbox size limits, lock-free message delivery) if we find the need.

I took some care to make sure not to send the invalidation message for any SkPixelRef that's sharing a generation ID with another SkPixelRef.

BUG=
R=bsalomon@google.com, scroggo@google.com, reed@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/26734003

git-svn-id: http://skia.googlecode.com/svn/trunk@11949 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-24 17:44:27 +00:00
senorblanco@chromium.org
34a849d00d Fix drawBitmap() of scratch texture.
R=bsalomon@google.com

Review URL: https://codereview.chromium.org/40163004

git-svn-id: http://skia.googlecode.com/svn/trunk@11947 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-24 15:59:31 +00:00
vandebo@chromium.org
ece95c32d5 [PDF] Add unpremultiply support and a GM (try5)
This is a resubmit of https://codereview.chromium.org/22831039 which was
reverted because it causes issues on Windows.

BUG=chromium:175548
R=edisonn@google.com

Review URL: https://codereview.chromium.org/37873003

git-svn-id: http://skia.googlecode.com/svn/trunk@11945 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-24 15:20:00 +00:00
commit-bot@chromium.org
c1cf5c0089 Borrow Android's ARMv6 memory barrier for SkOnce.
BUG=skia:1743
R=bungeman@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/34353009

git-svn-id: http://skia.googlecode.com/svn/trunk@11941 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-24 14:25:22 +00:00
robertphillips@google.com
0255a5d2fe Minor changes
https://codereview.chromium.org/39973004/



git-svn-id: http://skia.googlecode.com/svn/trunk@11940 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-24 14:03:01 +00:00
commit-bot@chromium.org
ccecbbb2ea Always create an instance when testing GrEffects for SkXfermode and SkArithmeticMode
Previously the TestCreate methods of the effects would create a static
instance and return that for all invocations. This is probably a
copy-paste error going back to initial TestCreate method in r8449. At
that time, the effect was always the same and thus static usage made
sense.

R=bsalomon@google.com, senorblanco@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/39393002

git-svn-id: http://skia.googlecode.com/svn/trunk@11939 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-24 13:33:32 +00:00
commit-bot@chromium.org
23267ceca2 Fix ModeColorFilterEffect assert during GLProgramsTest
Select random filter mode for the test-case until the mode is not
Dst. SkModeColorFilter with Dst mode will not create a
ModeColorFilterEffect, and thus the case is not implemented.

Also changes it so that each call to ModeColorFilterEffect::TestCreate
creates a new GrEffect. Previously only one static effect was ever
created, due to copy-paste error.

R=bsalomon@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/39403002

git-svn-id: http://skia.googlecode.com/svn/trunk@11938 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-24 13:29:38 +00:00
edisonn@google.com
83d8eda890 PDF: support perspective in simple shaders. (this version does not work well with tilling)
R=vandebo@chromium.org

Review URL: https://codereview.chromium.org/26389006

git-svn-id: http://skia.googlecode.com/svn/trunk@11937 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-24 13:19:28 +00:00
commit-bot@chromium.org
ac90d1d0b1 Replacing SkTDArray with SkAutoSTArray to reduce memory allocation overhead in SkTileGrid::search
BUG=https://code.google.com/p/skia/issues/detail?id=1735
R=tomhudson@chromium.org

Author: junov@chromium.org

Review URL: https://codereview.chromium.org/35633002

git-svn-id: http://skia.googlecode.com/svn/trunk@11936 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-24 11:24:38 +00:00
tomhudson@google.com
381010e550 Expose SkPicture::willPlayBackBitmaps()
This returns true if (1) the picture has finished recording and
(2) this picture or any picture drawn into it refers to any bitmaps. 
It allows clients doing complicated manipulations of the picture to 
early-out when there are no bitmaps present. 

BUG=303281
R=reed@google.com



git-svn-id: http://skia.googlecode.com/svn/trunk@11935 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-24 11:12:47 +00:00
skia.committer@gmail.com
583b18a209 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@11934 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-24 07:01:59 +00:00
commit-bot@chromium.org
bbfe4541ef Apply matrix early in draw bitmap
Committed: http://code.google.com/p/skia/source/detail?r=11930

Reverted: https://code.google.com/p/skia/source/detail?r=11932

R=robertphillips@google.com, senorblanco@chromium.org

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/30593003

git-svn-id: http://skia.googlecode.com/svn/trunk@11933 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-24 01:46:11 +00:00
scroggo@google.com
e9821871ec Revert "Apply matrix early in draw bitmap"
This reverts commit 4c446c8eb50b7a6e6f917fae7b4c4ffe5658a949.

Fix build.

git-svn-id: http://skia.googlecode.com/svn/trunk@11932 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-23 22:19:06 +00:00
vandebo@chromium.org
ccf6b91a54 Revert "[PDF] Add unpremultiply support and a GM (try4)"
This reverts commit r11928

gm seems to crash on windows.

Review URL: https://codereview.chromium.org/38153003

git-svn-id: http://skia.googlecode.com/svn/trunk@11931 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-23 21:36:43 +00:00
commit-bot@chromium.org
25e5a20e65 Apply matrix early in draw bitmap
R=robertphillips@google.com, senorblanco@chromium.org

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/30593003

git-svn-id: http://skia.googlecode.com/svn/trunk@11930 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-23 21:06:51 +00:00
vandebo@chromium.org
e66d376067 [PDF] Add unpremultiply support and a GM (try4)
This is a resubmit of https://codereview.chromium.org/22831039 which was
reverted because it causes issues on Windows (really, release builds).

BUG=chromium:175548
R=edisonn@google.com

Review URL: https://codereview.chromium.org/33493003

git-svn-id: http://skia.googlecode.com/svn/trunk@11928 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-23 20:17:29 +00:00
senorblanco@chromium.org
1a6382f5e7 Split up SkXfermode::asNewEffectOrCoeff() into asNewEffect(), asCoeff().
R=bsalomon@google.com

Review URL: https://codereview.chromium.org/37593002

git-svn-id: http://skia.googlecode.com/svn/trunk@11926 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-23 18:41:36 +00:00
commit-bot@chromium.org
d594dbec04 Follow up to serialization validation code
1 ) Added check for bool to make sure is it either 0 or 1 and not garbage

2 ) Added more solid kernel size checks in SkMatrixConvolutionImageFilter

3 ) Make sure array size is validated in SkMergeImageFilter

BUG=
R=reed@google.com, mtklein@google.com, senorblanco@google.com, senorblanco@chromium.org

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/23548034

git-svn-id: http://skia.googlecode.com/svn/trunk@11925 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-23 18:33:18 +00:00
commit-bot@chromium.org
c0b7e10c6a Initial error handling code
I made it as simple as possible. The impact seems minimal and it should do what's necessary to make this code secure.

BUG=

Committed: http://code.google.com/p/skia/source/detail?r=11247

R=reed@google.com, scroggo@google.com, djsollen@google.com, sugoi@google.com, bsalomon@google.com, mtklein@google.com, senorblanco@google.com, senorblanco@chromium.org

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/23021015

git-svn-id: http://skia.googlecode.com/svn/trunk@11922 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-23 17:06:21 +00:00
commit-bot@chromium.org
759befb72c use the supplied matrix instead of the texture w/h div for the bicubic GPU effect
BUG=
R=bsalomon@google.com, caryclark@google.com

Author: humper@google.com

Review URL: https://codereview.chromium.org/37003005

git-svn-id: http://skia.googlecode.com/svn/trunk@11921 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-23 16:18:50 +00:00
commit-bot@chromium.org
a8aef8bf04 Lighting filter uses input on raster path
BUG=
R=senorblanco@chromium.org

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/35703002

git-svn-id: http://skia.googlecode.com/svn/trunk@11918 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-23 15:33:44 +00:00
commit-bot@chromium.org
3f80dd5f01 Add support for reading non-rendertarget textures.
Also removes rendertarget flag from GrAtlas texture creation (no
longer needed) and re-enables GrFontCache::dump().

R=robertphillips@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/29263004

git-svn-id: http://skia.googlecode.com/svn/trunk@11917 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-23 15:32:39 +00:00
mtklein@google.com
338a66481e TSAN build fix: forgot to pass the address into ANNOTATE_BENIGN_RACE.
BUG=

Review URL: https://codereview.chromium.org/37403002

git-svn-id: http://skia.googlecode.com/svn/trunk@11916 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-23 15:24:27 +00:00
commit-bot@chromium.org
1f81fd6546 SK_ONCE for SkData and SkPathRef
Adds SK_ONCE_FRIEND, to allow SK_DEF_ONCE code to be friends with a class.  This had to go in include/core to be visible to headers there.

BUG=
R=reed@google.com, bungeman@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/26491003

git-svn-id: http://skia.googlecode.com/svn/trunk@11914 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-23 14:44:08 +00:00
senorblanco@chromium.org
fbcd415aa0 Remove GrContext from SkXfermode::[Aa]sNewEffectOrCoeff() and all subclasses,
since it's unused.

R=bsalomon@google.com

Review URL: https://codereview.chromium.org/31853003

git-svn-id: http://skia.googlecode.com/svn/trunk@11913 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-23 14:03:22 +00:00
commit-bot@chromium.org
a34995e18b Implement SkColorFilter as a GrGLEffect
Adds GrEffect::willUseInputColor() which indicates whether or not the
input color affects the output of the effect. This is needed for
certain Xfermodes, such as kSrc_Mode. For these modes the color filter
will not use the input color.

An effect with GrEffect::willUseInputColor() true will cause all color
or coverage effects before it to be discarded, as their computations
cannot affect the output. In these cases program is marked as having
white input color.

This fixes an assert when Skia is compiled in a mode that prefers
using uniforms instead of attributes for constants. (Flags
GR_GL_USE_NV_PATH_RENDERING or GR_GL_NO_CONSTANT_ATTRIBUTES). Using
attributes hides the problem where the fragment shader does not need
input color for color filters that ignore DST part of the filter. The
assert would be hit when uniform manager tries to bind an uniform which
has been optimized away by the shader compiler.

Adds specific GrGLSLExpr4 and GrGLSLExpr1 classes. This way the GLSL
expressions like "(v - src.a)" can remain somewhat readable in form of
"(v - src.a())". The GrGLSLExpr<typename> template implements the
generic functionality, GrGLSLExprX is the specialization that exposes
the type-safe interface to this functionality.

Also adds operators so that GLSL binary operators of the form
"(float * vecX)" can be expressed in C++. Before only the equivalent
"(vecX * float)" was possible. This reverts the common blending
calculations to more conventional order, such as "(1-a) * c" instead of
"c * (1-a)".

Changes GrGLSLExpr1::OnesStr from 1 to 1.0 in order to preserve the
color filter blending formula string the same (with the exception of
variable name change).

Shaders change in case of input color being needed:
 -   vec4 filteredColor;
 -   filteredColor = (((1.0 - uFilterColor.a) * output_Stage0) + uFilterColor);
 -   fsColorOut = filteredColor;
 +   vec4 output_Stage1;
 +   { // Stage 1: ModeColorFilterEffect
 +   output_Stage1 = (((1.0 - uFilterColor_Stage1.a) * output_Stage0) + uFilterColor_Stage1);
 +   }
 +   fsColorOut = output_Stage1;

Shaders change in case of input color being not needed:
 -uniform vec4 uFilterColor;
 -in vec4 vColor;
 +uniform vec4 uFilterColor_Stage0;
  out vec4 fsColorOut;
  void main() {
 -   vec4 filteredColor;
 -   filteredColor = uFilterColor;
 -   fsColorOut = filteredColor;
 +   vec4 output_Stage0;
 +   { // Stage 0: ModeColorFilterEffect
 +   output_Stage0 = uFilterColor_Stage0;
 +   }
 +   fsColorOut = output_Stage0;
  }

R=bsalomon@google.com, robertphillips@google.com, jvanverth@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/25023003

git-svn-id: http://skia.googlecode.com/svn/trunk@11912 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-23 05:42:03 +00:00
bsalomon@google.com
7ce564cccb Revert "If the path is a rect, call drawRect to raster the geometry in SkCanvas::drawPath to get better performance."
This reverts commit r11904

Review URL: https://codereview.chromium.org/35543002

git-svn-id: http://skia.googlecode.com/svn/trunk@11909 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-22 16:54:15 +00:00
reed@google.com
c294a97842 if fBitmap is still NULL, return false
git-svn-id: http://skia.googlecode.com/svn/trunk@11908 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-22 16:17:29 +00:00
bsalomon@google.com
ad254fee73 If the path is a rect, call drawRect to raster the geometry in SkCanvas::drawPath to get better performance.
Committed: http://code.google.com/p/skia/source/detail?r=11842

R=bsalomon@google.com

Review URL: https://codereview.chromium.org/23484007

git-svn-id: http://skia.googlecode.com/svn/trunk@11904 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-22 13:19:12 +00:00
skia.committer@gmail.com
db6fa1729a Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@11903 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-22 07:02:30 +00:00
robertphillips@google.com
dbbe1d437d Revert r11880 (Apply matrix early in draw bitmap - https://codereview.chromium.org/30593003) due to layout test failure
git-svn-id: http://skia.googlecode.com/svn/trunk@11899 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-21 21:30:49 +00:00
mtklein@google.com
4c2af74078 GrTHashCache -> GrTHashTable
The class is Table, but the file's Cache.  That's confusing.

BUG=
R=bsalomon@google.com

Review URL: https://codereview.chromium.org/32523004

git-svn-id: http://skia.googlecode.com/svn/trunk@11898 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-21 21:04:06 +00:00
scroggo@google.com
5ee18dd201 Image decoder fixes (mostly) around A8.
Opaquness:
When decoding Gray to A8 in libpng, set reallyHasAlpha to true
and add a comment why we do not check for the real answer.

Add comments in jpeg decoder explaining why A8 is not opaque.

Fix a bug where an A8 subset is considered to be opaque.

Other fixes:
In SkJPEGImageDecoder, only allocate as much memory as
needed for each source row, based on the input config.
Also pull out common code into a static function.

When performing the check for requiring unpremultiplied colors,
allow A8 to succeed, since that setting should have no effect on
A8.

Add the check for requiring unpremultiplied colors to subset
decoding.

Fix a bug where attempting to sample gray to A8 does not sample.

R=reed@google.com

Review URL: https://codereview.chromium.org/26210007

git-svn-id: http://skia.googlecode.com/svn/trunk@11897 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-21 20:47:31 +00:00
reed@google.com
114038a2e2 Revert "Revert "cache SkImage::Info calculation in lazypixelref""
This reverts commit 81eba32ab10f9210c742938819cf1218be5611c9.

ImageDecoder is changed to allow info to be NULL, since it is an output-only parameter.

R=scroggo@google.com

Review URL: https://codereview.chromium.org/33573002

git-svn-id: http://skia.googlecode.com/svn/trunk@11896 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-21 20:13:42 +00:00
reed@google.com
e986b221ee Revert "cache SkImage::Info calculation in lazypixelref"
This reverts commit a2537480710aa10b9ab9f8aec98538b79539f47e.

git-svn-id: http://skia.googlecode.com/svn/trunk@11894 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-21 19:45:38 +00:00
reed@google.com
2590a91b64 cache SkImage::Info calculation in lazypixelref
BUG=
R=scroggo@google.com

Review URL: https://codereview.chromium.org/28493003

git-svn-id: http://skia.googlecode.com/svn/trunk@11893 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-21 18:58:17 +00:00
robertphillips@google.com
950b1b079a Fix out of order destruction error
https://codereview.chromium.org/33203002/



git-svn-id: http://skia.googlecode.com/svn/trunk@11888 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-21 17:37:28 +00:00
commit-bot@chromium.org
8c294900f3 Add DPI stettings to SkDocument::CreatePDF(). Tests will be added in a future cl, once DPI will be used in SkPDFDevice
R=reed@google.com, bungeman@google.com, vandebo@chromium.org

Author: edisonn@google.com

Review URL: https://codereview.chromium.org/32233003

git-svn-id: http://skia.googlecode.com/svn/trunk@11886 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-21 17:14:37 +00:00
commit-bot@chromium.org
4b7d673089 More clang warning fixes.
Mostly unused functions and variables removed.

BUG=None
TEST=ninja -C out/Debug most
     ninja -C out/Release most

R=bsalomon@google.com, caryclark@google.com, robertphillips@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/27933002

git-svn-id: http://skia.googlecode.com/svn/trunk@11884 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-21 16:41:00 +00:00
commit-bot@chromium.org
f642f8cf90 Magnifier gpu path fix
The y axis was inverted for the offset, which should have been computed on the other side of the magnifying rectangle.

BUG=
R=bsalomon@google.com, senorblanco@google.com, senorblanco@chromium.org

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/28273005

git-svn-id: http://skia.googlecode.com/svn/trunk@11883 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-21 15:59:26 +00:00
commit-bot@chromium.org
8e919add40 Fix GrProgramsTest to not generate tests with too many TexCoord references
Make GrProgramsTest check how many texture coordinate sets are
available and select random effects up until the amount runs out.

Otherwise, following effect sequence would fail the shader compilation
when Skia is compiled with nv_path_rendering on (eg. when fixed
function codepath is used):
 * Stage 0: TextureDomain (1 texcoord)
 * Stage 1: Convolution (1 texcoord)
 * Stage 2: Bitmap Alpha Threshold (2 texcoords)
 * Stage 3: DisplacementMap (2 texcoords)
 * Stage 4: Config Conversion (1 texcoords)
 * Stage 5: Two-Point Conical Gradient (2 texcoords)

This would use more texture coordinate sets than 8, which is fairly
common amount currently.

R=bsalomon@google.com, cdalton@nvidia.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/32403002

git-svn-id: http://skia.googlecode.com/svn/trunk@11881 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-21 14:48:23 +00:00
commit-bot@chromium.org
15455b2a13 Apply matrix early in draw bitmap
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/30593003

git-svn-id: http://skia.googlecode.com/svn/trunk@11880 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-21 14:48:17 +00:00
reed@google.com
e7e29b7815 scope ComputeIsOpaque with SkBitmap
BUG=

Review URL: https://codereview.chromium.org/32653002

git-svn-id: http://skia.googlecode.com/svn/trunk@11879 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-21 14:31:20 +00:00
reed@google.com
9cd697c696 change ERROR label to BAD_CONFIG -- avoid windows complaint
BUG=

Review URL: https://codereview.chromium.org/32623002

git-svn-id: http://skia.googlecode.com/svn/trunk@11878 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-21 14:12:13 +00:00
reed@google.com
383a697692 store SkAlphaType inside SkBitmap, on road to support unpremul
BUG=
R=bsalomon@google.com, scroggo@google.com

Review URL: https://codereview.chromium.org/25275004

git-svn-id: http://skia.googlecode.com/svn/trunk@11877 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-21 14:00:07 +00:00
robertphillips@google.com
c2eae47954 Reverting revert of r11862 (Constify SkFlattenable::getFactory()) or reverting r11871.
git-svn-id: http://skia.googlecode.com/svn/trunk@11876 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-21 12:26:10 +00:00
senorblanco@chromium.org
2a4223c783 Fix for cropped matrix convolution for BottomLeft render targets.
R=bsalomon@google.com

Review URL: https://codereview.chromium.org/31083002

git-svn-id: http://skia.googlecode.com/svn/trunk@11872 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-20 20:21:19 +00:00
robertphillips@google.com
b5e391025e Reverted due to Chromium compilation failures. Please see:
https://codereview.chromium.org/30973002/



git-svn-id: http://skia.googlecode.com/svn/trunk@11871 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-20 13:34:21 +00:00
robertphillips@google.com
123671901a Fix cubic->quad RR corner regression
https://codereview.chromium.org/29673002/



git-svn-id: http://skia.googlecode.com/svn/trunk@11870 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-20 13:11:16 +00:00
vandebo@chromium.org
1c87672883 Revert "[PDF] Add unpremultiply support and a GM (try3)."
This is crashing in some configurations, can now repro.

This reverts commit 12add177d0ab7bbac97f5093c9382924d88bde8c.

Review URL: https://codereview.chromium.org/29903002

git-svn-id: http://skia.googlecode.com/svn/trunk@11868 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-18 21:04:51 +00:00
vandebo@chromium.org
59fd223870 [PDF] Add unpremultiply support and a GM (try3).
This is a resubmit of https://codereview.chromium.org/22831039 which was
reverted because it causes issues on Windows.

BUG=chromium:175548
R=edisonn@google.com

Review URL: https://codereview.chromium.org/29193003

git-svn-id: http://skia.googlecode.com/svn/trunk@11866 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-18 20:18:29 +00:00
vandebo@chromium.org
dc37e20647 Revert "PDF: support perspective in simple shaders. (this version does not work well with tilling)"
Accidentally committed the wrong git branch.

This reverts commit 76839c65670df8a863041a82a4b61502e78af043.

Review URL: https://codereview.chromium.org/29743002

git-svn-id: http://skia.googlecode.com/svn/trunk@11865 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-18 20:16:34 +00:00
vandebo@chromium.org
eb5992c6cc PDF: support perspective in simple shaders. (this version does not work well with tilling)
Review URL: https://codereview.chromium.org/26389006

git-svn-id: http://skia.googlecode.com/svn/trunk@11864 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-18 20:14:08 +00:00
senorblanco@chromium.org
7938bae14a Implement crop rect support for SkMatrixConvolutionImageFilter.
R=bsalomon@google.com

Review URL: https://codereview.chromium.org/27471002

git-svn-id: http://skia.googlecode.com/svn/trunk@11863 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-18 20:08:14 +00:00
commit-bot@chromium.org
575604d4c2 Constify SkFlattenable::getFactory().
This allows us to also constify the argument of
SkFlattenableWriteBuffer::writeFlattenable() - which I've recently found
myself const-casting for no apparent good reason.

R=bungeman@google.com, mtklein@google.com, reed@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/29143005

git-svn-id: http://skia.googlecode.com/svn/trunk@11862 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-18 19:37:55 +00:00
vandebo@chromium.org
ce60c1fc5d Revert "[PDF] Add unpremultiply support and a GM."
This reverts commit f746273b8ba282f548a6eaffb45b11b6f468aa8e.

Review URL: https://codereview.chromium.org/29343002

git-svn-id: http://skia.googlecode.com/svn/trunk@11858 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-18 16:10:03 +00:00
vandebo@chromium.org
c4d17716cd [PDF] Add unpremultiply support and a GM.
This is a resubmit of https://codereview.chromium.org/22831039 which was
reverted because it causes issues on Windows.

BUG=chromium:175548
R=edisonn@google.com

Review URL: https://codereview.chromium.org/27518003

git-svn-id: http://skia.googlecode.com/svn/trunk@11857 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-18 15:53:03 +00:00
commit-bot@chromium.org
6ee68583f8 SkThreadPool: allow for Runnables that add other Runnables to the pool.
There's a scenario that we're currently not allowing for, but I'd really like to use in DM:

1) client calls add(SomeRunnable*) several times
2) client calls wait()
3) any of the runnables added by the client _themselves_ call add(SomeOtherRunnable*)
4-inf) maybe those SomeOtherRunnables too call add(SomeCrazyThirdRunnable*), etc.

Right now in this scenario we'll assert in debug mode in step 3) when we call
add() and we're waiting to stop, and do strange unspecified things in release
mode.

The old threadpool had basically two states: running, and waiting to stop.  If
a thread saw we were waiting to stop and the queue was empty, that thread shut
down.  This wasn't accounting for any work that other threads might be doing;
potentially they were about to add to the queue.

So now we have three states: running, waiting, and halting.  When the client
calls wait() (or the destructor triggers), we move into waiting.  When a thread
notices we're _really_ done, that is, have an empty queue and there are no
active threads, we move into halting.  The halting state actually triggers the
threads to stop, which wait() is patiently join()ing on.

BUG=
R=bungeman@google.com, bsalomon@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/26389005

git-svn-id: http://skia.googlecode.com/svn/trunk@11852 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-18 14:19:19 +00:00
skia.committer@gmail.com
f84ad8f7fc Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@11850 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-18 07:01:59 +00:00
senorblanco@chromium.org
1aa68723b8 Make SkImageFilter::asNewEffect() (and all derived-class overrides) protected.
R=bsalomon@google.com, bsalomon

Review URL: https://codereview.chromium.org/26937006

git-svn-id: http://skia.googlecode.com/svn/trunk@11847 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-17 19:35:09 +00:00
robertphillips@google.com
32bbcf828d Add texture filtering override to debugger
https://codereview.chromium.org/27716003/



git-svn-id: http://skia.googlecode.com/svn/trunk@11846 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-17 17:56:10 +00:00
robertphillips@google.com
c2cc1dbe81 Revert r11842 (call drawRect to try GrAARectRenderer if the path is a rect - https://codereview.chromium.org/23484007) due to changes to the following GM images:
inverse_paths
pathopsinverse




git-svn-id: http://skia.googlecode.com/svn/trunk@11845 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-17 17:34:20 +00:00
commit-bot@chromium.org
4256d2494e Add support for GL_CHROMIUM_renderbuffer_format_BGRA8888
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/27525006

git-svn-id: http://skia.googlecode.com/svn/trunk@11844 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-17 16:29:41 +00:00
commit-bot@chromium.org
cd7992ba55 ARM Skia NEON patches - 30 - Xfermode: NEON modeprocs
Xfermode: NEON implementation of SIMD procs

This patch contains a NEON implementation for a number of Xfermodes.
It provides a big speedup on Xfermode benchmarks (currently up to 3x
with gcc4.7 but up to 10x when gcc produces optimal code for it).

Signed-off-by: Kévin PETIT <kevin.petit@arm.com>

BUG=

Committed: http://code.google.com/p/skia/source/detail?r=11777

Committed: http://code.google.com/p/skia/source/detail?r=11813

R=djsollen@google.com, mtklein@google.com, reed@google.com, robertphillips@google.com

Author: kevin.petit.arm@gmail.com

Review URL: https://codereview.chromium.org/26627004

git-svn-id: http://skia.googlecode.com/svn/trunk@11843 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-17 16:29:34 +00:00
commit-bot@chromium.org
521a46750d If the path is a rect, call drawRect to raster the geometry in SkCanvas::drawPath to get better performance.
R=bsalomon@google.com, robertphillips@google.com, reed@google.com

Author: yunchao.he@intel.com

Review URL: https://codereview.chromium.org/23484007

git-svn-id: http://skia.googlecode.com/svn/trunk@11842 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-17 16:29:21 +00:00
robertphillips@google.com
627f66283b Disable r11835 (Replace cubic round rect corners with quads) due to performance regression
git-svn-id: http://skia.googlecode.com/svn/trunk@11841 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-17 16:29:25 +00:00
robertphillips@google.com
1cc385b7a4 Replace cubic round rect corners with quads
https://codereview.chromium.org/26372006/



git-svn-id: http://skia.googlecode.com/svn/trunk@11835 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-17 12:17:27 +00:00
skia.committer@gmail.com
4677acc759 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@11834 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-17 07:02:33 +00:00
robertphillips@google.com
dfe0f43e11 Reverting r11813 (ARM Skia NEON patches - 30 - Xfermode: NEON modeprocs - https://codereview.chromium.org/26627004) due to Chromium compilation faliures.
git-svn-id: http://skia.googlecode.com/svn/trunk@11833 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-17 00:09:17 +00:00
sugoi@google.com
536dc83c58 Build fix fo windows only
Build fix

git-svn-id: http://skia.googlecode.com/svn/trunk@11828 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-16 19:34:27 +00:00
junov@google.com
0315ed8e5f Build fix for chromium shared component build
BUG=304265
TBR=reed@google.com

Review URL: https://codereview.chromium.org/27082003

git-svn-id: http://skia.googlecode.com/svn/trunk@11827 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-16 19:14:42 +00:00
reed@google.com
4cc18156c2 catch the other case where we need to see if fScaledBitmap.lockPixels() might have failed
2nd-half clone of https://codereview.chromium.org/26273006/

BUG=chromium:295895

Review URL: https://codereview.chromium.org/26973006

git-svn-id: http://skia.googlecode.com/svn/trunk@11825 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-16 19:13:29 +00:00
commit-bot@chromium.org
34150b451d Clear out SK_SCALAR_IS_FLOAT from SkRadialGradient, and merge the logic for radial_mirror and radial_repeat.
New radial/repeated bench is 10-20x faster now using float instead of fixed; the rest are unaffected.

BUG=
R=reed@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/26410003

git-svn-id: http://skia.googlecode.com/svn/trunk@11824 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-16 18:59:44 +00:00
edisonn@google.com
9cf0cb169b Implement perspective for bitmaps in pdf.
R=vandebo@chromium.org

Review URL: https://codereview.chromium.org/27236007

git-svn-id: http://skia.googlecode.com/svn/trunk@11822 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-16 18:32:35 +00:00
jvanverth@google.com
c7a40fad0b Split out GrBitmapTextContext from GrTextContext.
This is a stepping stone to having a variety of different text context types
(bitmaps, distance fields, NV path rendering).

R=bsalomon@google.com

Review URL: https://codereview.chromium.org/27199002

git-svn-id: http://skia.googlecode.com/svn/trunk@11820 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-16 18:15:34 +00:00
senorblanco@chromium.org
3f1f2a3a59 Make CropRect immutable after construction.
BUG=
R=reed@google.com

Review URL: https://codereview.chromium.org/27490005

git-svn-id: http://skia.googlecode.com/svn/trunk@11819 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-16 18:07:48 +00:00
robertphillips@google.com
3e7e992a8a Add display of filterLevel to debugger
https://codereview.chromium.org/27525002/



git-svn-id: http://skia.googlecode.com/svn/trunk@11818 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-16 17:53:18 +00:00
robertphillips@google.com
e9cd27d4a3 Third wave of Win64 warning cleanup
https://codereview.chromium.org/27487003/



git-svn-id: http://skia.googlecode.com/svn/trunk@11817 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-16 17:48:11 +00:00
reed@google.com
1ae6c2b012 check of fScaledBitmap failed to lock
BUG=

Review URL: https://codereview.chromium.org/27530003

git-svn-id: http://skia.googlecode.com/svn/trunk@11816 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-16 17:34:17 +00:00
commit-bot@chromium.org
b4c29c5363 ARM Skia NEON patches - 30 - Xfermode: NEON modeprocs
Xfermode: NEON implementation of SIMD procs

This patch contains a NEON implementation for a number of Xfermodes.
It provides a big speedup on Xfermode benchmarks (currently up to 3x
with gcc4.7 but up to 10x when gcc produces optimal code for it).

Signed-off-by: Kévin PETIT <kevin.petit@arm.com>

BUG=

Committed: http://code.google.com/p/skia/source/detail?r=11777

R=djsollen@google.com, mtklein@google.com, reed@google.com, robertphillips@google.com

Author: kevin.petit.arm@gmail.com

Review URL: https://codereview.chromium.org/26627004

git-svn-id: http://skia.googlecode.com/svn/trunk@11813 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-16 16:24:08 +00:00
senorblanco@chromium.org
8b66abb9bc Remove support for SK_CROP_RECT_IS_INT, now that it is no longer used in Blink or Chrome.
BUG=
R=reed@google.com, reed

Review URL: https://codereview.chromium.org/27521002

git-svn-id: http://skia.googlecode.com/svn/trunk@11812 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-16 15:46:00 +00:00
commit-bot@chromium.org
fe070ba6d8 Make sure attribute indexes are correct after restoring vertex attributes
Fix an assert due to
GrDrawState::CommonState::fFixedFunctionVertexAttribIndices getting
out of sync.  The assertion in GrDrawState::CommonState::operator==
would fire after using AutoVertexAttribRestore.
AutoVertexAttribRestore would change GrDrawState::fCommon.fVAPtr and
fVACount without updating
GrDrawState::fCommon.fFixedFunctionVertexAttribIndices.

R=jvanverth@google.com, bsalomon@google.com, robertphillips@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/26922004

git-svn-id: http://skia.googlecode.com/svn/trunk@11807 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-16 14:43:12 +00:00
commit-bot@chromium.org
6397217b30 detach blur result texture when it is the same texture used to render path mask
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/26968006

git-svn-id: http://skia.googlecode.com/svn/trunk@11805 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-16 13:53:54 +00:00
reed@google.com
353482251e force readbuffer clients to use specialized readFoo for flattenables
BUG=
R=mtklein@google.com

Review URL: https://codereview.chromium.org/26702002

git-svn-id: http://skia.googlecode.com/svn/trunk@11803 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-16 13:05:06 +00:00
skia.committer@gmail.com
472629190e Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@11800 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-16 07:02:24 +00:00
robertphillips@google.com
f8dd38424c Reverting r11777 (ARM Skia NEON patches - 30 - Xfermode: NEON modeprocs) due to Chromium compilation failure
git-svn-id: http://skia.googlecode.com/svn/trunk@11799 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-16 01:12:38 +00:00
commit-bot@chromium.org
607b3a93e0 Guard colorNames variable under SK_SUPPORT_UNITTEST.
That way clang does not complain with unneeded-internal-declaration warning,
because otherwise to clang this variable is unused and thus it won't
emit code for it.

The warning is:
../../src/utils/SkParseColor.cpp:35:3: error: variable 'colorNames' is not needed and will not be emitted [-Werror,-Wunneeded-internal-declaration]
} colorNames[] = {

R=bsalomon@google.com, robertphillips@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/27229004

git-svn-id: http://skia.googlecode.com/svn/trunk@11798 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-15 23:01:08 +00:00
commit-bot@chromium.org
2f92966c6a Remove SkDataTable from SkFlattenable hierarchy.
As far as I can tell, we never really needed this.  No code outside the unit
test calls this code.

BUG=
R=reed@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/26223009

git-svn-id: http://skia.googlecode.com/svn/trunk@11792 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-15 20:39:57 +00:00
commit-bot@chromium.org
e0e1da34f3 Remove SkColorTable from SkFlattenable hierarchy.
BUG=
R=reed@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/27392002

git-svn-id: http://skia.googlecode.com/svn/trunk@11791 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-15 20:36:16 +00:00
reed@google.com
23d0ab7241 return false if we can't scale, to force us to try to lock the original and then proceed
BUG=
R=wangxianzhu@chromium.org

Review URL: https://codereview.chromium.org/27382002

git-svn-id: http://skia.googlecode.com/svn/trunk@11789 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-15 20:14:00 +00:00
commit-bot@chromium.org
db62709fc1 Turn clear-to-white-then-intersect clips into clear-to-black-then-replace
R=robertphillips@google.com, brian@thesalomons.net

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/27170003

git-svn-id: http://skia.googlecode.com/svn/trunk@11786 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-15 20:04:07 +00:00
senorblanco@chromium.org
01bdf3c568 Add crop rect support for SkDisplacementMapEffect (raster and GPU paths).
Covered by new test cases added to displacement GM (will require rebaseline).

R=bsalomon@google.com

Review URL: https://codereview.chromium.org/26531002

git-svn-id: http://skia.googlecode.com/svn/trunk@11782 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-15 19:02:43 +00:00
bungeman@google.com
b8aa4ddb2d Fix off by one error in last advanceCount in SkFontHost_FreeType.
R=robertphillips@google.com

Review URL: https://codereview.chromium.org/27338003

git-svn-id: http://skia.googlecode.com/svn/trunk@11781 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-15 18:50:00 +00:00
robertphillips@google.com
8b169311b5 Second wave of Win64 warning cleanup
https://codereview.chromium.org/27343002/



git-svn-id: http://skia.googlecode.com/svn/trunk@11778 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-15 17:47:36 +00:00
commit-bot@chromium.org
baa15581f6 ARM Skia NEON patches - 30 - Xfermode: NEON modeprocs
Xfermode: NEON implementation of SIMD procs

This patch contains a NEON implementation for a number of Xfermodes.
It provides a big speedup on Xfermode benchmarks (currently up to 3x
with gcc4.7 but up to 10x when gcc produces optimal code for it).

Signed-off-by: Kévin PETIT <kevin.petit@arm.com>

BUG=
R=djsollen@google.com, mtklein@google.com, reed@google.com

Author: kevin.petit.arm@gmail.com

Review URL: https://codereview.chromium.org/26627004

git-svn-id: http://skia.googlecode.com/svn/trunk@11777 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-15 16:18:40 +00:00
reed@google.com
b58ba8912a account for inverse-paths when we prealloc storage in the rgn-builder
test inversepath->rgn

BUG=
R=caryclark@google.com

Review URL: https://codereview.chromium.org/27222005

git-svn-id: http://skia.googlecode.com/svn/trunk@11776 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-15 15:44:35 +00:00
senorblanco@chromium.org
33e88b7b93 SkRectShaderImageFilter: add a new factory method which takes a CropRect.
This will become the preferred API, and the old Create method will be deprecated.

R=reed@google.com, reed
BUG=

Review URL: https://codereview.chromium.org/26220004

git-svn-id: http://skia.googlecode.com/svn/trunk@11773 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-15 15:25:18 +00:00
commit-bot@chromium.org
0d0bb83c05 remove clipstack/region bounds assertion
BUG=skia_1720
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/26237010

git-svn-id: http://skia.googlecode.com/svn/trunk@11772 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-15 15:14:43 +00:00
bsalomon@google.com
8aaac8da36 Fix build break in assert
git-svn-id: http://skia.googlecode.com/svn/trunk@11771 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-15 14:35:06 +00:00
commit-bot@chromium.org
6b7938f9cb separate state for msaa renderability
R=robertphillips@google.com, brian@thesalomons.net

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/26695005

git-svn-id: http://skia.googlecode.com/svn/trunk@11770 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-15 14:18:16 +00:00
skia.committer@gmail.com
fbc58a3055 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@11769 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-15 07:02:27 +00:00
robertphillips@google.com
adacc7067a Start cleaning up 64bit Win warnings
https://codereview.chromium.org/27192003/



git-svn-id: http://skia.googlecode.com/svn/trunk@11764 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-14 21:53:24 +00:00
halcanary@google.com
04b57f87ab Runtime configuration setting for suppressing JPEG decoder errors.
Add new runtime config variable, images.jpeg.suppressDecoderErrors
which defaults to false in Debug and true otherwise.  When Jpeg errors
are suppressed and an error happens, SkJPEGImageDecoder::onDecode()
will return silently false (Consequently, so will SkImageDecoder's
DecodeFile() and DecodeMemory() functions).

Also, the test_image_decoder program now respects runtime
configuration settings.

BUG=skia:1680
R=scroggo@google.com

Review URL: https://codereview.chromium.org/27230002

git-svn-id: http://skia.googlecode.com/svn/trunk@11763 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-14 20:08:48 +00:00
reed@google.com
0cd2ac6c72 change SkAnnotation to not inherit from SkFlattenable (does not need dynamic factories)
BUG=
R=scroggo@google.com

Review URL: https://codereview.chromium.org/26606004

git-svn-id: http://skia.googlecode.com/svn/trunk@11762 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-14 20:02:44 +00:00
commit-bot@chromium.org
ea476e1725 swizzle color table if necessary
R=reed@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/27224003

git-svn-id: http://skia.googlecode.com/svn/trunk@11761 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-14 18:29:23 +00:00
reed@google.com
4979f32cd3 remove SkDataSet, and just store a key/value in SkAnnotation
BUG=
R=mtklein@google.com

Review URL: https://codereview.chromium.org/27208002

git-svn-id: http://skia.googlecode.com/svn/trunk@11759 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-14 16:49:15 +00:00
commit-bot@chromium.org
790c3f4e09 Remove need for readFlattenableT from SkLightingImageFilter.
This will need new picture version.

BUG=
R=reed@android.com, sugoi@google.com, senorblanco@chromium.org, reed@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/26594008

git-svn-id: http://skia.googlecode.com/svn/trunk@11758 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-14 16:28:56 +00:00
commit-bot@chromium.org
7388051d74 Move renderable config list to GrDrawTargetCaps
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/26342006

git-svn-id: http://skia.googlecode.com/svn/trunk@11756 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-14 15:33:45 +00:00
reed@google.com
da30055b29 SkData need not be a Flattenable, since it does not need subclass/factories
BUG=
R=mtklein@google.com

Review URL: https://codereview.chromium.org/26928002

git-svn-id: http://skia.googlecode.com/svn/trunk@11754 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-14 14:33:11 +00:00
commit-bot@chromium.org
5e00989a28 Add SkPDFDeviceFlatenner which extends SkPDFDevice to add support to flatten the path and the text when we have perspective.
prepare to deprecate SkPDFDevice constructor, and route gm and render_pdfs to use SkDocument::Create pdf interface instead. - controlled by a flag
add comments where we are supposed to flatten other features (paint, shaders, ... )

R=reed@google.com, bungeman@google.com, scroggo@google.com, vandebo@chromium.org, bsalomon@google.com

Author: edisonn@google.com

Review URL: https://codereview.chromium.org/24811002

git-svn-id: http://skia.googlecode.com/svn/trunk@11751 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-14 13:42:12 +00:00
commit-bot@chromium.org
1108fc3058 Remove SkLumaXfermode.
Possibly the shortest-lived Skia feature, SkLumaXfermode is now replaced
by a color filter implementation (SkLumaColorFilter). All known existing
clients (Blink) have been converted.

R=reed@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/26916002

git-svn-id: http://skia.googlecode.com/svn/trunk@11750 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-14 13:11:11 +00:00
halcanary@google.com
2a10318814 Simplify code for configuring suppression of ImageDecoder warnings
For images.png.suppressDecoderWarnings and
images.jpeg.suppressDecoderWarnings, the default behavior is now:

	Debug - DON'T suppress
	Developer Release - suppress
	Release - suppress

This behavior can be changed in Debug and in Developer through
the SkRTConf mechanism.

BUG=skia:1680
R=caryclark@google.com

Review URL: https://codereview.chromium.org/26863003

git-svn-id: http://skia.googlecode.com/svn/trunk@11749 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-14 12:49:15 +00:00
bungeman@google.com
18252fe126 Add stdio include to SkFonrConfigParser_android.
git-svn-id: http://skia.googlecode.com/svn/trunk@11745 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-11 20:13:41 +00:00
bungeman@google.com
85302969fc Try to work around VS2010 intsafe/stdint multiple define issues.
git-svn-id: http://skia.googlecode.com/svn/trunk@11744 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-11 20:04:08 +00:00
bungeman@google.com
72e8324f0e Add stdio include to SkDebug_android.
git-svn-id: http://skia.googlecode.com/svn/trunk@11743 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-11 19:47:36 +00:00
bungeman@google.com
2c8e9d40a4 Add stdio include for Android specific code in SkRegion.
git-svn-id: http://skia.googlecode.com/svn/trunk@11741 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-11 19:23:56 +00:00
bungeman@google.com
3dc82c4470 Correct 32bit pointer assumption in assert in SkMatrix.
git-svn-id: http://skia.googlecode.com/svn/trunk@11739 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-11 19:11:10 +00:00
bungeman@google.com
fab44db294 Clean up SkTypes.h.
This change removes sk_stdint.h since it is only needed for vs2008 and earlier.
This change removes SK_MMAP_SUPPORT define since it is no longer used.
This change removes the stdio.h include from SkTypes.h since on many systems
this is a very large header, few Skia files actually use it, it is
available everywhere standard, and SkDebugf should be used instead.

After this change there is no need for external users to put Skia's
include/config into their own list of includes, saving the headache
of having two header files of the same name and sometimes getting the
wrong one depending on include order.

R=bsalomon@google.com, djsollen@google.com

Review URL: https://codereview.chromium.org/27044002

git-svn-id: http://skia.googlecode.com/svn/trunk@11738 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-11 18:50:45 +00:00
halcanary@google.com
29d4e63864 GIF decode: optional error messages and fault tolerance.
Add new runtime configuration variable,
images.gif.suppressDecoderWarnings, which suppresses warning and
errors from the GIF library.  It defaults to "true", which is current
behavior.

(This setting can be changed by setting the environment variable
skia_images_gif_suppressDecoderWarnings="false".)

Some conditions which were errors before are now warnings:

-   If the image width or height is greater than the GIF screen width or
    height (respectively) we expand the screen to hold the image.

-   If the offset of the image inside the screen would place the
    image outside of the screen, we shift the image to fix this.

-   If the image lacks a color table, we create a default color table.

-   If the image is truncated, then the rest of the image is filled with
    the fill color.

In all four cases, if images.gif.suppressDecoderWarnings is set to
false, then a warning message is printed via SkDebugf.

In the event of another kind of error, SkGIFImageDecoder::onDecode()
will still return false.  But with this change, if
images.gif.suppressDecoderWarnings is set to false, a description of
the error is printed via SkDebugf.

Also, added a new unit test GifTest, which tests the deconing of both
good GIf files and corrupted files that should now work with this
change.  This unit test is disabled on Win32, iOS, and Mac.

BUG=skia:1689
R=scroggo@google.com

Review URL: https://codereview.chromium.org/26743002

git-svn-id: http://skia.googlecode.com/svn/trunk@11734 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-11 18:21:56 +00:00
senorblanco@chromium.org
5e85300729 SkRectShaderImageFilter: add a workaround for the zero-sized rects currently passed by Blink.
BUG=306488
R=robertphillips@google.com, robertphillips

Review URL: https://codereview.chromium.org/26799004

git-svn-id: http://skia.googlecode.com/svn/trunk@11733 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-11 17:57:47 +00:00
senorblanco@chromium.org
e9d61ed8c4 Use #if insteadof #ifdef DYNAMIC_ANNOTATIONS_ENABLED. It's always defined, just to 0 or 1.
BUG=
R=mtklein

Review URL: https://codereview.chromium.org/26358010

git-svn-id: http://skia.googlecode.com/svn/trunk@11731 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-11 16:45:50 +00:00
robertphillips@google.com
1f1b4aa06a Fix double ref issue in SkPDFFont ctor
https://codereview.chromium.org/26799003/



git-svn-id: http://skia.googlecode.com/svn/trunk@11724 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-11 14:27:16 +00:00
commit-bot@chromium.org
21a705d2eb SK_ONCE for SkMatrix::I()
Going to start doing these in progressively larger and larger bulk,
but I figured the first few changes probably merit caution.

BUG=
R=reed@google.com, bungeman@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/26905002

git-svn-id: http://skia.googlecode.com/svn/trunk@11721 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-10 21:58:31 +00:00
senorblanco@chromium.org
e258eb34a8 Implement crop rect support for SkRectShaderImageFilter: remove fRect and use the cropRect from SkImageFilter in its place.
R=reed@google.com

Review URL: https://codereview.chromium.org/26009004

git-svn-id: http://skia.googlecode.com/svn/trunk@11720 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-10 21:36:48 +00:00
commit-bot@chromium.org
d494b09f55 Align SkLumaColorFilter with the spec.
The spec requires the resulting RGB channels for LuminanceToAlpha to be
0 (and not just scaled by the luminance value</facepalm>):

  | R' |     |      0        0        0  0  0 |   | R |
  | G' |     |      0        0        0  0  0 |   | G |
  | B' |  =  |      0        0        0  0  0 | * | B |
  | A' |     | 0.2125   0.7154   0.0721  0  0 |   | A |
  | 1  |     |      0        0        0  0  1 |   | 1 |

(http://www.w3.org/TR/2011/REC-SVG11-20110816/filters.html#feColorMatrixElement)

This doesn't affect luminance masking (which depends only on the
resulting alpha channel), but other color filter users may care
about all color components.

R=bsalomon@google.com, reed@google.com, robertphillips@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/26467003

git-svn-id: http://skia.googlecode.com/svn/trunk@11713 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-10 20:13:51 +00:00
commit-bot@chromium.org
a7538baeae SkThreadPool: tweak two little things that have been annoying me
1) it's pretty annoying that SkThreadPool doesn't include SkRunnable for us;
 2) add wait() so we don't have to keep using SkAutoTDelete/free() to wait for completion.

BUG=
R=scroggo@google.com, reed@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/26470005

git-svn-id: http://skia.googlecode.com/svn/trunk@11711 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-10 18:49:04 +00:00
reed@google.com
fb6deed66c make explicit the requirement that all colorfilters are reentrant-safe
BUG=
R=mtklein@google.com

Review URL: https://codereview.chromium.org/26876002

git-svn-id: http://skia.googlecode.com/svn/trunk@11705 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-10 17:35:58 +00:00
robertphillips@google.com
0197b32bfb Always clear dest in SkBitmap::copyTo's draw path
https://codereview.chromium.org/26268003/



git-svn-id: http://skia.googlecode.com/svn/trunk@11697 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-10 15:48:16 +00:00
reed@google.com
0a6151d66c Revert "Revert "change SkColorTable to be immutable""
This reverts commit b8162cb840f4cb6002ef68d5ac775c6a122c52a9.

Fixed was call-sites in benches that used the (now gone) setIsOpaque api.

R=scroggo@google.com

Review URL: https://codereview.chromium.org/26572006

git-svn-id: http://skia.googlecode.com/svn/trunk@11695 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-10 14:44:56 +00:00
senorblanco@chromium.org
b295fb6ff3 Change SkImageFilter's cropRect from SkIRect to a CropRect struct, containing an SkRect and flags indicating which parameters are set.
NOTE: this will require SK_CROP_RECT_IS_INT=1 to be set in Chrome until Blink has been updated to use SkImageFilter::CropRect. Include https://codereview.chromium.org/26528002/ with the Skia roll.

Note also that SK_CROP_RECT_IS_INT is a temporary measure until all call sites in Blink have been updated to use SkRect.

R=reed@google.com

Review URL: https://codereview.chromium.org/26371002

git-svn-id: http://skia.googlecode.com/svn/trunk@11692 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-10 13:51:19 +00:00
skia.committer@gmail.com
f29c380289 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@11691 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-10 07:01:40 +00:00
commit-bot@chromium.org
824c346b6e Express (GLSL expression, possibly known value) pairs as a class
Express (GLSL expression, possibly known value) pairs as a class
instead of two variables Introduces GrGLSLExpr<N> to encapsulate
the expression and possibly constant-folded value of the expression.

This simplifies passing of the expressions to functions.

Changes the shaders with following patterns:
        { // Stage 0: Linear Gradient
        vec4 colorTemp = mix(uGradientStartColor_Stage0, uGradientEndColor_Stage0, clamp(vMatrixCoord_Stage0.x, 0.0, 1
        colorTemp.rgb *= colorTemp.a;
-       output_Stage0 = vec4((vColor) * (colorTemp));
+       output_Stage0 = (vColor * colorTemp);
+       }

Previously the vector cast was always added if constant folding was
effective, regardless of the term dimensions. Now the vector upcast is
not inserted in places where it is not needed, ie. when the binary
operator term is of the target dimension.

Also, some parentheses can be omitted. It is assumed that
GrGLSLExpr<N>("string") constructors construct a simple expression or
parenthesized expression.

Otherwise the shader code remains identical.

R=jvanverth@google.com, bsalomon@google.com, robertphillips@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/25048002

git-svn-id: http://skia.googlecode.com/svn/trunk@11690 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-10 06:30:18 +00:00
commit-bot@chromium.org
b5a6651f9f SkDocument api changes (abort, close return success, set DCT encoder...).
R=reed@google.com, reed

Author: edisonn@google.com

Review URL: https://codereview.chromium.org/26744002

git-svn-id: http://skia.googlecode.com/svn/trunk@11688 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-09 21:09:00 +00:00
commit-bot@chromium.org
1303761a89 Remove _impl from names in SkOnce.h.
This is entirely to make power users (me, Mike's per-object use case) feel less
bad about calling sk_once() directly with args not created by DEF_SK_ONCE.

BUG=
R=bungeman@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/26129010

git-svn-id: http://skia.googlecode.com/svn/trunk@11686 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-09 20:08:20 +00:00
commit-bot@chromium.org
235002fb12 low hanging calloc fruit
BUG=
R=reed@google.com, robertphillips@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/24267014

git-svn-id: http://skia.googlecode.com/svn/trunk@11683 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-09 18:39:59 +00:00
djsollen@google.com
c9542ca3d0 Add swapBuffer call to SkGLContextHelper.
R=bsalomon@google.com

Review URL: https://codereview.chromium.org/26701002

git-svn-id: http://skia.googlecode.com/svn/trunk@11682 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-09 18:25:38 +00:00
reed@google.com
48d9ff5b34 Revert "change SkColorTable to be immutable"
This reverts commit 1c0ff422868b3badf5ffe0790a5d051d1896e2f7.

BUG=

Review URL: https://codereview.chromium.org/26709002

git-svn-id: http://skia.googlecode.com/svn/trunk@11677 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-09 16:49:45 +00:00
reed@google.com
9864c24e40 change SkColorTable to be immutable
BUG=
R=scroggo@google.com

Review URL: https://codereview.chromium.org/25353002

git-svn-id: http://skia.googlecode.com/svn/trunk@11676 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-09 16:34:47 +00:00
mtklein@google.com
3a19fb58a6 Sketch of SK_ONCE
BUG=
R=bungeman@google.com

Review URL: https://codereview.chromium.org/26563002

git-svn-id: http://skia.googlecode.com/svn/trunk@11674 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-09 16:12:23 +00:00
commit-bot@chromium.org
32184d8162 Implement stroking a path with nv_path_rendering
Initialize the path stroke properties in the GrGLPath constructor.
Use StencilStrokePath and CoverStrokePath to stroke the path.

The order of the GL calls is:
1. StencilFill, if needed
2. StencilStroke, if needed
2a. CoverStroke, if stroke was applied
2b. CoverFill, if stroke was not applied

The reason for not pairing StencilFill + CoverFill, StencilStroke +
CoverStroke is that Skia API does not allow separate fill and stroke
color within one call. Covering the stroke bounding box should also
cover the fill bounding box.

Causes different rendering in gm/dashcubics due to different rendering
algorithm. (?) (TODO: this should be resolved somehow.)

R=bsalomon@google.com, markkilgard@gmail.com, cdalton@nvidia.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/23440049

git-svn-id: http://skia.googlecode.com/svn/trunk@11672 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-09 15:14:18 +00:00
commit-bot@chromium.org
aadb4d9a53 flush after every print in windows
R=djsollen@google.com, reed@google.com, epoger@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/26680004

git-svn-id: http://skia.googlecode.com/svn/trunk@11670 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-09 15:09:42 +00:00
commit-bot@chromium.org
df187c7eb2 ARM Skia NEON patches - 28 - Xfermode: SIMD modeprocs
Xfermode: allow for SIMD modeprocs

    This patch introduces the ability to have SIMD Xfermode modeprocs.
    In the NEON implementation, SIMD modeprocs will process 8 pixels
    at a time.

    Signed-off-by: Kévin PETIT <kevin.petit@arm.com>

BUG=

Committed: http://code.google.com/p/skia/source/detail?r=11654

R=djsollen@google.com, mtklein@google.com, reed@google.com

Author: kevin.petit.arm@gmail.com

Review URL: https://codereview.chromium.org/23644006

git-svn-id: http://skia.googlecode.com/svn/trunk@11669 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-09 14:39:46 +00:00
commit-bot@chromium.org
c4dc0ad8e2 Implement filling a path with nv_path_rendering cover
Implement filling a path with nv_path_rendering cover functionality.

The nv_path_rendering cover can be used if the fill is non-inverted
and the draw operation does not require use of vertex shaders.

Moves code for the inverted fill from GrStencilAndCoverPathRenderer
down to GrGpuGL.

R=bsalomon@google.com, markkilgard@gmail.com, cdalton@nvidia.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/22686002

git-svn-id: http://skia.googlecode.com/svn/trunk@11667 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-09 14:11:33 +00:00
reed@google.com
12eb7811e3 try uping the cache-count-limit to see if it speeds up bench-pictures
BUG=

Review URL: https://codereview.chromium.org/25118003

git-svn-id: http://skia.googlecode.com/svn/trunk@11663 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-09 12:45:51 +00:00
bungeman@google.com
27f74aab32 Improve SkScalerContext_GDI::generateCharToGlyph for non-BMP code points.
Sometimes, when ScriptShape is presented with a surrogate pair which does
not map to a glyph, it returns two space glyphs instead of .notdef (0).
Detect this class of issues and handle appropriately.



git-svn-id: http://skia.googlecode.com/svn/trunk@11660 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-08 21:32:15 +00:00
commit-bot@chromium.org
dac4a1d518 Allow sampling GIF images during decode.
SkScaledBitmapSampler:
Add a mode for sampling rows out of order, used by GIF decoder for
interlaced images.
Add a getter for the X sampling rate.

SkImageDecoder_libgif:
Respect the sampleSize set on SkImageDecoder.

skimage_main:
Provide an option to set a sample size.

BUG=https://b.corp.google.com/issue?id=8999690
R=reed@google.com, djsollen@google.com, halcanary@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/25354004

git-svn-id: http://skia.googlecode.com/svn/trunk@11659 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-08 19:40:18 +00:00
robertphillips@google.com
c0de5d6b5f Fix uninitialized memory access
https://codereview.chromium.org/26529002/



git-svn-id: http://skia.googlecode.com/svn/trunk@11658 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-08 19:15:58 +00:00
djsollen@google.com
6f980c6a23 Revert "ARM Skia NEON patches - 28 - Xfermode: SIMD modeprocs"
This reverts http://code.google.com/p/skia/source/detail?r=11654

Review URL: https://codereview.chromium.org/26340010

git-svn-id: http://skia.googlecode.com/svn/trunk@11655 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-08 16:59:53 +00:00
commit-bot@chromium.org
84cc1ebc5a ARM Skia NEON patches - 28 - Xfermode: SIMD modeprocs
Xfermode: allow for SIMD modeprocs

    This patch introduces the ability to have SIMD Xfermode modeprocs.
    In the NEON implementation, SIMD modeprocs will process 8 pixels
    at a time.

    Signed-off-by: Kévin PETIT <kevin.petit@arm.com>

BUG=
R=djsollen@google.com, mtklein@google.com, reed@google.com

Author: kevin.petit.arm@gmail.com

Review URL: https://codereview.chromium.org/23644006

git-svn-id: http://skia.googlecode.com/svn/trunk@11654 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-08 16:47:22 +00:00
commit-bot@chromium.org
80f3fcd255 Update #if to #ifdef for consistency
R=mtklein@google.com

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/26495002

git-svn-id: http://skia.googlecode.com/svn/trunk@11653 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-08 16:24:07 +00:00
robertphillips@google.com
25ae5eef33 Fix memory leak in SkPDFRasterizer
https://codereview.chromium.org/26373005/



git-svn-id: http://skia.googlecode.com/svn/trunk@11652 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-08 15:40:49 +00:00
commit-bot@chromium.org
c0445fec19 Fix ambiguity in API if no matching system language is found
R=reed@google.com, wangxianzhu@chromium.org

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/26325003

git-svn-id: http://skia.googlecode.com/svn/trunk@11641 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-07 19:49:13 +00:00
commit-bot@chromium.org
49e80830e9 Fix for blinking/corrupted text in Canvas 2D.
Ensure that we update the drawToken for a glyph's plot every time it is
used, not just when the glyph is first added.

BUG=303803
R=junov@chromium.org, bsalomon@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/26253003

git-svn-id: http://skia.googlecode.com/svn/trunk@11637 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-07 18:20:27 +00:00
commit-bot@chromium.org
6c1ee2d4e7 Luminance-to-alpha color filter (SkLumaColorFilter).
Adding a color filter luma implementation. The plan is to convert
existing clients and then deprecate SkLumaXfermode.

R=bsalomon@google.com, reed@google.com, robertphillips@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/25453004

git-svn-id: http://skia.googlecode.com/svn/trunk@11636 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-07 18:00:17 +00:00
commit-bot@chromium.org
dd6cde5235 style nit for myself retroactively: throwOnFailure -> throw_on_failure
BUG=
R=reed@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/26298002

git-svn-id: http://skia.googlecode.com/svn/trunk@11635 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-07 17:59:04 +00:00
commit-bot@chromium.org
d532172646 Make skia almost compile again with clang.
clang is reporting many unused functions and variables.

R=bsalomon@google.com, robertphillips@google.com, reed@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/26167002

git-svn-id: http://skia.googlecode.com/svn/trunk@11630 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-07 15:52:15 +00:00
edisonn@google.com
a9ebd161a7 pdf: drawPath should pass the computed matrix, instead of default matrix stored in draw.
moved cl https://codereview.chromium.org/24265006/ in git repository so I can run the trybots

R=vandebo@chromium.org

Review URL: https://codereview.chromium.org/25675011

git-svn-id: http://skia.googlecode.com/svn/trunk@11626 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-07 13:22:21 +00:00
commit-bot@chromium.org
722555bebb Add perspective support to SkMatrix44 initializers.
I noticed SkMatrix <-> SkMatrix44 conversions were dropping the
perspective values on the floor.  As we use SkMatrix44 heavily in
Chromium, I'm concerned this missing code will cause a bug eventually.
It should be correct to simply use the bottom row of the 4x4 matrix
excluding the third column.

Previously committed and reverted, second attempt with fix for
incorrect use of SkMScalar/SkScalar.

BUG=
R=reed@google.com, caryclark@google.com

Author: aelias@chromium.org

Review URL: https://codereview.chromium.org/25484006

git-svn-id: http://skia.googlecode.com/svn/trunk@11624 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-05 01:16:30 +00:00
aelias@chromium.org
851af07b11 Revert "Add perspective support to SkMatrix44 initializers."
This reverts commit 93db1bcae0863feed8d00a61ae2cf72a90a0083c.

git-svn-id: http://skia.googlecode.com/svn/trunk@11623 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-04 22:26:28 +00:00
commit-bot@chromium.org
761f860a42 Add perspective support to SkMatrix44 initializers.
I noticed SkMatrix <-> SkMatrix44 conversions were dropping the
perspective values on the floor.  As we use SkMatrix44 heavily in
Chromium, I'm concerned this missing code will cause a bug eventually.
It should be correct to simply use the bottom row of the 4x4 matrix
excluding the third column.

BUG=
R=reed@google.com

Author: aelias@chromium.org

Review URL: https://codereview.chromium.org/25484006

git-svn-id: http://skia.googlecode.com/svn/trunk@11622 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-04 20:38:08 +00:00
commit-bot@chromium.org
6b30e45740 Use vertexless shaders when NVpr is available
Adds support for vertexless shaders and enables them when
NV_path_rendering is available. This takes a
GrGLFragmentOnlyShaderBuilder class, a GrGLTexGenEffectArray class,
support for setting TexGen and the projection matrix in GrGpuGL, and
code for setting the GL fixed function state where necessary.

R=bsalomon@google.com, kkinnunen@nvidia.com

Author: cdalton@nvidia.com

Review URL: https://codereview.chromium.org/25846002

git-svn-id: http://skia.googlecode.com/svn/trunk@11620 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-04 20:02:53 +00:00
bungeman@google.com
86dd752bd5 Mutex protect SkFontMgr_DirectWrite cache.
SkFontMgr_DirectWrite is constant, except for its typeface cache.
Protect this cache in the face of multiple threads.

R=robertphillips@google.com

Review URL: https://codereview.chromium.org/26023002

git-svn-id: http://skia.googlecode.com/svn/trunk@11615 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-04 17:00:35 +00:00
commit-bot@chromium.org
86490573b5 commit to xfermode objects being immutable
BUG=
R=djsollen@google.com, mtklein@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/25968004

git-svn-id: http://skia.googlecode.com/svn/trunk@11614 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-04 16:52:55 +00:00
commit-bot@chromium.org
5dbb149fda When cache is full delay flush until GrContext draw is finished
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/25673004

git-svn-id: http://skia.googlecode.com/svn/trunk@11613 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-04 16:23:58 +00:00
commit-bot@chromium.org
261dc569b6 Move VertexBuilder to a GrGLFullShaderBuilder subclass
Removes the VertexBuilder nested class from GrGLShaderBuilder in favor
of a new GrGLFullShaderBuilder subclass, and adds an optional emitCode
overload to GrGLEffect that takes a GrGLFullShaderBuilder. Makes
setData virtual in GrGLEffectArray and adds a GrGLVertexEffectArray
subclass that gets built using a GrGLFullShaderBuilder. Also adds a
new GrGLVertexEffect subclass that makes the GrGLFullShaderBuilder
overload required for emitCode, and updates GrGLEffects to inherit
from GrGLVertexEffect where needed.

R=bsalomon@google.com

Author: cdalton@nvidia.com

Review URL: https://codereview.chromium.org/25474006

git-svn-id: http://skia.googlecode.com/svn/trunk@11612 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-04 15:42:56 +00:00
commit-bot@chromium.org
5c363644eb Don't access RT when disabling scissor.
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/25446004

git-svn-id: http://skia.googlecode.com/svn/trunk@11608 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-04 15:28:18 +00:00
halcanary@google.com
2dcf36e251 Fix SkScalar conversion warning error.
This was causing probems on the Win build.

R=caryclark@google.com

Review URL: https://codereview.chromium.org/26011002

git-svn-id: http://skia.googlecode.com/svn/trunk@11604 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-04 14:35:38 +00:00
halcanary@google.com
fed3037217 Make image decoding more fault resistant, less verbose.
This change address what happens when a jpeg is partially downloaded
before failing.  Many browsers will render it anyway: we want Skia to
do the same.  The JpegTest takes a perfectly cromulent jpeg file and
only passes into the ImageDecoder the first half of the image.  We
then verify that the image decoder returns a valid bitmap of the
correct dimensions.

We also fixed some png library errors, including issue 1691.

Also, suppressed the majority of warnings from using libpng and
libjpeg.  By default, most warnings are *not* suppressed in debug mode.
If you have a debug binary and wish to suppress warnings, set the
following environment variables to true
    skia_images_png_suppressDecoderWarnings
    skia_images_jpeg_suppressDecoderWarnings
or from within a program that links to Skia:
    #if defined(SK_DEBUG)
    #include "SkRTConf.h"
    SK_CONF_SET("images.jpeg.suppressDecoderWarnings", true);
    SK_CONF_SET("images.png.suppressDecoderWarnings", true);
    #endif

I tested this, before (control) and after these changes (test), on
364,295 skps from the cluster telemetry.
-   number of errors+warnings in control = 2804
-   number of errors+warnings fixed = 2283
-   number of PNG verbosity fixed =  2152
-   number of PNG error fixed = 4
-   number of PNG segfault fixed = 3
-   number of PNG errors changed to warnings = 62
-   number of JPG verbosity fixed =  26
-   number of JPG error fixed = 91
Not all errors and warning have been fixed.

These numbers were generated using the find_bad_images_in_skps.py
program.  This program may be useful going forward for testing
image-decoding libraries on skp files from the cluster telemetry.
find_bad_images_in_skps.py depends on the test_image_decoder program,
which simply executes the SkImageDecoder::DecodeFile function and uses
its exit status to report success or failure.

BUG=skia:1649
BUG=skia:1691
BUG=skia:1680
R=scroggo@google.com

Review URL: https://codereview.chromium.org/24449003

git-svn-id: http://skia.googlecode.com/svn/trunk@11597 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-04 12:46:45 +00:00
commit-bot@chromium.org
5fd7d5c20a Allow gradient optimization with perspective
Before, gradients would only interpolate the linear portion of the
quadratic equation if there was no perspective. This updates them to
do so even in the case that there is perspective. The rearrangement
of math causes noise differences in the following gm tests:

gradients_no_texture_gpu
gradients_view_perspective_gpu
gradients_local_perspective_gpu
gradients_gpu

R=bsalomon@google.com

Author: cdalton@nvidia.com

Review URL: https://codereview.chromium.org/25645006

git-svn-id: http://skia.googlecode.com/svn/trunk@11595 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-04 01:20:09 +00:00
bungeman@google.com
11ba3199f3 Snap GDI matrix when snapping height.
When using GDI to render, ensure that the GDI matrix does not attempt to
add subpixel height. This ensures that rotated text is always the same
height as axis aligned text and prevents subpixel drift metrics when they
are unwanted.

R=reed@google.com

Review URL: https://codereview.chromium.org/25739002

git-svn-id: http://skia.googlecode.com/svn/trunk@11592 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-03 20:17:51 +00:00
commit-bot@chromium.org
608ea6508a Use SkPicture::ExtractBitmap callback in pdf too, there is no need for a specialized function pointer for pdf only only to pass a rectangle, when we can use subseted bitmaps.
R=scroggo@google.com, reed@google.com, vandebo@chromium.org, bsalomon@google.com

Author: edisonn@google.com

Review URL: https://codereview.chromium.org/25054002

git-svn-id: http://skia.googlecode.com/svn/trunk@11591 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-03 19:29:21 +00:00
commit-bot@chromium.org
546f70c823 Fixes for decoding to A8.
src/images/SkImageDecoder_libpng.cpp:
A8 images are not opaque, so do not set the opaque flag.
This fixes a bug where copyTo does not work as expected (when
copying an A8 decoded image to ARGB_8888), leading to
a bitmap hash that does not represent the image correctly
(in skimage).

tools/skimage_main.cpp:
In write_bitmap, which is creating the image for visual comparison,
copy A8 to 8888, since A8 cannot be encoded.

In the section that tests reencoding, do not test reencoding A8,
which is known to not work.

R=mtklein@google.com, djsollen@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/25726004

git-svn-id: http://skia.googlecode.com/svn/trunk@11589 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-03 17:13:38 +00:00
commit-bot@chromium.org
3390b9ac9a Repurpose GrGLCoordTransform as GrGLProgramEffects
Creates a GrGLProgramEffects class that the GrGLProgram uses to manage
an array of effects. This gives us enough abstraction for the program
to cleanly handle different types of coord transforms.

R=bsalomon@google.com

Author: cdalton@nvidia.com

Review URL: https://codereview.chromium.org/25605008

git-svn-id: http://skia.googlecode.com/svn/trunk@11588 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-03 15:17:58 +00:00
djsollen@google.com
5df5e6126d Update PDF backend to support fallback fonts on Android.
R=edisonn@google.com, reed@google.com, vandebo@chromium.org

Review URL: https://codereview.chromium.org/24364008

git-svn-id: http://skia.googlecode.com/svn/trunk@11586 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-03 14:42:24 +00:00
skia.committer@gmail.com
b0a0589f8a Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@11585 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-03 07:01:37 +00:00
jvanverth@google.com
58909491d2 Fix font GMs
Disables font cache dump for now

R=robertphillips@google.com

Review URL: https://codereview.chromium.org/25605007

git-svn-id: http://skia.googlecode.com/svn/trunk@11584 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-02 19:49:26 +00:00
commit-bot@chromium.org
03e3e89641 Add support to dump font cache texture for debug purposes
R=robertphillips@google.com, bsalomon@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/25736002

git-svn-id: http://skia.googlecode.com/svn/trunk@11579 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-02 18:19:17 +00:00
robertphillips@google.com
aaf3e64b2c Move makeSpace and resetToSize from SkPathRef.cpp to .h
https://codereview.chromium.org/25754002/



git-svn-id: http://skia.googlecode.com/svn/trunk@11578 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-02 17:49:50 +00:00
commit-bot@chromium.org
09846a05be Add new skyline Rectanizer
The skyline Rectanizer tracks the leading silhouette of the
currently packed rects and tries to fit the next rectangle
on top of that. This gives slightly better packing behavior
than the current log2 scheme.

Also shrank the size of the plots, which increases their
number from 18 to 32 and gives better cache behavior (fewer
purges and uploads).

R=bsalomon@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/25584002

git-svn-id: http://skia.googlecode.com/svn/trunk@11577 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-02 17:37:59 +00:00
robertphillips@google.com
0308707248 Make it explicit that some validate methods are debug only
https://codereview.chromium.org/25716003/



git-svn-id: http://skia.googlecode.com/svn/trunk@11575 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-02 16:42:21 +00:00
scroggo@google.com
354fd97ee0 Do not convert non gray PNG to A8.
If the user requested A8, but the source is not gray, switch to
ARGB8888.

BUG=https://b.corp.google.com/issue?id=9189955
R=reed@google.com

Review URL: https://codereview.chromium.org/24882002

git-svn-id: http://skia.googlecode.com/svn/trunk@11573 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-02 15:50:19 +00:00
caryclark@google.com
7eaa53d8f7 path ops work in progress
make more skps work

remove edit files

BUG=

Review URL: https://codereview.chromium.org/23542056

git-svn-id: http://skia.googlecode.com/svn/trunk@11570 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-02 14:49:34 +00:00
bsalomon@google.com
77af6805e5 Make GPU coord transforms automatic
Adds a GrCoordTransform class and updates the framework to handle
coord transforms similar to how it handles textures with
GrTextureAccess. Renames GrGLEffectMatrix to GrGLCoordTransform and
slightly repurposes it to be used by the framework instead of effects.

R=bsalomon@google.com, robertphillips@google.com

Review URL: https://codereview.chromium.org/24853002

git-svn-id: http://skia.googlecode.com/svn/trunk@11569 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-02 13:04:56 +00:00
scroggo@google.com
e5c9c4960c Empty implementations for SkImageDecoder.
Add constructor and destructor, so SkScaledBitmapSampler's
DummyDecoder has no unresolved symbols in Chrome.

Fixes our Chrome canary.

Unreviewed.

Review URL: https://codereview.chromium.org/25536004

git-svn-id: http://skia.googlecode.com/svn/trunk@11566 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-01 19:54:42 +00:00
commit-bot@chromium.org
edf2367346 Fix race between ~SkThreadPool and SkThreadPool::Loop on fDone.
We're writing fDone without holding the mutex.  Bad form, says tsan.

In practice this is fairly innocuous, as fDone only ever goes from false to
true and only once.  Though, I wouldn't be surprised if there were some way
this could leak a thread that never got the signal to die.

BUG=
R=scroggo@google.com, reed@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/25371003

git-svn-id: http://skia.googlecode.com/svn/trunk@11563 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-01 18:44:18 +00:00
commit-bot@chromium.org
949eef0af2 Use explicitly-sized enums in GrGLProgramDesc::KeyHeader
Uses enums explicitly sized to 8 bits in GrGLProgramDesc::KeyHeader,
instead of storing them as uint8_t values. This avoids the need to
static_cast them.

R=bsalomon@google.com

Author: cdalton@nvidia.com

Review URL: https://codereview.chromium.org/23875048

git-svn-id: http://skia.googlecode.com/svn/trunk@11560 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-01 18:43:29 +00:00
scroggo@google.com
1d06999bc2 Fix build.
Predeclare a function.

Unreviewed.

git-svn-id: http://skia.googlecode.com/svn/trunk@11559 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-01 17:46:35 +00:00
scroggo@google.com
8d2392487c Add an option on SkImageDecoder to skip writing 0s.
Only implemented for PNG.

Add a getter and setter, and sets the default to false in the
constructor. Also copies the setting in copyFieldsToOther.

Fix an indpendent bug where fDitherImage was not being copied in
copyFieldsToOther.

In SkScaledBitmapSampler::begin, consolidate the settings passed in
by passing a const reference to the decoder. The decoder can be
referenced for its settings of dither, unpremultiplied, and now
skipping writing zeroes. Update callers to use the new API. In png
decoder, rather than passing around a pointer to an initial
read of getDitherImage, and potentially changing it, look at the
field on the decoder itself, and modify it directly. This is a
change in behavior - now if that same decoder is used to decode
a different image, the dither setting has changed. I think this is
okay because A) the typical use case is to use a new decoder for
each decode, B) we do not make any promises that a decode does not
change the decoder and C) it makes the code in SkScaledBitmapSampler
much cleaner.

In SkScaledBitmapScampler, add new row procs for skipping zeroes. Now
that choosing the row proc has five dimensions (src config, dst config,
dither, skip writing zeroes, unpremultiplied), use a new method: each
src/dst combination has a function for choosing the right proc depending
on the decoder.

SkScaledBitmapScampler::RowProc is now public for convenience.

Remove Sample_Gray_D8888_Unpremul, which is effectively no different
from Sample_Gray_D8888.

In cases where unpremultiplied was trivial, such as 565 and when
sampling from gray, decoding may now succeed.

Add a benchmark (currently disabled) for comparing the speed of skipping
writing zeroes versus not skipping. For this particular image, which is
mostly transparent pixels, normal decoding took about 3.6 milliseconds,
while skipping zeroes in the decode took only about 2.5 milliseconds
(this is on a Nexus 4). Presumably it would be slower on an image
with a small amount of transparency, but there will be no slowdown
for an image which reports that it has no transparency.

In SkImageRef_ashmem, always skip writing zeroes, since ashmem
memory is guaranteed to be initialized to 0.

Add a flag to skip writing zeroes in skimage.

Add a regression test for choosing the rowproc to ensure I did not
change any behavior accidentally.

BUG=skia:1661
R=reed@google.com

Review URL: https://codereview.chromium.org/24269006

git-svn-id: http://skia.googlecode.com/svn/trunk@11558 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-01 17:27:15 +00:00
scroggo@google.com
12705329d0 Allow creating a picture from skp to fail.
Replace the current constructor for creating an
SkPicturePlayback to a factory. In the factory,
check for incorrect data that would result in an invalid
playback. If the playback is invalid, return NULL, and
return NULL from SkPicture's factory as well.

Update SkTimedPicture(Playback) as well.

BUG=skia:1672
R=caryclark@google.com

Review URL: https://codereview.chromium.org/24826002

git-svn-id: http://skia.googlecode.com/svn/trunk@11554 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-01 15:30:46 +00:00
bungeman@google.com
635091f0a9 Minor changes to XPS device.
git-svn-id: http://skia.googlecode.com/svn/trunk@11552 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-01 15:03:18 +00:00
skia.committer@gmail.com
1d3bfdc341 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@11544 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-01 07:01:46 +00:00
commit-bot@chromium.org
234d4fba75 Mark when effects and programs have vertex code
Adds a 'hasVertexCode' method to GrEffect and a 'fHasVertexCode' field
to GrGLProgramDesc::KeyHeader. Also adds a GrVertexEffect class that
effects have to inherit from in order to set the 'hasVertexCode' flag
and be able to emit vertex code, and updates the existing effects to
use it as needed.

R=bsalomon@google.com

Author: cdalton@nvidia.com

Review URL: https://codereview.chromium.org/23653059

git-svn-id: http://skia.googlecode.com/svn/trunk@11537 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-30 19:55:49 +00:00
commit-bot@chromium.org
76eaf749cf Add a GrCustomCoordsTextureEffect class
Extracts a GrCustomCoordsTextureEffect class from
GrSimpleTextureEffect. This way there are no effects that can
conditionally require a vertex shader. They either always need one or
never do. Also removes kCustom_CoordsType from the CoordsType enum in
GrEffect (that enum is really only meant for coords provided by the
framework), and updates GrSimpleTextureEffect::TestCreate to make the
effect with position as well, instead of just local coords.

R=bsalomon@google.com

Author: cdalton@nvidia.com

Review URL: https://codereview.chromium.org/24018007

git-svn-id: http://skia.googlecode.com/svn/trunk@11531 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-30 18:41:38 +00:00
commit-bot@chromium.org
6c5d9a1dff Add GrSurface::savePixels().
R=bsalomon@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/25021006

git-svn-id: http://skia.googlecode.com/svn/trunk@11528 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-30 18:05:43 +00:00
commit-bot@chromium.org
410552a73d Move the GL shader compilation step into GrGLShaderBuilder
Moves the compilation step and a few other blocks of code from
GrGLProgram to GrGLShaderBuilder. This way GrGLProgram doesn't have to
know whether or not there is a vertex shader.

R=bsalomon@google.com

Author: cdalton@nvidia.com

Review URL: https://codereview.chromium.org/23533066

git-svn-id: http://skia.googlecode.com/svn/trunk@11523 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-30 15:30:27 +00:00
commit-bot@chromium.org
a4acf12a93 Revert "Add a requiresVertexShader method to GrGLEffect"
This reverts commit 1a30a3af805b7ea688d4a0f0bfe373c204085a27. We're
going to take a different direction for vertexless shaders.

R=bsalomon@google.com

Author: cdalton@nvidia.com

Review URL: https://codereview.chromium.org/23464082

git-svn-id: http://skia.googlecode.com/svn/trunk@11521 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-30 15:13:58 +00:00
skia.committer@gmail.com
50df4d013f Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@11513 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-28 07:01:33 +00:00
robertphillips@google.com
6e7883b84f Limit warning message to de-clutter bench output logs
https://codereview.chromium.org/25112002/



git-svn-id: http://skia.googlecode.com/svn/trunk@11511 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-27 21:53:39 +00:00
commit-bot@chromium.org
7d330eb19c GrAtlas cleanup: Split out GrPlot and GrAtlas
This breaks up GrAtlas into the head of the list (GrAtlas) and the list elements (GrPlot). It also moves all of the GrPlot management code into GrAtlasMgr. It adds a simple pool allocator for GrPlots and removes use of GrPlotMgr.

R=bsalomon@google.com, robertphillips@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/24981004

git-svn-id: http://skia.googlecode.com/svn/trunk@11508 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-27 19:39:38 +00:00
robertphillips@google.com
3e292aa398 Move unlikely-to-be-inlined code from SkPathRef.h to SkPathRef.cpp
https://codereview.chromium.org/24998004/



git-svn-id: http://skia.googlecode.com/svn/trunk@11506 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-27 17:48:49 +00:00
robertphillips@google.com
b0889a5aa6 This CL effectively reverts:
r5997 Altered arcTo's canonical points to (usually) be convex (https://codereview.appspot.com/6709051/)
r9928 GM (and fix) for drawArc capping issue (https://codereview.chromium.org/18271003/)

Instead of pushing some of the on-curve points out to attain convexity, this patch pulls all the off curve points in.

R=reed@google.com

Review URL: https://codereview.chromium.org/24810002

git-svn-id: http://skia.googlecode.com/svn/trunk@11504 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-27 17:05:59 +00:00
skia.committer@gmail.com
65caeaf32d Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@11493 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-27 07:01:29 +00:00
scroggo@google.com
fd67f2f0a3 Fix a warning.
git-svn-id: http://skia.googlecode.com/svn/trunk@11489 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-26 21:49:46 +00:00
scroggo@google.com
83fd2c7c43 Add a buffered SkStream class.
This is used by Android to buffer an input stream which may not
otherwise be able to rewind.

Add a test for the new class.

R=bungeman@google.com, mtklein@google.com, reed@google.com

Review URL: https://codereview.chromium.org/23717055

git-svn-id: http://skia.googlecode.com/svn/trunk@11488 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-26 21:35:39 +00:00
reed@google.com
939ca7ce86 move GrMalloc, GrFree, Gr_bzero to their sk equivalents
BUG=
R=bsalomon@google.com

Review URL: https://codereview.chromium.org/23566022

git-svn-id: http://skia.googlecode.com/svn/trunk@11486 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-26 19:56:51 +00:00
reed@google.com
baed71fbfe add counting to Globals, and refactor some for clarity
BUG=

Review URL: https://codereview.chromium.org/24447003

git-svn-id: http://skia.googlecode.com/svn/trunk@11484 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-26 19:28:27 +00:00
commit-bot@chromium.org
2c86fbb0b1 Add SkDivMod with a special case for ARM.
BUG=skia:1663
R=djsollen@google.com, tomhudson@google.com, reed@google.com

Author: mtklein@google.com

Review URL: https://chromiumcodereview.appspot.com/24159009

git-svn-id: http://skia.googlecode.com/svn/trunk@11482 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-26 19:22:54 +00:00
sugoi@google.com
0ac74b2c0d Added SkTileImageFilter to SkFlattenable::InitializeFlattenables()
BUG=
R=bsalomon@google.com

Review URL: https://codereview.chromium.org/24764003

git-svn-id: http://skia.googlecode.com/svn/trunk@11477 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-26 17:03:38 +00:00
commit-bot@chromium.org
1a4fb70c8a Moving 4 SkImageFilter derived classes from blink to skia
There were 4 classes in blink that derived from SkImageFilter :
- TileImageFilter -> SkTileImageFilter
- OffsetImageFilter -> SkOffsetImageFilter (already existed)
- FloodImageFilter -> SkFloodImageFilter
- CompositeImageFilter -> SkCompositeImageFilter

All functions were copied as is, without modification (except for warnings fixes), except for the offset filter, which was merged into the existing SkOffsetImageFilter class, as a special case when a crop rect is provided. Since the names won't clash with the names in blink, it should be easy to integrate them in blink later and fix issues, if needed.

BUG=
R=senorblanco@google.com, senorblanco@chromium.org, bsalomon@google.com, reed@google.com, mtklein@google.com

Author: sugoi@chromium.org

Review URL: https://chromiumcodereview.appspot.com/24157005

git-svn-id: http://skia.googlecode.com/svn/trunk@11475 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-26 16:09:28 +00:00
commit-bot@chromium.org
9529441447 GrAtlas refactor: Replace GrMaskFormat usage in GrAtlas with GrPixelConfig.
This gets the font-specific GrMaskFormat out of GrAtlas and replaces it with
more generic configs, allowing GrAtlas to be used for other things.

R=robertphillips@google.com

Author: jvanverth@google.com

Review URL: https://chromiumcodereview.appspot.com/24751003

git-svn-id: http://skia.googlecode.com/svn/trunk@11474 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-26 15:28:40 +00:00
commit-bot@chromium.org
4cc26324e3 ARM Skia NEON patches - 24 - S32_D565_Blend_Dither slight speedup/bugfix
BlitRow565: S32_D565_Blend_Dither, slight speedup + bugfix

This patch adds a rewrite of S32_D565_Blend_Dither in intrinsics.
The newer version is faster (10-20% depending on the value of count)
and also supports ARGB as well as ABGR. It also adds the missing
assert at the beginning of the function.

Signed-off-by: Kévin PETIT <kevin.petit@arm.com>

BUG=
R=djsollen@google.com, mtklein@google.com

Author: kevin.petit.arm@gmail.com

Review URL: https://chromiumcodereview.appspot.com/22566002

git-svn-id: http://skia.googlecode.com/svn/trunk@11473 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-26 15:25:23 +00:00
commit-bot@chromium.org
97f8167622 We don't flatten or unflatten SkPaintOptionsAndroid. Reproduce and fix.
BUG=skia:1625
R=djsollen@google.com, reed@google.com

Author: mtklein@google.com

Review URL: https://chromiumcodereview.appspot.com/24075010

git-svn-id: http://skia.googlecode.com/svn/trunk@11472 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-26 15:16:12 +00:00
commit-bot@chromium.org
3fddf0eed6 First pass at font cache refactor: Create an atlas manager per texture
This changes the AtlasMgr from a singleton class to one that is
created per-texture. This is the first step in allowing us to create
Atlases of other types (e.g., combine small icons into one big texture).

R=bsalomon@google.com

Author: jvanverth@google.com

Review URL: https://chromiumcodereview.appspot.com/24608002

git-svn-id: http://skia.googlecode.com/svn/trunk@11468 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-26 12:57:19 +00:00
robertphillips@google.com
ca0c8389e2 Move bound and isFinite into pathref
https://codereview.chromium.org/24350006/



git-svn-id: http://skia.googlecode.com/svn/trunk@11467 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-26 12:18:23 +00:00
scroggo@google.com
50955db605 Fix iOS build.
More SkStream -> SkStreamRewindable.

git-svn-id: http://skia.googlecode.com/svn/trunk@11463 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-25 22:10:04 +00:00
scroggo@google.com
b5571b3324 Change SkImageDecoders to take an SkStreamRewindable.
Only affects factories, static functions that will use the factories,
and subset decoding, which all require rewinding. The decoders
themselves continue to take an SkStream. This is merely documentation
stating which functions will possibly rewind the passed in SkStream.

This is part of the general change to coordinate SkStreams with
Android's streams, which don't necessarily support rewinding in all
cases.

Update callers to use SkStreamRewindable.

BUG=skia:1572
R=bungeman@google.com, reed@google.com

Review URL: https://codereview.chromium.org/23477009

git-svn-id: http://skia.googlecode.com/svn/trunk@11460 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-25 21:34:24 +00:00
scroggo@google.com
228f2b8887 Print a better error message.
Use format_message to print the proper error message in JPEG decoder.

R=mtklein@google.com

Review URL: https://codereview.chromium.org/24461002

git-svn-id: http://skia.googlecode.com/svn/trunk@11459 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-25 21:27:31 +00:00
scroggo@google.com
a934899867 Use the default resync_to_restart in jpeg.
Our version requires rewinding the stream, which is not always
supported. Instead, depend on jpeg's default version.

R=djsollen@google.com

Review URL: https://codereview.chromium.org/23464068

git-svn-id: http://skia.googlecode.com/svn/trunk@11458 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-25 21:17:41 +00:00
commit-bot@chromium.org
4382330a15 Replace GR_*_BUILD by their SK_BUILD_FOR_* equivalents.
BUG=None
TEST=None, no functional changes.
R=bsalomon@google.com, robertphillips@google.com

Author: tfarina@chromium.org

Review URL: https://chromiumcodereview.appspot.com/24253009

git-svn-id: http://skia.googlecode.com/svn/trunk@11457 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-25 20:57:51 +00:00
djsollen@google.com
39a7c7035b Use different unique identifier for a fallback family.
BUG=chromium:266412
R=mtklein@google.com, reed@google.com

Review URL: https://codereview.chromium.org/24288002

git-svn-id: http://skia.googlecode.com/svn/trunk@11451 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-24 20:08:47 +00:00
reed@google.com
dfc740393e remove obsolete USE_CACHE_HASH
BUG=

Review URL: https://codereview.chromium.org/23526082

git-svn-id: http://skia.googlecode.com/svn/trunk@11450 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-24 19:59:44 +00:00
robertphillips@google.com
c8fb998388 Revert r11423 (low hanging calloc fruit)
git-svn-id: http://skia.googlecode.com/svn/trunk@11427 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-22 20:18:07 +00:00
skia.committer@gmail.com
572a865846 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@11426 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-21 07:01:53 +00:00
mtklein@google.com
2905ff552c low hanging calloc fruit
BUG=
R=reed@google.com

Review URL: https://codereview.chromium.org/24267014

git-svn-id: http://skia.googlecode.com/svn/trunk@11423 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-20 19:59:47 +00:00
reed@google.com
d28ba8010c promote SkImage::AlphaType to SkAlphaType
BUG=
R=bsalomon@google.com

Review URL: https://codereview.chromium.org/24130009

git-svn-id: http://skia.googlecode.com/svn/trunk@11421 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-20 19:33:52 +00:00
commit-bot@chromium.org
d2cfa7422e [PDF] clear() and drawPaint() where applying the initial transform twice.
BUG=b/10845219
R=edisonn@google.com, djsollen@google.com

Author: vandebo@chromium.org

Review URL: https://chromiumcodereview.appspot.com/24130010

git-svn-id: http://skia.googlecode.com/svn/trunk@11420 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-20 18:58:30 +00:00
bungeman@google.com
c526c71acd Map Calibri to Carlito
Chrome OS will have Carlito as a metric-compatible replacement for Calibri.

This change has to be combined with a Chrome OS change to add
Calibri and configure fontconfig accordingly.

BUG=280557
TEST=With the CrOS change, a page using Calibri will use Carlito instead of the default fallback font (Arimo in case of English UI).
R=bungeman@google.com

Review URL: https://codereview.chromium.org/23618061

git-svn-id: http://skia.googlecode.com/svn/trunk@11418 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-20 17:41:52 +00:00
bungeman@google.com
dd88eccb22 Fix slight hinting with GDI.
Sometimes GDI manages to return a different number of points for hinted
and non-hinted outlines. This change handles that case and falls back
to non-hinted. This does not re-enable slight hinting, so there should be
no observable difference in tests. There are still issues with 'D' in
some font/size combinations where 'flips' are used.


git-svn-id: http://skia.googlecode.com/svn/trunk@11417 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-20 17:25:31 +00:00
commit-bot@chromium.org
0060159457 ARM Skia NEON patches - 21 - new NEON S32_D565_Opaque
BlitRow565: NEON version of S32_D565_Opaque

Here's a new implementation of S32_D565_Opaque in NEON. It
improves dramatically the speed compared to S32A_D565_Opaque.

Here are the benchmark results (speedup vs. existing NEON):

+-------+-----------+------------+
| count | Cortex-A9 | Cortex-A15 |
+-------+-----------+------------+
| 1     | +130%     | +139%      |
+-------+-----------+------------+
| 2     | +65,2%    | +51%       |
+-------+-----------+------------+
| 4     | -25,5%    | +10,2%     |
+-------+-----------+------------+
| 8     | +63,8%    | +32,1%     |
+-------+-----------+------------+
| 16    | +110%     | +49,2%     |
+-------+-----------+------------+
| 64    | +153%     | +123,5%    |
+-------+-----------+------------+
| 256   | +151%     | +144,7%    |
+-------+-----------+------------+
| 1024  | +272%     | +157,2%    |
+-------+-----------+------------+

Signed-off-by: Kévin PETIT <kevin.petit@arm.com>

BUG=
R=djsollen@google.com, mtklein@google.com

Author: kevin.petit.arm@gmail.com

Review URL: https://chromiumcodereview.appspot.com/22351006

git-svn-id: http://skia.googlecode.com/svn/trunk@11415 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-20 15:38:49 +00:00
mtklein@google.com
519f9677a4 Add sk_calloc. Remove SkMemory_stdlib, which seems unused.
I'm seeing basically no difference between malloc + bzero and calloc on my desktop, but on a Galaxy Nexus calloc is never slower, and significantly faster once the allocation size becomes large, both for allocation and for _reading_.

BUG=skia:1662
R=reed@google.com

Review URL: https://codereview.chromium.org/24251008

git-svn-id: http://skia.googlecode.com/svn/trunk@11414 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-20 14:31:45 +00:00
skia.committer@gmail.com
f91e3d4f54 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@11411 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-20 07:01:33 +00:00
commit-bot@chromium.org
c5e57bd0a3 silence the error test to be a better citizen
BUG=
R=caryclark@google.com, bsalomon@google.com, tfarina@chromium.org, mtklein@google.com

Author: humper@google.com

Review URL: https://chromiumcodereview.appspot.com/23481012

git-svn-id: http://skia.googlecode.com/svn/trunk@11409 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-19 22:11:38 +00:00
djsollen@google.com
9902c38f48 Add new entry point that supports fallback font selection based on language.
BUG= chromium:287995
R=reed@google.com, wangxianzhu@chromium.org

Review URL: https://codereview.chromium.org/23819067

git-svn-id: http://skia.googlecode.com/svn/trunk@11394 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-19 18:22:30 +00:00
edisonn@google.com
aa6c4d2587 pdf: report NYI features, and fail gracefully when something is not supported in pdf.
R=vandebo@chromium.org

Review URL: https://codereview.chromium.org/23654036

git-svn-id: http://skia.googlecode.com/svn/trunk@11388 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-19 17:36:47 +00:00
senorblanco@chromium.org
962c8864e4 Implement crop rect support for the merge image filter.
Note: this will require rebaselining of the imagefilterscropped and testimagefilters GMs.

R=reed@google.com

Review URL: https://codereview.chromium.org/23600047

git-svn-id: http://skia.googlecode.com/svn/trunk@11387 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-19 17:26:47 +00:00
robertphillips@google.com
52c7526211 Reenable GrAAHairlinePathRenderer assert w/ fix
https://codereview.chromium.org/24269004/



git-svn-id: http://skia.googlecode.com/svn/trunk@11385 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-19 16:36:43 +00:00
djsollen@google.com
1f584ed3f4 Update Android's FontHost to return NULL if familyName does not match
R=scroggo@google.com, wangxianzhu@chromium.org

Review URL: https://codereview.chromium.org/23601041

git-svn-id: http://skia.googlecode.com/svn/trunk@11377 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-19 12:08:40 +00:00
skia.committer@gmail.com
2262c58802 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@11375 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-19 07:25:55 +00:00
robertphillips@google.com
4fe0555a36 Temporarily disable assert in GrAAHairlinePathRenderer.cpp
git-svn-id: http://skia.googlecode.com/svn/trunk@11369 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-19 01:07:14 +00:00
robertphillips@google.com
9528bdb0dc Don't reuse scratch textures update
https://codereview.chromium.org/23609026/



git-svn-id: http://skia.googlecode.com/svn/trunk@11366 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-18 22:33:57 +00:00
robertphillips@google.com
ada90dac10 "Fix" for hairline corner bugs
https://codereview.chromium.org/23708036/



git-svn-id: http://skia.googlecode.com/svn/trunk@11365 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-18 22:14:49 +00:00
reed@google.com
d44d988127 fix fontconfig backend to only cache new fonts if their outName was unique
BUG=
R=bungeman@google.com

Review URL: https://codereview.chromium.org/23710072

git-svn-id: http://skia.googlecode.com/svn/trunk@11364 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-18 20:32:25 +00:00
commit-bot@chromium.org
07f6cf372d fix printing of error messages in canvasstatetest.
R=scroggo@google.com, caryclark@google.com

Author: djsollen@google.com

Review URL: https://chromiumcodereview.appspot.com/23477067

git-svn-id: http://skia.googlecode.com/svn/trunk@11363 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-18 20:15:12 +00:00
edisonn@google.com
26d2e046cd pdf: write only ToUnicode mappings needed by the font, trimming anything out of [firstChar, lastChar] interval.
R=vandebo@chromium.org

Review URL: https://codereview.chromium.org/23519006

git-svn-id: http://skia.googlecode.com/svn/trunk@11360 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-18 19:29:08 +00:00
djsollen@google.com
286a8830f5 cleanup XML_Parser after reading android config files.
This CL is based on one submitted for AOSP review...
 Fix memory leak in parseConfigFile()
 Need to call XML_ParserFree() on parsers created by XML_ParserCreate()
 Signed-off-by: Carton He <carton.he@marvell.com>
 https://android-review.googlesource.com/#/c/65690/1

R=mtklein@google.com

Review URL: https://codereview.chromium.org/24171003

git-svn-id: http://skia.googlecode.com/svn/trunk@11357 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-18 18:59:29 +00:00
commit-bot@chromium.org
5898dce287 Attempt to remove 64 bit min size for NPOT resized texture.
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://chromiumcodereview.appspot.com/24123003

git-svn-id: http://skia.googlecode.com/svn/trunk@11356 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-18 18:52:16 +00:00
commit-bot@chromium.org
a0b40280a4 Replace uses of GrNoncopyable by SkNoncopyable.
BUG=None
TEST=None, no functional changes.
R=bsalomon@google.com, robertphillips@google.com

Author: tfarina@chromium.org

Review URL: https://chromiumcodereview.appspot.com/23483042

git-svn-id: http://skia.googlecode.com/svn/trunk@11341 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-18 13:00:55 +00:00
commit-bot@chromium.org
0694ea7f6a Fix to allow ovals GM to finish on N7
R=jvanverth@google.com, robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://chromiumcodereview.appspot.com/23477079

git-svn-id: http://skia.googlecode.com/svn/trunk@11340 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-18 13:00:28 +00:00
commit-bot@chromium.org
688d362b45 ARM Skia NEON patches - 23 - S32_D565_Opaque_Dither cleanup/bugfix/speed
BlitRow565: S32_D565_Opaque_Dither: cleaning / bugfix

This patch brings a little code cleaning (spaces/comments) and a little
speed improvement (by using post-incrementation in the asm) but more
importantly it fixes a bug on Linux. The new code now supports ARGB
as well as ABGR.

I removed the comment as I have confirmed with benchmarks that this
code bring a *massive* (3x-7x) speedup compared to the C code.

Signed-off-by: Kévin PETIT <kevin.petit@arm.com>

BUG=
R=djsollen@google.com, mtklein@google.com

Author: kevin.petit.arm@gmail.com

Review URL: https://chromiumcodereview.appspot.com/22269003

git-svn-id: http://skia.googlecode.com/svn/trunk@11339 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-18 13:00:21 +00:00
skia.committer@gmail.com
2291e72b99 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@11336 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-18 07:01:33 +00:00
reed@google.com
636d87a3f4 update devicelooper to skip internal tiles that are empty, and unittests
BUG=

Review URL: https://codereview.chromium.org/23463040

git-svn-id: http://skia.googlecode.com/svn/trunk@11331 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-17 20:03:43 +00:00
edisonn@google.com
8135323f70 pdf: ifgnore shader colors applied for 0 range.
R=vandebo@chromium.org

Review URL: https://codereview.chromium.org/23654044

git-svn-id: http://skia.googlecode.com/svn/trunk@11322 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-17 17:17:47 +00:00
senorblanco@chromium.org
8fcad98791 Implement crop rect for the dilate and erode (morphology) filters. This provoked some cleanup on the GPU side: apply_morphology() now deals with SkBitmaps, rather than GrTextures. There's still a clear opportunity for more refactoring between the two filters.
Note: this adds some test cases to the morphology GM, so it will require a rebaseline.

R=bsalomon@google.com, reed@google.com

Review URL: https://codereview.chromium.org/23892011

git-svn-id: http://skia.googlecode.com/svn/trunk@11313 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-17 13:41:43 +00:00
fmalita@google.com
ef45a646a7 [External patch] Source-over support for SkLumaXfermode.
This is a patch by Andrei Parvu <parvu@adobe.com> (Adobe CLA signer).

Original CL/review: https://codereview.chromium.org/24078006/

GM:lumamode will need rebaselining after landing this.

---

  In order to use CSS luminance masking, we need to be able to create an
  instance of SkLumaXfermode which can receive a kSrcOver mode, and applies
  that mode after converting the source using the luminance-to-alpha
  coefficients.

BUG=289420
R=reed@google.com

Review URL: https://codereview.chromium.org/23710053

git-svn-id: http://skia.googlecode.com/svn/trunk@11312 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-17 13:09:16 +00:00
robertphillips@google.com
07f81a57ba Baby step in making SkGpuDevice no longer derive from SkBitmapDevice
https://codereview.chromium.org/23641008/



git-svn-id: http://skia.googlecode.com/svn/trunk@11311 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-17 12:26:23 +00:00
skia.committer@gmail.com
a604c4f971 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@11309 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-17 07:01:20 +00:00
jvanverth@google.com
bbe55fdf66 Have multiple plotmgrs, one for each mask format.
Only flush/purge those strikes that match our format.

R=bsalomon@google.com

Review URL: https://codereview.chromium.org/24047005

git-svn-id: http://skia.googlecode.com/svn/trunk@11303 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-16 20:28:37 +00:00
jvanverth@google.com
a2f4b15d4e Don't declare displayCache variable if PROGRAM_CACHE_STATS not defined.
BUG=
R=robertphillips@google.com

Review URL: https://codereview.chromium.org/23757053

git-svn-id: http://skia.googlecode.com/svn/trunk@11301 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-16 20:00:46 +00:00
jvanverth@google.com
5c9b6faeff Only display program cache info if RTConf flag is set.
Addresses: https://code.google.com/p/skia/issues/detail?id=1615

R=caryclark@google.com, robertphillips@google.com

Review URL: https://codereview.chromium.org/23947006

git-svn-id: http://skia.googlecode.com/svn/trunk@11300 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-16 19:40:31 +00:00
caryclark@google.com
570863f2e2 path ops work in progress
path ops work in progress

BUG=

Review URL: https://codereview.chromium.org/21359002

git-svn-id: http://skia.googlecode.com/svn/trunk@11291 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-16 15:55:01 +00:00
robertphillips@google.com
24ddde9758 Revert 11247, 11250, 11251, 11257, and 11279 to unblock DEPS roll (https://codereview.chromium.org/24159002/)
11279 Sanitizing source files in Housekeeper-Nightly - https://code.google.com/p/skia/source/detail?r=11279
11257 Canary build fix - https://codereview.chromium.org/23532068
11251 More warnings as errors fixes - https://code.google.com/p/skia/source/detail?r=11251
11250 Warnings as errors fix - https://code.google.com/p/skia/source/detail?r=11250
11247 Initial error handling code - https://chromiumcodereview.appspot.com/23021015



git-svn-id: http://skia.googlecode.com/svn/trunk@11288 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-16 14:04:05 +00:00
robertphillips@google.com
ba6e954140 Revert the revert of 11247, 11250, 11251 and 11279 (Chrome already relies on changes in r11247)
git-svn-id: http://skia.googlecode.com/svn/trunk@11287 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-16 13:40:12 +00:00
robertphillips@google.com
478884f7d3 Revert 11247, 11250, 11251 and 11279 to unblock DEPS roll (https://codereview.chromium.org/24159002/)
11279 Sanitizing source files in Housekeeper-Nightly - https://code.google.com/p/skia/source/detail?r=11279
11251 More warnings as errors fixes - https://code.google.com/p/skia/source/detail?r=11251
11250 Warnings as errors fix - https://code.google.com/p/skia/source/detail?r=11250
11247 Initial error handling code - https://chromiumcodereview.appspot.com/23021015



git-svn-id: http://skia.googlecode.com/svn/trunk@11285 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-16 13:19:11 +00:00
skia.committer@gmail.com
dc9888c409 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@11279 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-14 07:01:34 +00:00
reed@google.com
cee9dcb837 start to remove lockPixels from bitmapshader
BUG=
R=scroggo@google.com

Review URL: https://codereview.chromium.org/23591030

git-svn-id: http://skia.googlecode.com/svn/trunk@11258 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-13 16:04:49 +00:00
robertphillips@google.com
558d5d3f08 Warnings as errors fix
git-svn-id: http://skia.googlecode.com/svn/trunk@11250 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-13 12:54:33 +00:00
commit-bot@chromium.org
4b681bc95b Fixed issues found by fuzzer
Last week, the fuzzer found a few numerical issue with filters and I had written some fixes for them. Here are the fixes with some unit tests.

For senorblanco : So I figured out what was asserting when we'd get a 0 width "result" in SkBicubicImageFilter::onFilterImage(). Basically, if the "result" SkBitmap object calls SkBitmap::setConfig() with "width" and/or "height" set to 0, then the SkBitmap object will call SkBitmap::reset(), making the SkBitmap object's config invalid. At this point, calling SkBitmap::getAddr32() will assert, even without attempting to dereference the data pointer, because the SkBitmap's config is invalid. If height is valid, but width is 0, then this call to SkBitmap::getAddr32() happens directly in SkBicubicImageFilter::onFilterImage() a few lines lower and asserts right away.

BUG=
R=senorblanco@google.com, senorblanco@chromium.org, bsalomon@google.com

Author: sugoi@chromium.org

Review URL: https://chromiumcodereview.appspot.com/23533042

git-svn-id: http://skia.googlecode.com/svn/trunk@11249 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-13 12:40:02 +00:00
commit-bot@chromium.org
5792cded61 Initial error handling code
I made it as simple as possible. The impact seems minimal and it should do what's necessary to make this code secure.

BUG=
R=reed@google.com, scroggo@google.com, djsollen@google.com, sugoi@google.com, bsalomon@google.com, mtklein@google.com, senorblanco@google.com, senorblanco@chromium.org

Author: sugoi@chromium.org

Review URL: https://chromiumcodereview.appspot.com/23021015

git-svn-id: http://skia.googlecode.com/svn/trunk@11247 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-13 12:39:34 +00:00
commit-bot@chromium.org
2db4eabb77 ARM Skia NEON patches - 19 - Intrinsics version of the Filter32 routines
BitmapProcState: translate the filtering routines to intrinsics

Signed-off-by: Kévin PETIT <kevin.petit@arm.com>

BUG=
R=djsollen@google.com, mtklein@google.com

Author: kevin.petit.arm@gmail.com

Review URL: https://chromiumcodereview.appspot.com/21915004

git-svn-id: http://skia.googlecode.com/svn/trunk@11246 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-13 12:39:09 +00:00
bsalomon@google.com
e932c98069 re-enable GrIODB
R=robertphillips@google.com
BUG=

Review URL: https://codereview.chromium.org/23542023

git-svn-id: http://skia.googlecode.com/svn/trunk@11189 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-10 19:47:01 +00:00
jvanverth@google.com
6cc8d4470d Fix for ovals failing on Xoom.
The fallback path for ellipses when we don't have GLSL derivative
instructions was only setting one attribute in the effect stage, but
we use two attributes.

R=robertphillips@google.com

Review URL: https://codereview.chromium.org/23514047

git-svn-id: http://skia.googlecode.com/svn/trunk@11184 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-10 18:24:37 +00:00
robertphillips@google.com
115fbf66a9 Fix uninitialized string bug
https://codereview.chromium.org/23499013/



git-svn-id: http://skia.googlecode.com/svn/trunk@11182 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-10 17:37:03 +00:00
skia.committer@gmail.com
9a070f24f1 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@11176 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-10 07:01:44 +00:00
commit-bot@chromium.org
e0e7cfe44b Change old PRG to be SkLCGRandom; change new one to SkRandom
The goal here is to get people to start using the new random number
generator, while leaving the old one in place so we don't have to 
rebaseline GMs.

R=reed@google.com, bsalomon@google.com

Author: jvanverth@google.com

Review URL: https://chromiumcodereview.appspot.com/23576015

git-svn-id: http://skia.googlecode.com/svn/trunk@11169 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-09 20:09:12 +00:00
bsalomon@google.com
82d1223aec Two and three color GPU gradients without textures.
R=bsalomon@google.com

Review URL: https://codereview.chromium.org/22854005

git-svn-id: http://skia.googlecode.com/svn/trunk@11158 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-09 15:36:26 +00:00
commit-bot@chromium.org
ce6da4d96a Improve handling of FF vertex array state
R=robertphillips@google.com, jvanverth@google.com

Author: bsalomon@google.com

Review URL: https://chromiumcodereview.appspot.com/23542013

git-svn-id: http://skia.googlecode.com/svn/trunk@11154 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-09 14:55:37 +00:00
reed@google.com
beba935f65 remove SK_IGNORE_IMAGE_PRESCALE flag (no longer used)
git-svn-id: http://skia.googlecode.com/svn/trunk@11153 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-09 14:20:55 +00:00
reed@google.com
ef0e3190d3 move decision to smash invmatrix into unit-space (for faster repeat/mirror to after the call to possiblyScaleImage(), so we don't confuse that code with a munged matrix. Fixes the scaled_tilemodes gm for HQ
BUG=
R=humper@google.com

Review URL: https://codereview.chromium.org/23470005

git-svn-id: http://skia.googlecode.com/svn/trunk@11152 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-09 13:42:39 +00:00
commit-bot@chromium.org
a4de8c257e Remove GrRefCnt.h in favor of SkRefCnt.h
This removes GrRefCnt.h with all its tyepdefs and #defines and just switch them
to the Sk* equivalents.

GrSafeSetNull was promoted to SkSafeSetNull in SkRefCnt.h.

BUG=None
TEST=none, no functional changes.
R=bsalomon@google.com, robertphillips@google.com

Author: tfarina@chromium.org

Review URL: https://chromiumcodereview.appspot.com/23904003

git-svn-id: http://skia.googlecode.com/svn/trunk@11151 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-09 13:38:37 +00:00
bungeman@google.com
53cbb0baac Return canonical logfont size to 64.
This is to fix crbug/277301. With skia:r9057 the canonical logfont size
was set to 2048 in an attempt to get better font metrics. The font size
is now being handled in a cleaner way, so this motivation no longer
exists. However, when the logfont size is large GDI will substitute a
vector font for a bitmap font. This results in incorrect results for
bitmap fonts as they are no longer properly detected by the typeface. 


git-svn-id: http://skia.googlecode.com/svn/trunk@11145 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-08 19:36:58 +00:00
skia.committer@gmail.com
b3ec29d2d8 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@11143 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-07 07:01:16 +00:00
commit-bot@chromium.org
1acc3d7cc2 Replace uses of GR_DEBUGCODE by SkDEBUGCODE.
BUG=None
TEST=none, no functional changes.
R=bsalomon@google.com, robertphillips@google.com

Author: tfarina@chromium.org

Review URL: https://chromiumcodereview.appspot.com/23703010

git-svn-id: http://skia.googlecode.com/svn/trunk@11142 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-06 23:13:05 +00:00
commit-bot@chromium.org
b57a30d8f5 Remove dead code from libwebp image decoder
R=scroggo@google.com, markkilgard@gmail.com

Author: bsalomon@google.com

Review URL: https://chromiumcodereview.appspot.com/23480043

git-svn-id: http://skia.googlecode.com/svn/trunk@11141 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-06 21:46:30 +00:00
commit-bot@chromium.org
a91f031653 Add a requiresVertexShader method to GrGLEffect
Adds requiresVertexShader to GrGLEffect and updates the necessary
effects to override it and return true. Also reworks GrGLProgram
and GrGLShaderBuilder so the program creates all the GL effects
at the beginning, and determines if it needs a vertex shader before
creating the shader builder.

R=bsalomon@google.com

Author: cdalton@nvidia.com

Review URL: https://chromiumcodereview.appspot.com/23471008

git-svn-id: http://skia.googlecode.com/svn/trunk@11140 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-06 20:19:56 +00:00
bsalomon@google.com
e65d76f0fc Remove coverage msaa func from android grglinterface setup
git-svn-id: http://skia.googlecode.com/svn/trunk@11139 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-06 20:08:50 +00:00
commit-bot@chromium.org
040fd8f567 Rip out CSAA support
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://chromiumcodereview.appspot.com/23882009

git-svn-id: http://skia.googlecode.com/svn/trunk@11138 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-06 20:00:41 +00:00
commit-bot@chromium.org
96a7a9623f Fix for aliasing in device-independent ovals on Nexus 10.
Switch to using two attributes so that dFdx and dFdy generate valid results.

R=robertphillips@google.com

Author: jvanverth@google.com

Review URL: https://chromiumcodereview.appspot.com/23992005

git-svn-id: http://skia.googlecode.com/svn/trunk@11137 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-06 19:46:48 +00:00
commit-bot@chromium.org
1e627276c5 Fallback to GLES context when GL context setup fails at any stage.
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://chromiumcodereview.appspot.com/23902015

git-svn-id: http://skia.googlecode.com/svn/trunk@11135 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-06 18:57:14 +00:00
djsollen@google.com
6d2fef9834 Update the freetype backed fonthost to keep the style and fixed width attributes for a font stream.
This fixes a regression in Android when switching from FontHost_android

R=reed@google.com

Review URL: https://codereview.chromium.org/23966003

git-svn-id: http://skia.googlecode.com/svn/trunk@11134 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-06 18:00:04 +00:00
jvanverth@google.com
bfe2b9d3a2 Move oval and rect renderer includes to private interface
R=bsalomon@google.com, robertphillips@google.com

Review URL: https://codereview.chromium.org/23513016

git-svn-id: http://skia.googlecode.com/svn/trunk@11132 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-06 16:57:29 +00:00
commit-bot@chromium.org
91a798f121 alpha threshold bitmap shader
Committed: http://code.google.com/p/skia/source/detail?r=11122

R=reed@google.com

Author: bsalomon@google.com

Review URL: https://chromiumcodereview.appspot.com/23707019

git-svn-id: http://skia.googlecode.com/svn/trunk@11131 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-06 15:31:06 +00:00
commit-bot@chromium.org
04c500fd75 Update to allow packed depth-stencil on ES3
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://chromiumcodereview.appspot.com/22880023

git-svn-id: http://skia.googlecode.com/svn/trunk@11130 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-06 15:28:01 +00:00
robertphillips@google.com
b7061176c7 Push sigma-based blur interface into our GMs/benches/tests/samplecode
https://codereview.chromium.org/23701006/



git-svn-id: http://skia.googlecode.com/svn/trunk@11129 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-06 14:16:12 +00:00
djsollen@google.com
b27eba7c28 fix regression in fallback chain where we don't account for the original font style.
This CL also enforces that the language and variant are the same for all fonts
within a given fallback family.

R=reed@google.com

Review URL: https://codereview.chromium.org/23670009

git-svn-id: http://skia.googlecode.com/svn/trunk@11128 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-06 12:59:50 +00:00
reed@google.com
e15d9ecef8 move platformConvolutionProcs() call to right before we need it
git-svn-id: http://skia.googlecode.com/svn/trunk@11127 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-06 12:57:45 +00:00
skia.committer@gmail.com
6fc1b49989 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@11126 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-06 07:01:45 +00:00
commit-bot@chromium.org
a8e5a06f69 Add support for ES3 MSAA.
R=robertphillips@google.com, jvanverth@google.com

Author: bsalomon@google.com

Review URL: https://chromiumcodereview.appspot.com/23404002

git-svn-id: http://skia.googlecode.com/svn/trunk@11124 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-05 23:44:09 +00:00
bsalomon@google.com
67db510c9c Revert "alpha threshold bitmap shader"
This reverts commit r11122.

git-svn-id: http://skia.googlecode.com/svn/trunk@11123 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-05 22:48:05 +00:00
commit-bot@chromium.org
4ec4cf93b7 alpha threshold bitmap shader
R=reed@google.com

Author: bsalomon@google.com

Review URL: https://chromiumcodereview.appspot.com/23707019

git-svn-id: http://skia.googlecode.com/svn/trunk@11122 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-05 21:54:04 +00:00
reed@google.com
48e926044c add SkConvolutionProcs* to the none platformConvolutionProcs() signature
git-svn-id: http://skia.googlecode.com/svn/trunk@11120 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-05 20:51:43 +00:00
reed@google.com
fed04b3431 remove fConvolutionProcs from State, and just use it locally
BUG=
R=humper@google.com

Review URL: https://codereview.chromium.org/23796005

git-svn-id: http://skia.googlecode.com/svn/trunk@11118 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-05 20:31:17 +00:00
vandebo@chromium.org
938ea62176 [PDF] Rewind the font stream if font subsetting fails.
R=edisonn@google.com

Review URL: https://codereview.chromium.org/23654012

git-svn-id: http://skia.googlecode.com/svn/trunk@11116 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-05 19:44:44 +00:00
commit-bot@chromium.org
5242ed761f Add device-independent rendering of ovals, take two.
This permits GPU support for arbitrary matrices. The only exception is 
not all stroked ovals are supported, as thin ovals + fat strokes do not
produce elliptical borders.

R=bsalomon@google.com, robertphillips@google.com

Author: jvanverth@google.com

Review URL: https://chromiumcodereview.appspot.com/23701013

git-svn-id: http://skia.googlecode.com/svn/trunk@11115 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-05 19:26:51 +00:00
reed@google.com
40039a350b simplify making translate only invmatrix
BUG=
R=humper@google.com

Review URL: https://codereview.chromium.org/23875010

git-svn-id: http://skia.googlecode.com/svn/trunk@11114 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-05 19:09:57 +00:00
commit-bot@chromium.org
215a682d2d Add getGLMatrix method to MatrixState
Removes redundant code by consolidating it into a single method. No
change in functionality, this is strictly a refactoring.

R=bsalomon@google.com

Author: cdalton@nvidia.com

Review URL: https://chromiumcodereview.appspot.com/23767005

git-svn-id: http://skia.googlecode.com/svn/trunk@11112 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-05 18:28:42 +00:00
commit-bot@chromium.org
9188a15f84 Add a GrGpuGL reference for GrGLProgram/GrGLUniformManager
Updates GrGLProgram and GrGLUniformManager to keep a GrGpuGL reference
instead of one for GrGLContextInfo. No change in functionality, this
is in preparation to support fixed function GL calls for vertexless
shaders.

R=bsalomon@google.com

Author: cdalton@nvidia.com

Review URL: https://chromiumcodereview.appspot.com/23636011

git-svn-id: http://skia.googlecode.com/svn/trunk@11111 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-05 18:28:24 +00:00
commit-bot@chromium.org
cf292b7b32 Added a missing filter in SkFlattenable::InitializeFlattenables().
BUG=
R=reed@google.com, scroggo@google.com, djsollen@google.com, mtklein@google.com

Author: sugoi@chromium.org

Review URL: https://chromiumcodereview.appspot.com/23444005

git-svn-id: http://skia.googlecode.com/svn/trunk@11110 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-05 18:28:08 +00:00
commit-bot@chromium.org
a8c09668f9 ARM Skia NEON patches - 18 - Preparation work for BitmapProcState
BitmapProcState: clean a little and get rid of some asm

replacing the apparently stupid dx+dx+dx leads to more instructions
being generated.

Signed-off-by: Kévin PETIT <kevin.petit@arm.com>

BitmapProcState: move code common to C and NEON to a separate header

Signed-off-by: Kévin PETIT <kevin.petit@arm.com>

BUG=
R=djsollen@google.com

Author: kevin.petit.arm@gmail.com

Review URL: https://chromiumcodereview.appspot.com/21931002

git-svn-id: http://skia.googlecode.com/svn/trunk@11109 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-05 18:27:57 +00:00
robertphillips@google.com
3dfa4cc07c Add test to exercise extreme blur sigmas
https://codereview.chromium.org/23530039/



git-svn-id: http://skia.googlecode.com/svn/trunk@11099 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-05 16:39:03 +00:00
skia.committer@gmail.com
c3723db387 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@11092 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-05 07:01:19 +00:00
humper@google.com
d1af237d7d fix the onIsEqual method on the new bicubic effect to consider the texture accesses as well as the textures
git-svn-id: http://skia.googlecode.com/svn/trunk@11090 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-04 20:32:58 +00:00
humper@google.com
30df03ce78 forgot to guard GPU includes when SK_SUPPORT_GPU not defined
git-svn-id: http://skia.googlecode.com/svn/trunk@11089 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-04 19:57:11 +00:00
bsalomon@google.com
08bc50854b Fix ES2 context init.
R=robertphillips@google.com

Review URL: https://codereview.chromium.org/23534045

git-svn-id: http://skia.googlecode.com/svn/trunk@11088 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-04 19:32:14 +00:00
humper@google.com
3aad3b01af add support for high quality image filtering on the GPU
R=bsalomon@google.com, reed@google.com

Review URL: https://codereview.chromium.org/23779003

git-svn-id: http://skia.googlecode.com/svn/trunk@11087 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-04 19:23:53 +00:00
djsollen@google.com
19bcf6e807 fix broken clang build
R=mtklein@google.com

Review URL: https://codereview.chromium.org/23724014

git-svn-id: http://skia.googlecode.com/svn/trunk@11084 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-04 17:35:39 +00:00
mtklein@google.com
bd6343b1d6 Rewrite SkTRegistry to take any trivially-copyable type.
Obviously these are all currently function pointers of type T(*)(P) for various
T and P.  In bench refactoring, I'm trying to register a function pointer of
type T(*)(), which can't be done as is (passing P=void doesn't work).  This
also lets us register things like primitives, which is conceivable useful.

BUG=
R=reed@google.com, scroggo@google.com

Review URL: https://codereview.chromium.org/23453031

git-svn-id: http://skia.googlecode.com/svn/trunk@11082 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-04 17:20:18 +00:00
djsollen@google.com
339e79fbea Add SkCanvasStack and update the Canvas utilities to use it.
BUG=
R=reed@google.com

Review URL: https://codereview.chromium.org/23865004

git-svn-id: http://skia.googlecode.com/svn/trunk@11081 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-04 17:16:00 +00:00
jvanverth@google.com
059a5a339b Reverting r11075.
git-svn-id: http://skia.googlecode.com/svn/trunk@11080 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-04 16:40:37 +00:00
commit-bot@chromium.org
97f74abcbc Add device-independent GPU rendering of ovals.
This permits GPU support for arbitrary matrices. The only exception is not all stroked ovals are supported, as thin ovals and fat strokes do not produce ellipses.

R=robertphillips@google.com, bsalomon@google.com

Author: jvanverth@google.com

Review URL: https://chromiumcodereview.appspot.com/23719004

git-svn-id: http://skia.googlecode.com/svn/trunk@11075 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-04 14:14:17 +00:00
skia.committer@gmail.com
85092f05c4 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@11071 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-04 07:01:39 +00:00
commit-bot@chromium.org
106655efdf Fix convex path renderer bounds computation
R=jvanverth@google.com

Author: bsalomon@google.com

Review URL: https://chromiumcodereview.appspot.com/23905005

git-svn-id: http://skia.googlecode.com/svn/trunk@11069 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-03 21:28:55 +00:00
jvanverth@google.com
25f72ed034 Fix Matrix44Test and double-to-float conversion in SVD code
git-svn-id: http://skia.googlecode.com/svn/trunk@11067 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-03 19:46:16 +00:00
commit-bot@chromium.org
5b2e2640ed Revise SVD code to remove arctangents.
Also added bench for timing matrix decomposition.

R=reed@google.com

Author: jvanverth@google.com

Review URL: https://chromiumcodereview.appspot.com/23596006

git-svn-id: http://skia.googlecode.com/svn/trunk@11066 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-03 19:08:14 +00:00
mtklein@google.com
8b4ba63735 Fix bug in SkWriter32.
If you give SkWriter32 external storage but that external storage is too small
for the first reservation you make, you'll hit an assert in debug mode.

I think the answer is to simply remove the SkASSERT.  Added a test.

BUG=
R=reed@google.com

Review URL: https://codereview.chromium.org/23646007

git-svn-id: http://skia.googlecode.com/svn/trunk@11062 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-03 18:07:01 +00:00
commit-bot@chromium.org
f5897f83e6 Add OpenGL 4.4 support to SkNativeGLContext and GrGLCreateNativeInterface android versions.
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://chromiumcodereview.appspot.com/23702015

git-svn-id: http://skia.googlecode.com/svn/trunk@11060 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-03 17:50:50 +00:00
robertphillips@google.com
112a23e0fa Hamfisted "fix" for pinterest blur crash
https://codereview.chromium.org/23819014/



git-svn-id: http://skia.googlecode.com/svn/trunk@11057 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-03 17:17:43 +00:00
commit-bot@chromium.org
b8bd6cbbcd Fix bounds computation in GrAAHairlineRenderer
R=robertphillips@google.com, jvanverth@google.com

Author: bsalomon@google.com

Review URL: https://chromiumcodereview.appspot.com/23684008

git-svn-id: http://skia.googlecode.com/svn/trunk@11054 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-03 14:56:17 +00:00
skia.committer@gmail.com
e0c170f7bb Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@11049 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-31 07:01:28 +00:00
commit-bot@chromium.org
5a02cb48fd Isolate VertexBuilder from GrGLShaderBuilder
Adds a nested class to GrGLShaderBuilder called VertexBuilder. Now
GrGLShaderBuilder can only modify the fragment shader directly. In
order to modify the vertex shader, the client code needs to call
getVertexShader, which will return null for vertex-less shaders.

R=bsalomon@google.com

Author: cdalton@nvidia.com

Review URL: https://chromiumcodereview.appspot.com/23754003

git-svn-id: http://skia.googlecode.com/svn/trunk@11046 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-30 20:17:31 +00:00
commit-bot@chromium.org
74a3a2135c Rename ShaderType enum to ShaderVisibility
Renames ShaderType in GrGLShaderBuilder to ShaderVisibility. It is now
used solely as a bitfield. Methods that previously accepted a single
ShaderType value are split into separate calls:

 - getShader -> vsGetShader, gsGetShader, fsGetShader
 - emiitFunction -> fsEmitFunction
 - appendTextureLookup -> fsAppendTextureLookup

No change in functionality. This is a refactoring to allow us to
separate the vertex/geometry and fragment parts of GrGLShaderBuilder.

R=bsalomon@google.com

Author: cdalton@nvidia.com

Review URL: https://chromiumcodereview.appspot.com/23826002

git-svn-id: http://skia.googlecode.com/svn/trunk@11044 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-30 19:43:59 +00:00
commit-bot@chromium.org
3628ad9f13 Add bit to GrGLCaps for fixed function support
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://chromiumcodereview.appspot.com/23587014

git-svn-id: http://skia.googlecode.com/svn/trunk@11043 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-30 19:43:47 +00:00
bsalomon@google.com
f714d513a6 Fix invalid enum error when checking for core profile in GrGLInterface::validate()
R=robertphillips@google.com

Review URL: https://codereview.chromium.org/23691022

git-svn-id: http://skia.googlecode.com/svn/trunk@11040 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-30 18:25:21 +00:00