<?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" [
<!ENTITY clCreate_memflagsInc SYSTEM "clCreate_memflagsInc.xml">
]>

<refentry>
    <refentryinfo>
        <keywordset>
            <keyword>clCreateImage</keyword>
        </keywordset>
    </refentryinfo>

    <refmeta>
        <refentrytitle>
            clCreateImage
        </refentrytitle>

        <refmiscinfo>
            <copyright>
                <year>2007-2013</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="clCreateImage">
        <refname>
            clCreateImage
        </refname>

        <refpurpose>
            Creates a 1D image, 1D image buffer, 1D image array, 2D image, 2D image array or 3D image object.
        </refpurpose>
    </refnamediv>

    <refsynopsisdiv xmlns:xlink="http://www.w3.org/1999/xlink"><title></title>
        <funcsynopsis>
            <funcprototype>
                <funcdef>
                    <link xlink:href="abstractDataTypes.html">cl_mem</link> <function>clCreateImage</function>
                </funcdef>

                <paramdef><link xlink:href="abstractDataTypes.html">cl_context</link><parameter>context</parameter></paramdef>
                <paramdef><link xlink:href="enums.html#cl_mem_flags">cl_mem_flags</link><parameter>flags</parameter></paramdef>
                <paramdef>const <link xlink:href="cl_image_format.html">cl_image_format</link><parameter>*image_format</parameter></paramdef>
                <paramdef>const <link xlink:href="cl_image_desc.html">cl_image_desc</link><parameter>*image_desc</parameter></paramdef>
                <paramdef><link xlink:href="scalarDataTypes.html">void</link><parameter>*host_ptr</parameter></paramdef>
                <paramdef><link xlink:href="scalarDataTypes.html">cl_int</link><parameter>*errcode_ret</parameter></paramdef>

            </funcprototype>
        </funcsynopsis>
    </refsynopsisdiv>

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

    <refsect1 id="parameters">
        <title>Parameters</title>
        <variablelist>

            <varlistentry>
                <term> <varname> context </varname> </term>
                <listitem>
                    <para>
                        A valid OpenCL context on which the image object is to be created.
                    </para>
               </listitem>
            </varlistentry>

            <varlistentry>
                <term> <varname> flags </varname> </term>
                <listitem>
                    <para>
                      A bit-field that is used to specify allocation
                      and usage information about the image memory object being created and is
                      described in the table below.
                    </para>

                    <para>
                      For all image types except <constant>CL_MEM_OBJECT_IMAGE1D_BUFFER</constant>,
                      if value specified for <varname>flags</varname> is 0, the default is used
                      which is <constant>CL_MEM_READ_WRITE</constant>.
                    </para>

                    <para>
                      For <constant>CL_MEM_OBJECT_IMAGE1D_BUFFER</constant> image type, 
                      or an image created from another 
                      memory object (image or buffer), if the
                      <constant>CL_MEM_READ_WRITE</constant>, <constant>CL_MEM_READ_ONLY</constant>
                      or <constant>CL_MEM_WRITE_ONLY</constant> values are not specified in
                      <varname>flags</varname>, they are inherited from the corresponding
                      memory access qualifers associated with <varname>mem_object</varname>.
                      The <constant>CL_MEM_USE_HOST_PTR</constant>,
                      <constant>CL_MEM_ALLOC_HOST_PTR</constant> and
                      <constant>CL_MEM_COPY_HOST_PTR</constant> values cannot
                      be specified in <varname>flags</varname> but are inherited
                      from the corresponding memory access qualifiers associated with
                      <varname>mem_object</varname>.  If <constant>CL_MEM_COPY_HOST_PTR</constant>
                      is specified in the memory access qualifier values associated with
                      <varname>mem_object</varname> it does not imply any additional copies
                      when the image is created from <varname>mem_object</varname>.
                      If the <constant>CL_MEM_HOST_WRITE_ONLY</constant>,
                      <constant>CL_MEM_HOST_READ_ONLY</constant> or
                      <constant>CL_MEM_HOST_NO_ACCESS</constant> values are not specified in
                      <varname>flags</varname>, they are inherited from the corresponding memory
                      access qualifiers associated with <varname>mem_object</varname>.
                    </para>

                    <!-- Table 5.3 -->
                    &clCreate_memflagsInc;

               </listitem>
            </varlistentry>

            <varlistentry>
                <term> <varname> image_format </varname> </term>
                <listitem>
                    <para>
                      <!-- parameter description --> A pointer to a structure that
                      describes format properties of the image to be allocated. See
                      <citerefentry><refentrytitle>cl_image_format</refentrytitle></citerefentry>
                      for a detailed description of the image format descriptor.
                    </para>
               </listitem>
            </varlistentry>

            <varlistentry>
                <term> <varname> image_desc </varname> </term>
                <listitem>
                    <para>
                      <!-- parameter description --> A pointer to a structure that
                      describes type and dimensions of the image to be allocated.  See
                      <citerefentry><refentrytitle>cl_image_desc</refentrytitle></citerefentry>
                      for more information.
                    </para>
               </listitem>
            </varlistentry>

            <varlistentry>
                <term> <varname> host_ptr </varname> </term>
                <listitem>
                    <para>
                      A pointer to the image data that may already be allocated by the application.
                      Refer to table below for a description of how large the buffer that
                      <varname>host_ptr</varname> points to must be.
                    </para>

                    <informaltable frame="all">
                        <tgroup cols="2" align="left" colsep="1" rowsep="1">
                            <colspec colname="col1" colnum="1" />
                            <colspec colname="col2" colnum="2" />
                            <thead>
                                <row>
                                    <entry>Image Type</entry>
                                    <entry>Size of buffer that <varname>host_ptr</varname> points to</entry>
                                </row>
                            </thead>

                            <tbody>
                                <row>
                                    <entry><constant>CL_MEM_OBJECT_IMAGE1D</constant></entry>
                                    <entry><constant>&ge; image_row_pitch</constant></entry>
                                </row>

                                <row>
                                    <entry><constant>CL_MEM_OBJECT_IMAGE1D_BUFFER</constant></entry>
                                    <entry><constant>&ge; image_row_pitch</constant></entry>
                                </row>

                                <row>
                                    <entry><constant>CL_MEM_OBJECT_IMAGE2D</constant></entry>
                                    <entry><constant>&ge; image_row_pitch * image_height</constant></entry>
                                </row>

                                <row>
                                    <entry><constant>CL_MEM_OBJECT_IMAGE3D</constant></entry>
                                    <entry><constant>&ge; image_slice_pitch * image_depth</constant></entry>
                                </row>

                                <row>
                                    <entry><constant>CL_MEM_OBJECT_IMAGE1D_ARRAY</constant></entry>
                                    <entry><constant>&ge; image_slice_pitch * image_array_size</constant></entry>
                                </row>

                                <row>
                                    <entry><constant>CL_MEM_OBJECT_IMAGE2D_ARRAY</constant></entry>
                                    <entry><constant>&ge; image_slice_pitch * image_array_size</constant></entry>
                                </row>
                            </tbody>
                        </tgroup>
                    </informaltable>

                    <para>
                      <function>clCreateImage</function> can be used to create a 2D image from a 
                      buffer object or a 2D image from another 2D image object.
                    </para>

                    <para>
                        A 2D image can be created from a buffer by specifying a buffer 
                        object in the <code>image_desc->mem_object</code> passed to 
                        <function>clCreateImage</function> for <code>image_desc->image_type</code> =
                        <constant>CL_MEM_OBJECT_IMAGE2D</constant>. If 
                        <code>image_desc->mem_object</code> is created with 
                        <constant>CL_MEM_USE_HOST_PTR</constant>, the 
                        <varname>host_ptr</varname> specified to 
                        <function>clCreateBuffer</function> must be aligned to the 
                        minimum of the <constant>CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT</constant> 
                        value for all devices in 
                        the context associated with <code>image_desc->mem_object</code> 
                        and that support images.
                    </para>

                    <para>
                        A 2D image can be created from another 2D image object 
                        by specifying an image object in the 
                        <code>image_desc->mem_object</code> passed to 
                        <function>clCreateImage</function> for <code>image_desc->image_type</code>
                        = <constant>CL_MEM_OBJECT_IMAGE2D</constant>. This 
                        allows users to create a new image object that shares the 
                        image data store with <code>mem_object</code> but 
                        views the pixels in the image with a different channel 
                        order and channel type. The restrictions are:
                    </para>

                    <para>
                        (1) all the values specified in <code>image_desc</code> 
                        except for <code>mem_object</code> must match the image 
                        descriptor information associated with <code>mem_object</code>. 
                    </para>

                    <para>
                        (2) The <code>image_desc</code> used for creation of 
                        <code>mem_object</code> may not be equivalent to image
                        descriptor information associated with 
                        <code>mem_object</code>. To ensure the values 
                        in <code>image_desc</code>
                        will match one can query <code>mem_object</code> 
                        for associated information using <function>clGetImageInfo</function>
                        function described in section 5.3.7.
                    </para>

                    <para>
                        (3) the channel data type specified in 
                        <varname>image_format</varname> must match 
                        the channel data type 
                        associated with <code>mem_object</code>. 
                        The channel order values supported are:
                    </para>

