Граф коммитов

114 Коммитов

Автор SHA1 Сообщение Дата
Andrew Osmond 91b071ed14 Bug 1618345 - Enforce proper color management by splitting gfx::Color into sRGBColor and DeviceColor types. r=jrmuizel
gfx::Color is currently misused in many places. The DrawTargets expect
the color space to be in device space, e.g. what we are actually going
to draw using. Everything sitting above generally deals with sRGB, as
specified in CSS. Sometimes we missed the conversion from sRGB to device
space when issuing draw calls, and similarly sometimes we converted the
color to device space twice.

This patch splits the type in two. sRGBColor and DeviceColor now
represent sRGB and device color spaces respectively. DrawTarget only
accepts DeviceColor, and one can get a DeviceColor from an sRGBColor via
the ToDeviceColor helper API. The reftests now pass with color
management enabled for everything (e.g. CSS) instead of just tagged
raster images.

There will be a follow up patch to enable color management everywhere by
default on all supported platforms.

Differential Revision: https://phabricator.services.mozilla.com/D64771

--HG--
extra : moz-landing-system : lando
2020-03-09 14:16:17 +00:00
Andrew Osmond fbaa72bc71 Bug 1617493 - Rasterize SVG patterns in content process into a shared surface for WebRender. r=jrmuizel
In DrawTargetRecording::CreateSimilarDrawTarget, we would originally
create a new DrawTargetRecording. For resources that are shared, such as
SVG patterns, we would do the same work for each blob image tile. This
can get expensive if the pattern is large. Now we check a size
threshold, and if passed, we create a DrawTargetSkia backed by a
SourceSurfaceSharedData. When we want a snapshot, we now try to get the
shared surface instead if available. The recording infrastructure
already knows how to handle the lifetimes and use of external IDs for
shared surfaces, so now we rasterize the pattern once for all the blob
tiles. In an ideal world we would do this in the compositor process
once, but that requires more changes, and this is useful as a stopgap in
the meantime.

Differential Revision: https://phabricator.services.mozilla.com/D63903

--HG--
extra : moz-landing-system : lando
2020-02-25 13:56:23 +00:00
Lee Salzman 2d38529fad Bug 1547063 - add SharedFTFace abstraction of FT_Face. r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D44491

--HG--
extra : moz-landing-system : lando
2019-09-16 17:03:04 +00:00
Cosmin Sabou 8113720646 Backed out 8 changesets (bug 1547063) for causing bug 1581466. a=backout
Backed out changeset c969a93b0ca7 (bug 1547063)
Backed out changeset 003f5a79c6a7 (bug 1547063)
Backed out changeset 2c7032b4d022 (bug 1547063)
Backed out changeset 23892ecc6ef8 (bug 1547063)
Backed out changeset af6e6807ece7 (bug 1547063)
Backed out changeset ebc71e607938 (bug 1547063)
Backed out changeset 772c3427c791 (bug 1547063)
Backed out changeset e74a67e2afe3 (bug 1547063)
2019-09-16 10:44:20 +03:00
Lee Salzman d5010d11ca Bug 1547063 - add SharedFTFace abstraction of FT_Face. r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D44491

--HG--
extra : moz-landing-system : lando
2019-09-15 02:59:44 +00:00
Jeff Muizelaar 0b68652b49 Bug 1539702. Improve CreateClippedDrawTarget API r=jwatt,rhunt
This changes CreateClippedDrawTarget so that instead of taking
a max size and a transform it just takes a user space rect of
the desired bounds.

This change allows the caller to not worry about the computing
a max size based on the current clip. Instead this responsibility
is lowered into the specific backends.

The main motivation for this work is to allow blob recoordination
to create recordings that don't depend on the current clip.

Some additional benefits are that the API is easier to use and
as can be seen simplifies the SVG masking code because it doesn't
need to track surface offsets manually.

It's also an important step towards removing all the uses of
gfxContext::GetClipExtents which will let us get rid of the separate
clipping stack in gfxContext and help us move off of gfxContext
completely.

