输入与事件
鼠标/触摸事件从平台桥接流经 Widget 树。
事件流
GlfwBridge接收 GLFW 鼠标事件(按钮、移动、滚轮)并通过回调转发Application执行递归HitTest()找到光标下最深层的 Widget- 调用命中 Widget 的事件处理函数,传入局部坐标
事件类型
| 事件 | 说明 |
|---|---|
OnPointerDown(pos) | 指针按下 |
OnPointerUp(pos) | 指针释放 |
OnPointerMove(pos) | 指针移动(悬停或拖拽) |
OnPointerEnter() | 指针进入组件区域 |
OnPointerExit() | 指针离开组件区域 |
命中测试缓存
指针移动事件频率高,使用命中测试缓存避免每次都遍历整棵树。布局变化时缓存自动失效。
拖拽
Draggable 组件重写 OnPointerMove 更新拖拽偏移。ScrollView 支持拖拽滚动。
讨论