我正在使用FireBreath 1.7构建一个在Mac OS X 10.8.5(及以上版本)上运行的Safari 6(及以上)插件。该插件的目的是显示视频。
到目前为止,我已经按照FireBreath示例BasicMediaPlayer实现了对CoreGraphics和CoreAnimation绘图模型的支持。
CoreAnimation(我在OpenGL中实现)的性能明显更好,因此是我的首选。
问题在于,当使用CoreAnimation时,插件似乎不尊重z-index,它只是描绘了所有内容。这是一个问题,因为我想设置我的插件视频元素(例如圆形边框)。
我从2012年(由FireBreath的主要作者之一)了解this post,这基本上证实了这是CoreAnimation的限制。
然而,根据this article,这应该不再是Safari 5及更高版本中NPAPI插件的限制:
有一点需要注意的是,Safari 4和至少Chrome 10的Chrome不能正确合成Core Animation插件。对于那些来自Windows或Linux NPAPI背景的人来说,它类似于窗口模式插件,无论z-index如何都覆盖所有Web内容。如果这是交易破坏者,您将需要使用CoreGraphics并从屏幕外的OpenGL缓冲区进行回读。希望这将在几个版本的Chrome中修复(它已经在Safari 5中有效)。
这引出了我的问题:有没有人知道在Mac上的新Safari浏览器中使用CoreAnimation在基于FireBreath的插件中是否可以实现正确的无窗口行为?