Class GLFWVulkan
- java.lang.Object
-
- org.lwjgl.glfw.GLFWVulkan
-
public class GLFWVulkan extends java.lang.ObjectNative bindings to the GLFW library's Vulkan functions.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class and Description static classGLFWVulkan.FunctionsContains the function pointers loaded fromGLFW.getLibrary().
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method and Description static intglfwCreateWindowSurface(org.lwjgl.vulkan.VkInstance instance, long window, org.lwjgl.vulkan.VkAllocationCallbacks allocator, long[] surface)Array version of:CreateWindowSurfacestatic intglfwCreateWindowSurface(org.lwjgl.vulkan.VkInstance instance, long window, org.lwjgl.vulkan.VkAllocationCallbacks allocator, java.nio.LongBuffer surface)Creates a Vulkan surface for the specified window.static longglfwGetInstanceProcAddress(org.lwjgl.vulkan.VkInstance instance, java.nio.ByteBuffer procname)Returns the address of the specified Vulkan core or extension function for the specified instance.static longglfwGetInstanceProcAddress(org.lwjgl.vulkan.VkInstance instance, java.lang.CharSequence procname)Returns the address of the specified Vulkan core or extension function for the specified instance.static booleanglfwGetPhysicalDevicePresentationSupport(org.lwjgl.vulkan.VkInstance instance, org.lwjgl.vulkan.VkPhysicalDevice device, int queuefamily)Returns whether the specified queue family of the specified physical device supports presentation to the platform GLFW was built for.static org.lwjgl.PointerBufferglfwGetRequiredInstanceExtensions()Returns an array of names of Vulkan instance extensions required by GLFW for creating Vulkan surfaces for GLFW windows.static booleanglfwVulkanSupported()Returns whether the Vulkan loader has been found.
-
-
-
Method Detail
-
glfwVulkanSupported
public static boolean glfwVulkanSupported()
Returns whether the Vulkan loader has been found. This check is performed byInit.The availability of a Vulkan loader does not by itself guarantee that window surface creation or even device creation is possible. Call
GetRequiredInstanceExtensionsto check whether the extensions necessary for Vulkan surface creation are available andGetPhysicalDevicePresentationSupportto check whether a queue family of a physical device supports image presentation.Possible errors include
NOT_INITIALIZED.This function may be called from any thread.
-
glfwGetRequiredInstanceExtensions
@Nullable public static org.lwjgl.PointerBuffer glfwGetRequiredInstanceExtensions()
Returns an array of names of Vulkan instance extensions required by GLFW for creating Vulkan surfaces for GLFW windows. If successful, the list will always containVK_KHR_surface, so if you don't require any additional extensions you can pass this list directly to theVkInstanceCreateInfostruct.If Vulkan is not available on the machine, this function returns
NULLand generates aAPI_UNAVAILABLEerror. CallVulkanSupportedto check whether Vulkan is available.If Vulkan is available but no set of extensions allowing window surface creation was found, this function returns
NULL. You may still use Vulkan for off-screen rendering and compute work.Additional extensions may be required by future versions of GLFW. You should check if any extensions you wish to enable are already in the returned array, as it is an error to specify an extension more than once in the
VkInstanceCreateInfostruct.The returned array is allocated and freed by GLFW. You should not free it yourself. It is guaranteed to be valid only until the library is terminated.
This function may be called from any thread.
Possible errors include
NOT_INITIALIZEDandAPI_UNAVAILABLE.- Returns:
- an array of ASCII encoded extension names, or
NULLif an error occurred - Since:
- version 3.2
-
glfwGetInstanceProcAddress
public static long glfwGetInstanceProcAddress(@Nullable org.lwjgl.vulkan.VkInstance instance, java.nio.ByteBuffer procname) public static long glfwGetInstanceProcAddress(@Nullable org.lwjgl.vulkan.VkInstance instance, java.lang.CharSequence procname)Returns the address of the specified Vulkan core or extension function for the specified instance. If instance is set toNULLit can return any function exported from the Vulkan loader, including at least the following functions:VK10.vkEnumerateInstanceExtensionProperties(java.nio.ByteBuffer, java.nio.IntBuffer, org.lwjgl.vulkan.VkExtensionProperties.Buffer)VK10.vkEnumerateInstanceLayerProperties(java.nio.IntBuffer, org.lwjgl.vulkan.VkLayerProperties.Buffer)VK10.vkCreateInstance(org.lwjgl.vulkan.VkInstanceCreateInfo, org.lwjgl.vulkan.VkAllocationCallbacks, org.lwjgl.PointerBuffer)VK10.vkGetInstanceProcAddr(org.lwjgl.vulkan.VkInstance, java.nio.ByteBuffer)
If Vulkan is not available on the machine, this function returns
NULLand generates aAPI_UNAVAILABLEerror. CallVulkanSupportedto check whether Vulkan is available.This function is equivalent to calling
VK10.vkGetInstanceProcAddr(org.lwjgl.vulkan.VkInstance, java.nio.ByteBuffer)with a platform-specific query of the Vulkan loader as a fallback.Possible errors include
NOT_INITIALIZEDandAPI_UNAVAILABLE.The returned function pointer is valid until the library is terminated.
This function may be called from any thread.
- Parameters:
instance- the Vulkan instance to query, orNULLto retrieve functions related to instance creationprocname- the ASCII encoded name of the function- Returns:
- the address of the function, or
NULLif an error occurred - Since:
- version 3.2
-
glfwGetPhysicalDevicePresentationSupport
public static boolean glfwGetPhysicalDevicePresentationSupport(org.lwjgl.vulkan.VkInstance instance, org.lwjgl.vulkan.VkPhysicalDevice device, int queuefamily)Returns whether the specified queue family of the specified physical device supports presentation to the platform GLFW was built for.If Vulkan or the required window surface creation instance extensions are not available on the machine, or if the specified instance was not created with the required extensions, this function returns
FALSEand generates aAPI_UNAVAILABLEerror. CallVulkanSupportedto check whether Vulkan is available andGetRequiredInstanceExtensionsto check what instance extensions are required.Possible errors include
NOT_INITIALIZED,API_UNAVAILABLEandPLATFORM_ERROR.This function may be called from any thread. For synchronization details of Vulkan objects, see the Vulkan specification.
-
glfwCreateWindowSurface
public static int glfwCreateWindowSurface(org.lwjgl.vulkan.VkInstance instance, long window, @Nullable org.lwjgl.vulkan.VkAllocationCallbacks allocator, java.nio.LongBuffer surface)Creates a Vulkan surface for the specified window.If the Vulkan loader was not found at initialization, this function returns
VK10.VK_ERROR_INITIALIZATION_FAILEDand generates aAPI_UNAVAILABLEerror. CallVulkanSupportedto check whether the Vulkan loader was found.If the required window surface creation instance extensions are not available or if the specified instance was not created with these extensions enabled, this function returns
VK10.VK_ERROR_EXTENSION_NOT_PRESENTand generates aAPI_UNAVAILABLEerror. CallGetRequiredInstanceExtensionsto check what instance extensions are required.The window surface cannot be shared with another API so the window must have been created with the client api hint set to
NO_APIotherwise it generates aINVALID_VALUEerror and returnsKHRSurface.VK_ERROR_NATIVE_WINDOW_IN_USE_KHR.The window surface must be destroyed before the specified Vulkan instance. It is the responsibility of the caller to destroy the window surface. GLFW does not destroy it for you. Call
KHRSurface.vkDestroySurfaceKHR(org.lwjgl.vulkan.VkInstance, long, org.lwjgl.vulkan.VkAllocationCallbacks)to destroy the surface.Possible errors include
NOT_INITIALIZED,API_UNAVAILABLE,PLATFORM_ERRORandINVALID_VALUE.If an error occurs before the creation call is made, GLFW returns the Vulkan error code most appropriate for the error. Appropriate use of
VulkanSupportedandGetRequiredInstanceExtensionsshould eliminate almost all occurrences of these errors.This function may be called from any thread. For synchronization details of Vulkan objects, see the Vulkan specification.
- Parameters:
instance- the Vulkan instance to create the surface inwindow- the window to create the surface forallocator- the allocator to use, orNULLto use the default allocator.surface- where to store the handle of the surface. This is set toVK10.VK_NULL_HANDLEif an error occurred.- Returns:
VK10.VK_SUCCESSif successful, or a Vulkan error code if an error occurred- Since:
- version 3.2
-
glfwCreateWindowSurface
public static int glfwCreateWindowSurface(org.lwjgl.vulkan.VkInstance instance, long window, @Nullable org.lwjgl.vulkan.VkAllocationCallbacks allocator, long[] surface)Array version of:CreateWindowSurface
-
-