#include import Crafter.Graphics; using namespace Crafter; import std; int main() { /* This sets up all necessary things and creates the vulkan device. This must be called before any vulkan related things. Things like VkDevice are static members of the VulkanDevice class. */ VulkanDevice::CreateDevice(); WindowVulkan window(1280, 720, "HelloVulkan"); /* StartInit gives you a VkCommandBuffer to use before the event loop starts Use this for inititializing things like textures. */ VkCommandBuffer cmd = window.StartInit(); Mesh triangleMesh; std::array verts {{{-0.1, 0, 0}, {0, 0.1, 0}, {0.1, 0, 0}}}; std::array index {{0,1,2}}; triangleMesh.Build(verts, index, cmd); // RenderingElement3DVulkan::elements.emplace_back(triangleMesh); // RenderingElement3DVulkan::BuildTLAS(cmd); /* FinishInit executes all commands recorded to StartInit. This must be called before the the event loops starts if you called StartInit before. */ window.FinishInit(); window.Render(); window.StartSync(); }