mtklein
00b621cfc0
Add sk_parallel_for()
...
This should be a drop-in replacement for most for-loops to make them run in parallel:
for (int i = 0; i < N; i++) { code... }
~~~>
sk_parallel_for(N, [&](int i) { code... });
This is just syntax sugar over SkTaskGroup to make this use case really easy to write.
There's no more overhead that we weren't already forced to add using an interface like batch(),
and no extra heap allocations.
I've replaced 3 uses of SkTaskGroup with sk_parallel_for:
1) My unit tests for SkOnce.
2) Cary's path fuzzer.
3) SkMultiPictureDraw.
Performance should be the same. Please compare left and right for readability. :)
BUG=skia:
No public API changes.
TBR=reed@google.com
Review URL: https://codereview.chromium.org/1184373003
2015-06-17 15:26:15 -07:00
fmalita
822ace9001
Use SkPaintFilterCanvas for SampleApp paint filtering
...
(one less SkDrawFilter user)
BUG=skia:3587
R=robertphillips@google.com ,reed@google.com
Review URL: https://codereview.chromium.org/1177323002
2015-06-15 07:07:32 -07:00
vbuzinov
dded69693d
Implement support for mixed sampled render targets
...
Adds a new FBO type kStencil_MSFBOType that is selected whenever
NV_framebuffer_mixed_samples extension is available. In this new
FBO type a non-msaa color buffer is created with a multisampled
stencil buffer attachment.
Replaces numSamples() with separate numColorSamples and numStencilSamples
methods in RenderTarget.
In mixed samples mode non-MSAA codepaths are used to draw simple shapes,
while NVPR-rendered paths and text are rendered with a multisampled
stencil.
BUG=skia:3177
Review URL: https://codereview.chromium.org/1001503002
2015-06-12 08:59:45 -07:00
reed
56263c78d8
delete (unused) TransparentShader
...
BUG=skia:
TBR=
Review URL: https://codereview.chromium.org/1153193014
2015-06-05 11:31:26 -07:00
caryclark
a76b7a3b04
remove SK_LEGACY_STROKE_CURVES
...
The change in Chrome has been landed so this guard is no longer needed.
R=reed@google.com ,fmalita@chromium.org
BUG=102411
Review URL: https://codereview.chromium.org/1157623003
2015-05-22 06:26:52 -07:00
caryclark
612f70d5fa
handle large conic strokes better
...
A stroked conic computes the outset quad's control point by
computing the intersection of the quad's endpoints. If the
the denominator used to compute the scale factor for the
control point is small, check to see if the numerator is also
small so that the division stays bounded.
Also clean up error returns and internal function calls to
simplify the code.
Additionally, remove comic max curvature (unimplemented) and call
extrema functions instead to handle cases where the conic is degenerate
or is a line.
R=reed@google.com , fmalita@chromium.org
BUG=skia:3843
Review URL: https://codereview.chromium.org/1144883003
2015-05-19 11:05:37 -07:00
reed
80ea19ca4b
Revert of Revert of stop calling SkScalarDiv (patchset #1 id:1 of https://codereview.chromium.org/1138263002/ )
...
Reason for revert:
android patched, blink has rolled
Original issue's description:
> Revert of stop calling SkScalarDiv (patchset #4 id:60001 of https://codereview.chromium.org/1135053002/ )
>
> Reason for revert:
> need to wait for Blink roll (and patch android)
>
> Original issue's description:
> > stop calling SkScalarDiv
> >
> > BUG=skia:
> > TBR=
> >
> > Committed: https://skia.googlesource.com/skia/+/67d71c898249a7af3523b16c6a69895a63bfae0a
>
> TBR=
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/2629697933b5cc975e45d2a45c48f803fc6cbcec
TBR=
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/1135693003
2015-05-12 10:37:34 -07:00
reed
2629697933
Revert of stop calling SkScalarDiv (patchset #4 id:60001 of https://codereview.chromium.org/1135053002/ )
...
Reason for revert:
need to wait for Blink roll (and patch android)
Original issue's description:
> stop calling SkScalarDiv
>
> BUG=skia:
> TBR=
>
> Committed: https://skia.googlesource.com/skia/+/67d71c898249a7af3523b16c6a69895a63bfae0a
TBR=
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/1138263002
2015-05-12 10:28:06 -07:00
reed
67d71c8982
stop calling SkScalarDiv
...
BUG=skia:
TBR=
Review URL: https://codereview.chromium.org/1135053002
2015-05-12 09:47:22 -07:00
reed
beedb81a7f
add DeferredCanvas mode to SampleApp
...
BUG=skia:
Review URL: https://codereview.chromium.org/1129603002
2015-05-05 12:14:45 -07:00
reed
71a6cbfc58
remove redundant/deprecated TwoPointRadial gradiet -- use TwoPointConical
...
This CL derived from https://codereview.chromium.org/1114243005/
BUG=skia:
Review URL: https://codereview.chromium.org/1117423003
2015-05-04 08:32:51 -07:00
reed
ca1a22ee53
Revert of Revert of remove unused (by clients) SkPathUtils (patchset #1 id:1 of https://codereview.chromium.org/1060703003/ )
...
Reason for revert:
fix (removal from gypi/gn files) has landed in chrome.
Original issue's description:
> Revert of remove unused (by clients) SkPathUtils (patchset #1 id:1 of https://codereview.chromium.org/1088383003/ )
>
> Reason for revert:
> This change is causing the DEPS roll to fail:
>
>
> http://build.chromium.org/p/tryserver.chromium.linux/builders/android_chromium_gn_compile_rel/builds/78771/steps/gn/logs/stdio
>
> Original issue's description:
> > remove unused (by clients) SkPathUtils
> >
> > BUG=skia:
> >
> > Committed: https://skia.googlesource.com/skia/+/aab35d91b8b80acd1902594bbf542083fdfa4bb7
>
> TBR=scroggo@google.com ,reed@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/bdb0bf5f8858043878d8a4fa8130c6c87bef3fd4
TBR=scroggo@google.com ,jcgregorio@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/1091963002
2015-04-16 20:10:55 -07:00
jcgregorio
bdb0bf5f88
Revert of remove unused (by clients) SkPathUtils (patchset #1 id:1 of https://codereview.chromium.org/1088383003/ )
...
Reason for revert:
This change is causing the DEPS roll to fail:
http://build.chromium.org/p/tryserver.chromium.linux/builders/android_chromium_gn_compile_rel/builds/78771/steps/gn/logs/stdio
Original issue's description:
> remove unused (by clients) SkPathUtils
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/aab35d91b8b80acd1902594bbf542083fdfa4bb7
TBR=scroggo@google.com ,reed@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/1060703003
2015-04-16 09:47:36 -07:00
reed
aab35d91b8
remove unused (by clients) SkPathUtils
...
BUG=skia:
Review URL: https://codereview.chromium.org/1088383003
2015-04-16 06:16:38 -07:00
mtklein
36352bf5e3
C++11 override should now be supported by all of {bots,Chrome,Android,Mozilla}
...
NOPRESUBMIT=true
BUG=skia:
DOCS_PREVIEW= https://skia.org/?cl=1037793002
Review URL: https://codereview.chromium.org/1037793002
2015-03-25 18:17:32 -07:00
senorblanco
8c874eee94
Move SkMatrixImageFilter into core, and add a factory fn for it.
...
BUG=skia:
Review URL: https://codereview.chromium.org/1011273003
2015-03-20 06:38:17 -07:00
senorblanco
24e06d5244
Remove uniqueID from all filter serialization.
...
(This is essentially a revert of https://codereview.chromium.org/503833002/ .)
This was necessary back when SkPaint was flattened even for in-process use. Now that we only flatten SkPaint for cross-process use, there's no need to serialize UniqueIDs.
Note: SkDropShadowImageFilter is being constructed with a croprect and UniqueID (of 0) in Blink. I've made the uniqueID param default to 0 temporarily, until this rolls in and Blink can be changed. (Blink can't be changed first, since unlike the other filters, there's no constructor that takes a cropRect but not a uniqueID.)
BUG=skia:
Review URL: https://codereview.chromium.org/1019493002
2015-03-18 12:11:33 -07:00
reed
93a1215fe0
SkPaint::FilterLevel -> SkFilterQuality
...
clone (+rebase) of https://codereview.chromium.org/1009183002/
BUG=skia:
TBR=scroggo@google.com
Review URL: https://codereview.chromium.org/1014533004
2015-03-16 10:08:34 -07:00
caryclark
94b4ee85f2
(starting with mtklein's 966503002 mod to 963593003)
...
fix casts
Committed: https://skia.googlesource.com/skia/+/9e73a84deb5e6c201081b1d30175863898543e8d
Review URL: https://codereview.chromium.org/979453004
2015-03-04 12:32:22 -08:00
mtklein
a84cff9b99
Revert of fix casts (patchset #1 id:1 of https://codereview.chromium.org/979453004/ )
...
Reason for revert:
64-bit windows build warnings-as-errors
Original issue's description:
> (starting with mtklein's 966503002 mod to 963593003)
> fix casts
>
> Committed: https://skia.googlesource.com/skia/+/9e73a84deb5e6c201081b1d30175863898543e8d
TBR=caryclark@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/977583007
2015-03-04 11:46:27 -08:00
caryclark
9e73a84deb
(starting with mtklein's 966503002 mod to 963593003)
...
fix casts
Review URL: https://codereview.chromium.org/979453004
2015-03-04 11:22:05 -08:00
caryclark
63c684a8a6
fuzzer fixes
...
Fix path bugs exposed by the path fuzzer.
Changes to existing gm and samplecode files defer their calls to construct
SkPath objects until the first draw instead of at test initialization.
Add an experimental call to SkPath to validate the internal SkPathRef.
Fix SkPath::addPoly to set the last moveto after adding a close verb.
Fix stroke to handle failures when computing the unit normal.
Add a unit test for the unit normal failure.
R=reed@google.com
Review URL: https://codereview.chromium.org/953383002
2015-02-25 09:04:04 -08:00
caryclark
1297ecfd1d
flip stroke to chrome compatible define
...
Review URL: https://codereview.chromium.org/932723003
2015-02-24 06:02:06 -08:00
reed
0ab326f530
move GMSampleView into its own cpp
...
BUG=skia:
TBR=
Review URL: https://codereview.chromium.org/947733002
2015-02-21 09:36:50 -08:00
reed
f7f79d2a6e
remove dead code from sampleapp, trim bad asserts
...
BUG=skia:
TBR=
Review URL: https://codereview.chromium.org/948693002
2015-02-21 09:03:21 -08:00
caryclark
04e4d08556
This uses quad approximations of the outer and inner paths describing a stroke. Cubics and conics' thick strokes are approximated with quads as well.
...
The approximation uses a similar error term as the fill scan converter to determine the number of quads to use.
This also updates SampleApp QuadStroker test with conics, ovals, and stroked text.
Review URL: https://codereview.chromium.org/932113002
2015-02-20 06:33:57 -08:00
joshualitt
25d9c15408
Pass Rendertarget into context.
...
Adding Jim for text context stuff, and Steven for image blur stuff.
BUG=skia:
Review URL: https://codereview.chromium.org/939623005
2015-02-18 12:29:52 -08:00
caryclark
88c748aeea
update sampleapp for stroking experiment
...
Add RotateCircles3 back as better-named QuadStroker.
Switch pathfill test to call skia before draw instead of in
initializer to avoid triggering debugging breakpoints.
Review URL: https://codereview.chromium.org/912273003
2015-02-18 10:56:00 -08:00
reed
9e447c08de
remove unneeded preroll
...
BUG=skia:
TBR=robertphilips
Review URL: https://codereview.chromium.org/927443006
2015-02-15 11:08:40 -08:00
bsalomon
bb0502eec5
Support multiple null GL contexts on a thread.
...
This has the side effect of requiring SkNullGLContext to use the null GL interface.
It exposes SkNullGLContext and also removes null context support from SampleApp.
Review URL: https://codereview.chromium.org/916733002
2015-02-11 11:11:11 -08:00
reed
61adb1b649
more gms for conics
...
BUG=skia:
TBR=
Review URL: https://codereview.chromium.org/869843006
2015-02-09 13:01:05 -08:00
robertphillips
c89f6fb29c
Salvage the SampleApp portion of the ill-fated "nudge" CL
...
Trying a different approach than nudging but this will still be useful.
Review URL: https://codereview.chromium.org/907453004
2015-02-09 07:47:17 -08:00
reed
3cb3840c9a
Rename SkCanvasDrawable to SkDrawable, and make public
...
(patchset #2 id:20001 of https://codereview.chromium.org/903993002/ )"
This reverts commit c4e8772492
.
BUG=skia:
TBR=
NOTREECHECKS=True
Review URL: https://codereview.chromium.org/898343004
2015-02-06 08:36:15 -08:00
reed
c4e8772492
Revert of rename SkCanvasDrawable to SkDrawable, and make public (patchset #2 id:20001 of https://codereview.chromium.org/903993002/ )
...
Reason for revert:
bug in gyp
Original issue's description:
> rename SkCanvasDrawable to SkDrawable, and make public
>
> BUG=skia:
> NOTRY=True
> ... winbuilder flake
>
> Committed: https://skia.googlesource.com/skia/+/4ae9eb7463cf2160723407359608f221c0d5e2a6
TBR=robertphillips@google.com ,djsollen@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/882853006
2015-02-06 08:20:07 -08:00
reed
4ae9eb7463
rename SkCanvasDrawable to SkDrawable, and make public
...
BUG=skia:
NOTRY=True
... winbuilder flake
Review URL: https://codereview.chromium.org/903993002
2015-02-06 08:02:57 -08:00
reed
339cdbfb75
migrate more samples over to SkAnimTImer
...
BUG=skia:
TBR=
Review URL: https://codereview.chromium.org/901933004
2015-02-05 22:02:37 -08:00
reed
bf015c34e4
add textual overview
...
BUG=skia:
Review URL: https://codereview.chromium.org/898573002
2015-02-03 15:02:24 -08:00
reed
76113a9b77
add SkAnimTimer, SPACE = pause/resume, ESP = stop
...
BUG=skia:
Review URL: https://codereview.chromium.org/894083003
2015-02-02 12:55:02 -08:00
reed
d9adfe6a22
allow GMs to animate
...
BUG=skia:
Review URL: https://codereview.chromium.org/888283002
2015-02-01 19:01:04 -08:00
robertphillips
7f14c9bbf1
Revert of Add device space "nudge" to gpu draws (patchset #6 id:90001 of https://codereview.chromium.org/877473005/ )
...
Reason for revert:
Blink layout tests this time :(
Original issue's description:
> Add device space "nudge" to gpu draws
>
> This CL nudges all the GPU draws and clips slightly to match raster's round behavior for BW draws. We assume the effect will be negligible and do it for AA draws too.
>
> BUG=423834
>
> Committed: https://skia.googlesource.com/skia/+/2d55d07501c56310f97d2092d789a2bc9fa01b78
>
> Committed: https://skia.googlesource.com/skia/+/b9329991426d0b77ea194a380d72d73fb855308a
TBR=bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=423834
Review URL: https://codereview.chromium.org/886153002
2015-01-30 14:44:22 -08:00
scroggo
e7ea40f4e0
Reland "remove unused SkAvoidXfermode"
...
(patchset #2 id:20001 of https://codereview.chromium.org/860583002/ )
SkAvoidXfermode has been moved into Android, so it is safe to remove.
Review URL: https://codereview.chromium.org/890893003
2015-01-30 13:16:02 -08:00
caryclark
c8fcafb3f0
First cut at cleaning up Sergio's example code and moving some common code to SkWindow.
...
Eventually, this will be moved to be a peer of SampleApp so it is compiled by the bots to avoid future bit rot.
Also ignore XCode auto-generated flag in CommandLineFlags, and remove the unused multiple-example part.
Review URL: https://codereview.chromium.org/890873003
2015-01-30 12:37:02 -08:00
robertphillips
b932999142
Add device space "nudge" to gpu draws
...
This CL nudges all the GPU draws and clips slightly to match raster's round behavior for BW draws. We assume the effect will be negligible and do it for AA draws too.
BUG=423834
Committed: https://skia.googlesource.com/skia/+/2d55d07501c56310f97d2092d789a2bc9fa01b78
Review URL: https://codereview.chromium.org/877473005
2015-01-30 11:24:50 -08:00
humper
f75a130c45
enable subpixel text on the subpixel translate sample
...
BUG=skia:
Review URL: https://codereview.chromium.org/885783006
2015-01-29 10:26:37 -08:00
robertphillips
9cc2f2613a
Revert of Add device space "nudge" to gpu draws (patchset #5 id:70001 of https://codereview.chromium.org/877473005/ )
...
Reason for revert:
Chrome pixel test :(
Original issue's description:
> Add device space "nudge" to gpu draws
>
> This CL nudges all the GPU draws and clips slightly to match raster's round behavior for BW draws. We assume the effect will be negligible and do it for AA draws too.
>
> BUG=423834
>
> Committed: https://skia.googlesource.com/skia/+/2d55d07501c56310f97d2092d789a2bc9fa01b78
TBR=bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=423834
Review URL: https://codereview.chromium.org/890433003
2015-01-28 17:37:33 -08:00
robertphillips
2d55d07501
Add device space "nudge" to gpu draws
...
This CL nudges all the GPU draws and clips slightly to match raster's round behavior for BW draws. We assume the effect will be negligible and do it for AA draws too.
BUG=423834
Review URL: https://codereview.chromium.org/877473005
2015-01-28 14:41:57 -08:00
reed
40dab98de1
Use murmur3 finisher to improve font hash efficiency.
...
Add dump() method to inspect glyphcache strikes.
Murmur addition improves hash efficient roughly 50%
BUG=skia:
Review URL: https://codereview.chromium.org/877113002
2015-01-28 13:28:53 -08:00
robertphillips
7defaa6c4a
Add ClipDrawMatch SampleApp slide
...
This slide can be used to find and diagnose discrepancies between BW clipping and drawing.
BUG=skia:423834
Review URL: https://codereview.chromium.org/872363003
2015-01-27 06:17:22 -08:00
halcanary
b0cce2c1d3
s/sk_tools::DrawCheckerboard/sk_tool_utils::draw_checkerboard/
...
BUG=skia:
Review URL: https://codereview.chromium.org/873333004
2015-01-26 12:49:00 -08:00
halcanary
878fa0204b
Factor out checkerboard function in gm and sampleapp into tools.
...
Review URL: https://codereview.chromium.org/834303005
2015-01-26 11:24:32 -08:00