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
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.
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 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
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
VkPipelineViewportStateCreateInfo,CmdSetViewportMember documentation
x–xandyare the viewport’s upper left corner(x,y).y– seexwidth–widthandheightare the viewport’s width and height, respectively.height– seewidthminDepth–minDepthandmaxDepthare the depth range for the viewport. It is valid forminDepthto 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 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 Modifier and Type Method Description static VkViewportcalloc()Returns a newVkViewportinstance allocated withmemCalloc.static VkViewport.Buffercalloc(int capacity)Returns a newVkViewport.Bufferinstance allocated withmemCalloc.static VkViewportcallocStack()Returns a newVkViewportinstance allocated on the thread-localMemoryStackand initializes all its bits to zero.static VkViewport.BuffercallocStack(int capacity)Returns a newVkViewport.Bufferinstance allocated on the thread-localMemoryStackand initializes all its bits to zero.static VkViewport.BuffercallocStack(int capacity, org.lwjgl.system.MemoryStack stack)Returns a newVkViewport.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkViewportcallocStack(org.lwjgl.system.MemoryStack stack)Returns a newVkViewportinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.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()Returns the value of theheightfield.VkViewportheight(float value)Sets the specified value to theheightfield.static VkViewportmalloc()Returns a newVkViewportinstance allocated withmemAlloc.static VkViewport.Buffermalloc(int capacity)Returns a newVkViewport.Bufferinstance allocated withmemAlloc.static VkViewportmallocStack()Returns a newVkViewportinstance allocated on the thread-localMemoryStack.static VkViewport.BuffermallocStack(int capacity)Returns a newVkViewport.Bufferinstance allocated on the thread-localMemoryStack.static VkViewport.BuffermallocStack(int capacity, org.lwjgl.system.MemoryStack stack)Returns a newVkViewport.Bufferinstance allocated on the specifiedMemoryStack.static VkViewportmallocStack(org.lwjgl.system.MemoryStack stack)Returns a newVkViewportinstance allocated on the specifiedMemoryStack.floatmaxDepth()Returns the value of themaxDepthfield.VkViewportmaxDepth(float value)Sets the specified value to themaxDepthfield.floatminDepth()Returns the value of theminDepthfield.VkViewportminDepth(float value)Sets the specified value to theminDepthfield.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()Returns the value of thewidthfield.VkViewportwidth(float value)Sets the specified value to thewidthfield.floatx()Returns the value of thexfield.VkViewportx(float value)Sets the specified value to thexfield.floaty()Returns the value of theyfield.VkViewporty(float value)Sets the specified value to theyfield.
-
-
-
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()
Returns the value of thexfield.
-
y
public float y()
Returns the value of theyfield.
-
width
public float width()
Returns the value of thewidthfield.
-
height
public float height()
Returns the value of theheightfield.
-
minDepth
public float minDepth()
Returns the value of theminDepthfield.
-
maxDepth
public float maxDepth()
Returns the value of themaxDepthfield.
-
x
public VkViewport x(float value)
Sets the specified value to thexfield.
-
y
public VkViewport y(float value)
Sets the specified value to theyfield.
-
width
public VkViewport width(float value)
Sets the specified value to thewidthfield.
-
height
public VkViewport height(float value)
Sets the specified value to theheightfield.
-
minDepth
public VkViewport minDepth(float value)
Sets the specified value to theminDepthfield.
-
maxDepth
public VkViewport maxDepth(float value)
Sets the specified value to themaxDepthfield.
-
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
public static VkViewport mallocStack()
Returns a newVkViewportinstance allocated on the thread-localMemoryStack.
-
callocStack
public static VkViewport callocStack()
Returns a newVkViewportinstance allocated on the thread-localMemoryStackand initializes all its bits to zero.
-
mallocStack
public static VkViewport mallocStack(org.lwjgl.system.MemoryStack stack)
Returns a newVkViewportinstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocate
-
callocStack
public static VkViewport callocStack(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
-
mallocStack
public static VkViewport.Buffer mallocStack(int capacity)
Returns a newVkViewport.Bufferinstance allocated on the thread-localMemoryStack.- Parameters:
capacity- the buffer capacity
-
callocStack
public static VkViewport.Buffer callocStack(int capacity)
Returns a newVkViewport.Bufferinstance allocated on the thread-localMemoryStackand 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.Bufferinstance 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.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.
-
-