public class VkViewport
extends org.lwjgl.system.Struct
implements org.lwjgl.system.NativeResource
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 / 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 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 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.
width must be greater than 0.0width must be less than or equal to VkPhysicalDeviceLimits::maxViewportDimensions[0]height must be less than or equal to VkPhysicalDeviceLimits::maxViewportDimensions[1]x must be greater than or equal to viewportBoundsRange[0](x + width) must be less than or equal to viewportBoundsRange[1]y must be greater than or equal to viewportBoundsRange[0]y must be less than or equal to viewportBoundsRange[1](y + height) must be greater than or equal to viewportBoundsRange[0](y + height) must be less than or equal to viewportBoundsRange[1]VK_EXT_depth_range_unrestricted extension is enabled minDepth must be between 0.0 and 1.0, inclusiveVK_EXT_depth_range_unrestricted extension is enabled maxDepth must be between 0.0 and 1.0, inclusiveVkPipelineViewportStateCreateInfo, CmdSetViewport
x – x and y are the viewport’s upper left corner (x,y).y – see xwidth – width and height are the viewport’s width and height, respectively.height – see widthminDepth – minDepth and maxDepth are the depth range for the viewport. It is valid for minDepth to be greater than or equal to maxDepth.maxDepth – see minDepth
struct VkViewport {
float x;
float y;
float width;
float height;
float minDepth;
float maxDepth;
}| Modifier and Type | Class and Description |
|---|---|
static class |
VkViewport.Buffer
An array of
VkViewport structs. |
| Modifier and Type | Field and Description |
|---|---|
static int |
ALIGNOF
The struct alignment in bytes.
|
static int |
HEIGHT
The struct member offsets.
|
static int |
MAXDEPTH
The struct member offsets.
|
static int |
MINDEPTH
The struct member offsets.
|
static int |
SIZEOF
The struct size in bytes.
|
static int |
WIDTH
The struct member offsets.
|
static int |
X
The struct member offsets.
|
static int |
Y
The struct member offsets.
|
| Constructor and Description |
|---|
VkViewport(java.nio.ByteBuffer container)
Creates a
VkViewport instance at the current position of the specified ByteBuffer container. |
| Modifier and Type | Method and Description |
|---|---|
static VkViewport |
calloc()
Returns a new
VkViewport instance allocated with memCalloc. |
static VkViewport.Buffer |
calloc(int capacity)
Returns a new
VkViewport.Buffer instance allocated with memCalloc. |
static VkViewport |
callocStack()
Returns a new
VkViewport instance allocated on the thread-local MemoryStack and initializes all its bits to zero. |
static VkViewport.Buffer |
callocStack(int capacity)
Returns a new
VkViewport.Buffer instance allocated on the thread-local MemoryStack and initializes all its bits to zero. |
static VkViewport.Buffer |
callocStack(int capacity,
org.lwjgl.system.MemoryStack stack)
Returns a new
VkViewport.Buffer instance allocated on the specified MemoryStack and initializes all its bits to zero. |
static VkViewport |
callocStack(org.lwjgl.system.MemoryStack stack)
Returns a new
VkViewport instance allocated on the specified MemoryStack and initializes all its bits to zero. |
static VkViewport |
create()
Returns a new
VkViewport instance allocated with BufferUtils. |
static VkViewport.Buffer |
create(int capacity)
Returns a new
VkViewport.Buffer instance allocated with BufferUtils. |
static VkViewport |
create(long address)
Returns a new
VkViewport instance for the specified memory address. |
static VkViewport.Buffer |
create(long address,
int capacity)
Create a
VkViewport.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 the
height field. |
VkViewport |
height(float value)
Sets the specified value to the
height field. |
static VkViewport |
malloc()
Returns a new
VkViewport instance allocated with memAlloc. |
static VkViewport.Buffer |
malloc(int capacity)
Returns a new
VkViewport.Buffer instance allocated with memAlloc. |
static VkViewport |
mallocStack()
Returns a new
VkViewport instance allocated on the thread-local MemoryStack. |
static VkViewport.Buffer |
mallocStack(int capacity)
Returns a new
VkViewport.Buffer instance allocated on the thread-local MemoryStack. |
static VkViewport.Buffer |
mallocStack(int capacity,
org.lwjgl.system.MemoryStack stack)
Returns a new
VkViewport.Buffer instance allocated on the specified MemoryStack. |
static VkViewport |
mallocStack(org.lwjgl.system.MemoryStack stack)
Returns a new
VkViewport instance allocated on the specified MemoryStack. |
float |
maxDepth()
Returns the value of the
maxDepth field. |
VkViewport |
maxDepth(float value)
Sets the specified value to the
maxDepth field. |
float |
minDepth()
Returns the value of the
minDepth field. |
VkViewport |
minDepth(float value)
Sets the specified value to the
minDepth field. |
static float |
nheight(long struct)
Unsafe version of
height(). |
static void |
nheight(long struct,
float value)
Unsafe version of
height. |
static float |
nmaxDepth(long struct)
Unsafe version of
maxDepth(). |
static void |
nmaxDepth(long struct,
float value)
Unsafe version of
maxDepth. |
static float |
nminDepth(long struct)
Unsafe version of
minDepth(). |
static void |
nminDepth(long struct,
float value)
Unsafe version of
minDepth. |
static float |
nwidth(long struct)
Unsafe version of
width(). |
static void |
nwidth(long struct,
float value)
Unsafe version of
width. |
static float |
nx(long struct)
Unsafe version of
x(). |
static void |
nx(long struct,
float value)
Unsafe version of
x. |
static float |
ny(long struct)
Unsafe version of
y(). |
static void |
ny(long struct,
float value)
Unsafe version of
y. |
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 the
width field. |
VkViewport |
width(float value)
Sets the specified value to the
width field. |
float |
x()
Returns the value of the
x field. |
VkViewport |
x(float value)
Sets the specified value to the
x field. |
float |
y()
Returns the value of the
y field. |
VkViewport |
y(float value)
Sets the specified value to the
y field. |
public static final int SIZEOF
public static final int ALIGNOF
public static final int X
public static final int Y
public static final int WIDTH
public static final int HEIGHT
public static final int MINDEPTH
public static final int MAXDEPTH
public VkViewport(java.nio.ByteBuffer container)
VkViewport instance at the current position of the specified ByteBuffer 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.
public int sizeof()
sizeof in class org.lwjgl.system.Structpublic float x()
x field.public float y()
y field.public float width()
width field.public float height()
height field.public float minDepth()
minDepth field.public float maxDepth()
maxDepth field.public VkViewport x(float value)
x field.public VkViewport y(float value)
y field.public VkViewport width(float value)
width field.public VkViewport height(float value)
height field.public VkViewport minDepth(float value)
minDepth field.public VkViewport maxDepth(float value)
maxDepth field.public VkViewport set(float x, float y, float width, float height, float minDepth, float maxDepth)
public VkViewport set(VkViewport src)
src - the source structpublic static VkViewport malloc()
VkViewport instance allocated with memAlloc. The instance must be explicitly freed.public static VkViewport calloc()
VkViewport instance allocated with memCalloc. The instance must be explicitly freed.public static VkViewport create()
VkViewport instance allocated with BufferUtils.public static VkViewport create(long address)
VkViewport instance for the specified memory address.@Nullable public static VkViewport createSafe(long address)
public static VkViewport.Buffer malloc(int capacity)
VkViewport.Buffer instance allocated with memAlloc. The instance must be explicitly freed.capacity - the buffer capacitypublic static VkViewport.Buffer calloc(int capacity)
VkViewport.Buffer instance allocated with memCalloc. The instance must be explicitly freed.capacity - the buffer capacitypublic static VkViewport.Buffer create(int capacity)
VkViewport.Buffer instance allocated with BufferUtils.capacity - the buffer capacitypublic static VkViewport.Buffer create(long address, int capacity)
VkViewport.Buffer instance at the specified memory.address - the memory addresscapacity - the buffer capacity@Nullable public static VkViewport.Buffer createSafe(long address, int capacity)
public static VkViewport mallocStack()
VkViewport instance allocated on the thread-local MemoryStack.public static VkViewport callocStack()
VkViewport instance allocated on the thread-local MemoryStack and initializes all its bits to zero.public static VkViewport mallocStack(org.lwjgl.system.MemoryStack stack)
VkViewport instance allocated on the specified MemoryStack.stack - the stack from which to allocatepublic static VkViewport callocStack(org.lwjgl.system.MemoryStack stack)
VkViewport instance allocated on the specified MemoryStack and initializes all its bits to zero.stack - the stack from which to allocatepublic static VkViewport.Buffer mallocStack(int capacity)
VkViewport.Buffer instance allocated on the thread-local MemoryStack.capacity - the buffer capacitypublic static VkViewport.Buffer callocStack(int capacity)
VkViewport.Buffer instance allocated on the thread-local MemoryStack and initializes all its bits to zero.capacity - the buffer capacitypublic static VkViewport.Buffer mallocStack(int capacity, org.lwjgl.system.MemoryStack stack)
VkViewport.Buffer instance allocated on the specified MemoryStack.stack - the stack from which to allocatecapacity - the buffer capacitypublic static VkViewport.Buffer callocStack(int capacity, org.lwjgl.system.MemoryStack stack)
VkViewport.Buffer instance allocated on the specified MemoryStack and initializes all its bits to zero.stack - the stack from which to allocatecapacity - the buffer capacitypublic static float nx(long struct)
x().public static float ny(long struct)
y().public static float nwidth(long struct)
width().public static float nheight(long struct)
height().public static float nminDepth(long struct)
minDepth().public static float nmaxDepth(long struct)
maxDepth().public static void nx(long struct,
float value)
x.public static void ny(long struct,
float value)
y.public static void nwidth(long struct,
float value)
width.public static void nheight(long struct,
float value)
height.public static void nminDepth(long struct,
float value)
minDepth.public static void nmaxDepth(long struct,
float value)
maxDepth.Copyright LWJGL. All Rights Reserved. License terms.