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.NativeResourceStructure specifying a viewport.Description
Note
Despite their names,
minDepthcan be less than, equal to, or greater thanmaxDepth.The framebuffer depth coordinate
zfmay 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 / 2oy = y + height / 2oz = minDepthpx = widthpy = heightpz = maxDepth - minDepth.
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 negativeheight, the application should also adjust theyvalue to point to the lower left corner of the viewport instead of the upper left corner. Using the negativeheightallows the application to avoid having to negate the y component of thePositionoutput 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
widthmust be greater than0.0widthmust be less than or equal toVkPhysicalDeviceLimits::maxViewportDimensions[0]- The absolute value of
heightmust be less than or equal toVkPhysicalDeviceLimits::maxViewportDimensions[1] xmust be greater than or equal toviewportBoundsRange[0](x + width)must be less than or equal toviewportBoundsRange[1]ymust be greater than or equal toviewportBoundsRange[0]ymust 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_unrestrictedextension is enabledminDepthmust be between0.0and1.0, inclusive - Unless
VK_EXT_depth_range_unrestrictedextension is enabledmaxDepthmust be between0.0and1.0, inclusive
See Also
VkCommandBufferInheritanceViewportScissorInfoNV,VkPipelineViewportStateCreateInfo,CmdSetViewport,CmdSetViewportWithCount,CmdSetViewportWithCountEXTLayout
struct VkViewport { floatx(); floaty(); floatwidth(); floatheight(); floatminDepth(); floatmaxDepth(); }
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classVkViewport.BufferAn array ofVkViewportstructs.
-
Constructor Summary
Constructors Constructor Description VkViewport(java.nio.ByteBuffer container)Creates aVkViewportinstance at the current position of the specifiedByteBuffercontainer.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static VkViewportcalloc()Returns a newVkViewportinstance allocated withmemCalloc.static VkViewport.Buffercalloc(int capacity)Returns a newVkViewport.Bufferinstance allocated withmemCalloc.static VkViewport.Buffercalloc(int capacity, org.lwjgl.system.MemoryStack stack)Returns a newVkViewport.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkViewportcalloc(org.lwjgl.system.MemoryStack stack)Returns a newVkViewportinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkViewportcallocStack()Deprecated.static VkViewport.BuffercallocStack(int capacity)Deprecated.static VkViewport.BuffercallocStack(int capacity, org.lwjgl.system.MemoryStack stack)Deprecated.static VkViewportcallocStack(org.lwjgl.system.MemoryStack stack)Deprecated.static VkViewportcreate()Returns a newVkViewportinstance allocated withBufferUtils.static VkViewport.Buffercreate(int capacity)Returns a newVkViewport.Bufferinstance allocated withBufferUtils.static VkViewportcreate(long address)Returns a newVkViewportinstance for the specified memory address.static VkViewport.Buffercreate(long address, int capacity)Create aVkViewport.Bufferinstance at the specified memory.static VkViewportcreateSafe(long address)static VkViewport.BuffercreateSafe(long address, int capacity)floatheight()seewidthVkViewportheight(float value)Sets the specified value to theheight()field.static VkViewportmalloc()Returns a newVkViewportinstance allocated withmemAlloc.static VkViewport.Buffermalloc(int capacity)Returns a newVkViewport.Bufferinstance allocated withmemAlloc.static VkViewport.Buffermalloc(int capacity, org.lwjgl.system.MemoryStack stack)Returns a newVkViewport.Bufferinstance allocated on the specifiedMemoryStack.static VkViewportmalloc(org.lwjgl.system.MemoryStack stack)Returns a newVkViewportinstance allocated on the specifiedMemoryStack.static VkViewportmallocStack()Deprecated.static VkViewport.BuffermallocStack(int capacity)Deprecated.static VkViewport.BuffermallocStack(int capacity, org.lwjgl.system.MemoryStack stack)Deprecated.static VkViewportmallocStack(org.lwjgl.system.MemoryStack stack)Deprecated.floatmaxDepth()seeminDepthVkViewportmaxDepth(float value)Sets the specified value to themaxDepth()field.floatminDepth()minDepthandmaxDepthare the depth range for the viewport.VkViewportminDepth(float value)Sets the specified value to theminDepth()field.static floatnheight(long struct)Unsafe version ofheight().static voidnheight(long struct, float value)Unsafe version ofheight.static floatnmaxDepth(long struct)Unsafe version ofmaxDepth().static voidnmaxDepth(long struct, float value)Unsafe version ofmaxDepth.static floatnminDepth(long struct)Unsafe version ofminDepth().static voidnminDepth(long struct, float value)Unsafe version ofminDepth.static floatnwidth(long struct)Unsafe version ofwidth().static voidnwidth(long struct, float value)Unsafe version ofwidth.static floatnx(long struct)Unsafe version ofx().static voidnx(long struct, float value)Unsafe version ofx.static floatny(long struct)Unsafe version ofy().static voidny(long struct, float value)Unsafe version ofy.VkViewportset(float x, float y, float width, float height, float minDepth, float maxDepth)Initializes this struct with the specified values.VkViewportset(VkViewport src)Copies the specified struct data to this struct.intsizeof()floatwidth()widthandheightare the viewport’s width and height, respectively.VkViewportwidth(float value)Sets the specified value to thewidth()field.floatx()xandyare the viewport’s upper left corner(x,y).VkViewportx(float value)Sets the specified value to thex()field.floaty()seexVkViewporty(float value)Sets the specified value to they()field.
-
-
-
Constructor Detail
-
VkViewport
public VkViewport(java.nio.ByteBuffer container)
Creates aVkViewportinstance 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 Detail
-
sizeof
public int sizeof()
- Specified by:
sizeofin classorg.lwjgl.system.Struct
-
x
public float x()
xandyare the viewport’s upper left corner(x,y).
-
y
public float y()
seex
-
width
public float width()
widthandheightare the viewport’s width and height, respectively.
-
height
public float height()
seewidth
-
minDepth
public float minDepth()
minDepthandmaxDepthare the depth range for the viewport.
-
maxDepth
public float maxDepth()
seeminDepth
-
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 newVkViewportinstance allocated withmemAlloc. The instance must be explicitly freed.
-
calloc
public static VkViewport calloc()
Returns a newVkViewportinstance allocated withmemCalloc. The instance must be explicitly freed.
-
create
public static VkViewport create()
Returns a newVkViewportinstance allocated withBufferUtils.
-
create
public static VkViewport create(long address)
Returns a newVkViewportinstance for the specified memory address.
-
createSafe
@Nullable public static VkViewport createSafe(long address)
-
malloc
public static VkViewport.Buffer malloc(int capacity)
Returns a newVkViewport.Bufferinstance allocated withmemAlloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
calloc
public static VkViewport.Buffer calloc(int capacity)
Returns a newVkViewport.Bufferinstance allocated withmemCalloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
create
public static VkViewport.Buffer create(int capacity)
Returns a newVkViewport.Bufferinstance allocated withBufferUtils.- Parameters:
capacity- the buffer capacity
-
create
public static VkViewport.Buffer create(long address, int capacity)
Create aVkViewport.Bufferinstance at the specified memory.- Parameters:
address- the memory addresscapacity- the buffer capacity
-
createSafe
@Nullable public static VkViewport.Buffer createSafe(long address, int capacity)
-
mallocStack
@Deprecated public static VkViewport mallocStack()
Deprecated.Deprecated for removal in 3.4.0. Usemalloc(MemoryStack)instead.
-
callocStack
@Deprecated public static VkViewport callocStack()
Deprecated.Deprecated for removal in 3.4.0. Usecalloc(MemoryStack)instead.
-
mallocStack
@Deprecated public static VkViewport mallocStack(org.lwjgl.system.MemoryStack stack)
Deprecated.Deprecated for removal in 3.4.0. Usemalloc(MemoryStack)instead.
-
callocStack
@Deprecated public static VkViewport callocStack(org.lwjgl.system.MemoryStack stack)
Deprecated.Deprecated for removal in 3.4.0. Usecalloc(MemoryStack)instead.
-
mallocStack
@Deprecated public static VkViewport.Buffer mallocStack(int capacity)
Deprecated.Deprecated for removal in 3.4.0. Usemalloc(int, MemoryStack)instead.
-
callocStack
@Deprecated public static VkViewport.Buffer callocStack(int capacity)
Deprecated.Deprecated for removal in 3.4.0. Usecalloc(int, MemoryStack)instead.
-
mallocStack
@Deprecated public static VkViewport.Buffer mallocStack(int capacity, org.lwjgl.system.MemoryStack stack)
Deprecated.Deprecated for removal in 3.4.0. Usemalloc(int, MemoryStack)instead.
-
callocStack
@Deprecated public static VkViewport.Buffer callocStack(int capacity, org.lwjgl.system.MemoryStack stack)
Deprecated.Deprecated for removal in 3.4.0. Usecalloc(int, MemoryStack)instead.
-
malloc
public static VkViewport malloc(org.lwjgl.system.MemoryStack stack)
Returns a newVkViewportinstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocate
-
calloc
public static VkViewport calloc(org.lwjgl.system.MemoryStack stack)
Returns a newVkViewportinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
stack- the stack from which to allocate
-
malloc
public static VkViewport.Buffer malloc(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkViewport.Bufferinstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocatecapacity- the buffer capacity
-
calloc
public static VkViewport.Buffer calloc(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkViewport.Bufferinstance allocated on the specifiedMemoryStackand 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.
-
-