40 lines
1.5 KiB
C++
40 lines
1.5 KiB
C++
|
|
#include <vulkan/vulkan.h>
|
|||
|
|
|
|||
|
|
import Crafter.Graphics;
|
|||
|
|
using namespace Crafter;
|
|||
|
|
|
|||
|
|
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();
|
|||
|
|
|
|||
|
|
/*
|
|||
|
|
This creates a window titled "HelloWindow" with a size of 1280x720 pixels.
|
|||
|
|
The WindowWaylandVulkan class is a specialized window implementation.
|
|||
|
|
that uses the Wayland display server protocol and vulkan renderer (hence the name "WaylandVulkan").
|
|||
|
|
*/
|
|||
|
|
WindowWaylandVulkan window("HelloWindow", 1280, 720);
|
|||
|
|
|
|||
|
|
/*
|
|||
|
|
StartInit gives you a VkCommandBuffer to use before the event loop starts
|
|||
|
|
Use this for inititializing things like textures.
|
|||
|
|
*/
|
|||
|
|
VkCommandBuffer cmd = window.StartInit();
|
|||
|
|
|
|||
|
|
/*
|
|||
|
|
FinishInit executes all commands recorded to StartInit.
|
|||
|
|
This must be called before the the event loops starts if you called StartInit before.
|
|||
|
|
*/
|
|||
|
|
window.FinishInit();
|
|||
|
|
|
|||
|
|
/*
|
|||
|
|
This starts the window’s main event loop, allowing it to respond to user input and system events.
|
|||
|
|
The window will remain open and responsive until it is closed.
|
|||
|
|
You can hook into various events through the event system.
|
|||
|
|
This call blocks the current thread; to run the event loop asynchronously, use StartAsync instead.
|
|||
|
|
*/
|
|||
|
|
window.StartSync();
|
|||
|
|
}
|