<!-- table of channel orders -->

                    <informaltable frame="all">
                        <tgroup cols="2" align="center" colsep="1" rowsep="1">
                            <colspec colname="col1" colnum="1" />
                            <colspec colname="col2" colnum="2" />
                            <thead>
                                <row>
                                    <entry>image_channel_order specified in image_format</entry>
                                    <entry>image channel order of mem_object</entry>
                                </row>
                            </thead>
                            <tbody>
                                <row><entry><constant>CL_sBGRA</constant></entry> <entry><constant>CL_BGRA</constant></entry></row>
                                <row><entry><constant>CL_BGRA</constant></entry> <entry><constant>CL_sBGRA</constant></entry></row>
                                <row><entry><constant>CL_sRGBA</constant></entry> <entry><constant>CL_RGBA</constant></entry></row>
                                <row><entry><constant>CL_RGBA</constant></entry> <entry><constant>CL_sRGBA</constant></entry></row>
                                <row><entry><constant>CL_sRGB</constant></entry> <entry><constant>CL_RGB</constant></entry></row>
                                <row><entry><constant>CL_RGB</constant></entry> <entry><constant>CL_sRGB</constant></entry></row>
                                <row><entry><constant>CL_sRGBx</constant></entry> <entry><constant>CL_RGBx</constant></entry></row>
                                <row><entry><constant>CL_RGBx</constant></entry> <entry><constant>CL_sRGBx</constant></entry></row>
                                <row><entry><constant>CL_DEPTH</constant></entry> <entry><constant>CL_R</constant></entry></row>
                            </tbody>  
                        </tgroup>
                    </informaltable>

                    <para>
                        (4) The channel order specified must have the same number of 
                         channels as the channel order of <code>mem_object</code>.

                    </para>

                    <para>
                        This allows developers to create a sRGB view of the image from 
                        a linear RGB view or vice-versa i.e. the pixels 
                        stored in the image can be accessed aslinear RGB or sRGB values. 
                    </para>

                    <para>
                      For a 3D image or 2D image array, the image data specified by
                      <varname>host_ptr</varname> is stored as a linear sequence of adjacent 2D
                      image slices or 2D images respectively. Each 2D image is a linear sequence
                      of  adjacent scanlines. Each scanline is a linear sequence of image elements.
                    </para>

                    <para>
                      For a 2D image, the image data specified by <varname>host_ptr</varname>
                      is stored as a linear sequence of adjacent scanlines. Each scanline is
                      a linear sequence of image elements.
                    </para>

                    <para>
                      For a 1D image array, the image data specified by <varname>host_ptr</varname>
                      is stored as a linear sequence of adjacent 1D images respectively. Each 1D
                      image or 1D image buffer is a single scanline which is a linear sequence
                      of adjacent elements.
                    </para>
                </listitem>
            </varlistentry>

            <varlistentry>
                <term> <varname> errcode_ret </varname> </term>
                <listitem>
                    <para>
                      Will return an appropriate error code. If <varname>errcode_ret</varname>
                      is NULL, no error code is returned.
                    </para>
               </listitem>
            </varlistentry>
        </variablelist>
    </refsect1>

