<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
              "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">

<refentry>
    <refentryinfo>
        <keywordset>
            <keyword>cl_image_desc</keyword>
        </keywordset>
    </refentryinfo>

    <refmeta>
        <refentrytitle>cl_image_desc</refentrytitle>

        <refmiscinfo>
            <copyright>
                <year>2007-2010</year>
                <holder>The Khronos Group Inc.
 Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and/or associated documentation files (the
"Materials"), to deal in the Materials without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Materials, and to
permit persons to whom the Materials are furnished to do so, subject to
the condition that this copyright notice and permission notice shall be included
in all copies or substantial portions of the Materials.</holder>
            </copyright>
        </refmiscinfo>
        <manvolnum>3</manvolnum>
    </refmeta>

<!-- ================================ SYNOPSIS -->

    <refnamediv id="cl_image_desc">
        <refname>cl_image_desc</refname>

        <refpurpose>
            The image descriptor structure describes the type and dimensions of the image or image array and is defined as:
        </refpurpose>
    </refnamediv>

    <!-- ALTERNATIVE SYNTAX SYNOPSIS (NON-FUNCTION) -->

    <refsect2 xmlns:xlink="http://www.w3.org/1999/xlink" id="synopsis">
        <title>
        </title>

        <informaltable frame="none">
            <tgroup cols="1" align="left" colsep="0" rowsep="0">
                <colspec colname="col1" colnum="1" />
                <tbody>
                    <row>
                        <entry>typedef struct _cl_image_desc {
          <link xlink:href="enums.html#cl_mem_object_type">cl_mem_object_type</link> image_type;
          <link xlink:href="scalarDataTypes.html">size_t</link> image_width;
          <link xlink:href="scalarDataTypes.html">size_t</link> image_height;
          <link xlink:href="scalarDataTypes.html">size_t</link> image_depth;
          <link xlink:href="scalarDataTypes.html">size_t</link> image_array_size;
          <link xlink:href="scalarDataTypes.html">size_t</link> image_row_pitch;
          <link xlink:href="scalarDataTypes.html">size_t</link> image_slice_pitch;
          <link xlink:href="scalarDataTypes.html">cl_uint</link> num_mip_levels;
          <link xlink:href="scalarDataTypes.html">cl_uint</link> num_samples;
          <link xlink:href="abstractDataTypes.html">cl_mem</link> buffer;
} cl_image_desc;</entry>
                    </row>
                </tbody>
            </tgroup>
        </informaltable>
    </refsect2>

