Commit Graph

2876 Commits

Author SHA1 Message Date
bsalomon
e25eea4b36 Use child processors to implement compose color filter.
Review URL: https://codereview.chromium.org/1368423003
2015-09-29 06:38:55 -07:00
halcanary
c56c6ef3ce SkImage::NewFromBitmap works with Index8
BUG=skia:4390

Review URL: https://codereview.chromium.org/1377473002
2015-09-28 11:55:28 -07:00
herb
e6e41a8a19 Move SkAtomics.h to private.
There are no API changes.

TBR=reed@google.com

BUG=skia:

Review URL: https://codereview.chromium.org/1369333004
2015-09-28 11:24:13 -07:00
mtklein
449d9b7e2d simplify code in SkRecords.h
- use C++11 features ({} init, move constructors) to eliminate the need
     for explicit constructors
   - collapse RECORD0...RECORD8 into just one RECORD macro
   - explicitly tag record types instead of using member detectors.

Removing member detectors makes this code significantly less fragile.

This exposes a few places where we didn't really think through what to do
with SkDrawable.  I've marked them TODO for now.

BUG=skia:

Review URL: https://codereview.chromium.org/1360943003
2015-09-28 10:33:02 -07:00
reed
c9e190ddac Revert of change pixel-serializer to support reencoding existing data (patchset #5 id:80001 of https://codereview.chromium.org/1373683003/ )
Reason for revert:
Need to somehow get access to encoders in chrome -- link error on the roll since SkImageEncoder is not built as part of chrome.

Original issue's description:
> change pixel-serializer to support reencoding existing data
>
> Trying to evolve this interface so it can
> - support rich set of backend-encoders (including ones like ETC1 that can cheaply convert to KXT
> - allow for encoding images as well as bitmaps (e.g. for picture serialization)
> - perhaps replace SkImageEncoder as an API (assuming we create a factory that returns a serializer given a format)
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/13f48dc85aa68a60da66aaf39c93d527d11d1278

TBR=scroggo@google.com,msarett@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1371983003
2015-09-28 09:58:41 -07:00
herb
0869267a7c Add cast and assignment operators to SkAtomic.
This is not really an API change.

TBR=reed@google.com

BUG=skia:

Review URL: https://codereview.chromium.org/1369333002
2015-09-28 08:59:18 -07:00
reed
13f48dc85a change pixel-serializer to support reencoding existing data
Trying to evolve this interface so it can
- support rich set of backend-encoders (including ones like ETC1 that can cheaply convert to KXT
- allow for encoding images as well as bitmaps (e.g. for picture serialization)
- perhaps replace SkImageEncoder as an API (assuming we create a factory that returns a serializer given a format)

BUG=skia:

Review URL: https://codereview.chromium.org/1373683003
2015-09-28 08:58:53 -07:00
halcanary
209c1624ad SkBlockMemoryStream: correct test in getMemoryBase().
The test "nullptr == fBlockMemory->fHead->fNext" tests that
all of the data is in one block, but it is also necessary to
test "fBlockMemory->fHead" to ensure that there is a first
block with data in it.

Review URL: https://codereview.chromium.org/1374493002
2015-09-28 07:29:39 -07:00
bsalomon
f1b7a1d828 Make skpaint->grpaint flow work for composing draws (verts and atlas)
One side effect is that the SkShader's (or implicit shader's) fragment processor is responsible for the transition from an unpremul paint color to a premul color.

Review URL: https://codereview.chromium.org/1348583002
2015-09-28 06:26:29 -07:00
reed
d114645d93 SkInstallDiscardablePixelRef is deprecated, enforce that
No functionality change, just a renaming.

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1372593002
2015-09-25 06:56:57 -07:00
Brian Salomon
89438a1dce Fix leak in ResourceCache test
Review URL: https://codereview.chromium.org/1359333004 .
2015-09-24 13:22:45 -04:00
bsalomon
c6363ef7b4 Make methods on GrGpuResource safe to call on abandoned resource
BUG=chromium:528908

Review URL: https://codereview.chromium.org/1367533004
2015-09-24 07:07:40 -07:00
bsalomon
38ddbadd00 Mangle output var in GrGLFragmentProcessor::emitChild
R=joshualitt@google.com

Review URL: https://codereview.chromium.org/1362873002
2015-09-24 06:00:00 -07:00
reed
dd42e5c05c Revert "Revert of remove unused SkCachingPixelRef (patchset #1 id:1 of https://codereview.chromium.org/1364743002/ )"
removed test for unsupported SkInstallDiscardable...

This reverts commit 60c73d5180.

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1369443002
2015-09-24 00:21:20 -07:00
caryclark
ef2e4ac234 looking for fuzz failure
These tests were isolated from their respective minimized test cases.

The tests work fine and pass path ops internal validation;
hopefully some more intensive x-san or valgrind test will help
isolate the bug.

Sheriff, please revert if it fails and I don't get to it first.

TBR=reed@google.com,halcanary@google.com
BUG=535127,535151

Review URL: https://codereview.chromium.org/1359263003
2015-09-23 18:07:51 -07:00
halcanary
f12a1673f0 SkPDF: add basic metadata support
Motivation: I want too finalize this API before working on the more
complex problem of adding XMP metadata for PDF/A.

BUG=skia:3110

Review URL: https://codereview.chromium.org/1359943003
2015-09-23 12:45:49 -07:00
benjaminwagner
60c73d5180 Revert of remove unused SkCachingPixelRef (patchset #1 id:1 of https://codereview.chromium.org/1364743002/ )
Reason for revert:
Build failure: https://uberchromegw.corp.google.com/i/client.skia.compile/builders/Build-Ubuntu-GCC-Arm7-Debug-Android_FrameworkDefs/builds/1146

Original issue's description:
> remove unused SkCachingPixelRef
>
> BUG=skia:
> TBR=
>
> Committed: https://skia.googlesource.com/skia/+/70d58b7da535e32bcac35739d11ab8367e99f224

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

Review URL: https://codereview.chromium.org/1359393004
2015-09-23 11:53:37 -07:00
reed
70d58b7da5 remove unused SkCachingPixelRef
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1364743002
2015-09-23 11:36:03 -07:00
mtklein
cc334b36de fix DM?
BUG=skia:

Review URL: https://codereview.chromium.org/1359833005
2015-09-22 11:43:53 -07:00
msarett
8ff6ca6e73 Disable dithering in libjpeg-turbo for 565 decodes
libjpeg-turbo turns on dithering by default.  When we
decode to RGBA, it uses Floyd-Steinberg dithering -
consistent with the libjpeg6b gold standard,

When we decode to 565, it uses ordered dithering.  Ordered
dithering for 565 is not part of the 6b standard (libjpeg6b
doesn't even support 565) and is causing us a number of
issues:
(1) Ordered dithering + nearest neighbor sampling is
causing checkerboard visual artifacts in some outputs.
(2) The ordered dither function in libjpeg-turbo actually
behaves differently depending on the alignment of the
memory that it decodes into.  This means that two image
decodes that should be identical may look different just
because they decode into different memory blocks.  This
was causing some diffs on Gold with the scanline_subset
test that were causing me some confusion.
(3) Maybe not the best evidence, but visually I can't tell
a difference with and without dithering (except when
nearest neighbor scaling causes the checkerboard artifact).
(4) Turning off dithering should be a more significant
performance improvement than you might expect.
libjpeg-turbo has SIMD color conversions to 565, but when
dithering is on, it defaults to scalar code.

This CL should make every jpeg decode to 565 on Gold look
slightly different.  Yay!

BUG=skia:

Review URL: https://codereview.chromium.org/1349563007
2015-09-18 12:06:04 -07:00
fmalita
3b0d532df7 Purge cached resources on SkImage destruction.
BUG=532981
R=reed@google.com,mtklein@google.com

Review URL: https://codereview.chromium.org/1352883004
2015-09-18 08:07:31 -07:00
reed
1b55a963a2 Reland of add a ClassID function to GrBatch (patchset #1 id:1 of https://codereview.chromium.org/1353043002/ )
Reason for revert:
DEPS roll seems to have landed w/o this revert, so revert it again

Original issue's description:
> Revert of add a ClassID function to GrBatch (patchset #5 id:80001 of https://codereview.chromium.org/1352813003/ )
>
> Reason for revert:
> Speculative revert to unblock DEPS roll
>
> Original issue's description:
> > add a ClassID function to GrBatch
> >
> > BUG=skia:
> >
> > Committed: https://skia.googlesource.com/skia/+/4078d529e9e199eea13456db7bf3a63a104ab5b9
> >
> > Committed: https://skia.googlesource.com/skia/+/eb44d53cf96a7eaf103a98d76079ce1f5495e343
>
> TBR=robertphillips@google.com,bsalomon@google.com,joshualitt@google.com,joshualitt@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/48e3a45ade15c52c0c1a10cb00907dd444897745

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

Review URL: https://codereview.chromium.org/1344373005
2015-09-17 20:16:13 -07:00
reed
48e3a45ade Revert of add a ClassID function to GrBatch (patchset #5 id:80001 of https://codereview.chromium.org/1352813003/ )
Reason for revert:
Speculative revert to unblock DEPS roll

Original issue's description:
> add a ClassID function to GrBatch
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/4078d529e9e199eea13456db7bf3a63a104ab5b9
>
> Committed: https://skia.googlesource.com/skia/+/eb44d53cf96a7eaf103a98d76079ce1f5495e343

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

Review URL: https://codereview.chromium.org/1353043002
2015-09-17 17:35:11 -07:00
reed
2ed7d50307 remove racy tests, as they assume the cache can't be purged behind their back
If I explicitly purge the resource-cache after every DM, these tests fail (sporadically)
.
BUG=skia:

Review URL: https://codereview.chromium.org/1350143002
2015-09-17 13:27:44 -07:00
joshualitt
eb44d53cf9 add a ClassID function to GrBatch
BUG=skia:

Committed: https://skia.googlesource.com/skia/+/4078d529e9e199eea13456db7bf3a63a104ab5b9

Review URL: https://codereview.chromium.org/1352813003
2015-09-17 11:50:57 -07:00
joshualitt
a7008403dc Revert of add a ClassID function to GrBatch (patchset #5 id:80001 of https://codereview.chromium.org/1352813003/ )
Reason for revert:
breaks mac bot

Original issue's description:
> add a ClassID function to GrBatch
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/4078d529e9e199eea13456db7bf3a63a104ab5b9

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

Review URL: https://codereview.chromium.org/1345393003
2015-09-17 11:43:02 -07:00
joshualitt
4078d529e9 add a ClassID function to GrBatch
BUG=skia:

Review URL: https://codereview.chromium.org/1352813003
2015-09-17 11:21:17 -07:00
reed
2fd18f2cd0 disable test for all quality levels, since it is driver dependent
BUG=skia:
TBR=robertphilips

Review URL: https://codereview.chromium.org/1352543003
2015-09-16 13:18:41 -07:00
reed
34482bb79e add test for skbug.com/4351
BUG=skia:4351

Review URL: https://codereview.chromium.org/1352613002
2015-09-16 12:50:27 -07:00
bsalomon
ae4738f677 Create fragment processor for performing input color blend with child processor
The new FP is used to implement SkXM::Mode color filters and SkXM::Mode image filters. Also, these now support all advanced SkXM::Mode xfermodes.

Review URL: https://codereview.chromium.org/1334293003
2015-09-15 15:33:27 -07:00
halcanary
435657fd62 Forward declare SkStrokeRec in SkPathEffect
Review URL: https://codereview.chromium.org/1312163008
2015-09-15 12:53:07 -07:00
reed
98ed7b6d01 create SkBitmapProvider to abstract images and bitmaps
BUG=skia:

Review URL: https://codereview.chromium.org/1340223003
2015-09-15 12:38:12 -07:00
fmalita
5598b63cd2 Convert unit tests, GMs from SkBitmapSource to SkImagesource
This removes SkBitmapSource clients within Skia.

http://crrev.com/1334173004 does the same for Blink, so we should be
able to remove SkBitmapSource in a follow-up.

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

Review URL: https://codereview.chromium.org/1343123002
2015-09-15 11:26:14 -07:00
egdaniel
723b0501e2 Add support for blending of LCD for all blend modes.
BUG=skia:

Review URL: https://codereview.chromium.org/1313623002
2015-09-15 09:31:40 -07:00
fmalita
23cb88c52c Speculative fix for uninitialized bitmap mem in ImageFilterTest
TBR=reed@google.com

Review URL: https://codereview.chromium.org/1341923003
2015-09-15 06:56:23 -07:00
fmalita
5dd918bb6f Suppress test_imagegenerator_factory
Temporarily disable the test while we figure what (if anything) to do
about the SkImageGenerator gFactory race.

BUG=skia:4339
TBR=reed@google.com,mtklein@google.com

Review URL: https://codereview.chromium.org/1344693002
2015-09-14 14:51:04 -07:00
reed
48392b7c63 fix leaked generator
BUG=skia:4335

Review URL: https://codereview.chromium.org/1336353003
2015-09-14 13:41:23 -07:00
fmalita
cd56f812e0 SkImageSource
Blink is migrating away from SkBitmaps, so we need an SkImage-based
SkImageFilter source.  This is pretty much a 1-1 equivalent of
SkBitmapSource.

To avoid duplication, relocate the SkImage deserialization logic
from SkPictureData to SkReadBuffer.

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

Review URL: https://codereview.chromium.org/1343703005
2015-09-14 13:31:18 -07:00
egdaniel
ec00d94199 Move some of the adding stencil attachment logic of Gpu and into Render Target.
The new flow of calls for attaching a Stencil looks like:

Client
  rt->attachStencilAttachment()
    gpu->getStencilAttachment()
      glgpu->createStencilAttachment()
    glrt->completeStencilAttachment() //actually attaches

BUG=skia:

Review URL: https://codereview.chromium.org/1333383002
2015-09-14 12:56:10 -07:00
bsalomon
b5b603241a Test that GrFragmentProcessors work without input colors.
Committed: https://skia.googlesource.com/skia/+/72c58e7052af2a0855412ce4b249f977069db751

Review URL: https://codereview.chromium.org/1341853002
2015-09-14 12:26:34 -07:00
bsalomon
59ce45fe79 Revert of Test that GrFragmentProcessors work without input colors. (patchset #2 id:20001 of https://codereview.chromium.org/1341853002/ )
Reason for revert:
Need to fix up more processor subclasses.

Original issue's description:
> Test that GrFragmentProcessors work without input colors.
>
> Committed: https://skia.googlesource.com/skia/+/72c58e7052af2a0855412ce4b249f977069db751

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

Review URL: https://codereview.chromium.org/1338403003
2015-09-14 12:01:42 -07:00
bsalomon
72c58e7052 Test that GrFragmentProcessors work without input colors.
Review URL: https://codereview.chromium.org/1341853002
2015-09-14 11:55:52 -07:00
mtklein
5a744b7801 Have SkVarAlloc::alloc() use sk_malloc_throw.
Very right, it's not prepared to handle return-NULL mallocs at all.

BUG=530759

Review URL: https://codereview.chromium.org/1339093002
2015-09-14 11:11:17 -07:00
reed
8725e5366b fix leak in test
BUG=skia:4335

Review URL: https://codereview.chromium.org/1336763007
2015-09-14 10:53:24 -07:00
reed
74bd953719 discardable pixelrefs are gone, update tests accordingly
BUG=skia:4328

Review URL: https://codereview.chromium.org/1340803002
2015-09-14 08:52:12 -07:00
hendrikw
eddbefb4a5 skia: Add ANGLE with GL backend to nanobench/DM
This will allow us to test this without hacking it in, might be useful
for others too.

Review URL: https://codereview.chromium.org/1338003002
2015-09-11 13:07:29 -07:00
wangyix
059dffae80 There's a set probability that a linear pipeline of random procs will be created (old behavior), or a pipeline with a single proc tree (added behavior).
Had to move GrComposeEffect class definition from SkComposeShader.cpp to SkComposeShader.h so that GLProgramsTest can call GrComposeEffect::Create()

BUG=skia:4182

Review URL: https://codereview.chromium.org/1314923002
2015-09-10 06:57:06 -07:00
caryclark
6651a3238d Reland of more zero-length changes for svg compatibility (patchset #1 id:1 of https://codereview.chromium.org/1334543002/ )
Reason for revert:
DEPS should be fixed now

Original issue's description:
> Revert of more zero-length changes for svg compatibility (patchset #6 id:100001 of https://codereview.chromium.org/1330623003/ )
>
> Reason for revert:
> breaks DEPS
>
> Original issue's description:
> > more zero-length changes for svg compatibility
> >
> > If a path contains a moveTo followed by a line or curve,
> > even if the line or curve has no length, SVG expects
> > the end caps to draw if the cap style is round or square.
> >
> > Fredrik Söderquist attached a patch to the chrome bug
> > (slightly modified here) that fixes layout test failures
> > resulting from deleting special-case code in SVG
> > dealing with zero-length path segments.
> >
> > R=reed@google.com,fs@opera.com
> > BUG=22974
> >
> > Committed: https://skia.googlesource.com/skia/+/62fb1ba1786863e545c89839b5706ad5151cec15
>
> TBR=fs@opera.com,reed@google.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=22974
>
> Committed: https://skia.googlesource.com/skia/+/5ca4fa3846067a47e88d35ace895df3ebe3ec2a5

TBR=fs@opera.com,reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=22974

Review URL: https://codereview.chromium.org/1314833004
2015-09-09 13:20:49 -07:00
caryclark
5ca4fa3846 Revert of more zero-length changes for svg compatibility (patchset #6 id:100001 of https://codereview.chromium.org/1330623003/ )
Reason for revert:
breaks DEPS

Original issue's description:
> more zero-length changes for svg compatibility
>
> If a path contains a moveTo followed by a line or curve,
> even if the line or curve has no length, SVG expects
> the end caps to draw if the cap style is round or square.
>
> Fredrik Söderquist attached a patch to the chrome bug
> (slightly modified here) that fixes layout test failures
> resulting from deleting special-case code in SVG
> dealing with zero-length path segments.
>
> R=reed@google.com,fs@opera.com
> BUG=22974
>
> Committed: https://skia.googlesource.com/skia/+/62fb1ba1786863e545c89839b5706ad5151cec15

TBR=fs@opera.com,reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=22974

Review URL: https://codereview.chromium.org/1334543002
2015-09-09 09:34:22 -07:00
mtklein
6c59d80858 Port uses of SkLazyPtr to SkOncePtr.
This gives SkOncePtr a non-trivial destructor that uses std::default_delete
by default.  This is overrideable, as seen in SkColorTable.

SK_DECLARE_STATIC_ONCE_PTR still just leaves its pointers hanging at EOP.

BUG=skia:

No public API changes.
TBR=reed@google.com

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

Review URL: https://codereview.chromium.org/1322933005
2015-09-09 09:09:53 -07:00