Class VkWin32KeyedMutexAcquireReleaseInfoNV

  • All Implemented Interfaces:
    java.lang.AutoCloseable, NativeResource, Pointer

    public class VkWin32KeyedMutexAcquireReleaseInfoNV
    extends Struct
    implements NativeResource
    use Windows keyex mutex mechanism to synchronize work.
    Valid Usage (Implicit)
    • sType must be STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV
    • If acquireCount is not 0, pAcquireSyncs must be a valid pointer to an array of acquireCount valid VkDeviceMemory handles
    • If acquireCount is not 0, pAcquireKeys must be a valid pointer to an array of acquireCount uint64_t values
    • If acquireCount is not 0, pAcquireTimeoutMilliseconds must be a valid pointer to an array of acquireCount uint32_t values
    • If releaseCount is not 0, pReleaseSyncs must be a valid pointer to an array of releaseCount valid VkDeviceMemory handles
    • If releaseCount is not 0, pReleaseKeys must be a valid pointer to an array of releaseCount uint64_t values
    • Both of the elements of pAcquireSyncs, and the elements of pReleaseSyncs that are valid handles must have been created, allocated, or retrieved from the same VkDevice

    Member documentation

    • acquireCount – the number of entries in the pAcquireSyncs, pAcquireKeys, and pAcquireTimeoutMilliseconds arrays.
    • pAcquireSyncs – a pointer to an array of VkDeviceMemory objects which were imported from Direct3D 11 resources.
    • pAcquireKeys – a pointer to an array of mutex key values to wait for prior to beginning the submitted work. Entries refer to the keyed mutex associated with the corresponding entries in pAcquireSyncs.
    • pAcquireTimeoutMilliseconds – an array of timeout values, in millisecond units, for each acquire specified in pAcquireKeys.
    • releaseCount – the number of entries in the pReleaseSyncs and pReleaseKeys arrays.
    • pReleaseSyncs – a pointer to an array of VkDeviceMemory objects which were imported from Direct3D 11 resources.
    • pReleaseKeys – a pointer to an array of mutex key values to set when the submitted work has completed. Entries refer to the keyed mutex associated with the corresponding entries in pReleaseSyncs.

    Layout

    
     struct VkWin32KeyedMutexAcquireReleaseInfoNV {
         VkStructureType sType;
         void const * pNext;
         uint32_t acquireCount;
         VkDeviceMemory const * pAcquireSyncs;
         uint64_t const * pAcquireKeys;
         uint32_t const * pAcquireTimeoutMilliseconds;
         uint32_t releaseCount;
         VkDeviceMemory const * pReleaseSyncs;
         uint64_t const * pReleaseKeys;
     }
    • Field Detail

      • SIZEOF

        The struct size in bytes.
      • ALIGNOF

        The struct alignment in bytes.
      • STYPE, PNEXT, ACQUIRECOUNT, PACQUIRESYNCS, PACQUIREKEYS, PACQUIRETIMEOUTMILLISECONDS, RELEASECOUNT, PRELEASESYNCS, PRELEASEKEYS

        The struct member offsets.
    • Constructor Detail

      • VkWin32KeyedMutexAcquireReleaseInfoNV

        public VkWin32KeyedMutexAcquireReleaseInfoNV​(java.nio.ByteBuffer container)
        Creates a VkWin32KeyedMutexAcquireReleaseInfoNV 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()
        Description copied from class: Struct
        Returns sizeof(struct).
        Specified by:
        sizeof in class Struct
      • sType

        public int sType()
        Returns the value of the sType field.
      • pNext

        public long pNext()
        Returns the value of the pNext field.
      • acquireCount

        public int acquireCount()
        Returns the value of the acquireCount field.
      • pAcquireSyncs

        @Nullable
        public java.nio.LongBuffer pAcquireSyncs()
        Returns a LongBuffer view of the data pointed to by the pAcquireSyncs field.
      • pAcquireKeys

        @Nullable
        public java.nio.LongBuffer pAcquireKeys()
        Returns a LongBuffer view of the data pointed to by the pAcquireKeys field.
      • pAcquireTimeoutMilliseconds

        @Nullable
        public java.nio.IntBuffer pAcquireTimeoutMilliseconds()
        Returns a IntBuffer view of the data pointed to by the pAcquireTimeoutMilliseconds field.
      • releaseCount

        public int releaseCount()
        Returns the value of the releaseCount field.
      • pReleaseSyncs

        @Nullable
        public java.nio.LongBuffer pReleaseSyncs()
        Returns a LongBuffer view of the data pointed to by the pReleaseSyncs field.
      • pReleaseKeys

        @Nullable
        public java.nio.LongBuffer pReleaseKeys()
        Returns a LongBuffer view of the data pointed to by the pReleaseKeys field.
      • pAcquireSyncs

        public VkWin32KeyedMutexAcquireReleaseInfoNV pAcquireSyncs​(@Nullable
                                                                   java.nio.LongBuffer value)
        Sets the address of the specified LongBuffer to the pAcquireSyncs field.
      • pAcquireKeys

        public VkWin32KeyedMutexAcquireReleaseInfoNV pAcquireKeys​(@Nullable
                                                                  java.nio.LongBuffer value)
        Sets the address of the specified LongBuffer to the pAcquireKeys field.
      • pAcquireTimeoutMilliseconds

        public VkWin32KeyedMutexAcquireReleaseInfoNV pAcquireTimeoutMilliseconds​(@Nullable
                                                                                 java.nio.IntBuffer value)
        Sets the address of the specified IntBuffer to the pAcquireTimeoutMilliseconds field.
      • pReleaseSyncs

        public VkWin32KeyedMutexAcquireReleaseInfoNV pReleaseSyncs​(@Nullable
                                                                   java.nio.LongBuffer value)
        Sets the address of the specified LongBuffer to the pReleaseSyncs field.
      • pReleaseKeys

        public VkWin32KeyedMutexAcquireReleaseInfoNV pReleaseKeys​(@Nullable
                                                                  java.nio.LongBuffer value)
        Sets the address of the specified LongBuffer to the pReleaseKeys field.
      • set

        public VkWin32KeyedMutexAcquireReleaseInfoNV set​(int sType,
                                                         long pNext,
                                                         int acquireCount,
                                                         @Nullable
                                                         java.nio.LongBuffer pAcquireSyncs,
                                                         @Nullable
                                                         java.nio.LongBuffer pAcquireKeys,
                                                         @Nullable
                                                         java.nio.IntBuffer pAcquireTimeoutMilliseconds,
                                                         int releaseCount,
                                                         @Nullable
                                                         java.nio.LongBuffer pReleaseSyncs,
                                                         @Nullable
                                                         java.nio.LongBuffer pReleaseKeys)
        Initializes this struct with the specified values.
      • nsType

        public static int nsType​(long struct)
        Unsafe version of sType().
      • npNext

        public static long npNext​(long struct)
        Unsafe version of pNext().
      • nacquireCount

        public static int nacquireCount​(long struct)
        Unsafe version of acquireCount().
      • npAcquireSyncs

        @Nullable
        public static java.nio.LongBuffer npAcquireSyncs​(long struct)
        Unsafe version of pAcquireSyncs.
      • npAcquireKeys

        @Nullable
        public static java.nio.LongBuffer npAcquireKeys​(long struct)
        Unsafe version of pAcquireKeys.
      • npAcquireTimeoutMilliseconds

        @Nullable
        public static java.nio.IntBuffer npAcquireTimeoutMilliseconds​(long struct)
        Unsafe version of pAcquireTimeoutMilliseconds.
      • nreleaseCount

        public static int nreleaseCount​(long struct)
        Unsafe version of releaseCount().
      • npReleaseSyncs

        @Nullable
        public static java.nio.LongBuffer npReleaseSyncs​(long struct)
        Unsafe version of pReleaseSyncs.
      • npReleaseKeys

        @Nullable
        public static java.nio.LongBuffer npReleaseKeys​(long struct)
        Unsafe version of pReleaseKeys.
      • nsType

        public static void nsType​(long struct,
                                  int value)
        Unsafe version of sType.
      • npNext

        public static void npNext​(long struct,
                                  long value)
        Unsafe version of pNext.
      • nacquireCount

        public static void nacquireCount​(long struct,
                                         int value)
        Sets the specified value to the acquireCount field of the specified struct.
      • npAcquireSyncs

        public static void npAcquireSyncs​(long struct,
                                          @Nullable
                                          java.nio.LongBuffer value)
        Unsafe version of pAcquireSyncs.
      • npAcquireKeys

        public static void npAcquireKeys​(long struct,
                                         @Nullable
                                         java.nio.LongBuffer value)
        Unsafe version of pAcquireKeys.
      • npAcquireTimeoutMilliseconds

        public static void npAcquireTimeoutMilliseconds​(long struct,
                                                        @Nullable
                                                        java.nio.IntBuffer value)
        Unsafe version of pAcquireTimeoutMilliseconds.
      • nreleaseCount

        public static void nreleaseCount​(long struct,
                                         int value)
        Sets the specified value to the releaseCount field of the specified struct.
      • npReleaseSyncs

        public static void npReleaseSyncs​(long struct,
                                          @Nullable
                                          java.nio.LongBuffer value)
        Unsafe version of pReleaseSyncs.
      • npReleaseKeys

        public static void npReleaseKeys​(long struct,
                                         @Nullable
                                         java.nio.LongBuffer value)
        Unsafe version of pReleaseKeys.
      • validate

        public static void validate​(long struct)
        Validates pointer members that should not be NULL.
        Parameters:
        struct - the struct to validate
      • validate

        public static void validate​(long array,
                                    int count)
        Calls validate(long) for each struct contained in the specified struct array.
        Parameters:
        array - the struct array to validate
        count - the number of structs in array