<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
<!-- saved from url=(0013)about:internet -->
<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <style xmlns="" type="text/css">
    /* This style sets a margin around the entire page */
        html, body {
            margin: 10px;
        }

        p {
            font: normal 16px verdana, sans-serif;
            margin: 0;
            padding-bottom:12px;
        }

        h1 {
            font: bold 25px verdana, sans-serif;
            margin-top: 0;
            margin-bottom: 3px;
            padding-top: 0;
            padding-bottom: 0;
        }

        h2 {
            font: bold 19px verdana, sans-serif;
            margin-top: 28px;
            margin-bottom: 3px;
            padding-top: 0; 
            padding-bottom: 0;
        }

        h3 {
            font: bold 19px verdana, sans-serif !important;
            margin-top: 28px;
            margin-bottom: 3px;
            padding-top: 0;
            padding-bottom: 0;
        }

        li {
            font: normal 16px verdana, sans-serif;
            margin-top: 0;
            margin-bottom: 18px;
            padding-top: 0;
            padding-bottom: 0;
        }

        .pdparam {
            font: italic 16px verdana, sans-serif;
        }
		
		.term {
			font: italic 16px verdana, sans-serif;
			font-weight: normal;
		}	
		
		.type {
			font: normal 16px verdana, sans-serif !important;
		}			
		
		.parameter { 
			font-style: italic; 
			}

        a:link, a:visited {
            color: blue;
            text-decoration: none;
            font: normal 16px;
        }

        a:hover {
            background-color: #FFFF99;
            font: normal 16px;
        }

        div.funcsynopsis {
            text-align: left;
            background-color: #e6e6e6;
            font: normal 16px verdana, sans-serif;
			padding-top: 10px;
			padding-bottom: 10px;
        }

        div.funcsynopsis table {
            border-collapse: separate;
            font: normal 16px verdana, sans-serif;
        }

        div.funcsynopsis td {
            background-color: #e6e6e6;
            border: 0 solid #000;
            padding: 1px;
            font: normal 16px verdana, sans-serif;
        }

        div.refsect1 {
            font-family: verdana, sans-serif;
            font-size: 16px;
        }

        code.constant {
            font: normal 16px courier new, monospace !important;
        }
		
		span.errorname {
            font: normal 16px verdana, sans-serif !important;
        }

        code.function {
            font: bold 16px verdana, sans-serif !important;
        }
		
        b.fsfunc {
            font: bold 16px verdana, sans-serif !important;
        }
		
        code.varname {
            font: italic 16px verdana, sans-serif;
        }

        code.replaceable {
            font: italic 16px courier new, monospace;
        }

        code.funcdef {
            font: normal 16px verdana, sans-serif !important;
        }

        .citerefentry {
            font: normal 16px verdana, sans-serif !important;
        }

        .parameter {
            font-style: italic;
        }

        code.fsfunc {
            font: normal 16px verdana, sans-serif !important;
        }

        /* PARAMETER: This style controls spacing between the terms in Parameter section */
        dt {
            margin-top: 15px;
        }

        /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
        div.refsect1 table {
            width: 100%;
			margin-top: 10px;
            background-color: #FFF;
			border-collapse: collapse;
			border-color: #000;
            border-width: 1px;
			font: normal 16px verdana, sans-serif;
        }
		
        div.refsect1 th {
			border-collapse: collapse;
			border-color: #000;
            border-width: 1px;
            font: bold 16px verdana, sans-serif;
        }
		
        div.refsect1 td {
            background-color: #FFF;
            padding: 5px;
            vertical-align: text-top;
			border-collapse: collapse;
			border-color: #000;
            border-width: 1px;
            font: normal 16px verdana, sans-serif;
        }
		
		  div.refsect1 p{
            font: normal 16px verdana, sans-serif;
            margin-top: 8px;
            margin-bottom: 8px;
            padding-top: 0;
            padding-bottom: 0;
        }
		

        /* EXAMPLE: These styles apply only to the Example section */
        div.refsect2 {
            font: normal 16px courier new, monospace !important;
        }

        div.refsect2 table {
            margin-top: 0;
            background-color: #e6e6e6;
            width: 100%;
            border: 0 solid #000;
            padding: 2px;
            font: normal 16px courier new, monospace !important;
        }

        div.refsect2 td {
            background-color: #e6e6e6;
            font: normal 16px courier new, monospace !important;
			white-space:pre;
        }

        /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
        div.refsect3 {
            font: normal 11px verdana, sans-serif;
            margin-top: 50px;
            margin-bottom: 20px;
            padding-top: 0;
            padding-bottom: 0;
        }
					
