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

2554 Коммитов

Автор SHA1 Сообщение Дата
Matt Woodrow df71bb3105 Bug 1456555 - Fix bugs in DrawTargetOffset. r=mstange
MozReview-Commit-ID: I4XFoTp1szZ

Depends on D10033

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

--HG--
extra : moz-landing-system : lando
2018-11-06 00:39:59 +00:00
Lee Salzman 82a73c0629 Bug 1455848 - ensure WR DWrite font descriptors can be found in the system font collection. r=jfkthame 2018-11-06 14:43:24 -05:00
Lee Salzman dd9933b890 Bug 1502152 - Skia m71 Moz2D fixes. r=rhunt 2018-10-30 22:17:34 -04:00
Lee Salzman 6e43b8bf7e Bug 1500709 - fix big-endian RGBBitShift in Swizzle. r=me
CLOSED TREE
2018-10-22 14:49:08 -04:00
Lee Salzman 1e136a0603 Bug 1495919 - ensure IDWriteFontFileStream stays alive with NativeFontResourceDWrite. r=jrmuizel 2018-10-18 18:00:23 -04:00
Sylvestre Ledru dd5741407b Bug 1498586 - Add clang-format off to avoid the reformatting of the data structures r=Ehsan
Too hard/impossible for the tool to format correctly these structs

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

--HG--
extra : moz-landing-system : lando
2018-10-12 20:48:24 +00:00
Jean-Yves Avenard 103efd79bc Bug 1497294 - P7. Add P016 and P010 surface format support. r=jgilbert
This is only used with DXVA decoder. P016 and P010 are just like NV12 but with 16 bits data..

Depends on D8246

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

--HG--
extra : moz-landing-system : lando
2018-10-10 22:21:53 +00:00
Jean-Yves Avenard b5f4d81b93 Bug 1497294 - P2. Move type related constant methods to Types.h r=nical
The methods BytesPerPixel, SurfaceFormatForColorDepth, BitDepthForColorDepth, ColorDepthForBitDepth and RescalingFactorForColorDepth all directly depends on the types defined in Types.h, they also return constant values.

As such it makes more sense to have them defined at the same level where the types themselves are declared.

Depends on D8065

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

--HG--
extra : moz-landing-system : lando
2018-10-09 12:56:25 +00:00
Jean-Yves Avenard 786dffc1c6 Bug 1497294 - P1. Remove duplicated method. r=nical
Additionally, add info for the following type:
    R8G8B8
    B8G8R8
    R8G8
    HSV
    Lab
    DEPTH

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

--HG--
extra : moz-landing-system : lando
2018-10-09 13:07:58 +00:00
Jean-Yves Avenard 16852a7fe4 Bug 1495025 - P7. Silence compilation warning r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D7977

--HG--
extra : moz-landing-system : lando
2018-10-08 18:57:58 +00:00
Ryan Hunt fd979d2851 Bug 1475139 part 7 - Add DrawDependentSurface API to DrawTarget. r=mattwoodrow
This commit adds an API to DrawTarget to draw a surface that will be provided
at the time a recording is replayed. The surface is referenced using a user
interpreted ID.

This will be used for drawing a OOP iframe, and the ID will be the TabId.

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

--HG--
extra : rebase_source : d5ce9b429c89e9adb0e5fb180f60125e64f12d4a
2018-09-24 21:43:41 -05:00
Ryan Hunt 2af89b5ed4 Bug 1475139 part 5 - Only use external fonts with DrawEventRecorderMemory if we have a callback. r=jrmuizel
This was giving me some font assertion crashes, and changing this as a hunch fixed it.

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

--HG--
extra : rebase_source : 99bf039f33e314fb6f88ea283cf4cc575b054566
2018-09-24 21:33:14 -05:00
Jean-Yves Avenard d14584ec03 Bug 1495025 - P4. Add COLOR_16 type r=nical
Depends on D7296

Differential Revision: https://phabricator.services.mozilla.com/D7316
2018-10-08 15:52:01 +02:00
Narcis Beleuzu 18849ef0ae Backed out 6 changesets (bug 1495025) for webgl2 failures on test_2_conformance2__textures__misc__npot-video-sizing.html
Backed out changeset 24d67618f6b9 (bug 1495025)
Backed out changeset 68efa7588ba8 (bug 1495025)
Backed out changeset 9f59a50dcc6d (bug 1495025)
Backed out changeset 7fd1f6103294 (bug 1495025)
Backed out changeset f1afe7e2a9e3 (bug 1495025)
Backed out changeset c62823871aca (bug 1495025)
2018-10-07 02:03:46 +03:00
Jean-Yves Avenard 3903fac067 Bug 1495025 - P4. Add COLOR_16 type r=nical
Depends on D7296

Differential Revision: https://phabricator.services.mozilla.com/D7316
2018-10-06 21:31:22 +02:00
Brindusan Cristian 070df1d4c1 Backed out 6 changesets (bug 1495025) for mochitest-webgl2 failures in test_2_conformance2__textures__misc__npot-video-sizing.html. CLOSED TREE
Backed out changeset 263d4f722174 (bug 1495025)
Backed out changeset 528dbc463c22 (bug 1495025)
Backed out changeset 25895d283d47 (bug 1495025)
Backed out changeset c3b43ee1092e (bug 1495025)
Backed out changeset c548d816019d (bug 1495025)
Backed out changeset 208624601a18 (bug 1495025)
2018-10-04 15:16:07 +03:00
Jean-Yves Avenard 89935cc430 Bug 1495025 - P4. Add COLOR_16 type r=nical
Depends on D7296

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

--HG--
extra : moz-landing-system : lando
2018-10-04 09:47:57 +00:00
arthur.iakab ec46826255 Merge inbound to mozilla-central. a=merge 2018-09-26 15:54:41 +03:00
Ciure Andrei 7426f19d64 Merge mozilla-central to autoland. a=merge CLOSED TREE 2018-09-26 00:51:44 +03:00
Ciure Andrei ce57be88b8 Merge inbound to mozilla-central. a=merge 2018-09-26 00:49:06 +03:00
Jean-Yves Avenard b10364a15f Bug 1493198 - P2. Use enum for describing color depth. r=mattwoodrow
Depends on D6662

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

--HG--
extra : moz-landing-system : lando
2018-09-25 20:44:55 +00:00
Jean-Yves Avenard cfc24b769e Bug 1469711 - P1. Add 10/12 bits YUV support to D3D11 compositor. r=mattwoodrow
This change is for D3D11 with Advanced Layers enabled.

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

--HG--
extra : moz-landing-system : lando
2018-09-25 11:18:34 +00:00
Andrew Osmond 64e9e7e583 Bug 1492930 - Part 2. Expose the external image ID for surfaces' memory reporting. r=nical 2018-09-25 09:13:51 -04:00
Ciure Andrei 6760739b90 Merge mozilla-central to mozilla-inbound. a=merge CLOSED TREE 2018-09-26 00:53:40 +03:00
Cameron McCormack ae263787a7 Bug 1492660 - Deal with negative turbulence tile offsets when base frequency is zero r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D6351

--HG--
extra : moz-landing-system : lando
2018-09-20 03:18:58 +00:00
Mike Hommey b5c39c5a85 Bug 1492065 - Use Swizzle fallback when SSE2 is not supported r=lsalzman
The same is done for NEON, and the check folds to nothing when building
when the build target supports SSE2 and runtime detection is not
necessary.

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

--HG--
extra : moz-landing-system : lando
2018-09-18 15:47:43 +00:00
Bas Schouten 3f601ce856 Bug 1479640: Restructure cleartype parameter code to run less frequently and only in the parent process. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D4784

