From 8c6c0bfd06c75956c68dddb58777eefac4e62b72 Mon Sep 17 00:00:00 2001 From: Vladimir Borisov Date: Wed, 17 Apr 2024 15:08:48 +0300 Subject: [PATCH] disable gpu option --- src/main.rs | 3 +++ src/stremio_app/app.rs | 2 ++ src/stremio_app/stremio_wevbiew/wevbiew.rs | 9 ++++++++- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index d50081f..2020e54 100644 --- a/src/main.rs +++ b/src/main.rs @@ -25,6 +25,8 @@ struct Opt { start_hidden: bool, #[clap(long, help = "Enable dev tools when pressing F12")] dev_tools: bool, + #[clap(long, help = "Use software rendering for the webview")] + disable_gpu: bool, #[clap(long, help = "Disable the server and load the WebUI from localhost")] development: bool, #[clap(long, help = "Shortcut for --webui-url=https://staging.strem.io/")] @@ -93,6 +95,7 @@ fn main() { commands_path: Some(commands_path), webui_url, dev_tools: opt.development || opt.dev_tools, + disable_gpu: opt.disable_gpu, start_hidden: opt.start_hidden, autoupdater_endpoint: opt.autoupdater_endpoint, force_update: opt.force_update, diff --git a/src/stremio_app/app.rs b/src/stremio_app/app.rs index 0d6e7e9..95e2f0f 100644 --- a/src/stremio_app/app.rs +++ b/src/stremio_app/app.rs @@ -32,6 +32,7 @@ pub struct MainWindow { pub commands_path: Option, pub webui_url: String, pub dev_tools: bool, + pub disable_gpu: bool, pub start_hidden: bool, pub autoupdater_endpoint: Option, pub force_update: bool, @@ -111,6 +112,7 @@ impl MainWindow { fn on_init(&self) { self.webview.endpoint.set(self.webui_url.clone()).ok(); self.webview.dev_tools.set(self.dev_tools).ok(); + self.webview.disable_gpu.set(self.disable_gpu).ok(); if let Some(hwnd) = self.window.handle.hwnd() { if let Ok(mut saved_style) = self.saved_window_style.try_borrow_mut() { saved_style.center_window(hwnd, WINDOW_MIN_WIDTH, WINDOW_MIN_HEIGHT); diff --git a/src/stremio_app/stremio_wevbiew/wevbiew.rs b/src/stremio_app/stremio_wevbiew/wevbiew.rs index cb25509..976a411 100644 --- a/src/stremio_app/stremio_wevbiew/wevbiew.rs +++ b/src/stremio_app/stremio_wevbiew/wevbiew.rs @@ -16,6 +16,7 @@ use winapi::um::winuser::{GetClientRect, WM_SETFOCUS}; #[derive(Default)] pub struct WebView { + pub disable_gpu: Rc>, pub endpoint: Rc>, pub dev_tools: Rc>, pub controller: Rc>, @@ -69,8 +70,14 @@ impl PartialUi for WebView { let controller_clone = data.controller.clone(); let endpoint = data.endpoint.clone(); let dev_tools = data.dev_tools.clone(); + let webview_flags = "--disable-web-security --autoplay-policy=no-user-gesture-required --disable-features=msWebOOUI,msPdfOOUI,msSmartScreenProtection"; + let webview_flags = if *data.disable_gpu.get().unwrap() { + format!("{} {}", webview_flags, "--disable-gpu") + } else { + webview_flags.to_string() + }; let result = webview2::EnvironmentBuilder::new() - .with_additional_browser_arguments("--disable-web-security --autoplay-policy=no-user-gesture-required --disable-features=msWebOOUI,msPdfOOUI,msSmartScreenProtection") + .with_additional_browser_arguments(&webview_flags) .build(move |env| { env.expect("Cannot obtain webview environment") .create_controller(hwnd, move |controller| {