Extra2D/include/event/events.h

270 lines
5.6 KiB
C
Raw Permalink Normal View History

#pragma once
#include <event/event_bus_macros.h>
#include <renderer/render_types.h>
#include <types/base/types.h>
#include <types/math/mat4.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
*
* 使
* // 发送 AppConfig
* OnModuleConfig::emit(config);
*
* // 发送其他配置
* struct RenderConfig { int width, height; };
* OnModuleConfig::emit(renderConfig);
*/
DECLARE_EVENT_T(OnModuleConfig, 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)
// ============================================================================
// 渲染事件
// ============================================================================
/**
* @brief
*
*
*/
DECLARE_EVENT_0(OnRenderBegin, Engine)
/**
* @brief
*
*
* @param cmd
*/
DECLARE_EVENT_1(OnRenderSubmit, Engine, extra2d::RenderCommand)
/**
* @brief
*
*
* @param viewProjection
*/
DECLARE_EVENT_1(OnRenderSetCamera, Engine, extra2d::Mat4)
/**
* @brief
*
*
*/
DECLARE_EVENT_0(OnRenderEnd, Engine)
/**
* @brief
*
* swapBuffers
*/
DECLARE_EVENT_0(OnRenderPresent, Engine)
} // namespace extra2d::events