<!-- ================================ NOTES -->

    <refsect1 id="notes"><title>Notes</title>
    <para>
        If the <citerefentry><refentrytitle>cl_khr_mipmap_image</refentrytitle></citerefentry> extension is enabled, 
        then a mip-mapped 1D image, 1D image array, 2D image, 2D image array or 3D image is created by specifying 
        <varname>num_mip_levels</varname> to be a value &gt; 1 in <varname>cl_image_desc</varname> 
        passed to <function>clCreateImage</function>. The dimensions of a mip-mapped image can be a power of 
        two or a non-power of two. Each successively smaller mipmap level is half the size of the previous level. 
        If this half value is a fractional value, it is rounded down to the nearest integer.
    </para>

<bridgehead>Restrictions</bridgehead>

    <para>
        The following restrictions apply when mip-mapped images are created with <function>clCreateImage</function>.
    </para>

    <para>
      <itemizedlist>
        <listitem>
            <constant>CL_MEM_USE_HOST_PTR</constant> or <constant>CL_MEM_COPY_HOST_PTR</constant> 
            cannot be specified if a mipmapped image is created.
        </listitem>

        <listitem>
            The <varname>host_ptr</varname> argument to 
            <function>clCreateImage</function> must be a NULL value.
        </listitem>

        <listitem>
            Mip-mapped images cannot be created for 
            <constant>CL_MEM_OBJECT_IMAGE1D_BUFFER</constant> images, depth images or
            multi-sampled (i.e. msaa) images.
        </listitem>

      </itemizedlist>
    </para>

    </refsect1>

