2017-03-14 35 views
2

我初始化我的Chromium浏览器这样的:CefSharp - 无法启用WebGL

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但无济于事。它的确加载了网站,它说“我的浏览器支持webgl,但它没有启用。”我应该看到一个旋转的方块,我看不到。我寻找一些SO线程,其中一个抱怨速度,我从那里复制初始化(只有命令行参数),仍然没有运气。我也尝试添加之前关闭禁用命令这些喜欢

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

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

+1

WPF或Winforms控件? WPF有很多问题,我最终使用WinFormsHost在WPF中托管控件。只有那时我才有全面的触控支持和GPU加速,确实是在PeuczyńskiWPF控制下的 –

+0

。你如何处理WinFormsHost? – agiro

+0

对不起,延迟。我是afk。我在MainWindow中有WinformsHost,并且我这样做http://pastebin.com/5PKcXCWh如果需要,我可以上传完整的解决方案 –

回答

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 
}