1

我正在使用 CoreAnimationDrawingModel 编写一个 Safari NPAPI 插件。这让我可以创建高性能 CAOpenGLLayer 并将其返回给浏览器(我正在使用这个:https ://wiki.mozilla.org/NPAPI:CoreAnimationDrawingModel )。

不幸的是,我无法在此设置中支持 Retina 显示器,因为我找不到确定插件是否托管在 Retina 显示器上的方法。如果没有这些信息,我将无法正确设置 CALayer 的 contentScale 属性。

在本机应用程序中,我将 CALayer 托管在 NSView 中并观察 viewDidChangeBackingProperties 以获得所需的分辨率信息。我不确定是否有办法在 NPAPI 世界中获取层主机?即使这是可能的,我也很烦人必须轮询它的分辨率,理想情况下我想注册某种通知侦听器。

我正在使用 FireBreath ( http://www.firebreath.org/ ) 编写我的插件,并在 IRC 上与那里的开发人员 (Richard Bateman) 进行了交谈,但他们建议在这里提问 (Stuart Morgan 被提到是个好人问) .

4

1 回答 1

1

There's a spec for passing this information to NPAPI plugins. I'm not completely sure of the implementation status; Chrome doesn't implement it, casual inspection of Firefox source suggests it does, and since it was authored by an Apple engineer it's likely that Safari does.

于 2013-08-29T21:12:45.110 回答