fix: QtWebEngine

* fix: QtWebEngine
This commit is contained in:
Pluto 2023-02-23 08:41:14 +00:00 committed by shenmo
parent 4e4ee205de
commit 762caae49f

@ -11,6 +11,7 @@
#include <QSettings>
#include <QFile>
#include <QStandardPaths>
#include <QSurfaceFormat>
DCORE_USE_NAMESPACE
DWIDGET_USE_NAMESPACE
@ -35,15 +36,47 @@ int main(int argc, char *argv[])
// 龙芯机器配置,使得 DApplication 能正确加载 QTWEBENGINE
qputenv("DTK_FORCE_RASTER_WIDGETS", "FALSE");
// qputenv("QTWEBENGINE_CHROMIUM_FLAGS", "--disable-features=UseModernMediaControls");
// qputenv("QTWEBENGINE_CHROMIUM_FLAGS", "--disable-web-security");
// qputenv("QTWEBENGINE_CHROMIUM_FLAGS", "--disable-features=UseModernMediaControls");
// qputenv("QTWEBENGINE_CHROMIUM_FLAGS", "--disable-web-security");
// 浏览器开启 GPU 支持
#ifdef __sw_64__
qputenv("QTWEBENGINE_CHROMIUM_FLAGS", "--ignore-gpu-blocklist --enable-gpu-rasterization --enable-native-gpu-memory-buffers --enable-accelerated-video-decode --no-sandbox");
#else
qputenv("QTWEBENGINE_CHROMIUM_FLAGS", "--ignore-gpu-blocklist --enable-gpu-rasterization --enable-native-gpu-memory-buffers --enable-accelerated-video-decode");
qputenv("QTWEBENGINE_CHROMIUM_FLAGS", "--no-sandbox");
#endif
/**
* FIXME: CPU QtWebEngine
* CPU wayland
*/
if (Utils::isWayland()) {
QString env = QString::fromUtf8(qgetenv("QTWEBENGINE_CHROMIUM_FLAGS"));
env = env.trimmed();
/**
* NOTE: CPU
* --disable-gpu wayland
* --single-process wayland QtWebEngine
*/
env += " --disable-gpu";
qputenv("QTWEBENGINE_CHROMIUM_FLAGS", env.trimmed().toUtf8());
/**
* NOTE: CPU
* wayland QtWebEngine
*/
qputenv("QT_WAYLAND_SHELL_INTEGRATION", "kwayland-shell");
QSurfaceFormat format;
format.setRenderableType(QSurfaceFormat::OpenGLES);
QSurfaceFormat::setDefaultFormat(format);
/**
* NOTE: https://zhuanlan.zhihu.com/p/550285855
* wayland QtWebEngine 退 QWidget
*/
qputenv("QMLSCENE_DEVICE", "softwarecontext");
DApplication::setAttribute(Qt::AA_UseSoftwareOpenGL);
}
DApplication::setAttribute(Qt::AA_EnableHighDpiScaling); // 开启 Hidpi 支持
// 强制使用 DTK 平台插件