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

    <refmeta>
        <refentrytitle>cl_image_format</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_format">
        <refname>cl_image_format</refname>

        <refpurpose>The image format descriptor structure 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_format {
          <link xlink:href="enums.html#cl_channel_order">cl_channel_order</link> image_channel_order;
          <link xlink:href="enums.html#cl_channel_type">cl_channel_type</link>  image_channel_data_type;
} cl_image_format;</entry>
                    </row>
                </tbody>
            </tgroup>
        </informaltable>
    </refsect2>

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

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

<!-- ================================ PARAMETER TABLE (OPTIONAL) -->

      <varlistentry>
        <term>image_channel_order</term>
        <listitem>
            Specifies the number of channels and the channel layout i.e. the
memory layout in which channels are stored in the image. Valid values are described in the table below.

          <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>Format</entry>
                  <entry>Description</entry>
                </row>

              </thead>

              <tbody>
                <row>
                  <entry>CL_R, CL_Rx, or CL_A</entry>
                  <entry></entry>
                </row>

                <row>
                  <entry>CL_INTENSITY</entry>
                  <entry>This format can only be used if channel data type = CL_UNORM_INT8,
            CL_UNORM_INT16, CL_SNORM_INT8, CL_SNORM_INT16, CL_HALF_FLOAT, or CL_FLOAT.
                  </entry>
                </row>

                <row>
                  <entry>CL_LUMINANCE</entry>
                  <entry>This format can only be used if channel data type = CL_UNORM_INT8,
            CL_UNORM_INT16, CL_SNORM_INT8, CL_SNORM_INT16, CL_HALF_FLOAT, or CL_FLOAT.
                  </entry>
                </row>

                <row>
                  <entry>CL_RG, CL_RGx, or CL_RA</entry>
                  <entry></entry>
                </row>

                <row>
                  <entry>CL_RGB or CL_RGBx</entry>
                  <entry>This format can only be used if channel data type = CL_UNORM_SHORT_565,
            CL_UNORM_SHORT_555 or CL_UNORM_INT_101010.</entry>
                </row>

                <row>
                  <entry>CL_RGBA</entry>
                  <entry> </entry>
                </row>

                <row>
                  <entry>CL_ARGB, CL_BGRA.</entry>
                  <entry>This format can only be used if channel data type = CL_UNORM_INT8,
            CL_SNORM_INT8, CL_SIGNED_INT8 or CL_UNSIGNED_INT8.</entry>
                </row>
              </tbody>
            </tgroup>
          </informaltable>

          <para>
          </para>

        </listitem>
      </varlistentry>

<!-- ================================ END PARAMETER TABLE  -->

