v/main.cpp

66 lines
1.2 KiB
C++

#include <print>
#include <vector>
#include <fstream>
#include <cassert>
#define VOLK_IMPLEMENTATION
#include <volk/volk.h>
#define VMA_IMPLEMENTATION
#include <vma/vk_mem_alloc.h>
#include <GLFW/glfw3.h>
#include "renderer/init.h"
#include "renderer/swapchain.h"
#include "renderer/renderer.h"
#include "renderer/texture.h"
#define STB_IMAGE_IMPLEMENTATION
#include <stb_image.h>
GLFWwindow *window;
int main() {
std::print("Hello, Sailor!");
if (!glfwInit())
return -1;
glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);
window = glfwCreateWindow(640, 480, "Hello World", nullptr, nullptr);
if (!window) {
glfwTerminate();
return -1;
}
createInstance(window);
createSurface(window);
createDevice();
createSwapchain(window);
Renderer renderer(window);
texture_manager.load("assets/boy.jpg", renderer);
while (!glfwWindowShouldClose(window)) {
glfwPollEvents();
renderer.begin_frame();
renderer.submit_quad();
// renderer.submit_sprite();
renderer.end_frame();
}
vkDeviceWaitIdle(device);
glfwDestroyWindow(window);
glfwTerminate();
return 0;
}