hstern
bb9b2247a2
Rework Overstroke GM to show differences between expected and actual
...
Draw the perpendiculars of the curve with the stroke width. See Cary's
SampleQuadStroker.cpp for what we are attempting to mimic.
BUG=589769,skia:5405,skia:5406
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2218773003
Review-Url: https://codereview.chromium.org/2218773003
2016-08-09 08:53:30 -07:00
reed
1ec04d9553
rename FoceCopyMode to SkCopyPixelMode
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2220603002
Review-Url: https://codereview.chromium.org/2220603002
2016-08-05 12:07:41 -07:00
lsalzman
40254c2c2d
SkBlendARGB32 and S32[A]_Blend_BlitRow32 are currently formulated as: SkAlphaMulQ(src, src_scale) + SkAlphaMulQ(dst, dst_scale), which boils down to ((src*src_scale)>>8) + ((dst*dst_scale)>>8). In particular, note that the intermediate precision is discarded before the two parts are added together, causing the final result to possibly inaccurate.
...
In Firefox, we use SkCanvas::saveLayer in combination with a backdrop that initializes the layer to the background. When this is blended back onto background using transparency, where the source and destination pixel colors are the same, the resulting color after the blend is not preserved due to the lost precision mentioned above. In cases where this operation is repeatedly performed, this causes substantially noticeable differences in color as evidenced in this downstream Firefox bug report: https://bugzilla.mozilla.org/show_bug.cgi?id=1200684
In the test-case in the downstream report, essentially it does blend(src=0xFF2E3338, dst=0xFF2E3338, scale=217), which gives the result 0xFF2E3237, while we would expect to get back 0xFF2E3338.
This problem goes away if the blend is instead reformulated to effectively do (src*src_scale + dst*dst_scale)>>8, which keeps the intermediate precision during the addition before shifting it off.
This modifies the blending operations thusly. The performance should remain mostly unchanged, or possibly improve slightly, so there should be no real downside to doing this, with the benefit of making the results more accurate. Without this, it is currently unsafe for Firefox to blend a layer back onto itself that was initialized with a copy of its background.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2097883002
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
[mtklein adds...]
No public API changes.
TBR=reed@google.com
Review-Url: https://codereview.chromium.org/2097883002
2016-08-05 11:48:45 -07:00
vjiaoblack
955e879c6d
Making a sample for shadow maps for more intensive development
...
Merge branch 'shadow-gm' into shadow-sample
Added variable size shadow maps. Also fixed some bugs
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2198933002
Review-Url: https://codereview.chromium.org/2198933002
2016-08-05 07:55:01 -07:00
robertphillips
9aff85a545
Minor clean up related to blur mask filters
...
This is the non-substantive portion of: https://codereview.chromium.org/2201133002/ (Implement GPU occluded blur mask filter)
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2214163003
Review-Url: https://codereview.chromium.org/2214163003
2016-08-05 07:51:30 -07:00
robertphillips
401c1968a1
Add new GM for occluded blurmask filter draws
...
This splits out just the GM portion of https://codereview.chromium.org/2201993003/ (Add GM to test out blurmaskfilter occluders) which included some API changes
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2214033002
Review-Url: https://codereview.chromium.org/2214033002
2016-08-04 12:35:46 -07:00
mtklein
7a1f45f9e5
spin off easy stuff from Herb's windows GN CL
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2209533004
No public API changes.
TBR=reed@google.com
Review-Url: https://codereview.chromium.org/2209533004
2016-08-04 06:19:33 -07:00
bungeman
ffae30db4a
Convert SkAutoTUnref<SkData> to sk_sp<SkData>.
...
With the move from SkData::NewXXX to SkData::MakeXXX most
SkAutoTUnref<SkData> were changed to sk_sp<SkData>. However,
there are still a few SkAutoTUnref<SkData> around, so clean
them up.
Review-Url: https://codereview.chromium.org/2212493002
2016-08-03 13:32:32 -07:00
fmenozzi
7a9f3766aa
Update hardstop_gradients GM to include more special cases
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2204873005
Review-Url: https://codereview.chromium.org/2204873005
2016-08-03 07:58:06 -07:00
bungeman
38d909ec28
Move off SK_SUPPORT_LEGACY_DATA_FACTORIES.
...
This moves Skia code off of SK_SUPPORT_LEGACY_DATA_FACTORIES.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2206633004
Review-Url: https://codereview.chromium.org/2206633004
2016-08-02 14:40:46 -07:00
hstern
02aea1c92c
Add Overstroke gm
...
Already exists as a sampleapp, but sampleapps don't get tested
automatically
BUG=skia:5405,5406,chrome:589769
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2161633002
Review-Url: https://codereview.chromium.org/2161633002
2016-08-02 10:35:57 -07:00
msarett
c573a40ed5
Add drawImageLattice() and drawBitmapLattice() APIs
...
The specified image/bitmap is divided into rects, which
can be draw stretched, shrunk, or at a fixed size. Will be
used by Android to draw 9patch (which are acutally N-patch)
images.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1992283002
Review-Url: https://codereview.chromium.org/1992283002
2016-08-02 08:05:56 -07:00
vjiaoblack
53da5ba619
adding new GM to demostrate new shadows
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2118553002
Review-Url: https://codereview.chromium.org/2118553002
2016-08-01 10:02:31 -07:00
fmalita
eae6a91277
SkPaint intercept API for SkTextBlob and horizontal text
...
Add getPosTextHIntercepts(), getTextBlobIntercepts().
Consolidate the implementation in GetTextIntercepts<> template.
BUG=chormium:581456
R=caryclark@google.com ,reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2186663004
Review-Url: https://codereview.chromium.org/2186663004
2016-07-28 09:47:24 -07:00
robertphillips
a408c8fb6d
Add SkGammaColorFilter
...
WDYT about this as a means of replacing GrContext::applyGamma with a normal SkCanvas::drawImage?
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2190573002
Review-Url: https://codereview.chromium.org/2190573002
2016-07-28 09:20:33 -07:00
dvonbeck
bba4cfebca
Added API for Bevel NormalSource.
...
This CL adds an API for Bevel normal source and a dummy implementation that returns a normal (0, 0, 1) every time.
This CL's base is the CL for accepting nullptrs: https://codereview.chromium.org/2132113002
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2080993002
Review-Url: https://codereview.chromium.org/2080993002
2016-07-28 08:58:19 -07:00
brianosman
3a0dbde1cf
Remove SkSurfaceProps gamma-correctness flag entirely.
...
This is no longer required - gamma-correctness is now just based on the
presence or absence of a color space.
Public API change is just removal of (unused) flag.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2188463002
TBR=bsalomon@google.com
Review-Url: https://codereview.chromium.org/2188463002
2016-07-26 11:36:05 -07:00
egdaniel
26318c984f
Update bleed-downscale GM to use power of 2 texture
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2179303004
Review-Url: https://codereview.chromium.org/2179303004
2016-07-26 08:26:46 -07:00
brianosman
8fe485b793
Just pass the draw context to paint conversion
...
Concentrate on using draw context functionality to answer gamma and color
related queries in more places.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2182603003
Review-Url: https://codereview.chromium.org/2182603003
2016-07-25 12:31:51 -07:00
reed
2adecda92b
add gm to test bleed with downscale
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2182503002
TBR=
Review-Url: https://codereview.chromium.org/2182503002
2016-07-25 08:11:58 -07:00
brianosman
1638c0deea
Add destination color space to AsFPArgs. Eliminates last XFORMTODO.
...
This is going to be needed in many more places as I finish connecting the
dots. Even better - I'd like to switch to a world where SkColorSpace !=
nullptr is the only signal we use for gamma-correct rendering, so I can
eliminate SkSourceGammaTreatment and SkSurfaceProps::isGammaCorrect.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2180503002
Review-Url: https://codereview.chromium.org/2180503002
2016-07-25 05:12:53 -07:00
brianosman
839345d634
Bundle SkShader::asFragmentProcessor arguments in a struct
...
The signature of this thing keeps changing (and is about to change again).
This just makes maintenance much easier.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2175563003
Review-Url: https://codereview.chromium.org/2175563003
2016-07-22 11:04:53 -07:00
bungeman
5379051ee7
Fix SkScalerContext_FreeType::generateFontMetrics.
...
SkScalerContext::generateFontMetrics implementations should not attempt
to take into account skew. This implementation should correctly handle
bitmap fonts as well.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2165323002
Review-Url: https://codereview.chromium.org/2165323002
2016-07-21 13:32:09 -07:00
dvonbeck
680e2e9a9e
Fixed GM:lightingshader2 size
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2171853002
Review-Url: https://codereview.chromium.org/2171853002
2016-07-21 12:19:54 -07:00
brianosman
dddbe380b0
Adding an SkColorSpace to SkImage_Gpu
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2165703003
Review-Url: https://codereview.chromium.org/2165703003
2016-07-20 13:55:39 -07:00
dvonbeck
c526da94e4
SkLS now accepting nullptr for diffuse shader and normal source, now accurately handling alpha
...
This CL's base is the CL for taking in a diffuse shader into SkLS on the API side: https://codereview.chromium.org/2064153002
BUG=skia:5502,skia:5517
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2132113002
Review-Url: https://codereview.chromium.org/2132113002
2016-07-20 11:20:30 -07:00
brianosman
54f30c13fc
Introduce GrColorSpaceXform, for gamut conversion on textures
...
GrTextureAccess optionally includes an instance, computed from the src
and dst color spaces. In all common cases (no color space for either src
or dst, or same color space for both), no object is allocated.
This change is orthogonal to my attempts to get color space attached to
render targets - regardless of how we choose to do that, this will give
us the source color space at all points where we are connecting src to
dst.
There are many dangling injection points where I've been inserting
nullptr, but I have a record of all of them. Additionally, there are now
three places (the most common simple paths for bitmap/image rendering)
where things are plumbed enough that I expect to have access to the dst
color space (all marked with XFORMTODO).
In addition to getting the dst color space, I need to inject shader code
and uniform uploading for appendTextureLookup and friends.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2154753003
Review-Url: https://codereview.chromium.org/2154753003
2016-07-18 10:53:52 -07:00
halcanary
39f988eb41
SkPDF: Always give a default advance for glyphs.
...
Prior to this we assumed the default default was 0. It is
actually 1000, according to the spec.
fixes BUG=skia:5321
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2146403005
Review-Url: https://codereview.chromium.org/2146403005
2016-07-15 12:54:30 -07:00
mtklein
6e21efd842
Probably no need for GM self-tests now that GM doesn't exist.
...
This is... belated.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2154603002
Review-Url: https://codereview.chromium.org/2154603002
2016-07-14 19:39:38 -07:00
bsalomon
7cf36ccb44
Stop testing texture-backed bitmaps in drawbitmaprect GM
...
BUG=skia:5531
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2148793003
Review-Url: https://codereview.chromium.org/2148793003
2016-07-14 09:33:42 -07:00
bsalomon
614d8f9a3c
Remove GrWrapTextureInBitmap from public API
...
BUG=skia:5531
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2147053002
Review-Url: https://codereview.chromium.org/2147053002
2016-07-13 15:42:40 -07:00
bsalomon
a2e0837c33
Stop testing texture-backed bitmaps in bleed GMs
...
BUG=skia:5531
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2141973004
Review-Url: https://codereview.chromium.org/2141973004
2016-07-13 14:50:17 -07:00
bungeman
f382b48687
Disable aliased font test on iOS.
...
See if not requesting aliased text fixes iOS.
BUG=skia:5530
TBR=mtklein
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2150483003
Review-Url: https://codereview.chromium.org/2150483003
2016-07-13 14:00:39 -07:00
csmartdalton
97f6cd5d0f
Pre-crop filled rects to avoid scissor
...
Updates GrDrawContext to crop filled rects to the clip bounds before
creating batches for them. Also adds clipping logic to ignore scissor
when the draw falls completely inside. These two changes combined
reduce API traffic and improve batching.
In the future this can and should be improved by switching to floating
point clip boundaries, thus allowing us to throw out non pixel aligned
rectangle clips as well.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2132073002
Committed: https://skia.googlesource.com/skia/+/7969838702135b9f127bd738728da61bc49b050a
Committed: https://skia.googlesource.com/skia/+/86de59f4a99b5f54be0483c60ff0335be55b2bdf
Review-Url: https://codereview.chromium.org/2132073002
2016-07-13 13:37:08 -07:00
robertphillips
dda54455a2
Remove GrLayerHoister
...
This relies on https://codereview.chromium.org/1944013002/ (Add legacy flag to allow Skia to remove Ganesh layer hoister) landing first so as to not break the DEPS roll.
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1950523002
Review-Url: https://codereview.chromium.org/1950523002
2016-07-13 13:27:16 -07:00
bungeman
82945560e6
Disable embedded bitmap test on iOS.
...
The TypefaceRenderingGM crashes on iOS when drawing an embedded
bitmap when requesting aliased rendering. The crash looks like
libTrueTypeScaler.dylib`<redacted> + 80
stop reason = EXC_BAD_ACCESS (code=EXC_ARM_DA_ALIGN, address=...)
-> 0x330b19d0 <+80>: strd r2, r3, [r5, #36 ]
0x330b19d4 <+84>: movs r3, #0x0
0x330b19d6 <+86>: add r2, sp, #0x28
0x330b19d8 <+88>: ldr r0, [r4, #0x4]
Disable testing embedded bitmaps on iOS for now.
BUG=skia:5530
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2140383004
Review-Url: https://codereview.chromium.org/2140383004
2016-07-13 10:57:24 -07:00
msarett
ba3880fa6d
Revert of Pre-crop filled rects to avoid scissor (patchset #6 id:100001 of https://codereview.chromium.org/2132073002/ )
...
Reason for revert:
I think this is still causing a test failure on Chrome windows bots.
https://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_x64_rel_ng/builds/243928/steps/cc_unittests%20%28with%20patch%29%20on%20Windows-7-SP1/logs/stdio
Original issue's description:
> Pre-crop filled rects to avoid scissor
>
> Updates GrDrawContext to crop filled rects to the clip bounds before
> creating batches for them. Also adds clipping logic to ignore scissor
> when the draw falls completely inside. These two changes combined
> reduce API traffic and improve batching.
>
> In the future this can and should be improved by switching to floating
> point clip boundaries, thus allowing us to throw out non pixel aligned
> rectangle clips as well.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2132073002
>
> Committed: https://skia.googlesource.com/skia/+/7969838702135b9f127bd738728da61bc49b050a
> Committed: https://skia.googlesource.com/skia/+/86de59f4a99b5f54be0483c60ff0335be55b2bdf
TBR=bsalomon@google.com ,robertphillips@google.com,csmartdalton@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review-Url: https://codereview.chromium.org/2140253004
2016-07-12 18:48:21 -07:00
reed
7c70d7cfa2
center glyphs for text-on-path-via-rsxform
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2137083005
Review-Url: https://codereview.chromium.org/2137083005
2016-07-12 15:06:33 -07:00
bungeman
7438bfc080
Factor code to rotate a canvas about a point.
...
SkMatrix::scale and ::rotate take a point around which to scale or rotate.
Canvas lacks these helpers, so the code to rotate a canvas around a
point has been duplicated many times. Factor all of these
implementations into SkCanvas::rotate.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2142033002
Review-Url: https://codereview.chromium.org/2142033002
2016-07-12 15:01:19 -07:00
csmartdalton
86de59f4a9
Pre-crop filled rects to avoid scissor
...
Updates GrDrawContext to crop filled rects to the clip bounds before
creating batches for them. Also adds clipping logic to ignore scissor
when the draw falls completely inside. These two changes combined
reduce API traffic and improve batching.
In the future this can and should be improved by switching to floating
point clip boundaries, thus allowing us to throw out non pixel aligned
rectangle clips as well.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2132073002
Committed: https://skia.googlesource.com/skia/+/7969838702135b9f127bd738728da61bc49b050a
Review-Url: https://codereview.chromium.org/2132073002
2016-07-12 14:45:23 -07:00
bungeman
5dba301e91
Use hintgasp font when testing rendering.
...
The hintgasp font was added specifically for the typefacerendering gm.
However, this gm didn't actually use the font, so now use it. In
addition this adds embedded bitmap strikes to the hintgasp font and the
gm is updated to test these as well.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2140863002
NOTREECHECKS=true
Test only change, does not affect users.
Review-Url: https://codereview.chromium.org/2140863002
2016-07-12 06:55:25 -07:00
msarett
aeadcdfbf2
Revert of Pre-crop filled rects to avoid scissor (patchset #6 id:100001 of https://codereview.chromium.org/2132073002/ )
...
Reason for revert:
I believe that this is breaking the roll.
https://codereview.chromium.org/2141923002
https://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_ng/builds/258434/steps/cc_unittests%20%28with%20patch%29%20on%20Mac-10.9/logs/stdio
Original issue's description:
> Pre-crop filled rects to avoid scissor
>
> Updates GrDrawContext to crop filled rects to the clip bounds before
> creating batches for them. Also adds clipping logic to ignore scissor
> when the draw falls completely inside. These two changes combined
> reduce API traffic and improve batching.
>
> In the future this can and should be improved by switching to floating
> point clip boundaries, thus allowing us to throw out non pixel aligned
> rectangle clips as well.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2132073002
>
> Committed: https://skia.googlesource.com/skia/+/7969838702135b9f127bd738728da61bc49b050a
TBR=bsalomon@google.com ,robertphillips@google.com,csmartdalton@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review-Url: https://codereview.chromium.org/2145573002
2016-07-12 05:40:39 -07:00
csmartdalton
7969838702
Pre-crop filled rects to avoid scissor
...
Updates GrDrawContext to crop filled rects to the clip bounds before
creating batches for them. Also adds clipping logic to ignore scissor
when the draw falls completely inside. These two changes combined
reduce API traffic and improve batching.
In the future this can and should be improved by switching to floating
point clip boundaries, thus allowing us to throw out non pixel aligned
rectangle clips as well.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2132073002
Review-Url: https://codereview.chromium.org/2132073002
2016-07-11 14:34:12 -07:00
dvonbeck
6af677ff8f
Changed SkLightingShader API to take in a shader as color source
...
This CL's base is the CL for the same modification, but in the implementation side: https://codereview.chromium.org/2062703003/
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2064153002
Review-Url: https://codereview.chromium.org/2064153002
2016-07-10 18:38:34 -07:00
reed
dde2b1f1a8
update path->rsxform to correctly interp dy
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2131043002
TBR=
Review-Url: https://codereview.chromium.org/2131043002
2016-07-08 03:31:09 -07:00
reed
45561a0b15
drawTextRSXform
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2130643004
Review-Url: https://codereview.chromium.org/2130643004
2016-07-07 12:47:17 -07:00
dvonbeck
5b794fad18
API change to allow for NormalSource selection at the user level.
...
This CL's base is the CL for CPU handling: https://codereview.chromium.org/2050773002/
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2063793002
Review-Url: https://codereview.chromium.org/2063793002
2016-07-06 13:58:36 -07:00
bungeman
61457a6b80
Add gm for various font rendering combinations.
...
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2080453002
Review-Url: https://codereview.chromium.org/2080453002
2016-07-06 11:55:05 -07:00
bsalomon
a7d85ba138
Add gm that tests shaded stroked rectangles.
...
Fix GPU handling of previously untested cases.
Move rect->path fallback from SkGpuDevice to GrDrawContext.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2125663003
Review-Url: https://codereview.chromium.org/2125663003
2016-07-06 11:54:59 -07:00
bsalomon
9c67381dbc
Enlarge strokerect GM size to reveal hidden content
...
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2126723002
Review-Url: https://codereview.chromium.org/2126723002
2016-07-06 06:30:36 -07:00