Most backend implementations of CreateClippedDrawTarget are relatively
simple. DrawTargetCapture is modified to track the current clip rect
so that it can create a new DrawTargetCapture of the appropriate size
without needing to worry about lazy resolution.

Differential Revision: https://phabricator.services.mozilla.com/D33363

--HG--
extra : moz-landing-system : lando
2019-06-21 09:51:00 +00:00
Narcis Beleuzu 767a7b2616 Backed out changeset 88e6c989e783 (bug 1539702) for multiple reftest failures. CLOSED TREE 2019-06-21 12:46:16 +03:00
Jeff Muizelaar afe9ee5a45 Bug 1539702. Improve CreateClippedDrawTarget API r=jwatt,rhunt
This changes CreateClippedDrawTarget so that instead of taking
a max size and a transform it just takes a user space rect of
the desired bounds.

This change allows the caller to not worry about the computing
a max size based on the current clip. Instead this responsibility
is lowered into the specific backends.

The main motivation for this work is to allow blob recoordination
to create recordings that don't depend on the current clip.

Some additional benefits are that the API is easier to use and
as can be seen simplifies the SVG masking code because it doesn't
need to track surface offsets manually.

It's also an important step towards removing all the uses of
gfxContext::GetClipExtents which will let us get rid of the separate
clipping stack in gfxContext and help us move off of gfxContext
completely.

Most backend implementations of CreateClippedDrawTarget are relatively
simple. DrawTargetCapture is modified to track the current clip rect
so that it can create a new DrawTargetCapture of the appropriate size
without needing to worry about lazy resolution.

Differential Revision: https://phabricator.services.mozilla.com/D33363

--HG--
extra : moz-landing-system : lando
2019-06-20 22:34:31 +00:00
Sylvestre Ledru e226046cb8 Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan
# ignore-this-changeset

Depends on D28954

Differential Revision: https://phabricator.services.mozilla.com/D28956

--HG--
extra : moz-landing-system : lando
2019-05-01 08:47:10 +00:00
Lee Salzman a330f87601 Bug 1530471 - remove Moz2D/thebes SkiaGL glue r=jrmuizel
Depends on D21052

Differential Revision: https://phabricator.services.mozilla.com/D21053

--HG--
extra : moz-landing-system : lando
2019-02-28 14:59:16 +00:00
Ehsan Akhgari e5e885ae31 Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre
# ignore-this-changeset

--HG--
extra : amend_source : 7221c8d15a765df71171099468e7c7faa648f37c
extra : histedit_source : a0cce6015636202bff09e35a13f72e03257a7695
2019-01-18 10:16:18 +01:00
Sylvestre Ledru 265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Kartikaya Gupta 17eea57296 Bug 1466613 - Robustify DrawTargetRecording codepaths that create new drawtargets. r=mstange
Badly-behaved consumers of DrawTargetRecording can trigger recording of
draw calls that will fail to allocate required draw targets when the
recording is replayed. This patch tries to guard against this by
detecting these situations at record-time rather than crashing at
replay-time. When such a situation is detected, it will crash (for
content processes, to catch such scenarios) or gracefully fail (for
other processes).

Differential Revision: https://phabricator.services.mozilla.com/D11527

--HG--
extra : moz-landing-system : lando
2018-11-13 10:39:02 +00:00
Lee Salzman dc3fc2506c Bug 1450814 - generic implementation of DrawTarget::Blur using LockBits. r=rhunt
MozReview-Commit-ID: 2jROASoiPQd
2018-04-10 16:46:32 -04:00
Lee Salzman 3ffd2fdb72 Bug 1451845 - use SkCanvas layer clip image for DrawTargetSkia::PushLayer mask. r=jrmuizel
MozReview-Commit-ID: BwkwiorvmVY
2018-04-05 14:57:11 -04:00
Jeff Muizelaar 62a9686ee2 Bug 1439005. Add PushLayerWithBlend. r=Bas
This makes it possible to implement nsDisplayBlend blob image invalidation.
It currently only includes an implementation for Skia and DrawTargetRecording.
All other backends will crash when used.

