Commit Graph

16395 Commits

Author SHA1 Message Date
reed
cff10b21a9 change colorfilter to return an array of frag processors
BUG=skia:

Review URL: https://codereview.chromium.org/973593002
2015-03-03 06:41:45 -08:00
borenet
3ebb16df93 Run gyp with --no-parallel -G config=$(BUILDTYPE)
BUG=skia:3287

Review URL: https://codereview.chromium.org/972943003
2015-03-03 06:05:56 -08:00
mtklein
7ab4277185 Don't guarantee any particular color order for SkPMFloat. Hide fColor.
Also add a little note that get() may incidentally clamp.

BUG=skia:

Review URL: https://codereview.chromium.org/973553004
2015-03-02 14:07:14 -08:00
reed
8a8d841d48 add virtuals to optimize composing colorfilters
BUG=skia:

Review URL: https://codereview.chromium.org/968993004
2015-03-02 13:46:03 -08:00
bungeman
aae309111b Draw glyphs on Mac without font transform.
The transform on the font is increasingly going untested on Mac.
As a result, only use the transform on the context when possible.
This fixes color emoji on OSX10.2.

Review URL: https://codereview.chromium.org/975493002
2015-03-02 13:43:27 -08:00
caryclark
b421650e13 add double precision convex test
BUG=389050

