# Interface VulkanPhysicalDeviceMemoryPropertiesType

All Known Implementing Classes:
  `VulkanPhysicalDeviceMemoryProperties`

@Immutable public interface VulkanPhysicalDeviceMemoryPropertiesType
The memory properties for a physical device.

See Also:
  - "VkPhysicalDeviceMemoryProperties"

- ## Method Summary

  Modifier and Type
  Method
  Description
  `default void`
  `checkPreconditions()`
  Check preconditions for the type.
  `default VulkanMemoryType`
  `findSuitableMemoryType(VulkanMemoryRequirements requirements, Set<VulkanMemoryPropertyFlag> flags)`
  Find a suitable memory type for the given requirements and properties.
  `SortedMap<VulkanMemoryHeapIndex,VulkanMemoryHeap>`
  `heaps()`
  `SortedMap<VulkanMemoryTypeIndex,VulkanMemoryType>`
  `types()`

- ## Method Details

  - ### heaps

    @Parameter SortedMap<VulkanMemoryHeapIndex,VulkanMemoryHeap> heaps()
    Returns:
      The memory heaps from which memory can be allocated.

  - ### types

    @Parameter SortedMap<VulkanMemoryTypeIndex,VulkanMemoryType> types()
    Returns:
      The memory types that can be used to access memory allocated from the heaps specified by `heaps()`

  - ### checkPreconditions

    @Check default void checkPreconditions()
    Check preconditions for the type.

  - ### findSuitableMemoryType

    default VulkanMemoryType findSuitableMemoryType(VulkanMemoryRequirements requirements, Set<VulkanMemoryPropertyFlag> flags) throws VulkanMissingRequiredMemoryTypeException
    Find a suitable memory type for the given requirements and properties.
    Parameters:
      `requirements` - The memory requirements
      `flags` - The memory properties
    Returns:
      A memory type
    Throws:
      `VulkanMissingRequiredMemoryTypeException` - If no suitable memory type exists