--HG--
extra : moz-landing-system : lando
2018-09-13 18:59:27 +00:00
Narcis Beleuzu 3a8485e6e6 Backed out 6 changesets (bug 1492930) for build bustages on ImageMemoryReporter.cpp. CLOSED TREE
Backed out changeset 9d1ff0d0af47 (bug 1492930)
Backed out changeset bdb1bf2d8062 (bug 1492930)
Backed out changeset 2959314ecf7c (bug 1492930)
Backed out changeset 587e01daa080 (bug 1492930)
Backed out changeset 1a6b422c5a90 (bug 1492930)
Backed out changeset a3b3f4cdc9fa (bug 1492930)
2018-09-25 13:33:17 +03:00
Andrew Osmond c1c4901bbd Bug 1492930 - Part 2. Expose the external image ID for surfaces' memory reporting. r=nical 2018-09-25 06:18:06 -04:00
Lee Salzman 199ddffb5d Bug 1477625 - Don't use subpixel positioning for GDI fonts in WebRender. r=jrmuizel 2018-09-12 13:34:08 -04:00
Jonathan Kew d8469d13d7 Bug 1441323 - Handle font variation settings in ScaledFontDWrite::GetWRFontInstanceOptions. r=lsalzman 2018-02-26 21:56:07 +00:00
Lee Salzman de75729420 Bug 1480615 - reuse scaled fonts across blob image recordings. r=jrmuizel 2018-09-05 21:55:53 -04:00
Bas Schouten f8bf86582d Bug 1486415: Ensure the SourceSurface stays alive for the duration of MarkIndependent. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D4856
2018-09-03 15:16:28 +02:00
Lee Salzman 5285c599ca Bug 1485712 - set SkTypeface atomically in ScaledFonts. r=rhunt 2018-08-23 14:58:21 -04:00
Ryan Hunt a5cee657d8 Bug 1414389 - Remove use of RwAssert in CaptureCommandList. r=lsalzman
--HG--
extra : rebase_source : a657f30cd10bed422883c554f799ea4fc884f508
2018-08-21 17:54:20 -05:00
Jamie Nicol c0b13f02f6 Bug 1484101 - Ensure DrawTargetTiled::PadEdges is called with region in device space. r=rhunt
In MultiTiledContentClient we can create a DrawTargetTiled with a
different origin than the layer we are painting. We must therefore
ensure when edge-padding that we provide the valid region in the draw
target's device-space rather than layer-space. Not doing so was
causing us to pad out in incorrect directions, causing visible seams.

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

--HG--
extra : moz-landing-system : lando
2018-08-22 16:29:52 +00:00
Lee Salzman bf12f26ad9 Bug 1479196 - draw missing glyphs from an atlas instead of rectangles. r=jfkthame 2018-08-21 12:40:36 -04:00
Ryan Hunt 8091824d19 Bug 1478815 part 10 - Don't submit PaintTask's if the DrawTargetCapture is empty. r=bas
This commit exposes a method on DrawTargetCapture to see if it has
captured any drawing commands. This allows us to not dispatch
paint tasks if they will do nothing.

Ideally these tasks would execute instantly on the PaintThread, and
we would never delay sending the layer transaction or block on the
next paint, but with thread starvation and context switches it's
best to just not send them.

MozReview-Commit-ID: 7ywkEDBw6EX

--HG--
extra : rebase_source : c60c1c25d551e4a7c14c529137f8e0babc888466
extra : source : 7ae4c893867a5f7df81e0757d4b4a6a21cbc6986
2018-07-31 17:47:51 -05:00
Ryan Hunt 16e8c5d426 Bug 1478815 part 9 - Add ability to create a DrawTargetCapture that can flush to its destination draw target. r=bas
This commit adds the ability to create a different kind of DrawTargetCapture which
has a limit on the size of which its CaptureCommandList can grow before it is
synchronously flushed to its destination DrawTarget.

Special care is taken to not do a sync flush until we would need to resize
the backing store of the CaptureCommandList. This allows us to not waste
memory we've already allocated.

The async painting content clients are updated to use it, and get a default
value from a new preference.

MozReview-Commit-ID: CJL7ffvaRzR

--HG--
extra : rebase_source : f646862dcef7a480b21dfb7ddb1fa165338ba506
extra : source : b865a866fe5a3257615cb54b7e5e790cc9331988
2018-07-26 16:33:07 -05:00
Ryan Hunt 2dd7814423 Bug 1478815 part 8 - Remove buffer operations for ContentClient. r=nical
This commit moves ContentClient from creating a CapturedBufferState for
buffer operations, to performing all of those operations on the
DrawTarget(Capture). Creating a DrawTargetCapture is now performed
by the RotatedBuffer when we BeginPaint, all operations are performed
on this capture, and then it's returned to the ClientPaintedLayer
as a PaintTask.

This commit is an involved refactoring of ContentClient and RotatedBuffer
to get this all to work. Here are the major parts:

1. RotatedBuffer is refactored to always perform operations on a single
   DrawTarget, which may be a single DT, dual DT, or capture.
2. RotatedBuffer adds BeginCapture and EndCapture methods to switch
   which DT is used in operations
3. ContentClient uses the RB capture methods when we are async painting
4. CC::BeginPaint is refactored to only perform capturing on a single
   RotatedBuffer. This is because we can't have the output of one
   PaintTask be the input of a different PaintTask due to the design
   of the Snapshot API.
      a. This can occur, today, by doing a FinalizeFrame only to later
         fail to Unrotate the buffer, causing a new RB to be created
         and painted into
      b. The previous PaintThread code worked because it used the
         buffer operations which didn't use Snapshot's
      c. This is fixed by not doing FinalizeFrame on a buffer if we
         realize we cannot unrotate it, and switching to initializing
         a buffer using the front buffer which should be up to date.
      d. I don't like touching this code, but it passes reftests,
         might be a performance improvement, and I've tested it on
         known regressions from the last time I messed up this code.
5. CC::PrepareForPaint is inlined into BeginPaint because dual draw
   targets can be cleared correctly from a previous commit
6. The code paths in ClientPaintedLayer are unified because we no
   longer need to special case this beyond setting the correct
   ContentClient flag.
7. CapturedPaintState and CapturedBufferState are removed in favor
   of PaintTask. Additionally EndLayer is no longer needed as all
   quadrants of a rotated buffer are in the same capture, so we
   don't need special case flushing code.

MozReview-Commit-ID: 9UI40dwran

--HG--
extra : rebase_source : 809d9816970648468de972c30b0c230c2f21e27b
extra : source : 405ad351821813333c0e989b93e2aeb49ba8552c
2018-07-26 11:23:26 -05:00
Ryan Hunt a71d0035ad Bug 1478815 part 7 - Add a buffer unrotate operation to DrawTarget. r=bas
This commit adds a buffer unrotate operation to DrawTarget. It's
initially implemented with LockBits in DrawTarget. DrawTargetDual
overrides the implementation to pass on the operation to it's
DrawTargets.

No override is given for DrawTargetCapture as we intentionally
avoid this code path when async painting as it can fail.

This is needed so that RotatedBuffer can expose a single DrawTarget,
which can be a DrawTarget (for normal alpha), DrawTargetDual (for
component alpha), or DrawTargetCapture (when async painting).

MozReview-Commit-ID: csjjZ733hl

--HG--
rename : gfx/layers/BufferUnrotate.cpp => gfx/2d/BufferUnrotate.cpp
rename : gfx/layers/BufferUnrotate.h => gfx/2d/BufferUnrotate.h
extra : rebase_source : 5d96e2a5d36a01f2f9992adb37830e56436c7c35
extra : source : 64cb50b227e0ae604653f03ce2e892493126392e
2018-08-01 12:50:32 -05:00
Ryan Hunt e3b25e9b10 Bug 1478815 part 6 - Add ability to create a SourceSurfaceDual directly. r=bas
This commit adds the ability to create a SourceSurfaceDual directly,
instead of only from a DrawTargetDual. This allows SourceRotatedBuffer
to expose itself as a single SourceSurface for a later commit.

MozReview-Commit-ID: K21K42cGDy1

--HG--
extra : rebase_source : d3fe48ac711f9cd28799bfd8d36b74750cb15554
extra : source : 392a724d5acd25854e871fa47335c4b938fe9ae1
2018-08-01 12:49:19 -05:00
Ryan Hunt 9c419c4c91 Bug 1478815 part 2 - Make DrawTargetDual aware of component alpha clearing. r=bas
This commit changes the behavior of DrawTargetDual::Clear to be aware that
it has on-white and on-black buffers, and perform clearing appropriately.

This is slightly against what the DrawTarget documentation says the method
should do, but it allows us to move another paint thread operation into
DrawTargetCapture and simplify our ContentClient implementations.