Review URL: https://codereview.chromium.org/975523002
2015-03-02 13:02:34 -08:00
scroggo
ee1a726aed Revert of Add SkCodec, including PNG implementation. (patchset #24 id:460001 of https://codereview.chromium.org/930283002/)
Reason for revert:
Breaking windows bots all over the place :(

Original issue's description:
> Add SkCodec, including PNG implementation.
>
> DM:
> Add a flag to use SkCodec instead of SkImageDecoder.
>
> SkCodec:
> Base class for codecs, allowing creation from an SkStream or an SkData.
> An SkCodec, on creation, knows properties of the data like its width and height. Further calls can be used to generate the image.
> TODO: Add scanline iterator
>
> SkPngCodec:
> New decoder for png. Wraps libpng. The code has been repurposed from SkImageDecoder_libpng.
> TODO: Handle other destination colortypes
> TODO: Substitute the transpose color
> TODO: Allow silencing warnings
> TODO: Use RGB instead of filler?
> TODO: sRGB
>
> SkSwizzler:
> Simplified version of SkScaledSampler. Unlike the sampler, this object does no sampling.
> TODO: Implement other swizzles.
>
> BUG=skia:3257
>
> Committed: https://skia.googlesource.com/skia/+/ca358852b4fed656d11107b2aaf28318a4518b49

TBR=reed@google.com,djsollen@google.com,msarett@google.com,mtklein@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:3257

Review URL: https://codereview.chromium.org/972743003
2015-03-02 12:31:12 -08:00
scroggo
ca358852b4 Add SkCodec, including PNG implementation.
DM:
Add a flag to use SkCodec instead of SkImageDecoder.

SkCodec:
Base class for codecs, allowing creation from an SkStream or an SkData.
An SkCodec, on creation, knows properties of the data like its width and height. Further calls can be used to generate the image.
TODO: Add scanline iterator

SkPngCodec:
New decoder for png. Wraps libpng. The code has been repurposed from SkImageDecoder_libpng.
TODO: Handle other destination colortypes
TODO: Substitute the transpose color
TODO: Allow silencing warnings
TODO: Use RGB instead of filler?
TODO: sRGB

SkSwizzler:
Simplified version of SkScaledSampler. Unlike the sampler, this object does no sampling.
TODO: Implement other swizzles.

BUG=skia:3257

Review URL: https://codereview.chromium.org/930283002
2015-03-02 12:23:48 -08:00
joshualitt
d0f5457c5e valgrind fix
TBR=
BUG=skia:

Review URL: https://codereview.chromium.org/968873006
2015-03-02 12:00:52 -08:00
hcm
281bf5249c Add testing section of docs. Consolidated trybot/buildbot section
BUG=skia:

Preview link: http://skiadocs.com:8000/dev/testing/?cl=954523004

Review URL: https://codereview.chromium.org/954523004
2015-03-02 11:25:25 -08:00
joshualitt
cc1ac86275 small bug fix for batch asserts
BUG=skia:

Review URL: https://codereview.chromium.org/969043002
2015-03-02 11:23:07 -08:00
robertphillips
8f9e81684f Minor cleanup of GrInOrderDrawBuffer
Review URL: https://codereview.chromium.org/969813003
2015-03-02 10:12:17 -08:00
caryclark
5ccef57790 treat backwards quads as not convex
If a quad, cubic, or conic goes back on itself, assume it's not convex.
In a future CL, we could check to see if the curve is linear so that
linear curves are treated the same as lines.

BUG=skia:3469

Review URL: https://codereview.chromium.org/971773002
2015-03-02 10:07:56 -08:00
mtklein
341c808070 Revert of DM: run pdf config on the bots. (patchset #1 id:1 of https://codereview.chromium.org/968953002/)
Reason for revert:
Will try this again after investigating OOMs on Xoom, N5 (i.e. the bots that actually run non-GPU work like PDF).

Original issue's description:
> DM: run pdf config on the bots.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/b12f88152c87e006d04fade4f106669cd9e44677

TBR=stephana@google.com,halcanary@google.com,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/959123003
2015-03-02 09:51:44 -08:00
senorblanco
a2b6d28755 Fix for out-of-bounds intersection (found by fuzzer).
Sometimes, the intersection returned by check_intersection() is
out-of-bounds for both edges (above both tops or below both bottoms)
due to floating-point inaccuracy. This causes split_edge() to create a
tiny negative-length edge on one side (which would then assert).
Although we could safely remove this assert and allow the negative
length edge to be removed, it's faster/safer to simply avoid its
creation in the first place by adjusting one edge to the other edge's
endpoint.

Added a new unit test to exercise this case.

Review URL: https://codereview.chromium.org/968993002
2015-03-02 09:34:13 -08:00
bungeman
b3310c2221 Set the ttcIndex on Mac onOpenStream.
Since on Mac onOpenStream always creates a new stream of a
non-collection font, be sure the out ttcIndex is always set to 0.

Review URL: https://codereview.chromium.org/975473002
2015-03-02 09:05:37 -08:00
mtklein
b12f88152c DM: run pdf config on the bots.
BUG=skia:

Review URL: https://codereview.chromium.org/968953002
2015-03-02 08:32:15 -08:00
huangs
9345eef3a0 [Skia] Add SK_API to SkParse.
For https://codereview.chromium.org/924063003/ , we would like to use the
SkParse::FindColor().  Adding SK_API to SkParse is necessary for component
build to work.

BUG=skia:

Review URL: https://codereview.chromium.org/971623003
2015-03-02 07:51:17 -08:00
robertphillips
7f966f4cf8 Increase GrInOrderDrawBuffer's encapsulation of trace markers
Greg - I think this is mainly you
Joshua - I did make a small batching change in onDrawBatch

Review URL: https://codereview.chromium.org/963183002
2015-03-02 06:40:12 -08:00
scroggo
3da9181cd5 On windows, build zlib as a static library.
Partially in preparation for building libpng on Windows.

Also, this makes us consistent across platforms for PDF.

Uses the version of zlib checked into the Chromium tree.

Remove miniz, which is replaced by zlib.

Review URL: https://codereview.chromium.org/966963002
2015-03-02 06:24:15 -08:00
reed
db873d8677 add compose-colorfilter
now with serialization registration

This reverts commit 5bd055c038.

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/970753002
2015-03-01 19:53:47 -08:00
reed
5bd055c038 Revert of add compose-colorfilter (patchset #2 id:20001 of https://codereview.chromium.org/969673002/)
Reason for revert:
need to register subclass for serialization

Original issue's description:
> add compose-colorfilter
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/b675a73c1f3f4a433c4893199a0bd11126dfe130

TBR=fmalita@chromium.org,bsalomon@google.com,reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/971653002
2015-03-01 19:16:38 -08:00
reed
b675a73c1f add compose-colorfilter
BUG=skia:

Review URL: https://codereview.chromium.org/969673002
2015-03-01 18:00:47 -08:00
robertphillips
73165bd417 Revert of Improve tracking of bound FBOs in GrGLGpu. (patchset #10 id:180001 of https://codereview.chromium.org/949263002/)
Reason for revert:
Experimentally reverting to see if this is the cause of the mac_chromium_rel_ng roll-blocking failures.

Original issue's description:
> Improve tracking of bound FBOs in GrGLGpu.
>
> Committed: https://skia.googlesource.com/skia/+/d2ad8eb5801e2c8c0fa544a6a776bb46eedde2a0
>
> Committed: https://skia.googlesource.com/skia/+/b2af2d8b83ca4774c3b3bb1e49bc72605faa9589
>
> Committed: https://skia.googlesource.com/skia/+/0b70b86a7e9fda52ee7ebc1b9897eeaa09b9abef

TBR=egdaniel@google.com,bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/970613003
2015-03-01 07:38:15 -08:00
halcanary
3d32d50364 PDF: Switch some unit tests to higher level API.
Also, clean up some headers.

Review URL: https://codereview.chromium.org/968683002
2015-03-01 06:55:20 -08:00
skia.buildbots
9f2f3493f6 Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=

Review URL: https://codereview.chromium.org/968003002
2015-03-01 01:11:12 -08:00
bsalomon
bdff1fc494 Add msaa runs to nanobench
TBR=mtklein@google.com

Review URL: https://codereview.chromium.org/964053002
2015-02-28 16:56:31 -08:00
halcanary
1139889eb3 Doc: update dev/design/pdftheory with new function call
NOTRY=true
TBR=

Review URL: https://codereview.chromium.org/967873002
2015-02-28 08:04:33 -08:00
bsalomon
0b70b86a7e Improve tracking of bound FBOs in GrGLGpu.
Committed: https://skia.googlesource.com/skia/+/d2ad8eb5801e2c8c0fa544a6a776bb46eedde2a0

Committed: https://skia.googlesource.com/skia/+/b2af2d8b83ca4774c3b3bb1e49bc72605faa9589

Review URL: https://codereview.chromium.org/949263002
2015-02-27 17:10:02 -08:00
bsalomon
bb8bca36b7 Revert of Improve tracking of bound FBOs in GrGLGpu. (patchset #8 id:140001 of https://codereview.chromium.org/949263002/)
Reason for revert:
breaking things

Original issue's description:
> Improve tracking of bound FBOs in GrGLGpu.
>
> Committed: https://skia.googlesource.com/skia/+/d2ad8eb5801e2c8c0fa544a6a776bb46eedde2a0
>
> Committed: https://skia.googlesource.com/skia/+/b2af2d8b83ca4774c3b3bb1e49bc72605faa9589

TBR=egdaniel@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/963973002
2015-02-27 16:28:42 -08:00
bsalomon
b2af2d8b83 Improve tracking of bound FBOs in GrGLGpu.
Committed: https://skia.googlesource.com/skia/+/d2ad8eb5801e2c8c0fa544a6a776bb46eedde2a0

Review URL: https://codereview.chromium.org/949263002
2015-02-27 15:17:31 -08:00
halcanary
394ce76992 Flate: skia_alloc_func works on both miniz and zlib
Also, Revert "Revert of Flate: fix valgrind miniz
Conditional-jump-or-move-depends... error"

This reverts commit 6dc4ef01a6.

The alloc functions really do have different types depending
on zlib implementation.

CQ_INCLUDE_TRYBOTS=client.skia:Linux Builder-Trybot

Review URL: https://codereview.chromium.org/963853002
2015-02-27 13:09:07 -08:00
joshualitt
d4c7d55594 nexus 9 fix
TBR=
BUG=skia:

Review URL: https://codereview.chromium.org/966773004
2015-02-27 13:00:56 -08:00
halcanary
2e3f9d8a93 PDF: Canon now owns a reference to all interned objects
Add SkPDFCanon::reset function to unref all objects.

No longer possible to remove object from canon

Motivation: this doesn't change these object's lifetime, (they will
still be fully unrefed when SkDocument::close() is called, but we no
longer have to remove them from the array when their destructor is
called.

Review URL: https://codereview.chromium.org/966863002
2015-02-27 12:41:03 -08:00
joshualitt
4f569beac7 Dash batch
BUG=skia:

Review URL: https://codereview.chromium.org/925673002
2015-02-27 11:41:50 -08:00
schenney
6dc4ef01a6 Revert of Flate: fix valgrind miniz Conditional-jump-or-move-depends... error (patchset #2 id:20001 of https://codereview.chromium.org/964933003/)
Reason for revert:
Breaks the chrome build.

../../third_party/skia/src/core/SkFlate.cpp:37:22: error: assigning to 'MOZ_Z_alloc_func' (aka 'MOZ_Z_voidpf (*)(MOZ_Z_voidpf, MOZ_Z_uInt, MOZ_Z_uInt)') from incompatible type 'void *(*)(void *, size_t, size_t)': type mismatch at 2nd parameter ('MOZ_Z_uInt' (aka 'unsigned int') vs 'size_t' (aka 'unsigned long'))
    flateData.zalloc = &skia_alloc_func;
                     ^ ~~~~~~~~~~~~~~~~
../../third_party/skia/src/core/SkFlate.cpp:180:28: error: assigning to 'MOZ_Z_alloc_func' (aka 'MOZ_Z_voidpf (*)(MOZ_Z_voidpf, MOZ_Z_uInt, MOZ_Z_uInt)') from incompatible type 'void *(*)(void *, size_t, size_t)': type mismatch at 2nd parameter ('MOZ_Z_uInt' (aka 'unsigned int') vs 'size_t' (aka 'unsigned long'))
    fImpl->fZStream.zalloc = &skia_alloc_func;

Original issue's description:
> Flate: fix valgrind miniz Conditional-jump-or-move-depends... error
>
> Committed: https://skia.googlesource.com/skia/+/e0638f8ecfb609c89cab1aa8b498ad3f368b89d3

TBR=mtklein@google.com,halcanary@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/964953002
2015-02-27 11:39:58 -08:00
halcanary
e0638f8ecf Flate: fix valgrind miniz Conditional-jump-or-move-depends... error
Review URL: https://codereview.chromium.org/964933003
2015-02-27 10:39:28 -08:00
reed
44977485bd Revert of Revert of replace kIgnore_SkAlphaType with kUnknown_SkAlphaType (patchset #1 id:1 of https://codereview.chromium.org/966753002/)
Reason for revert:
Android has been updated, so we can re-land this.

Original issue's description:
> Revert of replace kIgnore_SkAlphaType with kUnknown_SkAlphaType (patchset #3 id:40001 of https://codereview.chromium.org/964613002/)
>
> Reason for revert:
> This breaks Android framework build. See
>
> 7f0fcdbf3c/logs/build_error.log
>
> We need to stop them from using kIgnore before we can reland this.
>
> Original issue's description:
> > replace kIgnore_SkAlphaType with kUnknown_SkAlphaType
> >
> > BUG=skia:
> > TBR=
> >
> > Committed: https://skia.googlesource.com/skia/+/1c8aeeaebce9675197be31bd769e8ffa2531bf86
>
> TBR=reed@google.com,reed@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/574290f61a47bd1ce1f9e2d941533bda9c8f03fe

TBR=reed@chromium.org,scroggo@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/966853002
2015-02-27 10:23:00 -08:00
bsalomon
5abf584bcc Test msaa on bots using dm. 4 samples for Android, 16 elsewhere
Review URL: https://codereview.chromium.org/958033004
2015-02-27 10:13:36 -08:00
joshualitt
0823bfae15 Context batches
BUG=skia:

Review URL: https://codereview.chromium.org/913253003
2015-02-27 10:06:15 -08:00
robertphillips
9888b22fc9 Decrease GrInOrderDrawBuffer::Cmd's reliance on GrInOrderDrawBuffer
Review URL: https://codereview.chromium.org/940533003
2015-02-27 08:50:34 -08:00
fmalita
cf808aa862 Clang warnings for SkFontHost_FreeType_common.cpp
Signed/unsigned comparison warnings while attempting to build with Clang
on Linux.

R=bungeman@google.com,joshualitt@chromium.org

Review URL: https://codereview.chromium.org/961103002
2015-02-27 08:46:39 -08:00
robertphillips
a9061de9ff Add rewind capability to SkChunkAlloc
Split off from https://codereview.chromium.org/940533003/ (Decrease GrInOrderDrawBuffer::Cmd's reliance on GrInOrderDrawBuffer)

Review URL: https://codereview.chromium.org/967553003
2015-02-27 08:31:57 -08:00
fmalita
827da23c71 [SkSVGDevice] drawBitmap* support
Also fix a clip transform issue: clips are tracked in device space,
but if applied directly to leaf elements they are also subject to local
transforms ("transform='...'"). Instead, apply via <g> wrapper elements.

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

Review URL: https://codereview.chromium.org/959883003
2015-02-27 07:44:47 -08:00
herb
e70de9e4f0 Make the glyph array entries inline.
Perf Reports
bin/c --match nytimes --config 8888
desk_nytimes.skp_1_mpd	1.41ms -> 1.38ms	0.98x
desk_nytimes.skp_1	1.94ms -> 1.87ms	0.97x

bin/c --match nytimes --config gpu
desk_nytimes.skp_1_mpd	1.63ms -> 1.59ms	0.97x
desk_nytimes.skp_1	1.56ms ->  1.5ms	0.97x

Here are results from mac instruments:
--match nytimes --config gpu --samples 10000 --skps /Users/herb/src/skia/skps

Inline:
Total Samples	Running Time	Self		Symbol Name
94335	94335.0ms   98.3%	0.0	 	 start
2365	2365.0ms    2.4%	2365.0	 	SkGlyphCache::getGlyphIDMetrics(unsigned short, int, int)
975	975.0ms    1.0%	975.0	 	SkGlyphCache::lookupMetrics(unsigned int, SkGlyphCache::MetricsType)

Clean:
Total Samples	Running Time	Self		Symbol Name
96833	96833.0ms   97.3%	0.0	 	 start
3418	3418.0ms    3.4%	3418.0	 	SkGlyphCache::getGlyphIDMetrics(unsigned short, int, int)
1961	1961.0ms    1.9%	1961.0	 	SkGlyphCache::lookupMetrics(unsigned int, SkGlyphCache::MetricsType)

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/4c08f16b252a55e438a61f26e5581394ed177da1

Committed: https://skia.googlesource.com/skia/+/b4c29ac173e6f8844327338687248b98bc94132d

Review URL: https://codereview.chromium.org/885903002
2015-02-27 07:22:48 -08:00
scroggo
574290f61a Revert of replace kIgnore_SkAlphaType with kUnknown_SkAlphaType (patchset #3 id:40001 of https://codereview.chromium.org/964613002/)
Reason for revert:
This breaks Android framework build. See

7f0fcdbf3c/logs/build_error.log

We need to stop them from using kIgnore before we can reland this.

Original issue's description:
> replace kIgnore_SkAlphaType with kUnknown_SkAlphaType
>
> BUG=skia:
> TBR=
>
> Committed: https://skia.googlesource.com/skia/+/1c8aeeaebce9675197be31bd769e8ffa2531bf86

TBR=reed@google.com,reed@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/966753002
2015-02-27 06:21:58 -08:00
reed
1c8aeeaebc replace kIgnore_SkAlphaType with kUnknown_SkAlphaType
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/964613002
2015-02-27 06:00:33 -08:00
brucedawson
71d7f7f002 Initialize three locals to avoid the risk of uninitialized reads.
/analyze recently reported two new warnings about reading from
potentially uninitialized local variables:

src\third_party\skia\src\gpu\grclipmaskmanager.cpp(290) :
warning C6001: Using uninitialized memory 'requiresAA'.
src\third_party\skia\src\gpu\grclipmaskmanager.cpp(336) :
warning C6001: Using uninitialized memory 'genID'.

It is not clear whether the uninitialized reads can actually happen,
but the guarantees seem sufficiently non-obvious that the prudent thing
to do to guarantee future stability is to initialized them -- it's
cheap. I also initialized initialState because it seemed to fall in
the same class, despite there being no warning for it.

BUG=427616

Review URL: https://codereview.chromium.org/957133002
2015-02-26 13:28:53 -08:00
mtklein
e6cf9cb685 miniz support in SkFlate / PDF
- Adds miniz.c v115_r4 (latest release) to third_party.
   - Merges SkDeflateWStream into SkFlate so including "miniz.c" links
     without duplicating symbols.

The only interesting code change I've made is to remove the line
     fImpl->fZStream.data_type = Z_BINARY;
from SkDeflateWStream::SkDeflateWStream().  miniz doesn't have Z_BINARY
defined, and as far as I can tell, both zlib and miniz ignore data_type.

We should be able to swap skflate.gyp's dependency between zlib.gyp:zlib and
zlib.gyp:miniz at will (except of course on Windows) if we're interested in
zlib itself.  I've left android framework on its own zlib.  I think this all
means we can stop defining SK_NO_FLATE on Windows.

I'll leave the possible cleanup of SK_NO_FLATE itself for another time.  Might
be we always want to keep this dependency optional.

CQ_EXTRA_TRYBOTS=client.skia:Test-Win8-ShuttleA-HD7770-x86-Debug-Trybot

BUG=skia:

Review URL: https://codereview.chromium.org/957323003
2015-02-26 13:25:05 -08:00
bsalomon
6be6f7cb66 Cleanup in GrPipelineBuilder
Review URL: https://codereview.chromium.org/956363003
2015-02-26 13:05:21 -08:00