Commit Graph

9516 Commits

Author SHA1 Message Date
bungeman@google.com
83ba103ff3 Fix warnings as errors from r11960.
git-svn-id: http://skia.googlecode.com/svn/trunk@11961 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-25 13:39:42 +00:00
bungeman@google.com
0fc8f1f822 Disable charsToGlyphs test until Mac can pass.
git-svn-id: http://skia.googlecode.com/svn/trunk@11960 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-25 12:32:16 +00:00
skia.committer@gmail.com
7dc4fd0313 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@11959 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-25 07:02:14 +00:00
bungeman@google.com
b662e0a33f Revert unwanted change to verttext.cpp.
git-svn-id: http://skia.googlecode.com/svn/trunk@11958 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-24 22:38:48 +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
edf00c7a59 Reduce bitmap sizes in verylargebitmap GM to not crash on windows
R=scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11954 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-24 20:55:14 +00:00
bsalomon@google.com
79bf912051 Rebaseline strokes_round and strokes3 on SGX devices
BUG=skia:1752

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11953 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-24 20:03:27 +00:00
bensong@google.com
4a28f598ec Changes bench_graph_svg.py test to check_bench_regressions.py test; deletes deprecated chunks in syn_bucket_subdir.
Review URL: https://codereview.chromium.org/27377002

git-svn-id: http://skia.googlecode.com/svn/trunk@11952 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-24 18:08:45 +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
a34b1f8e0b DM: print cache stats after every GPU GM when GR_CACHE_STATS is set
BUG=
R=bsalomon@google.com

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11950 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-24 17:44:43 +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
vandebo@chromium.org
81c67001f2 [PDF] Rebaseline mac expectations after fixing image unpremtuliplication in r11945
Review URL: https://codereview.chromium.org/40263003

git-svn-id: http://skia.googlecode.com/svn/trunk@11948 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-24 16:40:12 +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
epoger@google.com
ad0e552fef rebaseline_server: cleanup of HTML/Javascript
No behavioral change at all.
(SkipBuildbotRuns)

R=borenet@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11946 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-24 15:38:27 +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
epoger@google.com
259a832a04 Whitespace change to trigger buildbots
git-svn-id: http://skia.googlecode.com/svn/trunk@11944 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-24 15:05:13 +00:00
epoger@google.com
97769bb9bc Add note to ignored-tests.txt
BUG=skia:1748
(SkipBuildbotRuns)

R=scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11943 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-24 14:42:19 +00:00
edisonn@google.com
a8be6d772c update pdf-mac gms, after adding duport for perspective shaders in pdf
Review URL: https://codereview.chromium.org/40313002

git-svn-id: http://skia.googlecode.com/svn/trunk@11942 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-24 14:24:59 +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
humper@google.com
0794dcd2c0 rebaseline scaled tilemodes gms on the GPU
git-svn-id: http://skia.googlecode.com/svn/trunk@11927 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-23 19:41:08 +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
epoger@google.com
eb832599b6 rebaseline_server: add tabs, and ability to submit new baselines to the server
Tabs allow the user to divide the tests into groups:
hide these for now, approve these, etc.

(SkipBuildbotRuns)

R=borenet@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11915 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-23 15:07:26 +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
sugoi@google.com
afba64434d New gm expectations for imagemagnifier
git-svn-id: http://skia.googlecode.com/svn/trunk@11911 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-22 19:42:10 +00:00
edisonn@google.com
5237b7fb0e Fix a test warning on some linux machines
R=sugoi@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11910 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-22 18:33:21 +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
commit-bot@chromium.org
8c908273bb add tests for SkDocument
R=reed@google.com, vandebo@chromium.org

Author: edisonn@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11907 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-22 14:49:03 +00:00