I haven't seen any obvious breakage with this, and reftests are green.

An alternative would be to add a separate Clear method with documented
difference here.

MozReview-Commit-ID: 65CzcxlRqv7

--HG--
extra : rebase_source : 299adbb02e79f66f7d6860c5fe86784bad8332f8
extra : source : 3dc47f17fa446bb7f2b5876753f8271a93c0e0c8
2018-08-01 12:45:35 -05:00
Ryan Hunt 53537230f9 Bug 1478815 part 1 - Add a PadEdges operation to DrawTarget. r=bas
This commit adds an operation to perform 'edge padding' on a draw
target. By default this is performed using LockBits, but it's
overriden in DrawTargetTiled and DrawTargetCapture to propagate
the call so it functions correctly.

This helps TiledContentClient move from applying this operation
on a per texture client basis, to being able to do it on the
DrawTargetTiled after painting. This in turn helps move all
paint thread operations into DrawTargetCapture.

MozReview-Commit-ID: 2ncOTxGXQfk

--HG--
rename : gfx/layers/BufferEdgePad.cpp => gfx/2d/BufferEdgePad.cpp
rename : gfx/layers/BufferEdgePad.h => gfx/2d/BufferEdgePad.h
extra : rebase_source : a3315644fe31f2a432935dcbfdb9969c58b691e1
extra : source : 699c954992f87db7fc792f5562090de42a8162cb
2018-08-01 12:44:33 -05:00
Bas Schouten 4e20187f58 Bug 1480832: Convert nsRegion's internal bounds representation to nsRectAbsolute, and define overflow behaviors. r=mattwoodrow 2018-08-07 15:54:32 +00:00
Jeff Muizelaar 955d35ed01 Bug 1480608. Skip over items that aren't in DrawTarget/DirtyRect. r=mstange
MozReview-Commit-ID: Kc9E1SUVUh3

--HG--
extra : rebase_source : d3ee33154622915bd444139bce639e4372fe8f43
2018-08-02 18:09:17 -04:00
Narcis Beleuzu 5200364866 Backed out changeset 00ff83d23238 (bug 1480608) for build bustages on Moz2DImageRenderer.cpp. CLOSED TREE 2018-08-08 01:48:46 +03:00
Jeff Muizelaar 75d7e45d83 Bug 1480608. Skip over items that aren't in DrawTarget/DirtyRect. r=mstange
MozReview-Commit-ID: Kc9E1SUVUh3

--HG--
extra : rebase_source : aa6561d103b3ab40f9d6033008bdc2fef3d395f8
2018-08-02 18:09:17 -04:00
Jeff Muizelaar 76eeb03deb Bug 1480620. Clip the filter source rect to the transformed DrawTarget bounds. r=mstange
This lets us avoid filtering the entire source image when we only need a small portion of it.
This makes a big performance difference with tiled blob images with WebRender.

MozReview-Commit-ID: EbMZ7ZJEeCe

--HG--
extra : rebase_source : 3f507ca5776e4ad63ac2ea71f20376519953274c
2018-08-01 21:26:40 -04:00
Jeff Muizelaar 8715d55e01 Bug 1480620. Add DrawTargetOffset. r=bas
This adds a DrawTargetOffset which is basically a simplified
DrawTargetTiled that only supports one tile. It useful for situations
where Cairo's device offset was used previously.

This also replaces WebRender's use of DrawTargetTiled which was just trying to
apply offset.

MozReview-Commit-ID: I33PB6CnHh0

--HG--
extra : rebase_source : 9fa51a0180343231cfca41daa0e3fa53f1b7befe
2018-08-03 10:48:37 -04:00
Andi-Bogdan Postelnicu b2d4c86823 Bug 1453795 - GFX - Initialize member fields in classes/ structures. r=nical
--HG--
extra : rebase_source : 56f2cc017632bf27115490ae05254019108c6179
extra : amend_source : 98ea6c3c02a9f7650d2cf65deaf5085cf9a2efa4
2018-06-16 17:42:33 +03:00
Masatoshi Kimura 3b21b7868b Bug 1090497 - Re-enable warnings as errors on clang-cl. r=froydnj
--HG--
extra : rebase_source : c09366fb93e5b0f72abe1e99d3094e3d96a934fb
extra : intermediate-source : 5950c9d63c3b4fd63a25464a7b50944aaec7079f
extra : source : ca1b9a2bcc4381795f556fea2fb59066567c30f3
2018-07-31 22:10:07 +09:00
Lee Salzman 864930c221 Bug 1479010 - don't populate a ScaledFont's cairo scaled font unless targeting cairo. r=jrmuizel 2018-08-03 00:56:06 -04:00
Cosmin Sabou de8c2bd891 Backed out changeset 5950c9d63c3b (bug 1090497) for build bustages on several files. CLOSED TREE 2018-08-02 19:59:53 +03:00
Masatoshi Kimura feea19030c Bug 1090497 - Re-enable warnings as errors on clang-cl. r=froydnj
--HG--
extra : rebase_source : a62521fdc66def4e4d5d7bf52e68365a786b5c55
extra : source : ca1b9a2bcc4381795f556fea2fb59066567c30f3
2018-07-31 22:10:07 +09:00
David Major a9e8069a9b Bug 1479456: Fix some non-unified bustage in gfx/thebes. r=jrmuizel 2018-08-01 13:02:18 -04:00
Nicolas Silva 514e74387d Bug 1474722 - Prevent large rect integer overflows without forbidding large nine-patches. r=Bas 2018-08-01 17:13:12 +02:00
Jamie Nicol 35e92591dd Bug 1474883 - Ensure D2D glyph cache is pruned after rendering 1000 transformed glyphs. r=bas
Rendering glyphs at many different rotations was causing the D2D glyph
cache to grow very large. Calling EndDraw/BeginDraw will prune the
cache, but is costly, so only do it for every 1000 glyphs.

MozReview-Commit-ID: HUFpxDvYAzQ

--HG--
extra : rebase_source : de283c5e687da07e5417e0d221d7f45b992080d5
2018-07-26 15:23:19 +01:00
Lee Salzman 79d6db9a30 Bug 1478084 - make cairo_font_face_set_user_data thread-safe. r=jrmuizel 2018-07-26 15:23:25 -04:00
Kartikaya Gupta dfc93a4506 Bug 1477471 - Add missing pop_back call. r=jrmuizel 2018-07-24 14:06:30 -04:00
Kartikaya Gupta 3dfe60b882 Bug 1477471 - Implement PushLayerWithBlend for DrawTargetTiled. r=jrmuizel 2018-07-24 14:06:23 -04:00
Robert Longson da1ac338dc Bug 1474284 - cope with degenerate bezier curves r=baz 2018-07-23 18:36:09 +01:00
Miko Mynttinen c9202e2933 Bug 1477260 - Clip the rect in Matrix4x4TypedFlagged::TransformAndClipBounds, when transform is an identity matrix r=bas
MozReview-Commit-ID: 3a8vnl3K87n