<!-- ================================ PARAMETER TABLE (OPTIONAL) -->

      <varlistentry>
        <term>image_channel_data_type</term>
        <listitem>
           Describes the size of the channel data type. The number of bits per element determined by the
                <constant>image_channel_data_type</constant> and <constant>image_channel_order</constant>
                must be a power of two. The list of supported values is described in the table below.

           <!-- table 5.7 -->
           <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 Channel Data Type</entry>
                 <entry>Description</entry>
               </row>
             </thead>

             <tbody>
               <row>
                 <entry>CL_SNORM_INT8</entry>
                 <entry>Each channel component is a normalized signed 8-bit integer value.</entry>
               </row>

               <row>
                 <entry>CL_SNORM_INT16</entry>
                 <entry>Each channel component is a normalized signed 16-bit integer value.</entry>
               </row>

               <row>
                 <entry>CL_UNORM_INT8</entry>
                 <entry>Each channel component is a normalized unsigned 8-bit integer value.</entry>
               </row>

               <row>
                 <entry>CL_UNORM_INT16</entry>
                 <entry>Each channel component is a normalized unsigned 16-bit integer value.</entry>
               </row>

               <row>
                 <entry>CL_UNORM_SHORT_565</entry>
                 <entry>Represents a normalized 5-6-5 3-channel RGB image. The channel order must be CL_RGB or CL_RGBx.</entry>
               </row>

               <row>
                 <entry>CL_UNORM_SHORT_555</entry>
                 <entry>Represents a normalized x-5-5-5 4-channel xRGB image.
                            The channel order must be CL_RGB or CL_RGBx.</entry>
               </row>

               <row>
                 <entry>CL_UNORM_INT_101010</entry>
                 <entry>Represents a normalized x-10-10-10 4-channel xRGB image.
                           The channel order must be CL_RGB or CL_RGBx.</entry>
               </row>

               <row>
                 <entry>CL_SIGNED_INT8</entry>
                 <entry>Each channel component is an unnormalized signed 8-bit integer value.</entry>
               </row>

               <row>
                 <entry>CL_SIGNED_INT16</entry>
                 <entry>Each channel component is an unnormalized signed 16-bit integer value.</entry>
               </row>

               <row>
                 <entry>CL_SIGNED_INT32</entry>
                 <entry>Each channel component is an unnormalized signed 32-bit integer value.</entry>
               </row>

               <row>
                 <entry>CL_UNSIGNED_INT8</entry>
                 <entry>Each channel component is an unnormalized unsigned 8-bit integer value.</entry>
               </row>

               <row>
                 <entry>CL_UNSIGNED_INT16</entry>
                 <entry>Each channel component is an unnormalized unsigned 16-bit integer value.</entry>
               </row>

               <row>
                 <entry>CL_UNSIGNED_INT32</entry>
                 <entry>Each channel component is an unnormalized unsigned 32-bit integer value.</entry>
               </row>

               <row>
                 <entry>CL_HALF_FLOAT</entry>
                 <entry>Each channel component is a 16-bit half-float value.</entry>
               </row>

               <row>
                 <entry>CL_FLOAT</entry>
                 <entry>Each channel component is a single precision floating-point value.</entry>
               </row>
             </tbody>
           </tgroup>
         </informaltable>

         <para>
         </para>

       </listitem>
     </varlistentry>

<!-- ================================ END PARAMETER TABLE  -->

  </variablelist>
</refsect1>

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

    <refsect1 id="description"><title>Description</title>
        <para>
            For example, to specify a normalized unsigned 8-bit / channel RGBA image:
        </para>

        <para>
<literallayout>          <code>image_channel_order</code> = <constant>CL_RGBA</constant>
          <code>image_channel_data_type</code> = <constant>CL_UNORM_INT8</constant>
</literallayout>
        </para>

        <para>
          <varname>image_channel_data_type</varname> values of
          <constant>CL_UNORM_SHORT_565</constant>, <constant>CL_UNORM_SHORT_555</constant>
          and <constant>CL_UNORM_INT_101010</constant> are special cases of packed image
          formats where the channels of each element are packed into a single unsigned
          short or unsigned int. For these special packed image formats, the channels
          are normally packed with the first channel in the most significant bits of
          the bitfield, and successive channels occupying progressively less significant
          locations. For <constant>CL_UNORM_SHORT_565</constant>, R is in bits 15:11, G is
          in bits 10:5 and B is in bits 4:0. For <constant>CL_UNORM_SHORT_555</constant>,
          bit 15 is undefined, R is in bits 14:10, G in bits 9:5 and B in bits 4:0. For
          <constant>CL_UNORM_INT_101010</constant>, bits 31:30 are undefined, R is in bits 29:20,
          G in bits 19:10 and B in bits 9:0.
        </para>

        <para>
          OpenCL implementations must maintain the minimum precision specified by the number
          of bits in <code>image_channel_data_type</code>. If the image format specified
          by <code>image_channel_order</code>, and <code>image_channel_data_type</code>
          cannot be supported by the OpenCL implementation, then the call to
          <citerefentry><refentrytitle>clCreateImage</refentrytitle></citerefentry> will return
          a NULL memory object.
        </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_format">OpenCL Specification</olink>
        </para>
    </refsect1>

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

    <refsect1 id="seealso"><title>Also see</title>
        <para>
            <citerefentry><refentrytitle>cl_image_desc</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>EXTENSION</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>clGetSupportedImageFormats</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>clCreateImage</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>

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

