Class KHRWin32Surface

java.lang.Object
org.lwjgl.vulkan.KHRWin32Surface

public class KHRWin32Surface extends Object
The VK_KHR_win32_surface extension is an instance extension. It provides a mechanism to create a VkSurfaceKHR object (defined by the VK_KHR_surface extension) that refers to a Win32 HWND, as well as a query to determine support for rendering to the windows desktop.
Name String
VK_KHR_win32_surface
Extension Type
Instance extension
Registered Extension Number
10
Revision
6
Extension and Version Dependencies
VK_KHR_surface
Contact
Other Extension Metadata
Last Modified Date
2017-04-24
IP Status
No known IP claims.
Contributors
  • Patrick Doane, Blizzard
  • Faith Ekstrand, Intel
  • Ian Elliott, LunarG
  • Courtney Goeltzenleuchter, LunarG
  • Jesse Hall, Google
  • James Jones, NVIDIA
  • Antoine Labour, Google
  • Jon Leech, Khronos
  • David Mao, AMD
  • Norbert Nopper, Freescale
  • Alon Or-bach, Samsung
  • Daniel Rakos, AMD
  • Graham Sellers, AMD
  • Ray Smith, ARM
  • Jeff Vigil, Qualcomm
  • Chia-I Wu, LunarG
  • Field Details

    • VK_KHR_WIN32_SURFACE_SPEC_VERSION

      public static final int VK_KHR_WIN32_SURFACE_SPEC_VERSION
      The extension specification version.
      See Also:
    • VK_KHR_WIN32_SURFACE_EXTENSION_NAME

      public static final String VK_KHR_WIN32_SURFACE_EXTENSION_NAME
      The extension name.
      See Also:
    • VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR

      public static final int VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR
      Extends VkStructureType.
      See Also:
  • Method Details

    • nvkCreateWin32SurfaceKHR

      public static int nvkCreateWin32SurfaceKHR(org.lwjgl.vulkan.VkInstance instance, long pCreateInfo, long pAllocator, long pSurface)
      Unsafe version of: CreateWin32SurfaceKHR
    • vkCreateWin32SurfaceKHR

      public static int vkCreateWin32SurfaceKHR(org.lwjgl.vulkan.VkInstance instance, VkWin32SurfaceCreateInfoKHR pCreateInfo, @Nullable VkAllocationCallbacks pAllocator, LongBuffer pSurface)
      Create a VkSurfaceKHR object for a Win32 native window.
      C Specification

      To create a VkSurfaceKHR object for a Win32 window, call:

      
       VkResult vkCreateWin32SurfaceKHR(
           VkInstance                                  instance,
           const VkWin32SurfaceCreateInfoKHR*          pCreateInfo,
           const VkAllocationCallbacks*                pAllocator,
           VkSurfaceKHR*                               pSurface);
      Valid Usage (Implicit)
      • instance must be a valid VkInstance handle
      • pCreateInfo must be a valid pointer to a valid VkWin32SurfaceCreateInfoKHR structure
      • If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
      • pSurface must be a valid pointer to a VkSurfaceKHR handle
      Return Codes
      On success, this command returns
      On failure, this command returns

      Some Vulkan functions may call the SendMessage system API when interacting with a VkSurfaceKHR through a VkSwapchainKHR. In a multithreaded environment, calling SendMessage from a thread that is not the thread associated with pCreateInfo→hwnd will block until the application has processed the window message. Thus, applications should either call these Vulkan functions on the message pump thread, or make sure their message pump is actively running. Failing to do so may result in deadlocks.

      The functions subject to this requirement are:

      See Also

      VkAllocationCallbacks, VkWin32SurfaceCreateInfoKHR

      Parameters:
      instance - the instance to associate the surface with.
      pCreateInfo - a pointer to a VkWin32SurfaceCreateInfoKHR structure containing parameters affecting the creation of the surface object.
      pAllocator - the allocator used for host memory allocated for the surface object when there is no more specific allocator available (see Memory Allocation).
      pSurface - a pointer to a VkSurfaceKHR handle in which the created surface object is returned.
    • vkGetPhysicalDeviceWin32PresentationSupportKHR

      public static boolean vkGetPhysicalDeviceWin32PresentationSupportKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice, int queueFamilyIndex)
      Query queue family support for presentation on a Win32 display.
      C Specification

      To determine whether a queue family of a physical device supports presentation to the Microsoft Windows desktop, call:

      
       VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR(
           VkPhysicalDevice                            physicalDevice,
           uint32_t                                    queueFamilyIndex);
      Description

      This platform-specific function can be called prior to creating a surface.

      Valid Usage
      • queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice
      Valid Usage (Implicit)
      • physicalDevice must be a valid VkPhysicalDevice handle
      Parameters:
      physicalDevice - the physical device.
      queueFamilyIndex - the queue family index.
    • vkCreateWin32SurfaceKHR

      public static int vkCreateWin32SurfaceKHR(org.lwjgl.vulkan.VkInstance instance, VkWin32SurfaceCreateInfoKHR pCreateInfo, @Nullable VkAllocationCallbacks pAllocator, long[] pSurface)
      Array version of: CreateWin32SurfaceKHR