CefSharp - 无法启用webgl

时间:2017-03-14 17:52:15

标签: c# wpf webbrowser-control cefsharp

我正在初始化我的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命令,但无济于事。它确实加载了网站并且它说'#34;我的浏览器确实支持webgl但它没有启用。"我应该看到一个旋转的立方体,我不会看到它。我找了一些关于这个的SO线程,其中一个抱怨速度,我从那里复制初始化(只有命令行args),仍然没有运气。我还尝试在添加这些命令之前关闭禁用命令,如

settings.CefCommandLineArgs.Add("disable-webgl", "0");

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

1 个答案:

答案 0 :(得分:1)

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
}