mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
cefclient: Set recommended command-line switches for off-screen rendering
This commit is contained in:
@@ -6,12 +6,49 @@
|
||||
|
||||
#include "include/base/cef_logging.h"
|
||||
#include "include/cef_cookie.h"
|
||||
#include "cefclient/common/client_switches.h"
|
||||
|
||||
namespace client {
|
||||
|
||||
ClientAppBrowser::ClientAppBrowser() {
|
||||
}
|
||||
|
||||
void ClientAppBrowser::OnBeforeCommandLineProcessing(
|
||||
const CefString& process_type,
|
||||
CefRefPtr<CefCommandLine> command_line) {
|
||||
// Pass additional command-line flags to the browser process.
|
||||
if (process_type.empty()) {
|
||||
// Pass additional command-line flags when off-screen rendering is enabled.
|
||||
if (command_line->HasSwitch(switches::kOffScreenRenderingEnabled)) {
|
||||
// If the PDF extension is enabled then cc Surfaces must be disabled for
|
||||
// PDFs to render correctly.
|
||||
// See https://bitbucket.org/chromiumembedded/cef/issues/1689 for details.
|
||||
if (!command_line->HasSwitch("disable-extensions") &&
|
||||
!command_line->HasSwitch("disable-pdf-extension")) {
|
||||
command_line->AppendSwitch("disable-surfaces");
|
||||
}
|
||||
|
||||
// Use software rendering and compositing (disable GPU) for increased FPS
|
||||
// and decreased CPU usage. This will also disable WebGL so remove these
|
||||
// switches if you need that capability.
|
||||
// See https://bitbucket.org/chromiumembedded/cef/issues/1257 for details.
|
||||
if (!command_line->HasSwitch(switches::kEnableGPU)) {
|
||||
command_line->AppendSwitch("disable-gpu");
|
||||
command_line->AppendSwitch("disable-gpu-compositing");
|
||||
}
|
||||
|
||||
// Synchronize the frame rate between all processes. This results in
|
||||
// decreased CPU usage by avoiding the generation of extra frames that
|
||||
// would otherwise be discarded. The frame rate can be set at browser
|
||||
// creation time via CefBrowserSettings.windowless_frame_rate or changed
|
||||
// dynamically using CefBrowserHost::SetWindowlessFrameRate. In cefclient
|
||||
// it can be set via the command-line using `--off-screen-frame-rate=XX`.
|
||||
// See https://bitbucket.org/chromiumembedded/cef/issues/1368 for details.
|
||||
command_line->AppendSwitch("enable-begin-frame-scheduling");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ClientAppBrowser::OnContextInitialized() {
|
||||
CreateDelegates(delegates_);
|
||||
|
||||
|
Reference in New Issue
Block a user