Class CLImageDesc

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

    public class CLImageDesc
    extends Struct
    implements NativeResource
    Describes the type and dimensions of the image or image array.

    Member documentation

    • image_type – describes the image type
    • image_width – the width of the image in pixels. For a 2D image and image array, the image width must be ≤ DEVICE_IMAGE2D_MAX_WIDTH. For a 3D image, the image width must be ≤ DEVICE_IMAGE3D_MAX_WIDTH. For a 1D image buffer, the image width must be ≤ DEVICE_IMAGE_MAX_BUFFER_SIZE. For a 1D image and 1D image array, the image width must be ≤ DEVICE_IMAGE2D_MAX_WIDTH.
    • image_height – the height of the image in pixels. This is only used if the image is a 2D, 3D or 2D image array. For a 2D image or image array, the image height must be ≤ DEVICE_IMAGE2D_MAX_HEIGHT. For a 3D image, the image height must be ≤ DEVICE_IMAGE3D_MAX_HEIGHT.
    • image_depth – the depth of the image in pixels. This is only used if the image is a 3D image and must be a value ≥ 1 and ≤ DEVICE_IMAGE3D_MAX_DEPTH.
    • image_array_size – the number of images in the image array. This is only used if the image is a 1D or 2D image array. The values for image_array_size, if specified, must be a value ≥ 1 and ≤ DEVICE_IMAGE_MAX_ARRAY_SIZE.

      Note that reading and writing 2D image arrays from a kernel with image_array_size = 1 may be lower performance than 2D images.

    • image_row_pitch – the scan-line pitch in bytes. This must be 0 if host_ptr is NULL and can be either 0 or ≥ image_width * size of element in bytes if host_ptr is not NULL. If host_ptr is not NULL and image_row_pitch = 0, image_row_pitch is calculated as image_width * size of element in bytes. If image_row_pitch is not 0, it must be a multiple of the image element size in bytes.
    • image_slice_pitch – the size in bytes of each 2D slice in the 3D image or the size in bytes of each image in a 1D or 2D image array. This must be 0 if host_ptr is NULL. If host_ptr is not NULL, image_slice_pitch can be either 0 or ≥ image_row_pitch * image_height for a 2D image array or 3D image and can be either 0 or ≥ image_row_pitch for a 1D image array. If host_ptr is not NULL and image_slice_pitch = 0, image_slice_pitch is calculated as image_row_pitch * image_height for a 2D image array or 3D image and image_row_pitch for a 1D image array. If image_slice_pitch is not 0, it must be a multiple of the image_row_pitch.
    • num_mip_levels – must be 0
    • num_samples – must be 0
    • buffer – refers to a valid buffer memory object if image_type is MEM_OBJECT_IMAGE1D_BUFFER. Otherwise it must be NULL. For a 1D image buffer object, the image pixels are taken from the buffer object's data store. When the contents of a buffer object's data store are modified, those changes are reflected in the contents of the 1D image buffer object and vice-versa at corresponding sychronization points. The image_width * size of element in bytes must be ≤ size of buffer object data store.

    Layout

    
     struct cl_image_desc {
         cl_mem_object_type image_type;
         size_t image_width;
         size_t image_height;
         size_t image_depth;
         size_t image_array_size;
         size_t image_row_pitch;
         size_t image_slice_pitch;
         cl_uint num_mip_levels;
         cl_uint num_samples;
         cl_mem buffer;
     }
    • Field Detail

      • SIZEOF

        The struct size in bytes.
      • ALIGNOF

        The struct alignment in bytes.
      • IMAGE_TYPE, IMAGE_WIDTH, IMAGE_HEIGHT, IMAGE_DEPTH, IMAGE_ARRAY_SIZE, IMAGE_ROW_PITCH, IMAGE_SLICE_PITCH, NUM_MIP_LEVELS, NUM_SAMPLES, BUFFER

        The struct member offsets.
    • Constructor Detail

      • CLImageDesc

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

        public int image_type()
        Returns the value of the image_type field.
      • image_width

        public long image_width()
        Returns the value of the image_width field.
      • image_height

        public long image_height()
        Returns the value of the image_height field.
      • image_depth

        public long image_depth()
        Returns the value of the image_depth field.
      • image_array_size

        public long image_array_size()
        Returns the value of the image_array_size field.
      • image_row_pitch

        public long image_row_pitch()
        Returns the value of the image_row_pitch field.
      • image_slice_pitch

        public long image_slice_pitch()
        Returns the value of the image_slice_pitch field.
      • num_mip_levels

        public int num_mip_levels()
        Returns the value of the num_mip_levels field.
      • num_samples

        public int num_samples()
        Returns the value of the num_samples field.
      • buffer

        public long buffer()
        Returns the value of the buffer field.
      • image_type

        public CLImageDesc image_type​(int value)
        Sets the specified value to the image_type field.
      • image_width

        public CLImageDesc image_width​(long value)
        Sets the specified value to the image_width field.
      • image_height

        public CLImageDesc image_height​(long value)
        Sets the specified value to the image_height field.
      • image_depth

        public CLImageDesc image_depth​(long value)
        Sets the specified value to the image_depth field.
      • image_array_size

        public CLImageDesc image_array_size​(long value)
        Sets the specified value to the image_array_size field.
      • image_row_pitch

        public CLImageDesc image_row_pitch​(long value)
        Sets the specified value to the image_row_pitch field.
      • image_slice_pitch

        public CLImageDesc image_slice_pitch​(long value)
        Sets the specified value to the image_slice_pitch field.
      • num_mip_levels

        public CLImageDesc num_mip_levels​(int value)
        Sets the specified value to the num_mip_levels field.
      • num_samples

        public CLImageDesc num_samples​(int value)
        Sets the specified value to the num_samples field.
      • buffer

        public CLImageDesc buffer​(long value)
        Sets the specified value to the buffer field.
      • set

        public CLImageDesc set​(int image_type,
                               long image_width,
                               long image_height,
                               long image_depth,
                               long image_array_size,
                               long image_row_pitch,
                               long image_slice_pitch,
                               int num_mip_levels,
                               int num_samples,
                               long buffer)
        Initializes this struct with the specified values.
      • set

        public CLImageDesc set​(CLImageDesc src)
        Copies the specified struct data to this struct.
        Parameters:
        src - the source struct
        Returns:
        this struct
      • create

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

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

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

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

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

        public static CLImageDesc callocStack​(MemoryStack stack)
        Returns a new CLImageDesc instance allocated on the specified MemoryStack and initializes all its bits to zero.
        Parameters:
        stack - the stack from which to allocate
      • callocStack

        public static CLImageDesc.Buffer callocStack​(int capacity)
        Returns a new CLImageDesc.Buffer instance allocated on the thread-local MemoryStack and initializes all its bits to zero.
        Parameters:
        capacity - the buffer capacity
      • callocStack

        public static CLImageDesc.Buffer callocStack​(int capacity,
                                                     MemoryStack stack)
        Returns a new CLImageDesc.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
      • nimage_type

        public static int nimage_type​(long struct)
        Unsafe version of image_type().
      • nimage_width

        public static long nimage_width​(long struct)
        Unsafe version of image_width().
      • nimage_height

        public static long nimage_height​(long struct)
        Unsafe version of image_height().
      • nimage_depth

        public static long nimage_depth​(long struct)
        Unsafe version of image_depth().
      • nimage_array_size

        public static long nimage_array_size​(long struct)
        Unsafe version of image_array_size().
      • nimage_row_pitch

        public static long nimage_row_pitch​(long struct)
        Unsafe version of image_row_pitch().
      • nimage_slice_pitch

        public static long nimage_slice_pitch​(long struct)
        Unsafe version of image_slice_pitch().
      • nnum_mip_levels

        public static int nnum_mip_levels​(long struct)
        Unsafe version of num_mip_levels().
      • nnum_samples

        public static int nnum_samples​(long struct)
        Unsafe version of num_samples().
      • nbuffer

        public static long nbuffer​(long struct)
        Unsafe version of buffer().
      • nimage_type

        public static void nimage_type​(long struct,
                                       int value)
        Unsafe version of image_type.
      • nimage_width

        public static void nimage_width​(long struct,
                                        long value)
        Unsafe version of image_width.
      • nimage_height

        public static void nimage_height​(long struct,
                                         long value)
        Unsafe version of image_height.
      • nimage_depth

        public static void nimage_depth​(long struct,
                                        long value)
        Unsafe version of image_depth.
      • nimage_array_size

        public static void nimage_array_size​(long struct,
                                             long value)
        Unsafe version of image_array_size.
      • nimage_row_pitch

        public static void nimage_row_pitch​(long struct,
                                            long value)
        Unsafe version of image_row_pitch.
      • nimage_slice_pitch

        public static void nimage_slice_pitch​(long struct,
                                              long value)
        Unsafe version of image_slice_pitch.
      • nnum_mip_levels

        public static void nnum_mip_levels​(long struct,
                                           int value)
        Unsafe version of num_mip_levels.
      • nnum_samples

        public static void nnum_samples​(long struct,
                                        int value)
        Unsafe version of num_samples.
      • nbuffer

        public static void nbuffer​(long struct,
                                   long value)
        Unsafe version of buffer.