# YX Graphics **Repository Path**: NyanKoMaster/yx_graphics ## Basic Information - **Project Name**: YX Graphics - **Description**: 基于Vulkan的基础图形API封装 - **Primary Language**: C/C++ - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-11-05 - **Last Updated**: 2026-04-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # YX Graphics #### 介绍 基于Vulkan的基础图形API封装 #### 安装教程 ##### Windows 平台 1. CMake 3.10 以上 2. MSVC 编译工具 3. 执行cmake 并编译 或直接执行./build/build.bat 自动执行编译 #### 使用说明 #include "../include/yx_window_manager.hpp" using namespace yx::graphics; //实现下述接口 class AppCallback : public IApplcation { public: //日志输出 virtual void OnLogMessageCallback(LogSourceType source, LogInfoType type, const char* message); //图形初始化完成,在这里执行加载和创建静态资源 virtual void OnGraphicsReady(Graphics* graphics); //图形重新加载,在这里执行与Swapchain相关的资源创建(如绑定Pipeline的资源描述符和新录制CommandBuffer) virtual void OnGraphicsRecreate(Graphics* graphics); //每帧执行,在此执行图形逻辑更新 virtual void OnApplicationUpdate(Graphics* graphics, double delta); //每帧执行,对所有窗口分别调用,可执行相关资源向GPU更新 virtual void OnFrameUpdate(Window* window, double delta); //图形接口释放销毁 virtual void OnGraphicsDestroy(Graphics* graphics); //窗口创建完成 virtual void OnWindowCreate(Window* window); //窗口重新加载,在这里执行与Swapchain相关的资源创建(如绑定Pipeline的资源描述符和新录制CommandBuffer) virtual void OnWindowRecreate(Window* window); //窗口尺寸改变 virtual void OnWindowResize(Window* window, int width, int height); //窗口关闭按钮按下,返回false时窗口将不会关闭 virtual bool OnWindowClose(Window* window); //窗口资源销毁 virtual void OnDestroyGraphicsRes(Window* window); //窗口资源初始化 virtual void OnCreateGraphicsRes(Window* window); }; //主管理器 yx::graphics::WindowManager* windowManager = yx::graphics::WindowManager::CreateInstance(); AppCallback app; //设置回调接口 windowManager->SetApplcation(&app); //启动运行 windowManager->Run(screenWidth, screenHeight, applicaitonNameStr, windowTileStr, WindowBorderType::Resizeable, true, false); //程序结束 yx::graphics::WindowManager::DestroyInstance();