MozReview-Commit-ID: 2GhdDxi4jHG
2018-02-17 12:07:30 -05:00
Jamie Nicol 190d2c71c5 Bug 1429508 - Mark DrawTarget::GetSize as const. r=jrmuizel
MozReview-Commit-ID: BmhlrQjmIjW

--HG--
extra : rebase_source : 388e5a273140e7996f4943b6f28d23c3d44ccf18
2018-01-23 17:10:11 +00:00
Bas Schouten e83999bf32 Bug 1416862: Reverse DrawTargetSkia snapshot ownership model r=dvander
MozReview-Commit-ID: 3hpeYteEPlA
2017-12-06 04:59:19 +01:00
Bas Schouten fc5e6c2cf2 Bug 1414448: Protect the SourceSurfaceSkia destructor from racing with DrawTargetWillChange. r=dvander
MozReview-Commit-ID: 6UYDLUEoJZy
2017-11-08 20:49:40 +01:00
Markus Stange 78303f13ce Bug 1414154 - Remove GlyphRenderingOptions. r=lsalzman
MozReview-Commit-ID: JtwnTj1hhPV

--HG--
extra : rebase_source : 2a3e896eec8b6839097baf6e2cccc10eb162827b
2017-11-02 21:42:56 -04:00
David Anderson 8ef5cedd49 Add a Blur DrawCommand. (bug 1395478 part 2, r=rhunt)
--HG--
extra : rebase_source : 02307fbf209058f661e1379b51b2dcaa40da94b6
2017-10-31 12:02:30 -07:00
Daniel Holbert 126bd9e1a4 Bug 1412427 part 8: (automated patch) Switch a bunch of C++ files in gfx to use our standard mode lines. r=jrmuizel
This patch was generated automatically by the "modeline.py" script, available
here: https://github.com/amccreight/moz-source-tools/blob/master/modeline.py

For every file that is modified in this patch, the changes are as follows:
 (1) The patch changes the file to use the exact C++ mode lines from the
     Mozilla coding style guide, available here:
https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Coding_Style#Mode_Line

 (2) The patch deletes any blank lines between the mode line & the MPL
     boilerplate comment.

 (3) If the file previously had the mode lines and MPL boilerplate in a
     single contiguous C++ comment, then the patch splits them into
     separate C++ comments, to match the boilerplate in the coding style.

MozReview-Commit-ID: 77D61xpSmIl

--HG--
extra : rebase_source : c6162fa3cf539a07177a19838324bf368faa162b
2017-10-27 16:10:06 -07:00
Mason Chang a1f1297cc9 Bug 1340627. Properly push/pop skia saved layers during borrow/return cg context. r=lsalzman 2017-05-10 16:21:13 -04:00
Lee Salzman e33e057886 Bug 1340627 - part 3 - fix Moz2d for Skia m59. r=mchang
MozReview-Commit-ID: 1fugjwSpOMZ
2017-05-09 22:31:07 -04:00
Carsten "Tomcat" Book 93cc82c178 Backed out changeset abffc78e1cf6 (bug 1340627) 2017-05-11 12:51:58 +02:00
Carsten "Tomcat" Book 1d0daaa1bc Backed out changeset 1fcd9ee5ccb5 (bug 1340627) 2017-05-11 12:51:44 +02:00
Mason Chang d306587594 Bug 1340627. Properly push/pop skia saved layers during borrow/return cg context. r=lsalzman 2017-05-10 16:21:13 -04:00
Lee Salzman 836ee7f95b Bug 1340627 - part 3 - fix Moz2d for Skia m59. r=mchang
MozReview-Commit-ID: 1fugjwSpOMZ
2017-05-09 22:31:07 -04:00
Wes Kocher 24a327994e Backed out 9 changesets (bug 1340627) for graphical glitches a=backout
Backed out changeset 0b1371055c7f (bug 1340627)
Backed out changeset f152be1fadb7 (bug 1340627)
Backed out changeset c691e2ab6a0c (bug 1340627)
Backed out changeset 3cb4bceb8d79 (bug 1340627)
Backed out changeset 026aadd76d06 (bug 1340627)
Backed out changeset fdbd5d281287 (bug 1340627)
Backed out changeset 75fb0d9858a9 (bug 1340627)
Backed out changeset 0d4ec7d38a00 (bug 1340627)
Backed out changeset af6f19870b2a (bug 1340627)

