Class VkViewport
- All Implemented Interfaces:
AutoCloseable
,NativeResource
,Pointer
Description
Note
Despite their names, minDepth
can be less than, equal to, or greater than maxDepth
.
The framebuffer depth coordinate zf
may be represented using either a fixed-point or floating-point representation. However, a floating-point representation must be used if the depth/stencil attachment has a floating-point depth component. If an m
-bit fixed-point representation is used, we assume that it represents each value k / (2m - 1)
, where k ∈ { 0, 1, …, 2m-1 }
, as k
(e.g. 1.0 is represented in binary as a string of all ones).
The viewport parameters shown in the above equations are found from these values as
ox = x + width / 2
oy = y + height / 2
oz = minDepth
(or(maxDepth + minDepth) / 2
ifVkPipelineViewportDepthClipControlCreateInfoEXT
::negativeOneToOne
isTRUE
)px = width
py = height
pz = maxDepth - minDepth
(or(maxDepth - minDepth) / 2
ifVkPipelineViewportDepthClipControlCreateInfoEXT
::negativeOneToOne
isTRUE
)
If a render pass transform is enabled, the values (px,py)
and (ox, oy)
defining the viewport are transformed as described in render pass transform before participating in the viewport transform.
The application can specify a negative term for height
, which has the effect of negating the y coordinate in clip space before performing the transform. When using a negative height
, the application should also adjust the y
value to point to the lower left corner of the viewport instead of the upper left corner. Using the negative height
allows the application to avoid having to negate the y component of the Position
output from the last pre-rasterization shader stage.
The width and height of the implementation-dependent maximum viewport dimensions must be greater than or equal to the width and height of the largest image which can be created and attached to a framebuffer.
The floating-point viewport bounds are represented with an implementation-dependent precision.
Valid Usage
width
must be greater than0.0
width
must be less than or equal toVkPhysicalDeviceLimits
::maxViewportDimensions
[0]- If the
VK_KHR_maintenance1
extension is not enabled, theVK_AMD_negative_viewport_height
extension is not enabled, andVkPhysicalDeviceProperties
::apiVersion
is less than Vulkan 1.1,height
must be greater than0.0
- The absolute value of
height
must be less than or equal toVkPhysicalDeviceLimits
::maxViewportDimensions
[1] x
must be greater than or equal toviewportBoundsRange
[0](x + width)
must be less than or equal toviewportBoundsRange
[1]y
must be greater than or equal toviewportBoundsRange
[0]y
must be less than or equal toviewportBoundsRange
[1](y + height)
must be greater than or equal toviewportBoundsRange
[0](y + height)
must be less than or equal toviewportBoundsRange
[1]- If the
VK_EXT_depth_range_unrestricted
extension is not enabled,minDepth
must be between0.0
and1.0
, inclusive - If the
VK_EXT_depth_range_unrestricted
extension is not enabled,maxDepth
must be between0.0
and1.0
, inclusive
See Also
VkCommandBufferInheritanceViewportScissorInfoNV
, VkPipelineViewportStateCreateInfo
, CmdSetViewport
, CmdSetViewportWithCount
, CmdSetViewportWithCountEXT
Layout
struct VkViewport {
float x()
;
float y()
;
float width()
;
float height()
;
float minDepth()
;
float maxDepth()
;
}
-
Nested Class Summary
Nested classes/interfaces inherited from class org.lwjgl.system.Struct
Struct.StructValidation
Nested classes/interfaces inherited from interface org.lwjgl.system.Pointer
Pointer.Default
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
The struct alignment in bytes.static final int
The struct member offsets.static final int
The struct member offsets.static final int
The struct member offsets.static final int
The struct size in bytes.static final int
The struct member offsets.static final int
The struct member offsets.static final int
The struct member offsets.Fields inherited from interface org.lwjgl.system.Pointer
BITS32, BITS64, CLONG_SHIFT, CLONG_SIZE, POINTER_SHIFT, POINTER_SIZE
-
Constructor Summary
ConstructorDescriptionVkViewport
(ByteBuffer container) Creates aVkViewport
instance at the current position of the specifiedByteBuffer
container. -
Method Summary
Modifier and TypeMethodDescriptionstatic VkViewport
calloc()
Returns a newVkViewport
instance allocated withmemCalloc
.static VkViewport.Buffer
calloc
(int capacity) Returns a newVkViewport.Buffer
instance allocated withmemCalloc
.static VkViewport.Buffer
calloc
(int capacity, MemoryStack stack) Returns a newVkViewport.Buffer
instance allocated on the specifiedMemoryStack
and initializes all its bits to zero.static VkViewport
calloc
(MemoryStack stack) Returns a newVkViewport
instance allocated on the specifiedMemoryStack
and initializes all its bits to zero.static VkViewport
Deprecated.static VkViewport.Buffer
callocStack
(int capacity) Deprecated.static VkViewport.Buffer
callocStack
(int capacity, MemoryStack stack) Deprecated.static VkViewport
callocStack
(MemoryStack stack) Deprecated.static VkViewport
create()
Returns a newVkViewport
instance allocated withBufferUtils
.static VkViewport.Buffer
create
(int capacity) Returns a newVkViewport.Buffer
instance allocated withBufferUtils
.static VkViewport
create
(long address) Returns a newVkViewport
instance for the specified memory address.static VkViewport.Buffer
create
(long address, int capacity) Create aVkViewport.Buffer
instance at the specified memory.static VkViewport
createSafe
(long address) static VkViewport.Buffer
createSafe
(long address, int capacity) float
height()
seewidth
height
(float value) Sets the specified value to theheight()
field.static VkViewport
malloc()
Returns a newVkViewport
instance allocated withmemAlloc
.static VkViewport.Buffer
malloc
(int capacity) Returns a newVkViewport.Buffer
instance allocated withmemAlloc
.static VkViewport.Buffer
malloc
(int capacity, MemoryStack stack) Returns a newVkViewport.Buffer
instance allocated on the specifiedMemoryStack
.static VkViewport
malloc
(MemoryStack stack) Returns a newVkViewport
instance allocated on the specifiedMemoryStack
.static VkViewport
Deprecated.static VkViewport.Buffer
mallocStack
(int capacity) Deprecated.static VkViewport.Buffer
mallocStack
(int capacity, MemoryStack stack) Deprecated.static VkViewport
mallocStack
(MemoryStack stack) Deprecated.float
maxDepth()
seeminDepth
maxDepth
(float value) Sets the specified value to themaxDepth()
field.float
minDepth()
minDepth
andmaxDepth
are the depth range for the viewport.minDepth
(float value) Sets the specified value to theminDepth()
field.static float
nheight
(long struct) Unsafe version ofheight()
.static void
nheight
(long struct, float value) Unsafe version ofheight
.static float
nmaxDepth
(long struct) Unsafe version ofmaxDepth()
.static void
nmaxDepth
(long struct, float value) Unsafe version ofmaxDepth
.static float
nminDepth
(long struct) Unsafe version ofminDepth()
.static void
nminDepth
(long struct, float value) Unsafe version ofminDepth
.static float
nwidth
(long struct) Unsafe version ofwidth()
.static void
nwidth
(long struct, float value) Unsafe version ofwidth
.static float
nx
(long struct) Unsafe version ofx()
.static void
nx
(long struct, float value) Unsafe version ofx
.static float
ny
(long struct) Unsafe version ofy()
.static void
ny
(long struct, float value) Unsafe version ofy
.set
(float x, float y, float width, float height, float minDepth, float maxDepth) Initializes this struct with the specified values.set
(VkViewport src) Copies the specified struct data to this struct.int
sizeof()
Returnssizeof(struct)
.float
width()
width
andheight
are the viewport’s width and height, respectively.width
(float value) Sets the specified value to thewidth()
field.float
x()
x
andy
are the viewport’s upper left corner(x,y)
.x
(float value) Sets the specified value to thex()
field.float
y()
seex
y
(float value) Sets the specified value to they()
field.Methods inherited from class org.lwjgl.system.Pointer.Default
address, equals, hashCode, toString
Methods 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. -
X
public static final int XThe struct member offsets. -
Y
public static final int YThe struct member offsets. -
WIDTH
public static final int WIDTHThe struct member offsets. -
HEIGHT
public static final int HEIGHTThe struct member offsets. -
MINDEPTH
public static final int MINDEPTHThe struct member offsets. -
MAXDEPTH
public static final int MAXDEPTHThe struct member offsets.
-
-
Constructor Details
-
VkViewport
Creates aVkViewport
instance at the current position of the specifiedByteBuffer
container. 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()Description copied from class:Struct
Returnssizeof(struct)
.- Specified by:
sizeof
in classStruct<VkViewport>
-
x
public float x()x
andy
are the viewport’s upper left corner(x,y)
. -
y
public float y()seex
-
width
public float width()width
andheight
are the viewport’s width and height, respectively. -
height
public float height()seewidth
-
minDepth
public float minDepth()minDepth
andmaxDepth
are the depth range for the viewport. -
maxDepth
public float maxDepth()seeminDepth
-
x
Sets the specified value to thex()
field. -
y
Sets the specified value to they()
field. -
width
Sets the specified value to thewidth()
field. -
height
Sets the specified value to theheight()
field. -
minDepth
Sets the specified value to theminDepth()
field. -
maxDepth
Sets the specified value to themaxDepth()
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 newVkViewport
instance allocated withmemAlloc
. The instance must be explicitly freed. -
calloc
Returns a newVkViewport
instance allocated withmemCalloc
. The instance must be explicitly freed. -
create
Returns a newVkViewport
instance allocated withBufferUtils
. -
create
Returns a newVkViewport
instance for the specified memory address. -
createSafe
-
malloc
Returns a newVkViewport.Buffer
instance allocated withmemAlloc
. The instance must be explicitly freed.- Parameters:
capacity
- the buffer capacity
-
calloc
Returns a newVkViewport.Buffer
instance allocated withmemCalloc
. The instance must be explicitly freed.- Parameters:
capacity
- the buffer capacity
-
create
Returns a newVkViewport.Buffer
instance allocated withBufferUtils
.- Parameters:
capacity
- the buffer capacity
-
create
Create aVkViewport.Buffer
instance at the specified memory.- Parameters:
address
- the memory addresscapacity
- the buffer capacity
-
createSafe
-
mallocStack
Deprecated.Deprecated for removal in 3.4.0. Usemalloc(MemoryStack)
instead. -
callocStack
Deprecated.Deprecated for removal in 3.4.0. Usecalloc(MemoryStack)
instead. -
mallocStack
Deprecated.Deprecated for removal in 3.4.0. Usemalloc(MemoryStack)
instead. -
callocStack
Deprecated.Deprecated for removal in 3.4.0. Usecalloc(MemoryStack)
instead. -
mallocStack
Deprecated.Deprecated for removal in 3.4.0. Usemalloc(int, MemoryStack)
instead. -
callocStack
Deprecated.Deprecated for removal in 3.4.0. Usecalloc(int, MemoryStack)
instead. -
mallocStack
Deprecated.Deprecated for removal in 3.4.0. Usemalloc(int, MemoryStack)
instead. -
callocStack
Deprecated.Deprecated for removal in 3.4.0. Usecalloc(int, MemoryStack)
instead. -
malloc
Returns a newVkViewport
instance allocated on the specifiedMemoryStack
.- Parameters:
stack
- the stack from which to allocate
-
calloc
Returns a newVkViewport
instance allocated on the specifiedMemoryStack
and initializes all its bits to zero.- Parameters:
stack
- the stack from which to allocate
-
malloc
Returns a newVkViewport.Buffer
instance allocated on the specifiedMemoryStack
.- Parameters:
capacity
- the buffer capacitystack
- the stack from which to allocate
-
calloc
Returns a newVkViewport.Buffer
instance allocated on the specifiedMemoryStack
and initializes all its bits to zero.- Parameters:
capacity
- the buffer capacitystack
- the stack from which to allocate
-
nx
public static float nx(long struct) Unsafe version ofx()
. -
ny
public static float ny(long struct) Unsafe version ofy()
. -
nwidth
public static float nwidth(long struct) Unsafe version ofwidth()
. -
nheight
public static float nheight(long struct) Unsafe version ofheight()
. -
nminDepth
public static float nminDepth(long struct) Unsafe version ofminDepth()
. -
nmaxDepth
public static float nmaxDepth(long struct) Unsafe version ofmaxDepth()
. -
nx
public static void nx(long struct, float value) Unsafe version ofx
. -
ny
public static void ny(long struct, float value) Unsafe version ofy
. -
nwidth
public static void nwidth(long struct, float value) Unsafe version ofwidth
. -
nheight
public static void nheight(long struct, float value) Unsafe version ofheight
. -
nminDepth
public static void nminDepth(long struct, float value) Unsafe version ofminDepth
. -
nmaxDepth
public static void nmaxDepth(long struct, float value) Unsafe version ofmaxDepth
.
-