</style>
    <title>clCreateImage2D</title>
    <meta name="generator" content="DocBook XSL Stylesheets V1.79.1" />
    <meta name="keywords" content="         &#10;                clCreateImage2D&#10;            " />
  </head>
  <body>
    <div class="refentry">
      <a id="idm1"></a>
      <div class="titlepage"></div>
      <div xmlns="" class="refnamediv">
        <a xmlns="http://www.w3.org/1999/xhtml" id="clCreateImage2D"></a>
        <h1>     
            clCreateImage2D
        </h1>
        <p>          
            Creates a 2D image object.
        </p>
      </div>
      <div class="refsynopsisdiv">
        <h2></h2>
        <div class="funcsynopsis">
          <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
            <tr valign="bottom">
              <td>
                <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">              
                    cl_mem <strong class="fsfunc">clCreateImage2D</strong>
                (</code>
                <td><a xmlns="http://www.w3.org/1999/xhtml" class="link" href="abstractDataTypes.html" target="_top">cl_context</a> <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">context</var>, </td>
              </td>
            </tr>
            <tr valign="top">
              <td> </td>
              <td><a xmlns="http://www.w3.org/1999/xhtml" class="link" href="enums.html#cl_mem_flags" target="_top">cl_mem_flags</a> <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">flags</var>, </td>
            </tr>
            <tr valign="top">
              <td> </td>
              <td>const <a xmlns="http://www.w3.org/1999/xhtml" class="link" href="cl_image_format.html" target="_top">cl_image_format</a> <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">*image_format</var>, </td>
            </tr>
            <tr valign="top">
              <td> </td>
              <td><a xmlns="http://www.w3.org/1999/xhtml" class="link" href="scalarDataTypes.html" target="_top">size_t</a> <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">image_width</var>, </td>
            </tr>
            <tr valign="top">
              <td> </td>
              <td><a xmlns="http://www.w3.org/1999/xhtml" class="link" href="scalarDataTypes.html" target="_top">size_t</a> <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">image_height</var>, </td>
            </tr>
            <tr valign="top">
              <td> </td>
              <td><a xmlns="http://www.w3.org/1999/xhtml" class="link" href="scalarDataTypes.html" target="_top">size_t</a> <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">image_row_pitch</var>, </td>
            </tr>
            <tr valign="top">
              <td> </td>
              <td><a xmlns="http://www.w3.org/1999/xhtml" class="link" href="scalarDataTypes.html" target="_top">void</a> <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">*host_ptr</var>, </td>
            </tr>
            <tr valign="top">
              <td> </td>
              <td><a xmlns="http://www.w3.org/1999/xhtml" class="link" href="scalarDataTypes.html" target="_top">cl_int</a> <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">*errcode_ret</var><code>)</code></td>
            </tr>
          </table>
        </div>
      </div>
      <div class="refsect1">
        <a id="parameters"></a>
        <h2>Parameters</h2>
        <div class="variablelist">
          <dl class="variablelist">
            <dt>
              <span class="term">
                    <code class="varname"> 
                        context
                    </code>
                </span>
            </dt>
            <dd>
              <p> 
                        A valid OpenCL context on which the image object is to be created.
                    </p>
            </dd>
            <dt>
              <span class="term">
                    <code class="varname"> 
						flags
					</code>
                </span>
            </dt>
            <dd>
              <p> 
						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 List of supported <code class="varname">cl_mem_flags</code> values for <a class="citerefentry" href="clCreateBuffer.html"><span class="citerefentry"><span class="refentrytitle">clCreateBuffer</span></span></a>.
                    </p>
            </dd>
            <dt>
              <span class="term">
                    <code class="varname">
						image_format
                    </code>
                </span>
            </dt>
            <dd>
              <p>
						A pointer to a structure that describes format properties of the image to be
						allocated. See <a class="citerefentry" href="cl_image_format.html"><span class="citerefentry"><span class="refentrytitle">cl_image_format</span></span></a> for a detailed description of the image format descriptor.
                    </p>
            </dd>
            <dt>
              <span class="term">
                    <code class="varname">						
						image_width
					</code>
				, </span>
              <span class="term">
					<code class="varname">
						image_height
					</code>
				</span>
            </dt>
            <dd>
              <p>
						The width and height of the image in pixels. These must be
						values greater than or equal to 1.
					</p>
            </dd>
            <dt>
              <span class="term">
                    <code class="varname">
						image_row_pitch
					</code>
				</span>
            </dt>
            <dd>
              <p>
						The scan-line pitch in bytes. This must be 0 if <code class="varname">host_ptr</code> is NULL and can be
						either 0 or greater than or equal to <code class="varname">image_width</code> * size of element in bytes 
						if <code class="varname">host_ptr</code> is not NULL. If <code class="varname">host_ptr</code> is not
						NULL and <code class="varname">image_row_pitch</code> is equal to 0, <code class="varname">image_row_pitch</code> is calculated as <code class="varname">image_width</code> * size of
						element in bytes. If <code class="varname">image_row_pitch</code> is not 0, it must be a multiple of the image element size in
						bytes.
					</p>
            </dd>
            <dt>
              <span class="term">
                    <code class="varname">
						host_ptr
					</code> 
				</span>
            </dt>
            <dd>
              <p>
						A pointer to the image data that may already be allocated by the application. The size
						of the buffer that <code class="varname">host_ptr</code> points to must be greater than or equal to <code class="varname">image_row_pitch</code> * <code class="varname">image_height</code>. The size of
						each element in bytes must be a power of 2. The image data specified by <code class="varname">host_ptr</code> is stored as a
						linear sequence of adjacent scanlines. Each scanline is stored as a linear sequence of image elements.
					</p>
            </dd>
            <dt>
              <span class="term">
                    <code class="varname"> 
                        errcode_ret
                    </code>
                </span>
            </dt>
            <dd>
              <p> 
                        Will return an appropriate error code. If <code class="varname">errcode_ret</code> is NULL, no error code is returned.
                    </p>
            </dd>
          </dl>
        </div>
      </div>
      <div class="refsect1">
        <a id="errors"></a>
        <h2>Errors</h2>
        <p>
			<code class="function">clCreateImage2D</code> returns a valid non-zero image object created and the <code class="varname">errcode_ret</code> is set to
			<span class="errorname">CL_SUCCESS</span> if the image object is created successfully. Otherwise, it returns a NULL value
			with one of the following error values returned in <code class="varname">errcode_ret</code>:
        </p>
        <div class="itemizedlist">
          <ul class="itemizedlist" style="list-style-type: disc; ">
            <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_CONTEXT</span> if <code class="varname">context</code> is not a valid context.
			</li>
            <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_VALUE</span> if values specified in <code class="varname">flags</code> are not valid.
			</li>
            <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_IMAGE_FORMAT_DESCRIPTOR</span> if values specified in <code class="varname">image_format</code> are not valid or if <code class="varname">image_format</code> is NULL.
			</li>
            <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_IMAGE_SIZE</span> if <code class="varname">image_width</code> or <code class="varname">image_height</code> are 0 or if they exceed values specified in <code class="constant">CL_DEVICE_IMAGE2D_MAX_WIDTH</code> or <code class="constant">CL_DEVICE_IMAGE2D_MAX_HEIGHT</code> respectively for all devices in context or if values specified by image_row_pitch do not follow rules described in the argument description
above.
			</li>
            <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_HOST_PTR</span> if <code class="varname">host_ptr</code> is NULL and <code class="constant">CL_MEM_USE_HOST_PTR</code> or <code class="constant">CL_MEM_COPY_HOST_PTR</code> are set in <code class="varname">flags</code> or if <code class="varname">host_ptr</code> is not NULL but <code class="constant">CL_MEM_COPY_HOST_PTR</code> or <code class="constant">CL_MEM_USE_HOST_PTR</code> are not set in <code class="varname">flags</code>.
			</li>
            <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_IMAGE_FORMAT_NOT_SUPPORTED</span> if the <code class="varname">image_format</code> is not supported.
			</li>
            <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_MEM_OBJECT_ALLOCATION_FAILURE</span> if there is a failure to allocate memory for
				image object.
			</li>
            <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_OPERATION</span> if there are no devices in <code class="varname">context</code> that support images (i.e. <code class="constant">CL_DEVICE_IMAGE_SUPPORT</code> (specified in the table of OpenCL Device Queries for <a class="citerefentry" href="clGetDeviceInfo.html"><span class="citerefentry"><span class="refentrytitle">clGetDeviceInfo</span></span></a>) is <span class="errorname">CL_FALSE</span>).
			</li>
            <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_OUT_OF_HOST_MEMORY</span> if there is a failure to allocate resources required by the
				OpenCL implementation on the host.
			</li>
          </ul>
        </div>
      </div>
      <div class="refsect1">
        <a id="specification"></a>
        <h2>Specification</h2>
        <p>
            <img src="pdficon_small1.gif" />
			
				      
            <a href="http://www.khronos.org/registry/cl/specs/opencl-1.0.pdf#page=59" target="OpenCL Spec">OpenCL Specification</a>
        </p>
      </div>
      <div class="refsect1">
        <a id="seealso"></a>
        <h2>Also see</h2>
        <p>
            <a class="citerefentry" href="clCreateImage3D.html"><span class="citerefentry"><span class="refentrytitle">clCreateImage3D</span></span></a>
        </p>
      </div>
      <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>Copyright © 2007-2009 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. 
</div>
    </div>
  </body>
</html>
