gpt4 book ai didi

NPAPI 插件之上的 HTML

转载 作者:搜寻专家 更新时间:2023-10-31 22:01:26 29 4
gpt4 key购买 nike

在我使用 FireBreath 和 OpenGL 编写完浏览器插件并使用对象标签嵌入插件后,我尝试在插件之上覆盖各种 HTML 元素。不幸的是,无论我如何尝试,标签和插件图形总是位于页面上任何其他 HTML 元素之上。

据我所知,flash 插件允许 HTML 覆盖如下:

<param name="wmode" value="transparent">

有没有一种通用的方法可以在 或 标签上启用 HTML 覆盖?如果没有,是否有办法在 NPAPI/ActiveX 插件上启用覆盖,或者 FireBreath 是否以某种方式支持此功能?

自从我开始编程以来,StackOverFlow 一直是我的主要资源,非常感谢大家!

最佳答案

有两种类型的插件;有窗和无窗。 FireBreath 确实支持无窗口插件(从插件类中的 isWindowless 函数返回真值。如果您使用无窗口插件,则可以在插件上覆盖 HTML。如果您使用有窗口插件,则不能。

然而,这并不像听起来那么容易。如果你四处阅读,你会发现 flash 在 wmode=transparent 时的性能不如在普通 wmode 时好,原因是为了绘制无窗口,你必须只在浏览器指示时绘制。幸运的是,您可以要求浏览器告诉您重绘(在 FireBreath 中,通过在 PluginWindowlessWin 对象上调用 InvalidateWindow,您将获得该对象作为您的窗口)。

不幸的是,在无窗口绘图模式下,您不会获得 hWND——只有 hDC,并且它仅在绘图事件(FireBreath 中的 RefreshEvent)期间有效。据我所知,您不能在 hDC 上创建 opengl 绘图上下文,它可能会在绘图调用之间更改或消失,因此我看到 opengl 插件在 Windows 上使用无窗口绘图的唯一方法是在屏幕外绘制,然后使用 GDI 将位 blit 到 hDC。

这是一个示例,它将使用任一类型的绘图(有窗口或无窗口)绘制原始位图,这可能有助于您巩固对我上面一直试图解释的内容的理解:https://gist.github.com/1068352

关于NPAPI 插件之上的 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8372162/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com