MozReview-Commit-ID: 9dHr7xMZezY

--HG--
rename : gfx/skia/skia/src/core/SkBlitRow.h => gfx/skia/skia/include/core/SkBlitRow.h
rename : gfx/skia/skia/src/effects/SkGaussianEdgeShader.h => gfx/skia/skia/include/effects/SkGaussianEdgeShader.h
rename : gfx/skia/skia/src/xml/SkXMLParser.h => gfx/skia/skia/include/xml/SkXMLParser.h
rename : gfx/skia/skia/include/private/SkMessageBus.h => gfx/skia/skia/src/core/SkMessageBus.h
rename : gfx/skia/skia/src/gpu/ops/GrAAConvexPathRenderer.h => gfx/skia/skia/src/gpu/batches/GrAAConvexPathRenderer.h
rename : gfx/skia/skia/src/gpu/ops/GrAAConvexTessellator.h => gfx/skia/skia/src/gpu/batches/GrAAConvexTessellator.h
rename : gfx/skia/skia/src/gpu/ops/GrAAHairLinePathRenderer.h => gfx/skia/skia/src/gpu/batches/GrAAHairLinePathRenderer.h
rename : gfx/skia/skia/src/gpu/ops/GrAALinearizingConvexPathRenderer.h => gfx/skia/skia/src/gpu/batches/GrAALinearizingConvexPathRenderer.h
rename : gfx/skia/skia/src/gpu/ops/GrPathStencilSettings.h => gfx/skia/skia/src/gpu/batches/GrPathStencilSettings.h
rename : gfx/skia/skia/src/gpu/ops/GrStencilAndCoverPathRenderer.h => gfx/skia/skia/src/gpu/batches/GrStencilAndCoverPathRenderer.h
rename : gfx/skia/skia/include/private/GrGLSL_impl.h => gfx/skia/skia/src/gpu/glsl/GrGLSL_impl.h
2017-05-10 10:01:18 -07:00
Lee Salzman ec8d1a9a71 Bug 1340627 - part 3 - fix Moz2d for Skia m59. r=mchang
MozReview-Commit-ID: 1fugjwSpOMZ
2017-05-09 22:31:07 -04:00
Lee Salzman 7c93ca2486 Bug 1335139 - part 2 - implement StrokeGlyphs for DrawTargetSkia. r=mchang
MozReview-Commit-ID: AupfyGu1nwa
2017-02-12 09:24:44 -05:00
Lee Salzman a55eee6d3f Bug 1322729 - fix DrawTargetTiled::PushLayer to properly handle clipping. r=mchang
MozReview-Commit-ID: 2otVOl9J4pZ
2016-12-16 11:02:04 -05:00
Jonathan Watt 734666ee13 Bug 1309272, part 2 - Support the creation of a DrawTargetSkia for an SkCanvas. r=lsalzman
--HG--
extra : rebase_source : 777593bf3f591445e79315bf6bb4154d1017a405
2016-10-26 19:23:07 +01:00
Lee Salzman 926f3f5746 Bug 1299435 - part 2 - fix Moz2d for Skia m55 update. r=mchang
MozReview-Commit-ID: 8jRzOaS5vqy
2016-10-24 22:40:59 -04:00
Wes Kocher 951194ee45 Backed out 6 changesets (bug 1299435) for windows reftest failures a=backout
Backed out changeset 0d587a1cab8f (bug 1299435)
Backed out changeset 3ab9d3cb13aa (bug 1299435)
Backed out changeset 1ed742f88f49 (bug 1299435)
Backed out changeset 51ad497c7ac2 (bug 1299435)
Backed out changeset 06ca6acef0a2 (bug 1299435)
Backed out changeset ebd4625e101a (bug 1299435)

