docs: rebuild Input API content
This commit is contained in:
@@ -1,29 +1,19 @@
|
||||
# InputModule::~InputModule()
|
||||
# InputModule::Destructor
|
||||
|
||||
销毁对象并释放相关资源。
|
||||
以基类指针安全销毁平台输入后端。
|
||||
|
||||
```cpp
|
||||
virtual ~InputModule() = default;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Input/InputModule.h`,当前页面用于固定 `InputModule` 类目录下的方法级 canonical 路径。
|
||||
## 行为说明
|
||||
|
||||
**参数:** 无。
|
||||
这是虚析构函数,保证平台实现类可以通过 `InputModule*` 安全释放。当前接口本身没有默认清理逻辑,具体资源释放由派生类实现负责。
|
||||
|
||||
**返回:** `void` - 无返回值。
|
||||
## 返回值
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Input/InputModule.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Input::InputModule object;
|
||||
// 对象离开作用域时会自动触发析构。
|
||||
}
|
||||
```
|
||||
- 无。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](InputModule.md)
|
||||
- [返回模块目录](../Input.md)
|
||||
- [返回类型总览](InputModule.md)
|
||||
|
||||
@@ -1,34 +1,29 @@
|
||||
# InputModule::HandleMessage
|
||||
|
||||
公开方法,详见头文件声明。
|
||||
处理一条平台窗口消息并把它翻译成引擎输入事件。
|
||||
|
||||
```cpp
|
||||
virtual void HandleMessage(size_t hwnd, unsigned int msg, size_t wParam, size_t lParam) = 0;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Input/InputModule.h`,当前页面用于固定 `InputModule` 类目录下的方法级 canonical 路径。
|
||||
## 行为说明
|
||||
|
||||
**参数:**
|
||||
- `hwnd` - 参数语义详见头文件声明。
|
||||
- `msg` - 参数语义详见头文件声明。
|
||||
- `wParam` - 参数语义详见头文件声明。
|
||||
- `lParam` - 参数语义详见头文件声明。
|
||||
这是平台桥接层最关键的接口。当前抽象直接暴露原始整型参数,而不是包装成统一事件对象,目的是让平台实现保留足够低层的解释空间。
|
||||
|
||||
**返回:** `void` - 无返回值。
|
||||
在 Windows 路径中,这个方法会处理 `WM_KEYDOWN`、`WM_MOUSEMOVE`、`WM_CHAR` 等消息,然后调用 `InputManager::Process*`。
|
||||
|
||||
**示例:**
|
||||
## 参数
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Input/InputModule.h>
|
||||
- `hwnd` - 平台窗口句柄或等价标识。
|
||||
- `msg` - 平台消息类型。
|
||||
- `wParam` - 平台消息参数 1。
|
||||
- `lParam` - 平台消息参数 2。
|
||||
|
||||
void Example() {
|
||||
XCEngine::Input::InputModule object;
|
||||
// 根据上下文补齐参数后调用 InputModule::HandleMessage(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
## 返回值
|
||||
|
||||
- 无。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](InputModule.md)
|
||||
- [返回模块目录](../Input.md)
|
||||
- [返回类型总览](InputModule.md)
|
||||
- [WindowsInputModule](../../Platform/Windows/WindowsInputModule/WindowsInputModule.md)
|
||||
|
||||
@@ -1,31 +1,24 @@
|
||||
# InputModule::Initialize
|
||||
|
||||
初始化内部状态。
|
||||
初始化平台输入后端。
|
||||
|
||||
```cpp
|
||||
virtual void Initialize(void* windowHandle) = 0;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Input/InputModule.h`,当前页面用于固定 `InputModule` 类目录下的方法级 canonical 路径。
|
||||
## 行为说明
|
||||
|
||||
**参数:**
|
||||
- `windowHandle` - 参数语义详见头文件声明。
|
||||
平台实现通常会在这里保存窗口句柄、建立必要状态,并准备接收平台消息。`InputModule` 本身不规定更具体的初始化流程。
|
||||
|
||||
**返回:** `void` - 无返回值。
|
||||
## 参数
|
||||
|
||||
**示例:**
|
||||
- `windowHandle` - 平台窗口句柄或等价对象。
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Input/InputModule.h>
|
||||
## 返回值
|
||||
|
||||
void Example() {
|
||||
XCEngine::Input::InputModule object;
|
||||
// 根据上下文补齐参数后调用 InputModule::Initialize(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
- 无。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](InputModule.md)
|
||||
- [返回模块目录](../Input.md)
|
||||
- [返回类型总览](InputModule.md)
|
||||
- [Shutdown](Shutdown.md)
|
||||
|
||||
@@ -6,29 +6,39 @@
|
||||
|
||||
**头文件**: `XCEngine/Input/InputModule.h`
|
||||
|
||||
**描述**: 定义 `XCEngine/Input` 子目录中的 `InputModule` public API。
|
||||
**描述**: 定义平台输入桥接层的最小接口,把操作系统消息翻译成 `InputManager` 可消费的调用。
|
||||
|
||||
## 概述
|
||||
|
||||
`InputModule.h` 是 `XCEngine/Input` 子目录 下的 public header,当前页面作为平行目录中的 canonical 总览,用于汇总该头文件暴露的主要声明。
|
||||
`InputModule` 代表“输入后端适配器”这一层。它本身不保存全局输入状态,职责是从平台窗口系统接收原始消息,然后调用 `InputManager::Process*` 把这些消息转换成引擎内部统一格式。
|
||||
|
||||
## 声明概览
|
||||
这层拆分的价值在于:
|
||||
|
||||
| 声明 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| `InputModule` | `class` | 头文件中的公开声明。 |
|
||||
- 游戏代码只依赖 `InputManager`,不直接依赖 Win32、GLFW 或其它平台 API。
|
||||
- 各平台后端可以各自决定如何接收事件,但最后都汇总到同一套引擎输入状态。
|
||||
|
||||
## 公共方法
|
||||
## 当前实现中的位置
|
||||
|
||||
| 方法 | 描述 |
|
||||
- [WindowsInputModule](../../Platform/Windows/WindowsInputModule/WindowsInputModule.md) 是当前代码库里的实际实现。
|
||||
- `InputModule` 本身只定义抽象接口,不提供默认逻辑。
|
||||
|
||||
## 线程语义
|
||||
|
||||
- 具体线程语义取决于平台后端。
|
||||
- 当前 Windows 路径假定输入消息和 `InputManager` 更新都发生在窗口线程或主线程。
|
||||
|
||||
## 公开方法
|
||||
|
||||
| 方法 | 说明 |
|
||||
|------|------|
|
||||
| [~InputModule()](Destructor.md) | 销毁对象并释放相关资源。 |
|
||||
| [Initialize](Initialize.md) | 初始化内部状态。 |
|
||||
| [Shutdown](Shutdown.md) | 关闭并清理内部状态。 |
|
||||
| [PumpEvents](PumpEvents.md) | 公开方法,详见头文件声明。 |
|
||||
| [HandleMessage](HandleMessage.md) | 公开方法,详见头文件声明。 |
|
||||
| [Destructor](Destructor.md) | 虚析构函数。 |
|
||||
| [Initialize](Initialize.md) | 初始化平台输入后端。 |
|
||||
| [Shutdown](Shutdown.md) | 关闭平台输入后端。 |
|
||||
| [PumpEvents](PumpEvents.md) | 主动轮询平台事件。 |
|
||||
| [HandleMessage](HandleMessage.md) | 处理一条平台消息。 |
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [当前目录](../Input.md) - 返回 `Input` 平行目录
|
||||
- [API 总索引](../../../main.md) - 返回顶层索引
|
||||
- [当前模块](../Input.md)
|
||||
- [WindowsInputModule](../../Platform/Windows/WindowsInputModule/WindowsInputModule.md)
|
||||
- [Input Flow And Frame Semantics](../../../_guides/Input/Input-Flow-and-Frame-Semantics.md)
|
||||
|
||||
@@ -1,30 +1,20 @@
|
||||
# InputModule::PumpEvents
|
||||
|
||||
公开方法,详见头文件声明。
|
||||
主动轮询平台事件。
|
||||
|
||||
```cpp
|
||||
virtual void PumpEvents() = 0;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Input/InputModule.h`,当前页面用于固定 `InputModule` 类目录下的方法级 canonical 路径。
|
||||
## 行为说明
|
||||
|
||||
**参数:** 无。
|
||||
这个接口用于那些需要主动从平台消息队列拉取输入事件的后端。当前 Windows 实现提供了该方法,但方法体为空,因为现有路径主要通过外部窗口消息回调调用 `HandleMessage`。
|
||||
|
||||
**返回:** `void` - 无返回值。
|
||||
## 返回值
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Input/InputModule.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Input::InputModule object;
|
||||
// 根据上下文补齐参数后调用 InputModule::PumpEvents(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
- 无。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](InputModule.md)
|
||||
- [返回模块目录](../Input.md)
|
||||
- [返回类型总览](InputModule.md)
|
||||
- [HandleMessage](HandleMessage.md)
|
||||
|
||||
@@ -1,30 +1,20 @@
|
||||
# InputModule::Shutdown
|
||||
|
||||
关闭并清理内部状态。
|
||||
关闭平台输入后端并释放相关状态。
|
||||
|
||||
```cpp
|
||||
virtual void Shutdown() = 0;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Input/InputModule.h`,当前页面用于固定 `InputModule` 类目录下的方法级 canonical 路径。
|
||||
## 行为说明
|
||||
|
||||
**参数:** 无。
|
||||
平台实现通常会在这里释放窗口句柄引用、内部缓存或平台输入资源。`InputModule` 不要求它必须同时调用 `InputManager::Shutdown`,这两层生命周期是否绑在一起由上层控制。
|
||||
|
||||
**返回:** `void` - 无返回值。
|
||||
## 返回值
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Input/InputModule.h>
|
||||
|
||||
void Example() {
|
||||
XCEngine::Input::InputModule object;
|
||||
// 根据上下文补齐参数后调用 InputModule::Shutdown(...)。
|
||||
(void)object;
|
||||
}
|
||||
```
|
||||
- 无。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](InputModule.md)
|
||||
- [返回模块目录](../Input.md)
|
||||
- [返回类型总览](InputModule.md)
|
||||
- [Initialize](Initialize.md)
|
||||
|
||||
Reference in New Issue
Block a user