Extra2D/include/event/events.h

216 lines
4.3 KiB
C++

#pragma once
#include <event/event_bus_macros.h>
#include <platform/input.h>
#include <types/base/types.h>
namespace extra2d::events {
/**
* @brief 引擎事件总线
*/
DECLARE_EVENT_BUS(Engine)
// ============================================================================
// 应用生命周期事件
// ============================================================================
/**
* @brief 应用初始化完成事件
*/
DECLARE_EVENT_0(OnInit, Engine)
/**
* @brief 应用关闭事件
*/
DECLARE_EVENT_0(OnShutdown, Engine)
/**
* @brief 应用暂停事件
*/
DECLARE_EVENT_0(OnPause, Engine)
/**
* @brief 应用恢复事件
*/
DECLARE_EVENT_0(OnResume, Engine)
/**
* @brief 帧更新事件
* @param dt 帧间隔时间
*/
DECLARE_EVENT_1(OnUpdate, Engine, float)
/**
* @brief 帧更新后事件
* @param dt 帧间隔时间
*/
DECLARE_EVENT_1(OnLateUpdate, Engine, float)
/**
* @brief 固定更新事件
* @param dt 固定时间步长
*/
DECLARE_EVENT_1(OnFixedUpdate, Engine, float)
// ============================================================================
// 窗口事件
// ============================================================================
/**
* @brief 窗口大小改变事件
* @param width 新宽度
* @param height 新高度
*/
DECLARE_EVENT_2(OnResize, Engine, int32, int32)
/**
* @brief 窗口关闭事件
*/
DECLARE_EVENT_0(OnClose, Engine)
/**
* @brief 窗口获得焦点事件
*/
DECLARE_EVENT_0(OnFocus, Engine)
/**
* @brief 窗口失去焦点事件
*/
DECLARE_EVENT_0(OnBlur, Engine)
/**
* @brief 窗口显示事件
*/
DECLARE_EVENT_0(OnShow, Engine)
/**
* @brief 窗口隐藏事件
*/
DECLARE_EVENT_0(OnHide, Engine)
// ============================================================================
// 输入事件
// ============================================================================
/**
* @brief 键盘按下事件
* @param key 按键码
*/
DECLARE_EVENT_1(OnKeyDown, Engine, int32)
/**
* @brief 键盘释放事件
* @param key 按键码
*/
DECLARE_EVENT_1(OnKeyUp, Engine, int32)
/**
* @brief 鼠标按下事件
* @param button 鼠标按键
* @param x X 坐标
* @param y Y 坐标
*/
DECLARE_EVENT_3(OnMouseDown, Engine, int32, int32, int32)
/**
* @brief 鼠标释放事件
* @param button 鼠标按键
* @param x X 坐标
* @param y Y 坐标
*/
DECLARE_EVENT_3(OnMouseUp, Engine, int32, int32, int32)
/**
* @brief 鼠标移动事件
* @param x X 坐标
* @param y Y 坐标
*/
DECLARE_EVENT_2(OnMouseMove, Engine, int32, int32)
/**
* @brief 鼠标滚轮事件
* @param delta 滚轮增量
*/
DECLARE_EVENT_1(OnMouseWheel, Engine, int32)
/**
* @brief 触摸开始事件
* @param touchId 触摸点ID
* @param x X 坐标
* @param y Y 坐标
*/
DECLARE_EVENT_3(OnTouchBegin, Engine, int32, int32, int32)
/**
* @brief 触摸移动事件
* @param touchId 触摸点ID
* @param x X 坐标
* @param y Y 坐标
*/
DECLARE_EVENT_3(OnTouchMove, Engine, int32, int32, int32)
/**
* @brief 触摸结束事件
* @param touchId 触摸点ID
* @param x X 坐标
* @param y Y 坐标
*/
DECLARE_EVENT_3(OnTouchEnd, Engine, int32, int32, int32)
/**
* @brief 触摸取消事件
* @param touchId 触摸点ID
* @param x X 坐标
* @param y Y 坐标
*/
DECLARE_EVENT_3(OnTouchCancel, Engine, int32, int32, int32)
/**
* @brief 游戏手柄连接事件
* @param deviceId 设备ID
*/
DECLARE_EVENT_1(OnGamepadConnect, Engine, int32)
/**
* @brief 游戏手柄断开事件
* @param deviceId 设备ID
*/
DECLARE_EVENT_1(OnGamepadDisconnect, Engine, int32)
// ============================================================================
// 场景事件
// ============================================================================
/**
* @brief 场景加载完成事件
*/
DECLARE_EVENT_0(OnSceneLoad, Engine)
/**
* @brief 场景卸载事件
*/
DECLARE_EVENT_0(OnSceneUnload, Engine)
// ============================================================================
// 系统事件
// ============================================================================
/**
* @brief 低内存警告事件
*/
DECLARE_EVENT_0(OnLowMemory, Engine)
/**
* @brief 进入后台事件
*/
DECLARE_EVENT_0(OnEnterBackground, Engine)
/**
* @brief 进入前台事件
*/
DECLARE_EVENT_0(OnEnterForeground, Engine)
} // namespace extra2d::events