--HG--
rename : gfx/skia/skia/src/animator/SkCondensedDebug.inc => gfx/skia/skia/src/animator/SkCondensedDebug.cpp
rename : gfx/skia/skia/src/animator/SkCondensedRelease.inc => gfx/skia/skia/src/animator/SkCondensedRelease.cpp
2016-10-24 16:45:46 -07:00
Lee Salzman ab9cf08d5a Bug 1299435 - part 2 - fix Moz2d for Skia m55 update. r=mchang
MozReview-Commit-ID: 8jRzOaS5vqy
2016-10-24 15:22:20 -04:00
Lee Salzman 8869fd86cf Bug 1029705 - allow clipping to a list of device-space rectangles (a region) in DrawTarget via PushDeviceSpaceClipRects. r=bas
MozReview-Commit-ID: 8zM116zB0NB
2016-09-21 17:03:20 -04:00
Mason Chang 21793bcce5 Bug 1290323. Write alpha values for plugin surfaces when using the Skia backend. r=jrmuizel 2016-08-05 10:29:12 -07:00
Nicolas Silva 10809f5f78 Bug 1167235 - Part 2 - Detach DrawTarget snapshots before unlocking TextureClient. r=Bas 2016-07-01 10:58:13 +02:00
Sebastian Hengst 1e83040b43 Backed out changeset b67548cc946e (bug 1167235) 2016-06-28 20:28:23 +02:00
Nicolas Silva 24410dac99 Bug 1167235 - Part 2 - Detach DrawTarget snapshots before unlocking TextureClient. r=Bas 2016-06-28 14:06:55 +02:00
Mason Chang 787d48e2aa Bug 1268502 - Use a CGContext around a Skia Canvas to draw subpixel AA text on popup menus. r=mstange 2016-05-17 11:41:38 -07:00
Lee Salzman ca8c96a592 Bug 1252324 - add DrawTarget API for 3D transforms for use in layers. r=jrmuizel 2016-03-23 01:03:10 -04:00
Lee Salzman 7f2b998fc6 Bug 1257939 - initialize BGRX alpha channel to opaque when clearing and ignore uninitialized alpha in texture clients. r=mchang 2016-03-18 16:58:55 -04:00
Lee Salzman c4f3bf16cc Bug 1244228 - fix DrawTargetSkia::OptimizeSourceSurface to still create Skia surfaces for GPU canvases even if creating a GPU surface failed. r=jmuizelaar 2016-02-03 13:49:36 -05:00
Lee Salzman d67a7412a2 Bug 1240177 - part 2 - cleanups of DrawTargetSkia and SourceSurfaceSkia creation for GPU contexts, r=jrmuizel 2016-01-21 09:51:40 -05:00
Lee Salzman 466b5fb4c9 Bug 1239040 - Fix DrawTargetCairo/DrawTargetSkia LockBits and BorrowedXlibDrawable to work inside PushLayer. r=jrmuizel 2016-01-13 13:11:07 -05:00
Lee Salzman 267c479fcf Bug 1239040 - Implement PushLayer for DrawTargetSkia. r=Bas 2016-01-12 23:30:33 -05:00
Lee Salzman f348a7869e Bug 1239040 - Cleanup of DrawTargetSkia Mask and MaskSurface. r=jrmuizel 2016-01-12 13:26:31 -05:00
Lee Salzman f9d4573bec Bug 1082598 - Part 2: Fix Moz2D Skia usage for Skia update. r=jrmuizel 2015-12-18 13:53:25 -05:00