<!-- ================================ ERRORS  -->

    <refsect1 id="errors"><title>Errors</title>
        <para>
          <function>clCreateImage</function> returns a valid non-zero image object and
          <varname>errcode_ret</varname> is set to <errorname>CL_SUCCESS</errorname> if the
          image object is created successfully. Otherwise, it returns a NULL value with one of
          the following error values returned in <varname>errcode_ret</varname>:
        </para>

        <itemizedlist mark="disc">
            <listitem>
                <errorname>CL_INVALID_CONTEXT</errorname> if <varname>context</varname> is not a valid context.
            </listitem>

            <listitem>
                <errorname>CL_INVALID_VALUE</errorname> if values specified in <varname>flags</varname> are not valid.
            </listitem>

            <listitem>
              <errorname>CL_INVALID_IMAGE_FORMAT_DESCRIPTOR</errorname> if values specified in
              <varname>image_format</varname> are not valid or if <varname>image_format</varname>
              is NULL.
            </listitem>

            <listitem>
              <errorname>CL_INVALID_IMAGE_FORMAT_DESCRIPTOR</errorname> if a 2D image is created from a buffer 
                and the row pitch and base address alignment does not follow the rules described for 
                creating a 2D image from a buffer.
            </listitem>

            <listitem>
              <errorname>CL_INVALID_IMAGE_FORMAT_DESCRIPTOR</errorname> if a 2D image is created from a 2D 
              image object and the rules described above are not followed.
            </listitem>

            <listitem>
              <errorname>CL_INVALID_IMAGE_DESCRIPTOR</errorname> if values specified in
              <varname>image_desc</varname> are not valid or if <varname>image_desc</varname>
              is NULL.
            </listitem>

            <listitem>
              <errorname>CL_INVALID_IMAGE_SIZE</errorname> if image dimensions specified
              in <varname>image_desc</varname> exceed the maximum image dimensions
              described in the table of allowed values for <varname>param_name</varname>
              for <citerefentry><refentrytitle>clGetDeviceInfo</refentrytitle></citerefentry>
              for all devices in <varname>context</varname>.
            </listitem>

            <listitem>
              <errorname>CL_INVALID_HOST_PTR</errorname> if <varname>host_ptr</varname> 
              is NULL and <constant>CL_MEM_USE_HOST_PTR</constant> or
              <constant>CL_MEM_COPY_HOST_PTR</constant> are set in <varname>flags</varname> or if
              <varname>host_ptr</varname> is not NULL but <constant>CL_MEM_COPY_HOST_PTR</constant>
              or <constant>CL_MEM_USE_HOST_PTR</constant> are not set in <varname>flags</varname>.
            </listitem>

            <listitem>
                <errorname>CL_INVALID_VALUE</errorname> if an image buffer 
                is being created and the buffer object was 
                created with <constant>CL_MEM_WRITE_ONLY</constant> and 
                <varname>flags</varname> specifies <constant>CL_MEM_READ_WRITE</constant> or
                <constant>CL_MEM_READ_ONLY</constant>, or if the buffer 
                object was created with <constant>CL_MEM_READ_ONLY</constant>
                and <varname>flags</varname> specifies <constant>CL_MEM_READ_WRITE</constant> 
                or <constant>CL_MEM_WRITE_ONLY</constant>, or if <varname>flags</varname>
                specifies <constant>CL_MEM_USE_HOST_PTR</constant> or 
                <constant>CL_MEM_ALLOC_HOST_PTR</constant> or 
                <constant>CL_MEM_COPY_HOST_PTR</constant>.
            </listitem>

            <listitem>
                <errorname>CL_INVALID_VALUE</errorname> if an image 
                buffer is being created or an image is being created  
                from another memory object (image or buffer) and the 
                <varname>mem_object</varname> object was created  
                with <constant>CL_MEM_HOST_WRITE_ONLY</constant> and 
                <varname>flags</varname> specifies <constant>CL_MEM_HOST_READ_ONLY</constant>,  
                or if <varname>mem_object</varname> was created with 
                <constant>CL_MEM_HOST_READ_ONLY</constant> and <varname>flags</varname> specifies  
                <constant>CL_MEM_HOST_WRITE_ONLY</constant>, or if 
                <varname>mem_object</varname> was created with 
                <constant>CL_MEM_HOST_NO_ACCESS</constant> and 
                <varname>flags</varname> specifies <constant>CL_MEM_HOST_READ_ONLY</constant> or  
                <constant>CL_MEM_HOST_WRITE_ONLY</constant>. 
            </listitem>

            <listitem>
              <errorname>CL_IMAGE_FORMAT_NOT_SUPPORTED</errorname> if the
              <varname>image_format</varname> is not supported.
            </listitem>

            <listitem>
              <errorname>CL_MEM_OBJECT_ALLOCATION_FAILURE</errorname> if there is a failure to
              allocate memory for image object.
            </listitem>

            <listitem>
              <errorname>CL_INVALID_OPERATION</errorname> if there are
              no devices in <varname>context</varname> that support
              images (i.e. <constant>CL_DEVICE_IMAGE_SUPPORT</constant>
              (specified in the table of OpenCL Device Queries for
              <citerefentry><refentrytitle>clGetDeviceInfo</refentrytitle></citerefentry>)
              is <constant>CL_FALSE</constant>).
            </listitem>

            <listitem>
              <errorname>CL_OUT_OF_RESOURCES</errorname> if there is a failure to allocate
              resources required by the OpenCL implementation on the device.
            </listitem>

            <listitem>
              <errorname>CL_OUT_OF_HOST_MEMORY</errorname> if there is a failure to allocate
              resources required by the OpenCL implementation on the host.
            </listitem>
        </itemizedlist>
    </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>

            <olink uri="clCreateImage">OpenCL Specification</olink>
        </para>
    </refsect1>

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

    <refsect1 id="seealso"><title>Also see</title>
        <para>
            <citerefentry><refentrytitle>cl_image_desc</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>cl_image_format</refentrytitle></citerefentry>,
            <citerefentry href="classDiagram"><refentrytitle>Cardinality Diagram</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>cl_khr_mipmap_image</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>

 <!-- 4-Nov-2015, API ver 2.1 rev 19; Ext ver 2.1 rev 10 -->
</refentry>

