Вы передаете какие-либо события пользовательского интерфейса в CEF из своего приложения OpenGL?
В общем случае вы должны приложить OpenGL и экземплярам CEF к тому же окну. Вы также должны переопределить запрос на недействительность области окна, чтобы уведомить ваш код OpenGL, который требуется для окна Rerender, включая содержимое этого экранного буфера.
Последовательность действий:
- Окно получает события перемещения мыши.
- Окно передает его на экземпляр CEF.
- Если CEF определяет, что ему необходимо применить: наведите курсор на свою кнопку, тогда он вызовет window.invalidateArea (areaOfTheButton).
- Вы обрабатываете это window.invalidateArea(), обновляя сцену OpenGL, включая новую версию вашего растрового изображения вне экрана.
- Из CEF вы также должны получать различные вторичные события DOM в ответ на движение мыши/вверх/вниз/и т. Д. на окне.
И проверьте это: http://sciter.com/sciter-and-directx/ - это окно DirectX со встроенным HTML/CSS-интерфейсом с моим механизмом Sciter. На данный момент я разрабатываю то же самое, но для OpenGL.
У меня нет проблем с использованием CEF в качестве браузера. Я просто не могу уловить нажатие кнопки в коде C++. Я ищу обратные вызовы/события. Я не знаю, на что смотреть. – akaltar
Кажется, что CEF не предоставляет простой вариант подписки на события DOM. Поэтому вам нужно будет зарегистрировать в нем свою собственную функцию и прикрепить ее к объекту документа DOM с помощью document.addEventListener (yourfunc) в скрипте. Для запуска сценариев установки вам нужно будет использовать функцию ExecuteJavaScript. .See: https://bitbucket.org/chromiumembedded/cef/wiki/JavaScriptIntegration#markdown-header-using-js-callbacks –