Class VkSurfacePresentModeEXT
- All Implemented Interfaces:
AutoCloseable,org.lwjgl.system.NativeResource,org.lwjgl.system.Pointer
Description
If the VkSurfacePresentModeEXT structure is included in the pNext chain of VkPhysicalDeviceSurfaceInfo2KHR, the values returned in VkSurfaceCapabilitiesKHR::minImageCount, VkSurfaceCapabilitiesKHR::maxImageCount, VkSurfacePresentScalingCapabilitiesEXT::minScaledImageExtent, and VkSurfacePresentScalingCapabilitiesEXT::maxScaledImageExtent are valid only for the specified presentMode. If presentMode is PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR or PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR, the per-present mode image counts must both be one. The per-present mode image counts may be less-than or greater-than the image counts returned when VkSurfacePresentModeEXT is not provided.
Note
If VkSwapchainPresentModesCreateInfoEXT is provided to swapchain creation, the requirements for forward progress may be less strict. For example, a FIFO swapchain might only require 2 images to guarantee forward progress, but a MAILBOX one might require 4. Without the per-present image counts, such an implementation would have to return 4 in VkSurfaceCapabilitiesKHR::minImageCount, which pessimizes FIFO. Conversely, an implementation may return a low number for minImageCount, but internally bump the image count when application queries GetSwapchainImagesKHR, which can surprise applications, and is not discoverable until swapchain creation. Using VkSurfacePresentModeEXT and VkSwapchainPresentModesCreateInfoEXT together effectively removes this problem.
VkSwapchainPresentModesCreateInfoEXT is required for the specification to be backwards compatible with applications that do not know about, or make use of this feature.
Valid Usage
presentModemust be a value reported byGetPhysicalDeviceSurfacePresentModesKHRfor the specified surface
Valid Usage (Implicit)
sTypemust beSTRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXTpresentModemust be a validVkPresentModeKHRvalue
Layout
struct VkSurfacePresentModeEXT {
VkStructureType sType();
void * pNext();
VkPresentModeKHR presentMode();
}-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class org.lwjgl.system.Struct
org.lwjgl.system.Struct.StructValidationNested classes/interfaces inherited from interface org.lwjgl.system.Pointer
org.lwjgl.system.Pointer.Default -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intThe struct alignment in bytes.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct size in bytes.static final intThe struct member offsets.Fields inherited from interface org.lwjgl.system.Pointer
BITS32, BITS64, CLONG_SHIFT, CLONG_SIZE, POINTER_SHIFT, POINTER_SIZE -
Constructor Summary
ConstructorsConstructorDescriptionVkSurfacePresentModeEXT(ByteBuffer container) Creates aVkSurfacePresentModeEXTinstance at the current position of the specifiedByteBuffercontainer. -
Method Summary
Modifier and TypeMethodDescriptionstatic VkSurfacePresentModeEXTcalloc()Returns a newVkSurfacePresentModeEXTinstance allocated withmemCalloc.calloc(int capacity) Returns a newVkSurfacePresentModeEXT.Bufferinstance allocated withmemCalloc.calloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkSurfacePresentModeEXT.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkSurfacePresentModeEXTcalloc(org.lwjgl.system.MemoryStack stack) Returns a newVkSurfacePresentModeEXTinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkSurfacePresentModeEXTcreate()Returns a newVkSurfacePresentModeEXTinstance allocated withBufferUtils.create(int capacity) Returns a newVkSurfacePresentModeEXT.Bufferinstance allocated withBufferUtils.static VkSurfacePresentModeEXTcreate(long address) Returns a newVkSurfacePresentModeEXTinstance for the specified memory address.create(long address, int capacity) Create aVkSurfacePresentModeEXT.Bufferinstance at the specified memory.static @Nullable VkSurfacePresentModeEXTcreateSafe(long address) static @Nullable VkSurfacePresentModeEXT.BuffercreateSafe(long address, int capacity) static VkSurfacePresentModeEXTmalloc()Returns a newVkSurfacePresentModeEXTinstance allocated withmemAlloc.malloc(int capacity) Returns a newVkSurfacePresentModeEXT.Bufferinstance allocated withmemAlloc.malloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkSurfacePresentModeEXT.Bufferinstance allocated on the specifiedMemoryStack.static VkSurfacePresentModeEXTmalloc(org.lwjgl.system.MemoryStack stack) Returns a newVkSurfacePresentModeEXTinstance allocated on the specifiedMemoryStack.static longnpNext(long struct) Unsafe version ofpNext().static voidnpNext(long struct, long value) Unsafe version ofpNext.static intnpresentMode(long struct) Unsafe version ofpresentMode().static voidnpresentMode(long struct, int value) Unsafe version ofpresentMode.static intnsType(long struct) Unsafe version ofsType().static voidnsType(long struct, int value) Unsafe version ofsType.longpNext()NULLor a pointer to a structure extending this structure.pNext(long value) Sets the specified value to thepNext()field.intthe presentation mode the swapchain will use.presentMode(int value) Sets the specified value to thepresentMode()field.set(int sType, long pNext, int presentMode) Initializes this struct with the specified values.Copies the specified struct data to this struct.intsizeof()intsType()aVkStructureTypevalue identifying this structure.sType(int value) Sets the specified value to thesType()field.Sets theSTRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXTvalue to thesType()field.Methods inherited from class org.lwjgl.system.Struct
clear, free, isNull, validate, validateMethods inherited from class org.lwjgl.system.Pointer.Default
address, equals, hashCode, toStringMethods inherited from interface org.lwjgl.system.NativeResource
close, free
-
Field Details
-
SIZEOF
public static final int SIZEOFThe struct size in bytes. -
ALIGNOF
public static final int ALIGNOFThe struct alignment in bytes. -
STYPE
public static final int STYPEThe struct member offsets. -
PNEXT
public static final int PNEXTThe struct member offsets. -
PRESENTMODE
public static final int PRESENTMODEThe struct member offsets.
-
-
Constructor Details
-
VkSurfacePresentModeEXT
Creates aVkSurfacePresentModeEXTinstance at the current position of the specifiedByteBuffercontainer. Changes to the buffer's content will be visible to the struct instance and vice versa.The created instance holds a strong reference to the container object.
-
-
Method Details
-
sizeof
public int sizeof()- Specified by:
sizeofin classorg.lwjgl.system.Struct<VkSurfacePresentModeEXT>
-
sType
public int sType()aVkStructureTypevalue identifying this structure. -
pNext
public long pNext()NULLor a pointer to a structure extending this structure. -
presentMode
public int presentMode()the presentation mode the swapchain will use. -
sType
Sets the specified value to thesType()field. -
sType$Default
Sets theSTRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXTvalue to thesType()field. -
pNext
Sets the specified value to thepNext()field. -
presentMode
Sets the specified value to thepresentMode()field. -
set
Initializes this struct with the specified values. -
set
Copies the specified struct data to this struct.- Parameters:
src- the source struct- Returns:
- this struct
-
malloc
Returns a newVkSurfacePresentModeEXTinstance allocated withmemAlloc. The instance must be explicitly freed. -
calloc
Returns a newVkSurfacePresentModeEXTinstance allocated withmemCalloc. The instance must be explicitly freed. -
create
Returns a newVkSurfacePresentModeEXTinstance allocated withBufferUtils. -
create
Returns a newVkSurfacePresentModeEXTinstance for the specified memory address. -
createSafe
-
malloc
Returns a newVkSurfacePresentModeEXT.Bufferinstance allocated withmemAlloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
calloc
Returns a newVkSurfacePresentModeEXT.Bufferinstance allocated withmemCalloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
create
Returns a newVkSurfacePresentModeEXT.Bufferinstance allocated withBufferUtils.- Parameters:
capacity- the buffer capacity
-
create
Create aVkSurfacePresentModeEXT.Bufferinstance at the specified memory.- Parameters:
address- the memory addresscapacity- the buffer capacity
-
createSafe
-
malloc
Returns a newVkSurfacePresentModeEXTinstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocate
-
calloc
Returns a newVkSurfacePresentModeEXTinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
stack- the stack from which to allocate
-
malloc
public static VkSurfacePresentModeEXT.Buffer malloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkSurfacePresentModeEXT.Bufferinstance allocated on the specifiedMemoryStack.- Parameters:
capacity- the buffer capacitystack- the stack from which to allocate
-
calloc
public static VkSurfacePresentModeEXT.Buffer calloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkSurfacePresentModeEXT.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
capacity- the buffer capacitystack- the stack from which to allocate
-
nsType
public static int nsType(long struct) Unsafe version ofsType(). -
npNext
public static long npNext(long struct) Unsafe version ofpNext(). -
npresentMode
public static int npresentMode(long struct) Unsafe version ofpresentMode(). -
nsType
public static void nsType(long struct, int value) Unsafe version ofsType. -
npNext
public static void npNext(long struct, long value) Unsafe version ofpNext. -
npresentMode
public static void npresentMode(long struct, int value) Unsafe version ofpresentMode.
-