59 lines
1.7 KiB
JavaScript
59 lines
1.7 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
// This file is loaded into the browser window scope.
|
|
/* eslint-env mozilla/browser-window */
|
|
|
|
/**
|
|
* Global browser interface with graphics utilities.
|
|
*/
|
|
var gGfxUtils = {
|
|
_isRecording: false,
|
|
_isTransactionLogging: false,
|
|
_isCapturingFrames: false,
|
|
|
|
init() {
|
|
if (Services.prefs.getBoolPref("gfx.webrender.debug.enable-capture")) {
|
|
document.getElementById("wrCaptureCmd").removeAttribute("disabled");
|
|
document
|
|
.getElementById("wrToggleCaptureSequenceCmd")
|
|
.removeAttribute("disabled");
|
|
}
|
|
},
|
|
|
|
/**
|
|
* Toggle composition recording for the current window.
|
|
*/
|
|
toggleWindowRecording() {
|
|
window.windowUtils.setCompositionRecording(!this._isRecording);
|
|
this._isRecording = !this._isRecording;
|
|
},
|
|
/**
|
|
* Trigger a WebRender capture of the current state into a local folder.
|
|
*/
|
|
webrenderCapture() {
|
|
window.windowUtils.wrCapture();
|
|
},
|
|
|
|
captureSequencePath: "wr-capture-sequence",
|
|
captureSequenceFlags:
|
|
window.windowUtils.WR_CAPTURE_SCENE |
|
|
window.windowUtils.WR_CAPTURE_EXTERNALS,
|
|
|
|
/**
|
|
* Trigger a WebRender capture of the current state and future state
|
|
* into a local folder. If called again, it will stop capturing.
|
|
*/
|
|
toggleWebrenderCaptureSequence() {
|
|
this._isCapturingFrames = !this._isCapturingFrames;
|
|
if (this._isCapturingFrames) {
|
|
window.windowUtils.wrStartCaptureSequence(
|
|
this.captureSequencePath,
|
|
this.captureSequenceFlags
|
|
);
|
|
} else {
|
|
window.windowUtils.wrStopCaptureSequence();
|
|
}
|
|
},
|
|
};
|