Add Vulkan API
Implemented the Vulkan related methods.
See index.d.ts
:
const vulkanSupported: () => boolean;
const getRequiredInstanceExtensions: () => string[];
const getInstanceProcAddress: (instance: TVkInstancePtr, name: string) => TVkProcedurePtr;
const getPhysicalDevicePresentationSupport: (
instance: TVkInstancePtr,
physicalDevice: TVkPhysicalDevicePtr,
queueFamily: number,
) => boolean;
const createWindowSurface: (
instance: TVkInstancePtr,
window: TWindowPtr,
allocator: TVkAllocationCallbacksPtr,
) => TVkSurfacePtr;
const vulkanCreateInstance: () => TVkInstancePtr;
const vulkanCreateDevice: () => ({
device: TVkDevicePtr,
physicalDevice: TVkPhysicalDevicePtr,
queueFamily: number,
});
const vulkanDestroyDevice: (instance: TVkInstancePtr, device: TVkDevicePtr) => void;
const vulkanDestroyInstance: (instance: TVkInstancePtr) => void;
See https://www.glfw.org/docs/latest/vulkan_guide.html
There is an example creating a basic Vulkan device: vulkan.js