# Class VulkanLWJGLExtKHRSurface

java.lang.Object
com.io7m.jcoronado.lwjgl.internal.VulkanLWJGLExtKHRSurface

All Implemented Interfaces:
  `VulkanExtensionType`, `VulkanExtKHRSurfaceType`

public final class VulkanLWJGLExtKHRSurface extends Object implements VulkanExtKHRSurfaceType
Access to the `VK_KHR_surface` extension.

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from interface com.io7m.jcoronado.extensions.khr_surface.api.VulkanExtKHRSurfaceType

  `VulkanExtKHRSurfaceType.VulkanKHRSurfaceType`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `VulkanSurfaceCapabilitiesKHR`
  `surfaceCapabilities(VulkanPhysicalDeviceType in_device, VulkanExtKHRSurfaceType.VulkanKHRSurfaceType in_surface)`
  Determine the capabilities of `surface`.
  `List<VulkanSurfaceFormatKHR>`
  `surfaceFormats(VulkanPhysicalDeviceType in_device, VulkanExtKHRSurfaceType.VulkanKHRSurfaceType in_surface)`
  Determine the preferred formats for `surface`.
  `VulkanExtKHRSurfaceType.VulkanKHRSurfaceType`
  `surfaceFromWindow(VulkanInstanceType instance, long window)`
  Treat a raw memory address as if it were a window, and create a WSI-compatible surface from it.
  `List<VulkanPresentModeKHR>`
  `surfacePresentModes(VulkanPhysicalDeviceType in_device, VulkanExtKHRSurfaceType.VulkanKHRSurfaceType in_surface)`
  Determine the presentation modes for `surface`.
  `List<VulkanQueueFamilyProperties>`
  `surfaceSupport(VulkanPhysicalDeviceType in_device, VulkanExtKHRSurfaceType.VulkanKHRSurfaceType in_surface)`
  Determine which queue families, if any, support presenting to `surface`.
  `String`
  `toString()`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface com.io7m.jcoronado.extensions.khr_surface.api.VulkanExtKHRSurfaceType

  `name`

- ## Method Details

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `Object`

  - ### surfaceFromWindow

    public VulkanExtKHRSurfaceType.VulkanKHRSurfaceType surfaceFromWindow(VulkanInstanceType instance, long window) throws VulkanException
    Description copied from interface: `VulkanExtKHRSurfaceType`
    Treat a raw memory address as if it were a window, and create a WSI-compatible surface from it. The caller is responsible for ensuring that the given memory address really does refer to a window.
    Specified by:
      `surfaceFromWindow` in interface `VulkanExtKHRSurfaceType`
    Parameters:
      `instance` - The current Vulkan instance
      `window` - The window address
    Returns:
      A surface
    Throws:
      `VulkanException` - On errors

  - ### surfaceSupport

    public List<VulkanQueueFamilyProperties> surfaceSupport(VulkanPhysicalDeviceType in_device, VulkanExtKHRSurfaceType.VulkanKHRSurfaceType in_surface) throws VulkanException
    Description copied from interface: `VulkanExtKHRSurfaceType`
    Determine which queue families, if any, support presenting to `surface`.
    Specified by:
      `surfaceSupport` in interface `VulkanExtKHRSurfaceType`
    Parameters:
      `in_device` - The physical device
      `in_surface` - The surface
    Returns:
      The set of queue families on the physical device that support presenting to `surface`
    Throws:
      `VulkanException` - On errors
    See Also:
      - "vkGetPhysicalDeviceSurfaceSupportKHR"

  - ### surfaceFormats

    public List<VulkanSurfaceFormatKHR> surfaceFormats(VulkanPhysicalDeviceType in_device, VulkanExtKHRSurfaceType.VulkanKHRSurfaceType in_surface) throws VulkanException
    Description copied from interface: `VulkanExtKHRSurfaceType`
    Determine the preferred formats for `surface`.
    Specified by:
      `surfaceFormats` in interface `VulkanExtKHRSurfaceType`
    Parameters:
      `in_device` - The physical device
      `in_surface` - The surface
    Returns:
      The preferred formats for the given surface
    Throws:
      `VulkanException` - On errors
    See Also:
      - "vkGetPhysicalDeviceSurfaceFormatsKHR"

  - ### surfaceCapabilities

    public VulkanSurfaceCapabilitiesKHR surfaceCapabilities(VulkanPhysicalDeviceType in_device, VulkanExtKHRSurfaceType.VulkanKHRSurfaceType in_surface) throws VulkanException
    Description copied from interface: `VulkanExtKHRSurfaceType`
    Determine the capabilities of `surface`.
    Specified by:
      `surfaceCapabilities` in interface `VulkanExtKHRSurfaceType`
    Parameters:
      `in_device` - The physical device
      `in_surface` - The surface
    Returns:
      The capabilities of the given surface
    Throws:
      `VulkanException` - On errors
    See Also:
      - "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"

  - ### surfacePresentModes

    public List<VulkanPresentModeKHR> surfacePresentModes(VulkanPhysicalDeviceType in_device, VulkanExtKHRSurfaceType.VulkanKHRSurfaceType in_surface) throws VulkanException
    Description copied from interface: `VulkanExtKHRSurfaceType`
    Determine the presentation modes for `surface`.
    Specified by:
      `surfacePresentModes` in interface `VulkanExtKHRSurfaceType`
    Parameters:
      `in_device` - The physical device
      `in_surface` - The surface
    Returns:
      The presentation modes for the given surface
    Throws:
      `VulkanException` - On errors
    See Also:
      - "vkGetPhysicalDeviceSurfacePresentModesKHR"