66 lines
1.2 KiB
C++
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;
|
|
}
|