Мне нужно вставить элемент управления DirectX в подключаемый модуль Firebreath для браузера. Может ли кто-нибудь опубликовать образец, как это сделать? Я не разбираюсь в плагинах...
10x
Мне нужно вставить элемент управления DirectX в подключаемый модуль Firebreath для браузера. Может ли кто-нибудь опубликовать образец, как это сделать? Я не разбираюсь в плагинах...
10x
У меня нет примера, который я мог бы вам привести, но я могу примерно сказать, что вам нужно сделать.
Во-первых, прочитайте это: 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. Посмотрите в источниках, как его использовать; это довольно просто (я думаю, украдено из статьи codeproject).
// Inside MyClass
void someFunction(HWND theHWND) {
...
}