#include "zworld.h" #include "vkn/vulkan_window.h" #include "vkn/vulkan_api.h" #include using namespace api; void ZWorldModule::OnLoad(int argc, char** argv) { // 创建窗口 new vkn::VulkanWindow(&SDL_CreateWindow, { "zengine" }, 1080, 720); new vkn::VulkanAPI(); } void ZWorldModule::OnUnload() { } void ZWorldModule::MainLoop() { bool running = true; SDL_Event event_; auto win = Window::Ptr(); auto ptr = Window::Ptr()->GetPtr(); SDL_Renderer* renderer = SDL_CreateRenderer(ptr, -1, SDL_RENDERER_ACCELERATED); if (!renderer) { std::cerr << "无法创建渲染器: " << SDL_GetError() << std::endl; SDL_DestroyWindow(ptr); SDL_Quit(); } while (running) { // 处理事件 while (SDL_PollEvent(&event_)) { if (event_.type == SDL_QUIT) { running = false; } } // 清除屏幕 SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255); // 黑色 SDL_RenderClear(renderer); // 绘制一个红色矩形 SDL_Rect rect = { 200, 150, 400, 300 }; SDL_SetRenderDrawColor(renderer, 255, 0, 0, 255); // 红色 SDL_RenderFillRect(renderer, &rect); // 显示渲染内容 SDL_RenderPresent(renderer); } }