2024-07-20 18:04:19 +08:00
|
|
|
#include "zworld.h"
|
2024-08-17 18:01:21 +08:00
|
|
|
#include "vkn/vulkan_window.h"
|
|
|
|
|
#include "vkn/vulkan_api.h"
|
|
|
|
|
#include <iostream>
|
|
|
|
|
using namespace api;
|
2024-07-31 10:48:28 +08:00
|
|
|
void ZWorldModule::OnLoad(int argc, char** argv)
|
|
|
|
|
{
|
2024-08-17 18:01:21 +08:00
|
|
|
// 创建窗口
|
2024-08-23 22:13:05 +08:00
|
|
|
new vkn::VulkanWindow(&SDL_CreateWindow, { "zengine" }, 1080, 720);
|
|
|
|
|
new vkn::VulkanAPI();
|
2024-07-31 10:48:28 +08:00
|
|
|
}
|
2024-07-20 18:04:19 +08:00
|
|
|
|
2024-07-31 10:48:28 +08:00
|
|
|
void ZWorldModule::OnUnload()
|
|
|
|
|
{
|
2024-08-17 18:01:21 +08:00
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
|
2024-07-31 10:48:28 +08:00
|
|
|
}
|