Skip to content

Add Vulkan API

Compare
Choose a tag to compare
@github-actions github-actions released this 04 Dec 15:04

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