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

81 Коммитов

Автор SHA1 Сообщение Дата
Bob Owen 944d106bbf Bug 1464032 Part 14: Refactor Path recording to record Arc properly. r=jrmuizel
This also improves the recording and translation speeds.
2018-12-02 14:20:00 +00:00
Bob Owen 9b1c422ff4 Bug 1464032 Part 10: Add a CanvasTranslator and canvas recorded events. r=jrmuizel
These are extensions to the Moz2D RecordedEvents to record and play back canvas
texture related functions in the GPU process.
The CanvasTranslator handles the playback of these and the Moz2D ones.
2018-12-02 14:17:12 +00:00
Bob Owen 8f860de188 Bug 1464032 Part 8: Add a CanvasEventRingBuffer and CanvasDrawEventRecorder. r=Gankro
These are to be used as part of recording canvas drawing in the content
processes and playing it back in the GPU process through shared memory.
2018-12-02 14:14:43 +00:00
Bob Owen 7d566c46fe Bug 1464032 Part 4: Record DrawTarget::Flush and DrawTarget::DetachAllSnapshots. r=jrmuizel 2018-12-02 14:14:11 +00:00
Bob Owen b6f83f9fbb Bug 1464032 Part 3: Remove unused GetObjectRef. r=jrmuizel 2018-12-02 14:14:03 +00:00
Bob Owen 29ef4af73e Bug 1464032 Part 2: Remove LoadEvent and replace with DoWithEvent. r=jrmuizel
This patch modifies DoWithEvent so that we can more easily have a
DoWithEventFromStream callable from outside of Moz2D similar to
LoadEventFromStream. We will add that in a later patch for the new
EventRingBuffer. It also changes the only user of LoadEventFromStream
over to it, so we can can get rid of it and LoadEvent entirely.
2018-12-02 14:13:56 +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
Jean-Yves Avenard 11ac9e9cf8 Bug 1540581 - P6. Tidy some C++ declarations in gfx/. r=gerald,jrmuizel
* Remove redundant virtual keywords
* Mark all destructors of inheriting classes as virtual for clarity
* Mark all classes without virtual destructor as final (exposed errors)
* Make destructor virtual where it needed to be (some were missing)
* Replace empty ({}) code declaration in header with = default
* Remove virtual unused methods

I probably missed some, it quickly became a rabbit hole.

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

--HG--
extra : moz-landing-system : lando
2019-04-11 12:36:51 +00:00
Jeff Muizelaar 0c609e94c7 Bug 1522021. Propagate input size to CreateSimilarDrawTarget for filters. r=mstange
This lets us avoid drawing the complete input for ever tile when
drawing filters into a tile.

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

--HG--
extra : moz-landing-system : lando
2019-01-27 23:36:04 +00: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
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
Lee Salzman de75729420 Bug 1480615 - reuse scaled fonts across blob image recordings. r=jrmuizel 2018-09-05 21:55:53 -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
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
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
Jeff Muizelaar 12ce692c26 Bug 1438631. Fix typos in IntoLuminance recording event. 2018-02-16 15:52:44 -05: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
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
Jeff Muizelaar ed62b1d4a1 Bug 1380014. Share fonts with WebRender. r=lsalzman
This changes the serialization format a little bit.
We now have an index at the end of the blob. This
is currently used to store a list of the used font keys.
In the future we'll add rects and can use it for invalidation.
2017-10-27 18:21:27 -04:00
Jeff Muizelaar f1e1608327 Bug 1380014. Add the ability to record UnscaledFonts by index. r=lsalzman 2017-10-27 18:21:26 -04:00
Alex Gaynor b00c32c807 Bug 1319423 - Part 2 - Switch away from std::ifstream to PRFileDesc in PrintTranslator; r=jrmuizel
MozReview-Commit-ID: 6ucwbGkqOQ0

--HG--
extra : rebase_source : ab0540e2b7d61108c8c550d8bf8b8a594364f90a
2017-10-03 13:23:57 -04:00
Alex Gaynor 41d8032290 Bug 1319423 - Part 1 - Introduce DrawEventRecorderPRFileDesc to allow switching away from std::ofstream in printing; r=jrmuizel
MozReview-Commit-ID: 1gn8J2fhejS

--HG--
extra : rebase_source : 02b6224c2788964c375092e58174efbacfdbdba5
2017-10-03 12:29:15 -04:00
Jeff Muizelaar 480f5db364 Bug 1383055. RecordedEvent: Add DoWithEvent. r=lsalzman
Add DoWithEvent which switches over an event type, reads the event into
a stack variable and calls a callable with that event as a parameter.

This avoids doing a heap allocation for every event that we play back.
2017-08-18 13:03:09 -04:00
Lee Salzman 2d696d5c34 Bug 1376026 - fix plumbing of DWrite parameters for Skia fonts to not depend on gfxPlatform. r=jrmuizel
MozReview-Commit-ID: 5K9201eCSv
2017-06-30 14:09:05 -04:00
Sebastian Hengst 522fc18c93 Backed out changeset 24421d72ba08 (bug 1376026) 2017-07-07 21:42:09 +02:00
Lee Salzman ab6885d706 Bug 1376026 - fix plumbing of DWrite parameters for Skia fonts to not depend on gfxPlatform. r=jrmuizel
MozReview-Commit-ID: 5K9201eCSv
2017-06-30 14:09:05 -04:00
Jeff Muizelaar 1b3f0224fd Bug 1377362. Make InlineTranslator::TranslateRecording() take data instead of a stream. r=lsalzman
This gives us a big improvement to deserialization speed.
2017-07-06 07:15:45 -04:00
Jeff Muizelaar e60693a015 Bug 1377362. Make LoadEventFromStream generic. r=lsalzman
This is needed to allow deserialization directly from memory
2017-07-06 07:15:43 -04:00
Carsten "Tomcat" Book fbc9f302f1 Backed out changeset d09fb3a5cedf (bug 1376026) 2017-07-06 08:11:48 +02:00
Lee Salzman edc6db4195 Bug 1376026 - fix plumbing of DWrite parameters for Skia fonts to not depend on gfxPlatform. r=jrmuizel 2017-06-30 14:09:05 -04:00
Jeff Muizelaar 8e3a8d7ea1 Bug 1374900. Rewrite DrawEventRecorderMemory to use the MemStream infrastructure. r=lsalzman 2017-06-22 23:55:47 -04:00
Jeff Muizelaar cf684af118 Bug 1374900. Replace MemWriter with a MemStream implementation. r=lsalzman
This is much faster than using a stringstream for a couple of reasons:
1. ostream needs to do a virtual call on each write which means that
   it can't be inlined.
