/** * @file Window.cpp * @brief window 句柄对象成员函数实现。 * @details * 本文件将 window 类的高层接口转发到平台后端函数: * - full screen、caption、resize 等操作; * - 原生句柄与尺寸查询; * - 窗口关闭状态查询。 * 通过 INCLUDE_WINDOW_CPP 宏控制其编译包含方式。 */ #if INCLUDE_WINDOW_CPP #include "Window.h" namespace XEngine::platform { /** * @brief 设置窗口全屏状态。 * @param is_fullscreen 目标全屏状态。 */ void window::set_fullscreen(bool is_fullscreen) const { assert(is_valid()); set_window_fullscreen(_id, is_fullscreen); } /** * @brief 查询窗口是否处于全屏状态。 * @return 全屏返回 true。 */ bool window::is_fullscreen() const { assert(is_valid()); return is_window_fullscreen(_id); } /** * @brief 获取原生窗口句柄。 * @return 平台相关窗口句柄指针。 */ void* window::handle() const { assert(is_valid()); return get_window_handle(_id); } /** * @brief 设置窗口标题。 * @param caption 标题文本。 */ void window::set_caption(const wchar_t* caption) const { assert(is_valid()); set_window_caption(_id, caption); } /** * @brief 获取窗口矩形坐标。 * @return 左上右下坐标向量。 */ math::u32v4 window::size() const { assert(is_valid()); return get_window_size(_id); } /** * @brief 调整窗口客户区尺寸。 * @param width 目标宽度。 * @param height 目标高度。 */ void window::resize(u32 width, u32 height)const { assert(is_valid()); resize_window(_id, width, height); } /** * @brief 获取窗口当前宽度。 * @return 宽度像素值。 */ u32 window::width()const { assert(is_valid()); math::u32v4 s{ size() }; return s.z - s.x; } /** * @brief 获取窗口当前高度。 * @return 高度像素值。 */ u32 window::height()const { assert(is_valid()); math::u32v4 s{ size() }; return s.w - s.y; } /** * @brief 查询窗口是否已关闭。 * @return 已关闭返回 true。 */ bool window::is_closed()const { assert(is_valid()); return is_window_close(_id); } } #endif //INCLUDE_WINDOW_CPP