如何在基于CALayer的NPAPI插件中支持视网膜?

时间:2013-08-29 20:50:14

标签: safari calayer npapi

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

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

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

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

1 个答案:

答案 0 :(得分:1)

a spec将此信息传递给NPAPI插件。我不完全确定实施状态; Chrome没有实现它,对Firefox源的随意检查表明它确实如此,并且由于它是由Apple工程师创作的,因此Safari可能会这样做。