铬嵌入式检测按钮按下

chromium embedded detect button press

我想使用 Chromium 嵌入式框架作为我的 OpenGL 应用程序的 GUI。

我正在使用离屏渲染。

如何检测 HTML button/link 何时被点击?

我试过 google 这个,但是搜索词太笼统了,只有噪音。 一般用法 wiki 也不包含此内容。

您是否将任何 UI 事件从您的 OpenGL 应用程序传递给 CEF?

通常,您应将 OpenGL CEF 实例附加到相同的 window。您还应覆盖使 window 区域无效的请求,以通知您的 OpenGL 代码它需要重新渲染 window,包括该屏幕缓冲区的内容。

操作顺序:

  1. Window 收到鼠标移动事件。
  2. Window 将其传递给您的 CEF 实例。
  3. 如果 CEF 确定它需要将 :hover 状态应用到您的按钮,那么它将调用 window.invalidateArea(areaOfTheButton)。
  4. 您通过更新 OpenGL 场景(包括新版本的离屏位图)来处理 window.invalidateArea()。
  5. 您还应该从 CEF 收到各种辅助 DOM 事件以响应鼠标 move/up/down/etc。在 window.

并检查一下:http://sciter.com/sciter-and-directx/ - 它是 DirectX window,集成了 HTML/CSS UI 和我的 Sciter 引擎。目前我正在为 OpenGL 设计相同的东西。

我认为您应该在 JS 代码中捕获事件并将消息发送到 C++ 代码。可以使用此处描述的消息路由器来完成: https://bitbucket.org/chromiumembedded/cef/wiki/GeneralUsage#markdown-header-asynchronous-javascript-bindings

也可以使用 JS 集成机制实现自定义消息路由器: https://bitbucket.org/chromiumembedded/cef/wiki/JavaScriptIntegration.md