我必须将directx控件插入到浏览器的firebreath插件中。 任何人都可以发布样本怎么做?我对插件一无所知......
10倍
答案 0 :(得分:2)
我没有一个可以给你的例子,但我可以大致告诉你你需要做什么。
首先,请阅读:http://colonelpanic.net/2010/11/firebreath-tips-drawing-on-windows/
这将为您提供有关绘图如何在FireBreath中工作的概述。
首先,在处理AttachedEvent时设置所有内容。
您需要在同一个线程上执行DirectX内容的所有初始化,绘制和关闭。这需要发生在一个不仅仅是主线程的线程上(不要只使用定时器),否则它会搞砸某些版本的Firefox上的浏览器渲染上下文 - 不知道为什么。
无论如何,希望这有帮助。
编辑:要将参数传递到boost :: thread的开头,如果你决定使用它的线程抽象,只需将其作为参数传递。
boost::thread t(&MyClass::someFunction, this, theHWND);
那将启动线程。实际上,您可能希望将线程设置为类变量或其他内容以便以后可以访问它 - 请记住,在处理DetachedEvent期间,您将希望线程已停止。对于消息,我可能使用FB :: SafeQueue,它是一个线程安全队列,是FireBreath的一部分。看看如何使用它的来源;它非常简单(我认为,从代码项目文章中窃取)。
// Inside MyClass
void someFunction(HWND theHWND) {
...
}