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

    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.

    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.

    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

    VkPipelineViewportStateCreateInfo, CmdSetViewport

    Member documentation

    • xx and y are the viewport’s upper left corner (x,y).
    • y – see x
    • widthwidth and height are the viewport’s width and height, respectively.
    • height – see width
    • minDepthminDepth 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

    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
    • 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.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method 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)
      Like create, but returns null if address is NULL.
      static VkViewport.Buffer createSafe​(long address, int capacity)
      Like create, but returns null if address is NULL.
      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.
      • Methods inherited from interface org.lwjgl.system.NativeResource

        close, free
      • Methods inherited from class java.lang.Object

        getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from class org.lwjgl.system.Pointer.Default

        address, equals, hashCode, toString
      • Methods inherited from class org.lwjgl.system.Struct

        clear, free, isNull
    • 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()
        Returns the value of the x field.
      • y

        public float y()
        Returns the value of the y field.
      • width

        public float width()
        Returns the value of the width field.
      • height

        public float height()
        Returns the value of the height field.
      • minDepth

        public float minDepth()
        Returns the value of the minDepth field.
      • maxDepth

        public float maxDepth()
        Returns the value of the maxDepth field.
      • 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

        public static VkViewport mallocStack()
        Returns a new VkViewport instance allocated on the thread-local MemoryStack.
      • callocStack

        public static VkViewport callocStack()
        Returns a new VkViewport instance allocated on the thread-local MemoryStack and initializes all its bits to zero.
      • mallocStack

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

        public 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.
        Parameters:
        stack - the stack from which to allocate
      • mallocStack

        public static VkViewport.Buffer mallocStack​(int capacity)
        Returns a new VkViewport.Buffer instance allocated on the thread-local MemoryStack.
        Parameters:
        capacity - the buffer capacity
      • callocStack

        public 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.
        Parameters:
        capacity - the buffer capacity
      • mallocStack

        public static VkViewport.Buffer mallocStack​(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
      • callocStack

        public 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.
        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.