Class VkViewport
- java.lang.Object
-
- org.lwjgl.system.Pointer.Default
-
- org.lwjgl.system.Struct
-
- org.lwjgl.vulkan.VkViewport
-
- All Implemented Interfaces:
java.lang.AutoCloseable
,org.lwjgl.system.NativeResource
,org.lwjgl.system.Pointer
public class VkViewport extends org.lwjgl.system.Struct implements org.lwjgl.system.NativeResource
Structure specifying a viewport.Description
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 anm
-bit fixed-point representation is used, we assume that it represents each valuek / (2m - 1)
, wherek ∈ { 0, 1, ..., 2m-1 }
, ask
(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
px = width
py = height
pz = maxDepth - minDepth
.
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 negativeheight
, the application should also adjust they
value to point to the lower left corner of the viewport instead of the upper left corner. Using the negativeheight
allows the application to avoid having to negate the y component of thePosition
output from the last vertex processing stage in shaders that also target other graphics APIs.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]- 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]- Unless
VK_EXT_depth_range_unrestricted
extension is enabledminDepth
must be between0.0
and1.0
, inclusive - Unless
VK_EXT_depth_range_unrestricted
extension is enabledmaxDepth
must be between0.0
and1.0
, inclusive
See Also
VkPipelineViewportStateCreateInfo
,CmdSetViewport
Member documentation
x
–x
andy
are the viewport’s upper left corner(x,y)
.y
– seex
width
–width
andheight
are the viewport’s width and height, respectively.height
– seewidth
minDepth
–minDepth
andmaxDepth
are the depth range for the viewport. It is valid forminDepth
to be greater than or equal tomaxDepth
.maxDepth
– seeminDepth
Layout
struct VkViewport { float x; float y; float width; float height; float minDepth; float maxDepth; }
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
VkViewport.Buffer
An array ofVkViewport
structs.
-
Constructor Summary
Constructors Constructor Description VkViewport(java.nio.ByteBuffer container)
Creates aVkViewport
instance at the current position of the specifiedByteBuffer
container.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static VkViewport
calloc()
Returns a newVkViewport
instance allocated withmemCalloc
.static VkViewport.Buffer
calloc(int capacity)
Returns a newVkViewport.Buffer
instance allocated withmemCalloc
.static VkViewport
callocStack()
Returns a newVkViewport
instance allocated on the thread-localMemoryStack
and initializes all its bits to zero.static VkViewport.Buffer
callocStack(int capacity)
Returns a newVkViewport.Buffer
instance allocated on the thread-localMemoryStack
and initializes all its bits to zero.static VkViewport.Buffer
callocStack(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkViewport.Buffer
instance allocated on the specifiedMemoryStack
and initializes all its bits to zero.static VkViewport
callocStack(org.lwjgl.system.MemoryStack stack)
Returns a newVkViewport
instance allocated on the specifiedMemoryStack
and initializes all its bits to zero.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()
Returns the value of theheight
field.VkViewport
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
mallocStack()
Returns a newVkViewport
instance allocated on the thread-localMemoryStack
.static VkViewport.Buffer
mallocStack(int capacity)
Returns a newVkViewport.Buffer
instance allocated on the thread-localMemoryStack
.static VkViewport.Buffer
mallocStack(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkViewport.Buffer
instance allocated on the specifiedMemoryStack
.static VkViewport
mallocStack(org.lwjgl.system.MemoryStack stack)
Returns a newVkViewport
instance allocated on the specifiedMemoryStack
.float
maxDepth()
Returns the value of themaxDepth
field.VkViewport
maxDepth(float value)
Sets the specified value to themaxDepth
field.float
minDepth()
Returns the value of theminDepth
field.VkViewport
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
.VkViewport
set(float x, float y, float width, float height, float minDepth, float maxDepth)
Initializes this struct with the specified values.VkViewport
set(VkViewport src)
Copies the specified struct data to this struct.int
sizeof()
float
width()
Returns the value of thewidth
field.VkViewport
width(float value)
Sets the specified value to thewidth
field.float
x()
Returns the value of thex
field.VkViewport
x(float value)
Sets the specified value to thex
field.float
y()
Returns the value of they
field.VkViewport
y(float value)
Sets the specified value to they
field.
-
-
-
Constructor Detail
-
VkViewport
public VkViewport(java.nio.ByteBuffer container)
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 Detail
-
sizeof
public int sizeof()
- Specified by:
sizeof
in classorg.lwjgl.system.Struct
-
x
public float x()
Returns the value of thex
field.
-
y
public float y()
Returns the value of they
field.
-
width
public float width()
Returns the value of thewidth
field.
-
height
public float height()
Returns the value of theheight
field.
-
minDepth
public float minDepth()
Returns the value of theminDepth
field.
-
maxDepth
public float maxDepth()
Returns the value of themaxDepth
field.
-
x
public VkViewport x(float value)
Sets the specified value to thex
field.
-
y
public VkViewport y(float value)
Sets the specified value to they
field.
-
width
public VkViewport width(float value)
Sets the specified value to thewidth
field.
-
height
public VkViewport height(float value)
Sets the specified value to theheight
field.
-
minDepth
public VkViewport minDepth(float value)
Sets the specified value to theminDepth
field.
-
maxDepth
public VkViewport maxDepth(float value)
Sets the specified value to themaxDepth
field.
-
set
public VkViewport set(float x, float y, float width, float height, float minDepth, float maxDepth)
Initializes this struct with the specified values.
-
set
public VkViewport set(VkViewport src)
Copies the specified struct data to this struct.- Parameters:
src
- the source struct- Returns:
- this struct
-
malloc
public static VkViewport malloc()
Returns a newVkViewport
instance allocated withmemAlloc
. The instance must be explicitly freed.
-
calloc
public static VkViewport calloc()
Returns a newVkViewport
instance allocated withmemCalloc
. The instance must be explicitly freed.
-
create
public static VkViewport create()
Returns a newVkViewport
instance allocated withBufferUtils
.
-
create
public static VkViewport create(long address)
Returns a newVkViewport
instance for the specified memory address.
-
createSafe
@Nullable public static VkViewport createSafe(long address)
-
malloc
public static VkViewport.Buffer malloc(int capacity)
Returns a newVkViewport.Buffer
instance allocated withmemAlloc
. The instance must be explicitly freed.- Parameters:
capacity
- the buffer capacity
-
calloc
public static VkViewport.Buffer calloc(int capacity)
Returns a newVkViewport.Buffer
instance allocated withmemCalloc
. The instance must be explicitly freed.- Parameters:
capacity
- the buffer capacity
-
create
public static VkViewport.Buffer create(int capacity)
Returns a newVkViewport.Buffer
instance allocated withBufferUtils
.- Parameters:
capacity
- the buffer capacity
-
create
public static VkViewport.Buffer create(long address, int capacity)
Create aVkViewport.Buffer
instance at the specified memory.- Parameters:
address
- the memory addresscapacity
- the buffer capacity
-
createSafe
@Nullable public static VkViewport.Buffer createSafe(long address, int capacity)
-
mallocStack
public static VkViewport mallocStack()
Returns a newVkViewport
instance allocated on the thread-localMemoryStack
.
-
callocStack
public static VkViewport callocStack()
Returns a newVkViewport
instance allocated on the thread-localMemoryStack
and initializes all its bits to zero.
-
mallocStack
public static VkViewport mallocStack(org.lwjgl.system.MemoryStack stack)
Returns a newVkViewport
instance allocated on the specifiedMemoryStack
.- Parameters:
stack
- the stack from which to allocate
-
callocStack
public static VkViewport callocStack(org.lwjgl.system.MemoryStack stack)
Returns a newVkViewport
instance allocated on the specifiedMemoryStack
and initializes all its bits to zero.- Parameters:
stack
- the stack from which to allocate
-
mallocStack
public static VkViewport.Buffer mallocStack(int capacity)
Returns a newVkViewport.Buffer
instance allocated on the thread-localMemoryStack
.- Parameters:
capacity
- the buffer capacity
-
callocStack
public static VkViewport.Buffer callocStack(int capacity)
Returns a newVkViewport.Buffer
instance allocated on the thread-localMemoryStack
and initializes all its bits to zero.- Parameters:
capacity
- the buffer capacity
-
mallocStack
public static VkViewport.Buffer mallocStack(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkViewport.Buffer
instance allocated on the specifiedMemoryStack
.- Parameters:
stack
- the stack from which to allocatecapacity
- the buffer capacity
-
callocStack
public static VkViewport.Buffer callocStack(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkViewport.Buffer
instance allocated on the specifiedMemoryStack
and initializes all its bits to zero.- Parameters:
stack
- the stack from which to allocatecapacity
- the buffer capacity
-
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
.
-
-