Class 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
    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
    px = width
    py = height
    pz = 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 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 than 0.0
    • width must be less than or equal to VkPhysicalDeviceLimits::maxViewportDimensions[0]
    • The absolute value of 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]
    • Unless VK_EXT_depth_range_unrestricted extension is enabled minDepth must be between 0.0 and 1.0, inclusive
    • Unless VK_EXT_depth_range_unrestricted extension is enabled maxDepth must be between 0.0 and 1.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 
      Modifier and Type Class Description
      static class  VkViewport.Buffer
      An array of VkViewport structs.
      • Nested classes/interfaces inherited from interface org.lwjgl.system.Pointer

        org.lwjgl.system.Pointer.Default
      • Nested classes/interfaces inherited from class org.lwjgl.system.Struct

        org.lwjgl.system.Struct.StructValidation
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int ALIGNOF
      The struct alignment in bytes.
      static int HEIGHT
      MAXDEPTH
      MINDEPTH
      The struct member offsets.
      static int SIZEOF
      The struct size in bytes.
      static int WIDTH
      X
      Y
      The struct member offsets.
      • Fields inherited from interface org.lwjgl.system.Pointer

        BITS32, BITS64, CLONG_SHIFT, CLONG_SIZE, POINTER_SHIFT, POINTER_SIZE
    • Constructor Summary

      Constructors 
      Constructor Description
      VkViewport​(java.nio.ByteBuffer container)
      Creates a VkViewport instance at the current position of the specified ByteBuffer container.
    • Field Detail

      • SIZEOF

        The struct size in bytes.
      • ALIGNOF

        The struct alignment in bytes.
      • X, Y, WIDTH, HEIGHT, MINDEPTH, MAXDEPTH

        The struct member offsets.
    • Constructor Detail

      • VkViewport

        public VkViewport​(java.nio.ByteBuffer container)
        Creates a 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.

    • Method Detail

      • sizeof

        public int sizeof()
        Specified by:
        sizeof in class org.lwjgl.system.Struct
      • x

        public float x()
        x and y are the viewport’s upper left corner (x,y).
      • y

        public float y()
        see x
      • width

        public float width()
        width and height are the viewport’s width and height, respectively.
      • height

        public float height()
        see width
      • minDepth

        public float minDepth()
        minDepth and maxDepth are the depth range for the viewport.
      • maxDepth

        public float maxDepth()
        see minDepth
      • x

        public VkViewport x​(float value)
        Sets the specified value to the x() field.
      • y

        public VkViewport y​(float value)
        Sets the specified value to the y() field.
      • width

        public VkViewport width​(float value)
        Sets the specified value to the width() field.
      • height

        public VkViewport height​(float value)
        Sets the specified value to the height() field.
      • minDepth

        public VkViewport minDepth​(float value)
        Sets the specified value to the minDepth() field.
      • maxDepth

        public VkViewport maxDepth​(float value)
        Sets the specified value to the maxDepth() 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 new VkViewport instance allocated with memAlloc. The instance must be explicitly freed.
      • calloc

        public static VkViewport calloc()
        Returns a new VkViewport instance allocated with memCalloc. The instance must be explicitly freed.
      • create

        public static VkViewport create()
        Returns a new VkViewport instance allocated with BufferUtils.
      • create

        public static VkViewport create​(long address)
        Returns a new VkViewport instance for the specified memory address.
      • createSafe

        @Nullable
        public static VkViewport createSafe​(long address)
        Like create, but returns null if address is NULL.
      • malloc

        public static VkViewport.Buffer malloc​(int capacity)
        Returns a new VkViewport.Buffer instance allocated with memAlloc. The instance must be explicitly freed.
        Parameters:
        capacity - the buffer capacity
      • calloc

        public static VkViewport.Buffer calloc​(int capacity)
        Returns a new VkViewport.Buffer instance allocated with memCalloc. The instance must be explicitly freed.
        Parameters:
        capacity - the buffer capacity
      • create

        public static VkViewport.Buffer create​(int capacity)
        Returns a new VkViewport.Buffer instance allocated with BufferUtils.
        Parameters:
        capacity - the buffer capacity
      • create

        public static VkViewport.Buffer create​(long address,
                                               int capacity)
        Create a VkViewport.Buffer instance at the specified memory.
        Parameters:
        address - the memory address
        capacity - the buffer capacity
      • createSafe

        @Nullable
        public static VkViewport.Buffer createSafe​(long address,
                                                   int capacity)
        Like create, but returns null if address is NULL.
      • mallocStack

        @Deprecated
        public static VkViewport mallocStack​(org.lwjgl.system.MemoryStack stack)
        Deprecated.
        Deprecated for removal in 3.4.0. Use malloc(MemoryStack) instead.
      • callocStack

        @Deprecated
        public static VkViewport callocStack​(org.lwjgl.system.MemoryStack stack)
        Deprecated.
        Deprecated for removal in 3.4.0. Use calloc(MemoryStack) instead.
      • mallocStack

        @Deprecated
        public static VkViewport.Buffer mallocStack​(int capacity,
                                                    org.lwjgl.system.MemoryStack stack)
        Deprecated.
        Deprecated for removal in 3.4.0. Use malloc(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. Use calloc(int, MemoryStack) instead.
      • malloc

        public static VkViewport malloc​(org.lwjgl.system.MemoryStack stack)
        Returns a new VkViewport instance allocated on the specified MemoryStack.
        Parameters:
        stack - the stack from which to allocate
      • calloc

        public static VkViewport calloc​(org.lwjgl.system.MemoryStack stack)
        Returns a new VkViewport instance allocated on the specified MemoryStack and 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 new VkViewport.Buffer instance allocated on the specified MemoryStack.
        Parameters:
        stack - the stack from which to allocate
        capacity - the buffer capacity
      • calloc

        public static VkViewport.Buffer calloc​(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.
        Parameters:
        stack - the stack from which to allocate
        capacity - the buffer capacity
      • nx

        public static float nx​(long struct)
        Unsafe version of x().
      • ny

        public static float ny​(long struct)
        Unsafe version of y().
      • nwidth

        public static float nwidth​(long struct)
        Unsafe version of width().
      • nheight

        public static float nheight​(long struct)
        Unsafe version of height().
      • nminDepth

        public static float nminDepth​(long struct)
        Unsafe version of minDepth().
      • nmaxDepth

        public static float nmaxDepth​(long struct)
        Unsafe version of maxDepth().
      • nx

        public static void nx​(long struct,
                              float value)
        Unsafe version of x.
      • ny

        public static void ny​(long struct,
                              float value)
        Unsafe version of y.
      • nwidth

        public static void nwidth​(long struct,
                                  float value)
        Unsafe version of width.
      • nheight

        public static void nheight​(long struct,
                                   float value)
        Unsafe version of height.
      • nminDepth

        public static void nminDepth​(long struct,
                                     float value)
        Unsafe version of minDepth.
      • nmaxDepth

        public static void nmaxDepth​(long struct,
                                     float value)
        Unsafe version of maxDepth.