--HG--
extra : rebase_source : b4bdd2b14e10becee20007e453497e9d7a204097
2018-07-20 17:28:37 +02:00
Robert Bartlensky dbbe5d1893 Bug 1476645: Fix DEAD_STORE errors in gfx/*. r=lsalzman
MozReview-Commit-ID: GYAWaLcpfsz

--HG--
extra : rebase_source : 30b9bdfda57e2773d5311dad83fa7ea468865c70
2018-07-18 16:54:00 +01:00
Lee Salzman 778675de84 Bug 1474968 - pass DWrite font gamma and contrast to WebRender. r=jrmuizel 2018-07-18 22:16:50 -04:00
arthur.iakab ecc4a026dc Backed out 2 changesets (bug 1474722)For freqvently failing test verify on gfx/tests/reftest/1474722.html CLOSED TREE
Backed out changeset 53d0bbb455cb (bug 1474722)
Backed out changeset 315d75c42ef0 (bug 1474722)
2018-07-18 19:48:21 +03:00
Nicolas Silva 76b07b62c3 Bug 1474722 - Prevent large rect integer overflows without forbidding large nine-patches. r=Bas 2018-07-13 14:40:58 +02:00
Bas Schouten 2ffa4da191 Bug 1476506: Move RoundedRect into Moz2D and convert all callers. r=mattwoodrow 2018-07-18 08:55:43 +02:00
Bas Schouten ab9f118366 Bug 1473937 - Part 2: Add Opacity filter D2D implementation. r=mstange 2018-07-17 21:11:14 +02:00
Bas Schouten 7e185acb09 Bug 1473937 - Part 1: Add Opacity filter and software implementation. r=mstange 2018-07-17 21:11:13 +02:00
Matt Woodrow 9171c79a67 Bug 1372458 - Fold opacity into filter drawing rather than using a temporary surface. r=bas,mstange
MozReview-Commit-ID: GOBTUhN7fcC

--HG--
extra : rebase_source : 8355d2001dcc8fba5e43d4ace6483896a9d9cd31
2018-07-14 15:25:49 +12:00
Andrew Osmond a52fbf8ab5 Bug 1469964 - Part 2. Make shared surfaces use external image update mechanism. r=nical 2018-07-12 11:43:12 -04:00
Boris Chiou ffa1da7545 Bug 1467277 - Avoid getting zero normalized vector of rotate3d when setting a rotate matrix. r=nical
For example, if we set a transform to rotate3d(0, 0, 1e50, 45deg), the
expected normalized rotate axis is (0, 0, 1).
However, the length is larger than the maximum of float, so the actual value is
(0/inf, 0/inf, 1e50/inf) == (0, 0, 0). Therefore, we scale the vector before
doing normalization to avoid getting a zero vector.

MozReview-Commit-ID: 5LUDWD4RuNj

--HG--
extra : rebase_source : eb82f0b3979bf6ea3cd11b643ebb30a49edc24f8
2018-07-05 15:40:39 -07:00
Lee Salzman 23c3cc8f6b Bug 1467847 - avoid taking inverse in Polygon::TransformToScreenSpace when possible. r=miko 2018-07-09 15:52:42 -04:00
Bas Schouten d1d1555fb6 Bug 1474027: Rename RectAbsolute members and make them easier to access. r=botond 2018-07-09 16:39:50 +00:00
Lee Salzman e251ecb952 Bug 1460259 - Send synthetic oblique angle to WR. r=jfkthame 2018-07-04 10:56:40 -04:00
Ryan Hunt 0401ad902b Bug 1414389 - Add thread safety assertions in capture command list. r=bas
--HG--
extra : rebase_source : 0def858a2cce7ac6ef73fd8caa1e0e0b64b03ef6
2018-06-29 15:45:17 -05:00
Ryan Hunt ab5640b5e6 Bug 1471761 - Virtualize mType to reduce DrawingCommand size. r=bas
MozReview-Commit-ID: EFcVLZ6amNr

--HG--
extra : rebase_source : 0111dea6e377dff75b70a8b0e6d25f670e57d297
extra : histedit_source : 5bc07620340f71731918a99dcd95dcb3ee3b99c9
2018-06-27 18:26:38 -05:00
Ryan Hunt 5233d2ccc5 Bug 1471761 - Drop unused GetAffectedRect and fix virtual styling. r=bas
MozReview-Commit-ID: 9Gra35FVeQY

--HG--
extra : rebase_source : bf45336df86147657d2e851fadff6c25672d6288
extra : histedit_source : 517be1662712adb718f459f6f2c3a3fe6972e67b
2018-06-27 18:11:38 -05:00
Ryan Hunt 533d5ab90b Bug 1471761 - Remove unused ContainsOnlyColoredGlyphs. r=mattwoodrow
MozReview-Commit-ID: JQlkVnV2sz8

--HG--
extra : rebase_source : 1b424f810c19b68f7552032614bce57ed329daf0
extra : histedit_source : d15bde33953b20469fd205f3a0c720f8cae0c08d
2018-06-27 18:11:06 -05:00
Ryan Hunt 6497093aa2 Bug 1471261 - Add global locking around FT_Load_Glyph to work around postscript hinter global data. r=lsalzman
MozReview-Commit-ID: 9ohfqUnPxMc

--HG--
extra : rebase_source : b4a0e02cd0685a1623cc2bd0ffdc34429f3b8729
2018-06-26 11:30:13 -04:00
Lee Salzman 9e14da3f5a Bug 1470515 - refactor ScaledFontFreeType for Android WR. r=rhunt
--HG--
rename : gfx/2d/NativeFontResourceFontconfig.cpp => gfx/2d/NativeFontResourceFreeType.cpp
rename : gfx/2d/NativeFontResourceFontconfig.h => gfx/2d/NativeFontResourceFreeType.h
rename : gfx/2d/ScaledFontCairo.cpp => gfx/2d/ScaledFontFreeType.cpp
rename : gfx/2d/ScaledFontCairo.h => gfx/2d/ScaledFontFreeType.h
2018-06-14 16:42:56 -07:00
Miko Mynttinen 4c85ef17cc Bug 1465060 - Part 1: Fix warnings for std::move() use r=froydnj
MozReview-Commit-ID: HpdFXqQdIOO

--HG--
extra : rebase_source : 1e7eea4f2d4ec16ec0c559a8afb26976ddbf4d07
2018-06-01 17:59:07 +02:00
arthur.iakab 7e765f798b Backed out 2 changesets (bug 1465060) for build bustages on security/sandbox/linux/reporter/SandboxReporter.cpp
Backed out changeset 7c8905b6b226 (bug 1465060)
Backed out changeset 10446073eca8 (bug 1465060)
2018-06-03 19:25:41 +03:00
Miko Mynttinen 8d9dc85cd4 Bug 1465060 - Part 1: Fix warnings for std::move() use r=froydnj
MozReview-Commit-ID: HpdFXqQdIOO

--HG--
extra : rebase_source : 619d0e0ff63a2453c80f0c4d9beb906d43fa9b01
2018-06-01 17:59:07 +02:00
Emilio Cobos Álvarez 1e9c395548 Bug 1466168: Remove mozilla::Forward in favor of std::forward. r=froydnj
Same approach as the other bug, mostly replacing automatically by removing
'using mozilla::Forward;' and then:

  s/mozilla::Forward/std::forward/
  s/Forward</std::forward</

The only file that required manual fixup was TestTreeTraversal.cpp, which had
a class called TestNodeForward with template parameters :)

MozReview-Commit-ID: A88qFG5AccP
2018-06-02 09:33:26 +02:00
Lee Salzman 5cf4237333 Bug 1464094 - follow-up - check that dlsym succeeded in ApplyVariations. r=me
MozReview-Commit-ID: 5lrrnFVKMS0
2018-06-01 15:39:50 -04:00
Lee Salzman 6069a3aae9 Bug 1464094 - follow-up - check that dlsym succeeded. r=me
MozReview-Commit-ID: L6jOU6C9CHS
2018-06-01 15:32:33 -04:00
Lee Salzman 50e6372cf9 Bug 1464094 - print font variations as paths for PDF/PS output. r=jfkthame
MozReview-Commit-ID: 3sPKD4pNwdy
2018-06-01 13:08:57 -04:00
Emilio Cobos Álvarez fffb25b74f Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj
This was done automatically replacing:

  s/mozilla::Move/std::move/
  s/ Move(/ std::move(/
  s/(Move(/(std::move(/

Removing the 'using mozilla::Move;' lines.

And then with a few manual fixups, see the bug for the split series..

MozReview-Commit-ID: Jxze3adipUh
2018-06-01 10:45:27 +02:00
Andrew Osmond d76ab26901 Bug 1462355 - Part 8. Avoid allocating on the heap in DrawableFrameRef. r=tnikkel
We can easily use Maybe<DataSourceSurface::ScopedMap> instead of
allocated the map on the heap. This does require some minor changes to
ScopedMap to properly support moves, but should be much more efficient.
2018-05-29 08:36:13 -04:00
jmuizelaar@mozilla.com e6ddc950f8 Bug 1452375 - sse3-scaler: make sure iter->x/y is representable. r=sotaro 2018-05-29 14:27:09 +09:00
jmuizelaar@mozilla.com fc530ca316 Bug 1452375 - ssse3-scaler: handle init failure r=sotaro 2018-05-29 14:26:38 +09:00
Kartikaya Gupta 8e203673f1 Bug 1463416 - use new WR subpixel positioning API from WR PR 2738. r=Gankro
Patch originally developed on bug 1458921 but needs to land with the WR update.

MozReview-Commit-ID: 82BYyNWBAfn

--HG--
extra : rebase_source : e6bca2f446c019fd41a37c2c28db73bbe1cfc216
2018-05-26 11:09:21 -04:00
Hiroyuki Ikezoe 5c588a8653 Bug 1464627 - Fix the spec link to 3D rotation matrix. r=emilio DONTBUILD
MozReview-Commit-ID: F5P4pCvD0Ww

--HG--
extra : rebase_source : 8c97814986517b81affa39c3be06e18427d1e4e8
2018-05-27 09:55:06 +09:00
Bas Schouten 2c20988af9 Bug 1457110: Restore behavior of maintaining width/height when one of the two is exactly zero. r=jrmuizel
MozReview-Commit-ID: 5OpjfTnJQxe
2018-05-25 18:16:52 +02:00
Lee Salzman 2f14d46de8 Bug 1463244 - cleanup of swizzle stride calculations. r=rhunt
MozReview-Commit-ID: GMXRKnu8zHB
2018-05-25 00:56:22 -04:00
Bob Owen 8a6b8bfbbf Bug 1462049: Fix MemStream allocation to only allocate its capacity. r=jrmuizel 2018-05-16 18:26:24 +01:00
Ryan Hunt 2f01e497c3 Bug 1454978 - Move MOZ_ASSERT(mIsMapped) into mChangeMutex. r=bas
We must check mIsMapped inside mChangeMutex or else we could run into a race condition where
the source surface is subsequently mapped again before the function terminates. This was
being hit on try.

MozReview-Commit-ID: 1eot3DVW8VD

--HG--
extra : rebase_source : 19f2514d9e2412ee5fe7c99844b7f64f78a7425e
2018-04-25 12:44:58 -05:00
Bas Schouten 2c2327c372 Bug 1427063: Have D2D interpret colors in premultiplied space. As it says is its default. r=rhunt
MozReview-Commit-ID: 5OWjHW1CqjN
2018-04-23 19:27:48 +02:00
Andrew Osmond 63d93fdc78 Bug 1425484 - Part 3. Integrate shared surfaces with the blob image recordings. r=jrmuizel 2018-04-26 19:00:16 -04:00
Bas Schouten 8338ab994b Bug 1387399: Add SIMD optimizations for methods used frequently in nsRect. r=jrmuizel
This improves the DisplayList Mutate Talos test by about 5% on windows, as well as numerous smaller improvements on DisplayList heavy tasks.

MozReview-Commit-ID: tlEtPjqWI4
2018-04-19 15:56:29 +02:00
Jonathan Watt 156c4af1ec Bug 1436048: Use user defined types for font-stretch / font-style. r=jfkthame,jwatt
Co-authored-by: Emilio Cobos Álvarez <emilio@crisal.io>

MozReview-Commit-ID: 7ONYtICeAqb
2018-04-23 18:22:05 +02:00
Jonathan Kew 4b2b2d4c9f Bug 1455569 - Handle variation settings of system-installed variation fonts when creating CTFont from CGFont on High Sierra. r=lsalzman 2018-04-20 17:18:03 +01:00
Cosmin Sabou b9a82af44a Backed out 2 changesets (bug 1387399) for OSX reftests permafailures on attachment-local-positioning-2.html. a=backout
Backed out changeset b78a225fa8c9 (bug 1387399)
Backed out changeset 4beeacb75bf5 (bug 1387399)
2018-04-20 06:47:41 +03:00
Bas Schouten 0dee5c2745 Bug 1387399: Add SIMD optimizations for methods used frequently in nsRect. r=jrmuizel
This improves the DisplayList Mutate Talos test by about 5% on windows, as well as numerous smaller improvements on DisplayList heavy tasks.

MozReview-Commit-ID: tlEtPjqWI4
2018-04-19 15:56:29 +02:00
Jonathan Kew 8cc9d24a4f Bug 1454094 - Explicitly copy font variation settings from CGFont when creating a CTFont only on macOS Sierra; on HighSierra, rely on Core Text to automatically propagate the required settings. r=lsalzman 2018-04-18 22:08:41 +01:00
Jonathan Kew 94238d9823 Bug 1452973 - Update NS_FONT_STRETCH_* constants to values based on the percentage definitions in css fonts 4. r=jwatt 2018-04-16 10:00:57 +01:00
Miko Mynttinen 0b8872867b Bug 1393367 - Change MOZ_ASSERT to MOZ_RELEASE_ASSERT. r=mstange, r=fbraun 2018-04-12 14:18:03 +02:00
Jonathan Watt 1e7f76576a Bug 1436048 part 1 - Use a user defined type for font weight everywhere. r=jfkthame,emilio
--HG--
extra : rebase_source : 2e267ff99de6f52484e34ac15c39e5ca8b473394
2018-04-13 20:34:37 +01:00
Andrew Osmond f17c1700f1 Bug 1452467 - Make native font resource memory allocations fallible. r=lsalzman 2018-04-13 13:33:15 -04:00
Andrew Osmond 74807c64ae Backed out changeset e5336e51b77f (bug 1452467) for Windows static analysis build bustage on a CLOSED TREE. r=aosmond 2018-04-13 10:14:12 -04:00
Andrew Osmond 117614d724 Bug 1452467 - Make native font resource memory allocations fallible. r=lsalzman 2018-04-13 09:41:29 -04:00
Sebastian Hengst 0819f35e51 Backed out 4 changesets (bug 525063) on request from Andi. a=backout
Backed out changeset 516c4fb1e4b8 (bug 525063)
Backed out changeset 6ff8aaef2866 (bug 525063)
Backed out changeset bf13e4103150 (bug 525063)
Backed out changeset d7d2f08e051c (bug 525063)
2018-04-13 16:01:28 +03:00
Tristan Bourvon a3a77c0312 Bug 525063 - Initialize uninitialized class attributes in m-c. r=ehsan 2018-04-10 21:11:02 +02: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
Robert Longson 36466d75ed Bug 1451066 - One t in detach r=jmuizelaar
--HG--
extra : rebase_source : 00669d1975e41963a2dc030d76c7edf78fcd1593
2018-04-03 10:54:00 +03: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
Lee Salzman ff2a78845b Bug 1448667 - use ColorMatrix effect instead of LuminanceToAlpha effect for DrawTargetD2D1::IntoLuminanceSource. r=bas
MozReview-Commit-ID: LHbSiFBx6HK
2018-04-05 14:07:18 -04:00
Ryan Hunt c371c4f33a Check if FilterNodeCapture was able to successfully validate (bug 1447428, r=bas)
--HG--
extra : rebase_source : e236b64a6733cddfb43caf83373dc8e874bcfb42
2018-03-26 12:48:57 -05:00
David Major 2c5d006825 Bug 1298383: Add default cases to appease clang-cl's -Wswitch. r=Bas 2018-03-28 09:56:30 -04:00
Jeff Muizelaar d07c300116 Bug 1388842. Add blob invalidation. r=mstange
MozReview-Commit-ID: 5xwqlULUbZe
2018-03-27 17:31:04 -04:00
Jeff Muizelaar fe9267ddda Bug 1449029. Moz2D Recording: Make Finish() return if any items. r=lsalzman
Blob image invalidation will use will use this to avoid sending empty recordings.

MozReview-Commit-ID: BlP5kqCbBys
2018-03-27 17:31:03 -04:00
Ryan Hunt 12792a2bc5 Add GuaranteePersistence to PushLayer in DrawTargetCapture. (bug 1447144, r=bas)
--HG--
extra : amend_source : 4492b72ad9e306aeefadddd970b0e997de386239
2018-03-19 13:32:12 -05:00
Jeff Muizelaar 4338f2052b Bug 1388842. Add support for updating blob images. r=mstange
Currently, we use a simple merging algorithm, because the more
complicated ones didn't work.

This code won't actually be used until we do blob image invalidation
in a follow up.

MozReview-Commit-ID: Q2Em3QC195
2018-03-20 10:30:26 -04:00
Jeff Muizelaar e81d471371 Bug 1440702. Add equality operators to Matrix4x4Flagged. r=Bas
This adds a naive implementation of equality. We can do better
in the future by looking at the flags.

MozReview-Commit-ID: K4xdfCmvvb9
2018-03-16 16:42:03 -04:00
Lee Salzman 5eb6435f7a Bug 1444506 - part 2 - Moz2D fixes for Skia m66 update. r=jrmuizel 2018-03-12 16:37:10 -04:00
Botond Ballo 74cd005201 Bug 1442767 - Rename Box to RectAbsolute (Moz2D changes). r=bas
MozReview-Commit-ID: 7VOZs8pQgJ4

--HG--
rename : gfx/2d/Box.h => gfx/2d/RectAbsolute.h
extra : rebase_source : 46dc03f33d51f28729a56cf25055f4eb3e7dad6f
2018-03-05 16:35:35 -05:00
Jonathan Kew 8334108f71 Bug 1433060 - Support font variations in Moz2d recording stream on Windows, so printing with variation fonts works properly. r=lsalzman
--HG--
rename : gfx/thebes/dw-extra.h => gfx/2d/dw-extra.h
2018-02-26 21:21:01 +00:00
Lee Salzman b63d990b24 Bug 1440559 - don't multiply DataSourceSurfaceRecording stride by bpp. r=jrmuizel
MozReview-Commit-ID: LvvB9HlF01h
2018-02-23 10:37:32 -05:00
Andrew Osmond cd7cf0fad3 Bug 1427639 - Part 2. Fix misleading image memory reporting on Android. r=tnikkel
The shared memory handle reporting has been generalized to be an
external handle reporting. This is used for both shared memory, and for
volatile memory (on Android.) This will allow us to have a better sense
of just how many handles are being used by images on Android.

Additionally we were not properly reporting forced heap allocated
memory, if we were putting animated frames on the heap. This is because
we used SourceSurfaceAlignedRawData without implementing
AddSizeOfExcludingThis.
2018-02-22 14:26:29 -05:00
Andrew Osmond b18fc05e36 Bug 1427639 - Part 1. Add preferences to control image frame allocations in volatile memory or the heap. r=tnikkel
image.mem.volatile.min_threshold_kb is the minimum buffer allocation for
an image frame in KB before it will use volatile memory. If it is less
than it will use the heap. This only is set to > 0 on Android.

image.mem.animated.use_heap forces image frames to use the heap if it is
for an animated image. This is only enabled for Android, and was
previously a compile time option also for Android.
2018-02-22 14:26:29 -05:00
Masatoshi Kimura dea129ada5 Bug 1428258 - Stop using GetNativePath in gfx/. r=jrmuizel
MozReview-Commit-ID: EdcKDRQeGXg

--HG--
extra : rebase_source : 8a6f93091e7f7cf96f998a3b8a5ce518c822f112
extra : intermediate-source : 77d4d136028337085cebdb59201302676a2ec521
extra : source : 477624377a9796459ada93719df68ba152587781
2017-12-17 00:13:30 +09:00
Lee Salzman 7c0e261ff2 Bug 1427118 - make RecordedFontData use fallible allocations. r=milan
MozReview-Commit-ID: 3YzhOyXvrv
2018-02-19 21:19:53 -05:00
Chris Peterson fe5cd3d5d9 Bug 1436263 - Part 3: Remove `virtual` from final virtual function declarations. r=froydnj
MozReview-Commit-ID: 8pjYjEvQF42

--HG--
extra : rebase_source : 5eb0bea2ef5f06a811b4f3daf57ce8720f12dd07
2018-02-08 21:22:43 -08:00
Chris Peterson 0129d900f3 Bug 1436263 - Part 2: Replace `override final` virtual function specifiers with just `final`. r=froydnj
MozReview-Commit-ID: 70gt5SUu4Dv

--HG--
extra : rebase_source : 71912c6bde22aaed01e70615a4ee794a36e70d0e
extra : source : 1c22d4c65d70b797ee3e963ec426c90e1f89b5e3
2018-02-05 22:50:00 -08:00
Chris Peterson d09123f248 Bug 1436263 - Part 1: Replace `final override` virtual function specifiers with just `final`. r=froydnj
MozReview-Commit-ID: DE5HkIhsZ6D

--HG--
extra : rebase_source : 94831c1e13a840dd2ea0600f64bcf70c2bf938d9
extra : source : cf9283bf1b0bca3a6311c98e227329d451f80ecb
2018-02-05 22:46:57 -08: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
Bas Schouten 051f79e412 Bug 1437492 - Part 1: Add a Matrix class with optimizations for simple matrices. r=mattwoodrow
MozReview-Commit-ID: EVrgqE0VlwM
2018-02-17 00:43:36 +01:00
Jeff Muizelaar 12ce692c26 Bug 1438631. Fix typos in IntoLuminance recording event. 2018-02-16 15:52:44 -05:00
Ryan Hunt 28164f62e6 Make FilterNodeSoftware intermediate surface caching thread safe (bug 1436723, r=mstange)
This commit introduces a lock on each FilterNodeSoftware around the cached surface.

This lock must be acquired whenever the cached surface is accessed. Currently this
is when the Filter is invalidated or painted.

When painting we only hold the cache lock when determining if we need to compute
a new surface, and after we have computed that new surface. This allows another
thread that may be painting that filter node at a different rect to not contend
on the cache. This is just theoretical though as DrawTargetTiled doesn't clamp
the source rect of the Filter command to the tile rect.

MozReview-Commit-ID: KFVZ35e1czB

--HG--
extra : rebase_source : a22918df80a24fad216a834a5737249cab570f08
2018-02-09 13:46:04 -06:00
Ryan Hunt bdc27969fe Restore FilterNodeSoftware intermediate surface caching (bug 1436723, r=mstange)
This is a just a back out of changeset 6882857e1bb5.

MozReview-Commit-ID: 9Z6iEHl3eAy

--HG--
extra : rebase_source : 3d091c72a6e589e702d90ffe6800e131b009604b
2018-02-08 15:21:06 -06:00
Ryan Hunt 4a4b48772d Add basic DrawTargetCapture logging ability (bug 1435938, r=bas)
MozReview-Commit-ID: LhbC4mWub6k

--HG--
extra : histedit_source : 3dd4ae3ce007aa326c1d47f018770df1e9b982e1%2C4cf1db87b1cd9e879a90351f086711d24216d7b5
2018-02-05 22:00:45 -06:00
Jamie Nicol 61cdff34c5 Bug 1429508 - Allow created mask surfaces to be clipped to the necessary size when replaying a recording. r=bas
Add a command CreateClippedDrawTarget to DrawTarget, which takes the
max required size and a transform between this draw target and the one
to be created. The created draw target may have its size clipped to
the size of this draw target, transformed to the new target's
space. This means that the new surface will be large enough so
that it is rendered to this draw target correctly, but not necessarily
any larger.

Usually this will just create a draw target of the requested size, for
simplicity. However, when replaying a recorded draw target we do clip
the size to the base draw target's size. This is done using a
DrawTargetTiled, so when applying the mask in PopLayer, we must take
the SourceSurface's offset in to account.

MozReview-Commit-ID: 89ONElphzLu

--HG--
extra : rebase_source : 7eebeb66a2686a7b6f4ade36f3004ebb06abc2fe
2018-02-05 17:59:42 +00:00
Jamie Nicol 4c2f14974a Bug 1429508 - Make SnapshotTiled::GetDataSurface return a surface the size of backed tiles only. r=bas
Fix the DrawTargetTiled::mRect initialization, and expose through the
virtual function GetRect(). Make SnapshotTiled::GetDataSurface()
allocate a surface the size of this rect, rather the XMost and
YMost. Callers of SourceSurface::GetDataSurface() can query
SourceSurface::GetRect() and apply the necessary offset themselves.

MozReview-Commit-ID: C31FGirQ0oK

--HG--
extra : rebase_source : ac31ae3ca0a0b188f9293c4e6898b4e4a65cad0e
2018-02-05 17:50:41 +00: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
Botond Ballo 8cddf32578 Bug 1434250 - Add a bare-bones Box class. r=bas
A Box is like a Rect but represented as (x1, y1, x2, y2) instead of
(x, y, w, h).

The API is bare-bones at the moment; it can be extended as needed
by future users.

MozReview-Commit-ID: FWv69Y5hP6t

--HG--
extra : rebase_source : 1f717727bc724842a2f6adcba9e6cbbe50059436
2018-02-09 15:40:07 -05:00
Lee Salzman a0d29145a5 Bug 1396637 - disable WR subpixel positioning with FreeType. r=jrmuizel
MozReview-Commit-ID: Hu3Q9yuveRw
2018-02-08 21:42:54 -05:00
Lee Salzman 7cf35e807f Bug 1436375 - add RecordedScaledFontCreation event in DrawTargetRecording::FillGlyphs. r=jrmuizel
MozReview-Commit-ID: 780xX36HeYH
2018-02-07 15:48:23 -05:00
Bas Schouten 7f06948838 Bug 1425257: Introduce a global lock to protect the dependency graph between DrawTargets. r=lsalzman
This patch takes the safest route for securing modifications to the dependency graph for D2D DrawTargets. It's possible a slightly optimal approach is possible, however lock contention should be rare and I believe this is the safest and most upliftable approach.

MozReview-Commit-ID: HGfSdEp2U5N
2018-02-06 03:08:04 +01:00
Narcis Beleuzu 84cea84b12 Merge inbound to mozilla-central. a=merge 2018-02-06 11:54:42 +02:00
Margareta Eliza Balazs 9c4eafffee Backed out changeset 0c3400afa45f (bug 1425257) for failing R-e10s in slave/test/build/tests/reftest/tests/image/test/reftest/pngsuite-basic-n/basn0g01.png on a CLOSED TREE 2018-02-06 07:27:43 +02:00
Ryan Hunt 0b29c49678 Remove implicit fuzzy operator== from BaseMatrix (bug 1435406, r=mattwoodrow)
--HG--
extra : rebase_source : 2635f386b96644922a345cea3a8fca6e3614253f
extra : histedit_source : b7cc3424492f88cbd32f3f945c5af86ff43ca0d0
2018-02-02 15:14:08 -06:00
Bas Schouten bf22a1874d Bug 1425257: Introduce a global lock to protect the dependency graph between DrawTargets. r=lsalzman
This patch takes the safest route for securing modifications to the dependency graph for D2D DrawTargets. It's possible a slightly optimal approach is possible, however lock contention should be rare and I believe this is the safest and most upliftable approach.

MozReview-Commit-ID: HGfSdEp2U5N
2018-02-06 03:08:04 +01:00
Daniel Holbert 73cea96890 Bug 1435297 part 2: (automated patch) Switch a bunch of C++ files in gfx to use our standard emacs/vim 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.
I ran it as follows:
  python /path/to/modeline.py --fix gfx/

This patch changes all affected files 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

MozReview-Commit-ID: FsPNGjFkIFV

--HG--
extra : rebase_source : 7532d0478d0af75e346102105caf5b89631457aa
2018-02-02 12:07:36 -05:00
Ryan Hunt f1fc54c0cd Reuse existing DrawingCommand for SetTransform and SetPermitSubpixelAA (bug 1431813, r=bas)
--HG--
rename : gfx/2d/DrawCommand.h => gfx/2d/DrawCommands.h
extra : rebase_source : b4b2a4d8b73413c56dbaa55dc3bd200f126c060a
2018-02-02 09:59:35 -06:00
Ryan Hunt b502551a00 Deduplicate unneeded SetTransform and SetPermitSubpixelAA calls from DrawTargetCapture (bug 1431813, r=bas)
--HG--
extra : rebase_source : 30b2051494aa247df922e87779a1f866e1b45e97
2018-02-02 09:24:10 -06:00
Ryan Hunt 6250b4ca48 Be sure to preserve the current transform when restoring an SkCanvas (bug 1431813, r=lsalzman)
--HG--
extra : rebase_source : 3fba5160051e86f477a32ca8880d9e341177b995
2018-02-02 09:22:20 -06:00
Jan Steffens 62442dc97a Bug 1424648 - Provide proper face index to FreeType FontDescriptorOutput; r=lsalzman
OpenType font collections (*.ttc) contain multiple faces in a single file,
identified via index. When creating a font descriptor for a FreeType or
Fontconfig font, we mistakenly set the index to zero, always.

This bug became visible when layout and WebRender would disagree on the face in
use, rendering text with the metrics from the proper face but the outlines of
another. Unless, of course, the selected face was the first (or only) in the
font file.

MozReview-Commit-ID: 73qcPOD0HIr

--HG--
extra : rebase_source : b5784ff547bae99186d646dbb92b31660beb3970
2018-01-31 21:42:18 +01:00
Jamie Nicol 17afeef581 Bug 1430550 - Don't keep mutex locked if SourceSurfaceSkia::Map fails. r=bas
This was leading to a mutex never being unlocked, eventually causing a
crash when it was destroyed.

MozReview-Commit-ID: JzEDWzKxZ4S

--HG--
extra : rebase_source : c86ad738addbec55f33165d300876f4c675cf5f4
2018-01-18 16:48:08 +00:00
Lee Salzman 1a23b6eab1 Bug 1400384 - support text writing modes with WebRender. r=gankro 2018-01-17 07:51:20 -05:00
Chris Peterson 37efe4d0e6 Bug 1428535 - Add missing override specifiers to overridden virtual functions. r=froydnj
MozReview-Commit-ID: DCPTnyBooIe

--HG--
extra : rebase_source : cfec2d96faeb11656d86d760a34e0a04cacddb13
extra : intermediate-source : 6176724d63788b0fe8caa3f91607c2d93dbaa7ec
extra : source : eebbb0600447f9b64aae3bcd47b4be66c02a51ea
2017-11-05 19:37:28 -08:00
Noemi Erli adbfbaab81 Merge inbound to mozilla-central r=merge a=merge 2018-01-11 23:54:07 +02:00
Milan Sreckovic e3960c6dce Bug 1429602: Rename BaseRect::IsZero to BaseRect::IsZeroArea. Also slip in some corrections to using BaseRect methods instead of direct member access. r=bas.schouten
MozReview-Commit-ID: H3ApaWesbKF

--HG--
extra : rebase_source : c4f73da113a604c14fbf0f1ef4c598d032d68792
2018-01-10 17:57:10 -05:00
Andrew Osmond a0be88332d Bug 1428946 - Part 2. Make ApplyBlending_SIMD and ApplyArithmeticCombine_SIMD support the same surface for both inputs. r=bas 2018-01-11 08:48:46 -05:00
Andrew Osmond 7cc5611e47 Bug 1428946 - Part 1. Make comparing and mapping DataSourceSurfaceWrapper objects work consistently. r=bas 2018-01-11 08:48:46 -05:00
Sylvestre Ledru f8b1d9ab46 Bug 1278282 - update of the moz.build files to remove gtk2 references r=lsalzman
MozReview-Commit-ID: FO1wEHzOkuN

--HG--
extra : rebase_source : ac7e61cf47d013de882048740c889735a0a7cad8
2018-01-10 10:04:59 +01:00
Ryan Hunt 842c95d26d Report a DrawTargetTiled as a capture if it is made of captures (bug 1425056, r=bas)
This will make it so that we avoid main thread rasterization for box shadows.

MozReview-Commit-ID: 9Tg4dsH21V6

--HG--
extra : rebase_source : 5af0460239ba3d54aca483b07a494e81ed9294d2
2017-12-13 09:27:07 -06:00
Ryan Hunt 2f60fa5264 Make debug bounds checking for FilterNodeSoftware thread safe (bug 1425056, r=mstange)
This debug only bounds checking is not thread safe to any filter nodes drawing at
the same time. I believe it makes sense to just manually calculate the bounds and
pass them along in the functions that need them.

MozReview-Commit-ID: 9GiYRbWuVF6

--HG--
extra : rebase_source : 388187ef92505a946d4e0a9392353373a9cfeced
2017-12-18 13:06:30 -06:00
Ryan Hunt f425854b5b Don't cache SourceSurface's in FilterNodeSoftware (bug 1425056, r=mstange)
Caching SourceSurfaces on a filter node is not thread safe to multiple
threads executing the same filter node at the same time. We could add
a mutex to every filter node and guard on that, but I think it makes
sense to just remove the caching for now. I'm open to readding this,
if this proves to be a problem.

MozReview-Commit-ID: Ca38WlG3V89

--HG--
extra : rebase_source : f0e63b4996928eea5588801d1a724c4a9f3d5040
2017-12-18 12:46:09 -06:00
Ryan Hunt 493d9c30b5 Lock access to PowCache in FilterNodeLighting (bug 1425056, r=mstange)
PowCache is not thread safe to the same filter node being drawn by multiple threads
at the same time. In this case I think it's easiest to just add a mutex for this
filter node.

MozReview-Commit-ID: 7pHuFYGxV4B

--HG--
extra : rebase_source : 3f0d9bc608880082a54b245d2fc4f7b970222a9a
2017-12-20 10:36:23 -06:00
Sebastian Hengst 1ebdaf80de merge mozilla-central to autoland. r=merge a=merge on a CLOSED TREE 2018-01-10 01:52:28 +02:00
Lee Salzman 7755d675bb Bug 1394568 - plumb synthetic italics flag through thebes and Moz2D into WebRender. r=gankro 2018-01-09 10:37:49 -05:00
Milan Sreckovic bf8a535a29 Bug 1428348: Allow Set{Left,Right,Top,Bottom}Edge methods to compute negative width/height without asserting. r=bas.schouten
MozReview-Commit-ID: EOGgAvq4lPW

--HG--
extra : rebase_source : 359dc88940a6f9d353b33d6b5a264dc88955157d
2018-01-09 11:24:37 -05:00
Jonathan Kew 88ac266967 Bug 1427641 - patch 3 - Add variation data to the cairo_ft_*_font objects, so they can properly track instances of the same font resource used with different variation parameters. r=lsalzman 2017-12-07 13:22:49 +00:00
Andrew Osmond 89c5ff6db9 Bug 1429413 - Ensure Factory::CreateDataSourceSurface allocation failures are gracefully handled. r=bas 2018-01-11 08:26:42 -05:00
Matt Woodrow 1a07a450f8 Bug 1344971 - Part 3: Don't compute a region for nsDisplayBorder when we only want a rect. r=mstange 2017-03-07 14:07:33 +13:00
Milan Sreckovic 099cfc4242 Bug 1423570: Use BaseRect access methods instead of member variables in gfx/ r=bas.schouten
MozReview-Commit-ID: ZGySgc9oP3

--HG--
extra : rebase_source : 23aadc10e9885002290155684b2c495780d979ce
2017-12-19 15:48:39 -05:00
David Anderson a830f56d14 Fix race condition when mapping a D2D surface while its DrawTarget mutates. (bug 1418348, r=bas)
--HG--
extra : rebase_source : cf16e7f1cea664327b00f01bd42380de672cd9b4
2017-12-12 14:52:54 -06:00
Sylvestre Ledru 4591d82b23 Bug 1394734 - Replace CONFIG['CLANG*'] by CONFIG['CC_TYPE'] r=glandium
MozReview-Commit-ID: HbF5oT5HW6f

--HG--
extra : rebase_source : eca479b6ae4bff7f600d1cdb39e11ac2057e4e79
2017-12-07 22:09:38 +01:00
Sylvestre Ledru 9bfe27d903 Bug 1394734 - Replace CONFIG['GNU_C*'] by CONFIG['CC_TYPE'] r=glandium
MozReview-Commit-ID: 7duJk2gSd4m

--HG--
extra : rebase_source : 7312fe276e561e8c034a5f6749774ae812727f9c
2017-12-07 22:09:15 +01:00
Cosmin Sabou c191e25cf5 Merge mozilla-inbound to mozilla-central r=merge a=merge 2017-12-08 11:56:44 +02:00
shindli 76ee711dab Merge mozilla-central to autoland. r=merge a=merge CLOSED TREE 2017-12-08 00:24:48 +02:00
Bas Schouten 6050c91090 Bug 1422475: Create FilterNodes on the paint thread when using Direct2D. r=dvander
MozReview-Commit-ID: tt9pRshj6i
2017-12-07 03:21:49 +01:00
Milan Sreckovic e9ad31bdf1 Bug 1423919: Additional methods for BaseRect for convinient modifications/testing of the member variable values. Force inline some commonly used methods. r=milan.schouten
MozReview-Commit-ID: 8zALRpsKLXx

--HG--
extra : rebase_source : ac6e88124c924c65cb79b3a97da0a90fedaa1689
2017-12-07 14:14:04 -05:00
Tiberius Oros be4fc858c5 Merge mozilla-central to mozilla-inbound. r=merge a=merge 2017-12-06 12:35:04 +02:00
Gurzau Raul f5f1c3f294 Merge inbound to mozilla-central r=merge a=merge 2017-12-06 11:53:55 +02:00
Lee Salzman 6dc1932292 Bug 1394570 - request synthetic bold for Mac fonts with WR. r=gankro
MozReview-Commit-ID: JAmWZM9SOe0
2017-12-05 22:18:53 -05:00
peter chang f735c3d7f1 Bug 1418791 - Ensure mSnapshot access is protected by mutex, r=dvander
MozReview-Commit-ID: 3NPzv6VftxZ

--HG--
extra : rebase_source : 2af00974d4de8d0cc15a326520111c32c4437b54
2017-12-05 15:35:16 +08: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 8d886455b3 Bug 1423281: Store the userdata for freeing our memory on the longer living snapshot. r=dvander
MozReview-Commit-ID: 91tVpJC7gAe
2017-12-06 04:59:18 +01:00
Ciure Andrei 48e5c9892f Merge mozilla-central to autoland. r=merge a=merge CLOSED TREE 2017-12-02 12:19:55 +02:00
Andrew Osmond a3a7832363 Bug 1419912 - Part 1. Add/use surface invalidation counter to track changes in SourceSurfaceSharedData. r=me 2017-12-01 06:59:21 -05:00
Jeff Muizelaar dce6b5fece Bug 1422321. Eliminate double promotion in Round(). r=kats
This uses std::floor(T) instead of floor(double) so that we end up calling
floorf(float) for floats instead floor(double). It also changes the literals to
be floats. 0.5f is exactly representable in float and so will transparently
promote to double as needed.

--HG--
extra : rebase_source : ea193026b3c7d1f97f5abbc3f9220eca5ac5523c
2017-11-30 13:23:56 -05:00
Lee Salzman 03a6e9d255 Bug 1421275 - Pass FontInstanceFlags to WebRender. r=jrmuizel
This patch was originally developed on bug 1418564.

MozReview-Commit-ID: 53oydIqjhvF

--HG--
extra : rebase_source : 8980cc947b3b8c46a75d032e7e557f39bae08b97
2017-11-28 10:25:27 -05:00
Timothy Nikkel 9468c9b03a Bug 1421191. In ConvolutionFilter::ComputeResizeFilter calculate the src pixel every loop iteration. r=lsalzman
If we try to be clever and increment by invScale then floating point inaccuracies can accumulate leaving srcPixel far off from where it should be.
2017-11-29 02:22:53 -06:00
Bas Schouten 62909856db Bug 1416862: Ensure mSnapshot access is always protected by mSnapshotlock. r=mattwoodrow
MozReview-Commit-ID: 8qkFde46WPQ
2017-11-27 03:12:09 +01:00
Jonathan Kew af9d8ad285 Bug 1403302 - patch 2 - Fix mixed-up glyph bounding box coordinates in ScaledFontDWrite::GetGlyphDesignMetrics. r=bas 2017-11-23 19:39:39 +00:00
Jonathan Kew 2643bb52e3 Bug 1403302 - patch 1 - Add missing return statement to ScaledFontBase::GetGlyphDesignMetrics, so that its cairo-based code path actually works. r=bas 2017-11-23 19:39:11 +00:00
Ryan Hunt 8ec4f38aa3 Implement record and replay painting for multi tiled layers (bug 1422392, r=nical)
This commit modifies MultiTiledContentClient to record drawing commands and
replay them to the tiled draw target on the paint thread when OMTP is enabled.

MozReview-Commit-ID: 22zL3c4NZvu

--HG--
extra : rebase_source : f8256b678da683da76edc02769dd4d0ebe234e09
2017-11-21 19:12:14 -05:00