CefSharp - 无法启用 webgl

CefSharp - can't enable webgl

我正在像这样初始化我的 Chromium 浏览器:

CefSettings settings = new CefSettings();
settings.CommandLineArgsDisabled = false;
settings.CefCommandLineArgs.Clear();
settings.CefCommandLineArgs.Add("enable-3d-apis", "1");
settings.CefCommandLineArgs.Add("enable-webgl-draft-extensions", "1");
settings.CefCommandLineArgs.Add("enable-gpu", "1");
settings.CefCommandLineArgs.Add("enable-webgl", "1");

Cef.Initialize(settings);
var chromeBrowser = new ChromiumWebBrowser();
chromeBrowser.Address = "http://get.webgl.org/";       
targetGrid.Children.Add(chromeBrowser);

所以我尝试了很多命令 here 但无济于事。它确实加载了网站,它说 "my browser does support webgl but it isn't enabled." 我应该看到一个立方体以我看不到的方式旋转。我为此寻找了一些 SO 线程,其中一个线程抱怨速度,我从那里复制了初始化(只有那个命令行参数),仍然没有运气。我还尝试在添加

之前关闭禁用命令
settings.CefCommandLineArgs.Add("disable-webgl", "0");

没有成功。有人能告诉我如何正确初始化 CefSharp 55 的 webgl 吗?

WPF 有很多问题,我最终使用 WinFormsHost 在 WPF 中托管控件。只有这样我才有了完整的触摸支持和GPU加速。

这是我的做法。

private CefSharp.WinForms.ChromiumWebBrowser wb_Main;

public MainWindow()
{
    var cs = new CefSharp.CefSettings();
    cs.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0";
    CefSharp.Cef.Initialize(cs);

    InitializeComponent();

    CefSharp.Cef.GetGlobalCookieManager().SetStoragePath(Directory.GetCurrentDirectory(), true);
    wb_Main = new ChromiumWebBrowser("about:blank");
    wfh_Main.Child = wb_Main;   //WinformsHost control
}