我在safari工作,在OSX之上,使用核心图形,我有一个插件运行两个线程(主线程和渲染计时器线程)。呈现计时器线程调用"NPN_InvalidateRect“,而主插件线程处理相应的事件并重新绘制自身。然而,在safari 32位和safari 64位中,这似乎是不同的:
问题:
谢谢,
(交叉张贴在火上,我会在两处张贴回应)
发布于 2011-09-14 00:52:00
首先,这是:
呈现计时器线程调用"NPN_InvalidateRect“
是一个严重的问题,除非您真正的意思是您的呈现计时器线程导致在主插件线程上调用NPN_InvalidateRect。NPAPI显然不是线程安全,您需要在主线程上调用像NPN_InvalidateRect这样的方法。
其次,你真的不应该打电话给NPN_ForceRedraw。an,Firefox,WebKit2,以及几乎可以肯定的Safari的OOP模式(这就是你在64位中得到的)将NPN_ForceRedraw视为无op;强制立即重新绘制的概念与整个OOP插件模型背道而驰。在任何情况下,您都应该调用NPN_InvalidateRect,并信任浏览器会给您回电话。在OOP-plugin世界中,您不应该期望能够强迫浏览器在任何特定时刻呈现插件。
https://stackoverflow.com/questions/7401889
复制相似问题