And with some tidying some comments and removing stray #include "gfxPrefs.h"
Differential Revision: https://phabricator.services.mozilla.com/D31468
--HG--
extra : moz-landing-system : lando
gfxPrefs Live preferences are almost identical to StaticPrefs.
We leave aside for now those that set a custom change callback as this feature isn't yet supported in StaticPrefs.
Differential Revision: https://phabricator.services.mozilla.com/D31256
--HG--
extra : moz-landing-system : lando
The LayerManagerComposite can now request its compositor to record frames
(i.e., ensure there is a window render target). For all compositors except
BasicCompositor, this is a no-op since they already always have one.
Now the BasicCompositor keeps track of whether or not should be recording
frames based on this request from the LayerManagerComposite and information
about the profiler. This also has the benefit of cleaning up some of the code
that was conditionally compiled only on platforms that support the profiler.
Differential Revision: https://phabricator.services.mozilla.com/D27963
--HG--
extra : moz-landing-system : lando
* 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
On some platforms we do not always have a DrawTarget that is the size of the
entire window, so we will be unable to record the contents into screenshots in
the profiler output. Now we create an additional DrawTarget that will contain
the contents of the entire window so that we can record it for screenshots.
This only adds the overhead of allocation while profiling and only when
screenshots are requested.
The initial screenshots end up blank but then the following screenshots are
rendered correctly.
Differential Revision: https://phabricator.services.mozilla.com/D14874
--HG--
extra : moz-landing-system : lando
If we have a non-null mTarget, we already set mDrawTarget to mTarget. So "mTarget ? mTarget : mDrawTarget" will always evaluate to mDrawTarget.
MozReview-Commit-ID: BlGYEdlL50Q
--HG--
extra : rebase_source : 214baea43d160c85d06cc11931c1c10d9a6ae4d2
The same condition is checked just before this if, so it's always true.
MozReview-Commit-ID: 9Vscnkz7AoY
--HG--
extra : rebase_source : d4209c6eb3963762c76a7dc4e1344147ae63f71a
This was incorrectly using the invalid rect, so it was clearing more than
necessary and not taking advantage of the opaque region that the caller computes.
The idea is that we don't need to clear parts of the invalid region that will be
covered by something opaque.
MozReview-Commit-ID: LhEkVUMnjC9
--HG--
extra : rebase_source : 97e0124684fbe6f3231795abf0591d25db0768db
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
This patch was automatically generated. I found the files to be fixed in this
patch with the following command:
grep -r "^\* This Source Code" gfx
...and then I modified each of these files with the following script
(where $1 is the filename to be modified):
###
line1="\* This Source Code Form is subject to the terms of the Mozilla Public"
line2="\* License, v\. 2\.0\. If a copy of the MPL was not distributed with this"
line3="\* file, You can obtain one at http://mozilla\.org/MPL/2\.0/\. \*/"
# Insert 1 space at beginning:
sed -i s%"^$line1"%" $line1"% $1
sed -i s%"^$line2"%" $line2"% $1
sed -i s%"^$line3"%" $line3"% $1
###
MozReview-Commit-ID: HXBMrfnhlVr
--HG--
extra : rebase_source : de4c78563711f8366e2978c5199a5041875fbe38
This avoids doing an unnecessary allocation and copy while snapshotting.
To make this work we need to memset the buffer that we use for snapshot drawing
so that we can draw on it directly. I could've avoided the memset for opaque
content formats but it didn't seem worth as the only place we use this seems to
be with content=COLOR_ALPHA