# Class VulkanLWJGLInstanceProvider

java.lang.Object
com.io7m.jcoronado.lwjgl.VulkanLWJGLInstanceProvider

All Implemented Interfaces:
  `VulkanInstanceProviderType`

public final class VulkanLWJGLInstanceProvider extends Object implements VulkanInstanceProviderType
A LWJGL-based instance provider.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static VulkanInstanceProviderType`
  `create()`
  `VulkanInstanceType`
  `createInstance(VulkanInstanceCreateInfo info, Optional<VulkanHostAllocatorType> allocator)`
  Create a new instance.
  `Map<String, VulkanExtensionProperties>`
  `extensions()`
  `VulkanVersion`
  `findSupportedInstanceVersion()`
  `Map<String, VulkanLayerProperties>`
  `layers()`
  `VulkanVersion`
  `minimumRequiredVersion()`
  `String`
  `providerName()`
  `String`
  `providerVersion()`

  ### Methods inherited from class Object

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

- ## Method Details

  - ### create

    public static VulkanInstanceProviderType create()
    Returns:
      A new instance provider

  - ### minimumRequiredVersion

    public VulkanVersion minimumRequiredVersion()
    Specified by:
      `minimumRequiredVersion` in interface `VulkanInstanceProviderType`
    Returns:
      The minimum version required by the instance provider

  - ### providerName

    public String providerName()
    Specified by:
      `providerName` in interface `VulkanInstanceProviderType`
    Returns:
      The name of the (software) provider

  - ### providerVersion

    public String providerVersion()
    Specified by:
      `providerVersion` in interface `VulkanInstanceProviderType`
    Returns:
      The version of the (software) provider

  - ### findSupportedInstanceVersion

    public VulkanVersion findSupportedInstanceVersion()
    Specified by:
      `findSupportedInstanceVersion` in interface `VulkanInstanceProviderType`
    Returns:
      The supported instance version

  - ### extensions

    public Map<String, VulkanExtensionProperties> extensions() throws VulkanException
    Specified by:
      `extensions` in interface `VulkanInstanceProviderType`
    Returns:
      The available instance extensions
    Throws:
      `VulkanException` - On errors

  - ### layers

    public Map<String, VulkanLayerProperties> layers() throws VulkanException
    Specified by:
      `layers` in interface `VulkanInstanceProviderType`
    Returns:
      The available layers
    Throws:
      `VulkanException` - On errors

  - ### createInstance

    public VulkanInstanceType createInstance(VulkanInstanceCreateInfo info, Optional<VulkanHostAllocatorType> allocator) throws VulkanException
    Description copied from interface: `VulkanInstanceProviderType`
    Create a new instance.
    Specified by:
      `createInstance` in interface `VulkanInstanceProviderType`
    Parameters:
      `info` - The creation info
      `allocator` - The optional host allocator
    Returns:
      A new instance
    Throws:
      `VulkanException` - On errors