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();
|
||
}
|