Pywebkitgtk Three.js无法检测WebGL

2 投票
1 回答
646 浏览
提问于 2025-04-17 12:26

背景:

  • 操作系统:Fedora 16
  • 显卡:nVidia Corporation GF106 [GeForce GT 555M SDDR3] (版本 a1)
  • Python 版本:2.7.2
  • pywebkit-gtk 版本:pywebkitgtk.x86_64:1.1.8-1.fc16,webkitgtk-devel.x86_64 0:1.6.1-1.fc16

Python 使用 pywebkitgtk 来生成一个基本的网页浏览器,在这个过程中,以下设置被设为 True。

setting = webkit.WebView.get_settings();

settings.set_property("enable-scripts", True)
settings.set_property("enable-webgl", True)
settings.set_property("enable-universal-access-from-file-uris", True)
settings.set_property("enable-developer-extras", True)

问题:

浏览器启动没有错误。以下的 JavaScript 被加载到浏览器中:

if( Detector.webgl ){                                                                                                               
    renderer = new THREE.WebGLRenderer({                                                                                                                  
        antialias: true,             // to get smoother output                                                                                                 
        preserveDrawingBuffer: true  // to allow screenshot                                                                                            
    });      
    renderer.setClearColorHex( 0xBBBBBB, 1 );                                                                                                                                             
} else {                                                                                                                
    Detector.addGetWebGLMessage();                      
    return true;                                                                                                                  
} 

Detector.webgl 的值是 false

如果我在 Chrome 浏览器中运行包含上述 JavaScript 代码的 index.html,Detector.webgl 的值是 True

这似乎是 pywebkitgtk 的问题,有人能帮忙吗?

1 个回答

1

请检查一下你使用的webkitgtk这个软件包是否是带有WebGL功能的(很可能没有)。运行时的设置并不意味着它会自动开启这个功能。

撰写回答