<?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>clEnqueueFillImage</keyword>
        </keywordset>
    </refentryinfo>

    <refmeta>
        <refentrytitle>
            clEnqueueFillImage
        </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="clEnqueueFillImage">
        <refname>
            clEnqueueFillImage
        </refname>

        <refpurpose>
            Enqueues a command to fill an image object with a specified color.
        </refpurpose>
    </refnamediv>

    <refsynopsisdiv xmlns:xlink="http://www.w3.org/1999/xlink"><title></title>
        <funcsynopsis>
            <funcprototype>
                <funcdef>
                    <link xlink:href="scalarDataTypes.html">cl_int</link>
 <function>clEnqueueFillImage</function>
                </funcdef>
                    <paramdef><link xlink:href="abstractDataTypes.html">cl_command_queue</link><parameter>command_queue</parameter></paramdef>
                    <paramdef><link xlink:href="abstractDataTypes.html">cl_mem</link><parameter>image</parameter></paramdef>
                    <paramdef>const <link xlink:href="scalarDataTypes.html">void</link><parameter>*fill_color</parameter></paramdef>
                    <paramdef>const <link xlink:href="scalarDataTypes.html">size_t</link><parameter>*origin</parameter></paramdef>
                    <paramdef>const <link xlink:href="scalarDataTypes.html">size_t</link><parameter>*region</parameter></paramdef>
                    <paramdef><link xlink:href="scalarDataTypes.html">cl_uint</link><parameter>num_events_in_wait_list</parameter></paramdef>
                    <paramdef>const <link xlink:href="abstractDataTypes.html">cl_event</link><parameter>*event_wait_list</parameter></paramdef>
                    <paramdef><link xlink:href="abstractDataTypes.html">cl_event</link><parameter>*event</parameter></paramdef>

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

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

    <refsect1 id="parameters">
        <title>Parameters</title>
        <variablelist>
            <varlistentry>
                <term> <varname> command_queue </varname> </term>
                <listitem>
                    <para>
                        Refers to the host command-queue in which the fill command will be queued.  The
                        OpenCL context associated with <varname>command_queue</varname> 
                        and <varname>image</varname> must be the same.
                    </para>
               </listitem>
            </varlistentry>

            <varlistentry>
                <term> <varname> image </varname> </term>
                <listitem>
                    <para>
                       A valid image object.
                    </para>
               </listitem>
            </varlistentry>

            <varlistentry>
                <term> <varname> fill_color </varname> </term>
                <listitem>
                    <para>
                        The color used to fill the image. The fill color is 
                        a single floating point value if the
                        channel order is <constant>CL_DEPTH</constant>. Otherwise, 
                        the fill color is a four component RGBA floating-point
                        color value if the <varname>image</varname> channel data 
                        type is not an unnormalized signed or unsigned integer
                        type, is a four component signed integer value if the 
                        <varname>image</varname> channel data type is an unnormalized
                        signed integer type and is a four component unsigned 
                        integer value if the <varname>image</varname> channel data
                        type is an unnormalized unsigned integer type. The fill 
                        color will be converted to the appropriate
                        image channel format and order associated with 
                        <varname>image</varname> as described in sections 6.12.14 and 8.3.
                    </para>
                </listitem>
            </varlistentry>

            <varlistentry>
                <term> <varname> origin </varname> </term>
                <listitem>
                    <para>
                      Defines the (<emphasis>x, y, z</emphasis>) offset in pixels in the 1D, 2D, or
                      3D image, the (<emphasis>x, y</emphasis>) offset and the image index in the
                      image array or the (x) offset and the image index in the 1D image array.  If
                      <varname>image</varname> is a 2D image object, <varname>origin</varname>[2]
                      must be 0. If <varname>image</varname> is a 1D image or 1D image buffer
                      object, <varname>origin</varname>[1] and <varname>origin</varname>[2]
                      must be 0. If <varname>image</varname> is a 1D image array object,
                      <varname>origin</varname>[2] must be 0.  If <varname>image</varname>
                      is a 1D image array object, <varname>origin</varname>[1] describes the
                      image index in the 1D image array. If <varname>image</varname> is a 2D
                      image array object, <varname>origin</varname>[2] describes the image
                      index in the 2D image array.
                    </para>
               </listitem>
            </varlistentry>

            <varlistentry>
                <term> <varname> region </varname> </term>
                <listitem>
                    <para>
                      Defines the (<emphasis>width, height, depth</emphasis>) in pixels of the
                      1D, 2D or 3D rectangle, the (<emphasis>width, height</emphasis>) in pixels
                      of the 2D rectangle and the number of images of a 2D image array or the
                      (<emphasis>width</emphasis>) in pixels of the 1D rectangle and the number
                      of images of a 1D image array. If <varname>image</varname> is a 2D image
                      object, <varname>region</varname>[2] must be 1.  If <varname>image</varname>
                      is a 1D image or 1D image buffer object, <varname>region</varname>[1]
                      and <varname>region</varname>[2] must be 1.  If <varname>image</varname>
                      is a 1D image array object, <varname>region</varname>[2] must be 1.
                      The values in <varname>region</varname> cannot be 0.
                    </para>
               </listitem>
            </varlistentry>

            <varlistentry>
                <term>
                    <varname>
                        event_wait_list
                    ,</varname>
                    <varname>
                        num_events_in_wait_list
                    </varname>
                </term>

                <listitem>
                    <para>
                      Specify events that need to complete before this particular
                      command can be executed. If <varname>event_wait_list</varname>
                      is NULL, then this particular command does not wait on any
                      event to complete. If <varname>event_wait_list</varname> is
                      NULL, <varname>num_events_in_wait_list</varname> must be 0. If
                      <varname>event_wait_list</varname> is not NULL, the list of events
                      pointed to by <varname>event_wait_list</varname> must be valid
                      and <varname>num_events_in_wait_list</varname> must be greater
                      than 0. The events specified in <varname>event_wait_list</varname>
                      act as synchronization points. The context associated with events in
                      <varname>event_wait_list</varname> and <varname>command_queue</varname> must
                      be the same. The memory associated with <varname>event_wait_list</varname>
                      can be reused or freed after the function returns.
                    </para>
               </listitem>
            </varlistentry>

            <varlistentry>
                <term> <varname> event </varname> </term>
                <listitem>
                    <para>
                      Returns an event object that identifies this particular write
                      command and can be used to query or queue a wait for this particular
                      command to complete. <varname>event</varname> can be NULL in
                      which case it will not be possible for the application to query the
                      status of this command or queue a wait for this command to complete.
                      <citerefentry><refentrytitle>clEnqueueBarrierWithWaitList</refentrytitle></citerefentry>
                      can be used instead.  If the <varname>event_wait_list</varname>
                      and the <varname>event</varname> arguments are not NULL, the
                      <varname>event</varname> argument should not refer to an element of the
                      <varname>event_wait_list</varname> array.
                    </para>
                </listitem>
            </varlistentry>
        </variablelist>
    </refsect1>

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

     <refsect1 id="notes"><title>Notes</title>
        <para>
          The usage information which indicates whether the memory object can be read or
          written by a kernel and/or the host and is given by the <type>cl_mem_flags</type>
          argument value specified when <varname>image</varname> is created is ignored by
          <function>clEnqueueFillImage</function>.
        </para>

        <para>
            If the 
            <citerefentry><refentrytitle>cl_khr_mipmap_image</refentrytitle></citerefentry>
            extension is enabled, calls to 
            <citerefentry><refentrytitle>clEnqueueFillImage</refentrytitle></citerefentry>
            can be used to write to a specific mip-level of a mip-mapped image.
            If image argument is a 1D image, origin[1] specifies 
            the mip-level to use. If image argument is a
            1D image array, origin[2] specifies the mip-level 
            to use. If image argument is a 2D image,
            origin[2] specifies the mip-level to use. If 
            image argument is a 2D image array or a 3D image,
            origin[3] specifies the mip-level to use.
        </para>
    </refsect1>

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

    <refsect1 id="errors"><title>Errors</title>
        <para>
            <function>clEnqueueFillImage</function> return <errorname>CL_SUCCESS</errorname> if the function is
            executed successfully. Otherwise, it returns one of the following errors.
        </para>

        <itemizedlist mark="disc">
            <listitem>
                <errorname>CL_INVALID_COMMAND_QUEUE</errorname> if <varname>command_queue</varname>
                is not a valid host command-queue.
            </listitem>

            <listitem>
                <errorname>CL_INVALID_CONTEXT</errorname> if the context associated with
                <varname>command_queue</varname> and <varname>image</varname> are not the
                same or if the context associated with <varname>command_queue</varname>
                and events in <varname>event_wait_list</varname> are not the same.
            </listitem>

            <listitem>
                <errorname>CL_INVALID_MEM_OBJECT</errorname> if <varname>image</varname> is
                not a valid image object.
            </listitem>

            <listitem>
                <errorname>CL_INVALID_VALUE</errorname> if <varname>fill_color</varname> is NULL.
            </listitem>

            <listitem>
              <errorname>CL_INVALID_VALUE</errorname> if the region being written specified by
              <varname>origin</varname> and <varname>region</varname> is out of bounds or if
              <varname>ptr</varname> is a NULL value.
            </listitem>

            <listitem>
              <errorname>CL_INVALID_VALUE</errorname> if values in <varname>origin</varname>
              and <varname>region</varname> do not follow rules described in the argument
              description for <varname>origin</varname> and <varname>region</varname>.
            </listitem>

            <listitem>
              <errorname>CL_INVALID_EVENT_WAIT_LIST</errorname>
              if <varname>event_wait_list</varname> is NULL and
              <varname>num_events_in_wait_list</varname> &gt; 0,
              or <varname>event_wait_list</varname> is not NULL and
              <varname>num_events_in_wait_list</varname> is 0, or if event objects in
              <varname>event_wait_list</varname> are not valid events.
            </listitem>

            <listitem>
              <errorname>CL_INVALID_IMAGE_SIZE</errorname> if image dimensions (image width,
              height, specified or compute row and/or slice pitch) for <varname>image</varname>
              are not supported by device associated with <varname>queue</varname>.
            </listitem>

            <listitem>
              <errorname>CL_IMAGE_FORMAT_NOT_SUPPORTED</errorname> if image format (image channel
              order and data type) for <varname>image</varname> are not supported by device
              associated with <varname>queue</varname>.
            </listitem>

            <listitem>
              <errorname>CL_MEM_OBJECT_ALLOCATION_FAILURE</errorname> if there is a failure to
              allocate memory for data store associated with <varname>image</varname>.
            </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="clEnqueueFillImage">OpenCL Specification</olink>
        </para>
    </refsect1>

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

    <refsect1 id="seealso"><title>Also see</title>
        <para>
            <citerefentry><refentrytitle>clEnqueueReadImage</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>clEnqueueWriteImage</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>clEnqueueCopyImage</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>clEnqueueBarrierWithWaitList</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>