<!-- ================================ PARAMETERS -->

    <refsect1 id="parameters"><title>Members</title>
        <variablelist>
            <varlistentry>
                <term>image_type</term>
                <listitem>
                    <para>
                      Describes the image type and must be either
                      <constant>CL_MEM_OBJECT_IMAGE1D</constant>,
                      <constant>CL_MEM_OBJECT_IMAGE1D_BUFFER</constant>,
                      <constant>CL_MEM_OBJECT_IMAGE1D_ARRAY</constant>,
                      <constant>CL_MEM_OBJECT_IMAGE2D</constant>,
                      <constant>CL_MEM_OBJECT_IMAGE2D_ARRAY</constant>, or
                      <constant>CL_MEM_OBJECT_IMAGE3D</constant>.
                    </para>
                </listitem>
            </varlistentry>

            <varlistentry>
                <term>image_width</term>
                <listitem>
                    <para>
                      The width of the image in pixels. For a 2D
                      image and image array, the image width must be &le;
                      <constant>CL_DEVICE_IMAGE2D_MAX_WIDTH</constant>. For a 3D image, the image
                      width must be &le; <constant>CL_DEVICE_IMAGE3D_MAX_WIDTH</constant>. For
                      a 1D image buffer, the image width must be &le;
                      <constant>CL_DEVICE_IMAGE_MAX_BUFFER_SIZE</constant>. For
                      a 1D image and 1D image array, the image width must be &le;
                      <constant>CL_DEVICE_IMAGE2D_MAX_WIDTH</constant>.
                    </para>
                </listitem>
            </varlistentry>

            <varlistentry>
                <term>image_height</term>
                <listitem>
                    <para>
                      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
                      &le; <constant>CL_DEVICE_IMAGE2D_MAX_HEIGHT</constant>.  For a 3D image, the
                      image height must be &le; <constant>CL_DEVICE_IMAGE3D_MAX_HEIGHT</constant>.
                    </para>
                </listitem>
            </varlistentry>

            <varlistentry>
                <term>image_depth</term>
                <listitem>
                    <para>
                      The depth of the image in pixels. This is only used if the
                      image is a 3D image and must be a value &ge; 1 and &le;
                      <constant>CL_DEVICE_IMAGE3D_MAX_DEPTH</constant>.
                    </para>
                </listitem>
            </varlistentry>

            <varlistentry>
                <term>image_array_size</term>
                <listitem>
                    <para>
                      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
                      <varname>image_array_size</varname>, if specified, must be a value &ge;
                      1 and &le; <constant>CL_DEVICE_IMAGE_MAX_ARRAY_SIZE</constant>.
                    </para>

                    <para>
                      Note that reading and writing 2D image arrays from a kernel with
                      <varname>image_array_size</varname> = 1 may be lower performance than
                      2D images.
                    </para>
                </listitem>
            </varlistentry>

            <varlistentry>
                <term>image_row_pitch</term>
                <listitem>
                    <para>
                      The scan-line pitch in bytes. This must be 0 if <varname>host_ptr</varname>
                      is NULL and can be either 0 or &ge; image_width * size of element in bytes if
                      <varname>host_ptr</varname> is not NULL. If <varname>host_ptr</varname>
                      is not NULL and <varname>image_row_pitch</varname> =
                      0, <varname>image_row_pitch</varname> is calculated as
                      <varname>image_width</varname> * size of element in bytes. If
                      <varname>image_row_pitch</varname> is not 0, it must be a multiple of
                      the image element size in bytes.
                    </para>
                </listitem>
            </varlistentry>

            <varlistentry>
                <term>image_slice_pitch</term>
                <listitem>
                    <para>
                      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
                      <varname>host_ptr</varname> is NULL. If <varname>host_ptr</varname>
                      is not NULL, <varname>image_slice_pitch</varname> can
                      be either 0 or &ge; <varname>image_row_pitch</varname> *
                      <varname>image_height</varname> for a 2D image array or 3D image
                      and can be either 0 or &ge; <varname>image_row_pitch</varname>
                      for a 1D image array. If <varname>host_ptr</varname>
                      is not NULL and <varname>image_slice_pitch</varname> =
                      0, <varname>image_slice_pitch</varname> is calculated as
                      <varname>image_row_pitch</varname> * <varname>image_height</varname>
                      for a 2D image array or 3D image and <varname>image_row_pitch</varname>
                      for a 1D image array. If <varname>image_slice_pitch</varname> is not 0,
                      it must be a multiple of the <varname>image_row_pitch</varname>.
                    </para>
                </listitem>
            </varlistentry>

            <varlistentry>
                <term>num_mip_level</term>, <term>num_samples</term>
                <listitem>
                    <para>
                      Must be 0.
                    </para>
                </listitem>
            </varlistentry>

            <varlistentry>
                <term>buffer</term>
                <listitem>
                    <para>
                      Refers to a valid buffer memory object if <varname>image_type</varname>
                      is <constant>CL_MEM_OBJECT_IMAGE1D_BUFFER</constant>. 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 <varname>image_width</varname> * size of element in bytes
                      must be &le; size of buffer object data store.
                    </para>
                </listitem>
            </varlistentry>
        </variablelist>
    </refsect1>

<!-- ================================ DESCRIPTION  -->

    <refsect1 id="note"><title>Note</title>
        <para>
          Concurrent reading from, writing to and copying between both a buffer object and 1D image
          buffer object associated with the buffer object is undefined. Only reading from both
          a buffer object and 1D image buffer object associated with the buffer object is defined.
        </para>
    </refsect1>

<!-- ================================ EXAMPLE  -->
<!-- DO NOT DELETE IN CASE AN EXAMPLE IS ADDED IN THE FUTURE -->
<!--
    <refsect2 id="example1">
        <title>
            Example
        </title>

        <informaltable frame="none">
            <tgroup cols="1" align="left" colsep="0" rowsep="0">
                <colspec colname="col1" colnum="1" />
                <tbody>
                    <row>
                        <entry>
                            Example goes here - it will be set in "code" type with white space preserved.
                        </entry>
                    </row>
                </tbody>
            </tgroup>
        </informaltable>
    </refsect2>
-->

<!-- ================================ SPECIFICATION  -->
<!-- Set the "uri" attribute in the <olink /> element to the "named destination" for the PDF page
-->
    <refsect1 id="specification"><title>Specification</title>
        <para>
            <imageobject>
                <imagedata fileref="pdficon_small1.gif" format="gif" />
            </imageobject>
                              <!-- Links to the 'Image Format Descriptor' sec of spec -->
            <olink uri="cl_image_desc">OpenCL Specification</olink>
        </para>
    </refsect1>

<!-- ================================ ALSO SEE  -->

    <refsect1 id="seealso"><title>Also see</title>
        <para>
            <citerefentry><refentrytitle>cl_image_format</refentrytitle></citerefentry>
        </para>
    </refsect1>

<!-- ============================== COPYRIGHT -->
<!-- Content included from copyright.inc.xsl -->

    <refsect3 id="Copyright"><title></title>
        <imageobject>
                <imagedata fileref="KhronosLogo.jpg" format="jpg" />
        </imageobject>
        <para />
    </refsect3>

<!-- 16-Oct-2011 -->
</refentry>

