Class CLImageDesc

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


    public class CLImageDesc
    extends Struct
    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 ≤ CL10.CL_DEVICE_IMAGE2D_MAX_WIDTH. For a 3D image, the image width must be ≤ CL10.CL_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 ≤ CL10.CL_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 ≤ CL10.CL_DEVICE_IMAGE2D_MAX_HEIGHT. For a 3D image, the image height must be ≤ CL10.CL_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 ≤ CL10.CL_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 CL10#CL_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

        public static final int SIZEOF
        The struct size in bytes.
    • 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 the 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 or null if the 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
      • 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