2. stringstream needs to check for resize every write(). We combine
   those checks into a single one.
2017-06-22 23:55:47 -04:00
Jeff Muizelaar 75d68e196f Bug 1374900. Add MemWriter r=lsalzman
Add a dummy RecordToStream() implementation that supports something other than
istream. This makes a couple of places more generic to support this.
2017-06-22 23:55:47 -04:00
Jeff Muizelaar 4f96690374 Bug 1374900. Make our low level serialization functions generic over the type of stream. r=lsalzman 2017-06-22 23:55:47 -04:00
Jeff Muizelaar 07374b97fe Bug 1372225 - Add recording for IntoLumaSource. r=mchang
This lets us avoid using the default implementation and allows us to
do the actual work on during playback.
2017-06-12 16:15:08 -04:00
Lee Salzman 6648f1fbf8 Bug 1364628 - give each webrender blob image renderer thread its own thread-local FT_Library to work around unsafe FT_Face rasterization/metrics calls. r=jrmuizel
MozReview-Commit-ID: 5sJznRRV3bq
2017-05-17 21:56:58 -04:00
Jeff Muizelaar ec4e044d9e Bug 1360001. Add back some recording helpers. r=bobowen
These are only going to be used temporarily while we bring up blob images for
webrender.
2017-05-01 21:58:21 -04:00
Lee Salzman 28471864af Bug 1355931 - move font serialization from ScaledFont to UnscaledFont. r=jrmuizel
MozReview-Commit-ID: 3d1XMoe2BKj
2017-04-14 14:11:00 -04:00
Bob Owen 3f14ad38c2 Bug 1347646 Part 1: Backout 4849ef8c9a34 for causing OOM issues when printing PDFs. r=jwatt, r=lsalzman, r=tobytailor 2017-04-08 22:47:51 +01:00
Lee Salzman 11961c7776 Bug 1343813 - make NativeFontResourceGDI send the LOGFONT as scaled font instance data. r=bobowen
MozReview-Commit-ID: F4UCQSXScHz
2017-03-29 18:22:06 -04:00
Tobias Schneider 2722515c91 Bug 1311512 - Use recording draw target for mozPrintCallback canvases. r=jwatt 2016-12-22 11:11:15 -08:00
Jonathan Kew b64c9129e3 Bug 1321031 pt 6 - Include variation settings in moz2d recording stream when using the native Mac font backend. r=bas,jrmuizel 2017-01-06 16:35:12 +00:00
Ryan VanderMeulen e897fba434 Backed out 6 changesets (bug 1321031) for bustage.
Backed out changeset e0be4f5390fb (bug 1321031)
Backed out changeset ba071046f8ab (bug 1321031)
Backed out changeset 7cb4242dc636 (bug 1321031)
Backed out changeset bc58e479eb58 (bug 1321031)
Backed out changeset c551913ae892 (bug 1321031)
Backed out changeset f4ae57d5358f (bug 1321031)

CLOSED TREE
2017-01-06 12:46:27 -05:00
Jonathan Kew 7199a26387 Bug 1321031 pt 6 - Include variation settings in moz2d recording stream when using the native Mac font backend. r=bas,jrmuizel 2017-01-06 16:35:12 +00:00
Lee Salzman 3cff1c818b Bug 1309205 - part 2 - provide NativeFontResourceFontconfig so that print_via_parent works on Linux. r=jfkthame
MozReview-Commit-ID: 94XcLKgwTPq
2017-01-04 14:01:12 -05:00
Bob Owen c4a371a6ce Bug 1316783: Record mSamplingRect for PatternType::SURFACE when using DrawTargetRecording. r=mstange
MozReview-Commit-ID: 8JWzW2cOSXK
2016-11-15 11:09:51 +00:00
Bob Owen 0671a5539a Bug 1285942 Part 1: Make RecordedEvent::PlayEvent return a bool and null check DrawTarget creation. r=bas
MozReview-Commit-ID: 8tm7rjFEbw0

--HG--
extra : rebase_source : 5a85bec626644515ef5a261c4cba076bcddf136c
2016-07-18 12:13:04 +01:00
Jonathan Watt 0b33916487 Bug 1277862, part 1 - Rename Moz2D's Filter to SamplingFilter in gfx/2d/. r=Bas 2016-05-25 17:01:18 +01:00
Edwin Flores cdd3b63026 Bug 1256678 - Fall back to loading GDI fonts from system in DrawTargetRecording - r=bas 2016-04-22 13:23:25 +01:00
Bob Owen 00a3e39683 Bug 1240437 part 2: Follow-up to fix implicit constrcutor static analysis failure. r=me 2016-01-26 10:31:31 +00:00