<?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 sharingD3D11Inc SYSTEM "sharingD3D11Inc.xml">
]>

<refentry>
    <refentryinfo>
        <keywordset><keyword>clCreateFromD3D11BufferKHR</keyword></keywordset>
    </refentryinfo>

    <refmeta>
        <refentrytitle>clCreateFromD3D11BufferKHR</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="clCreateFromD3D11BufferKHR">
        <refname>clCreateFromD3D11BufferKHR</refname>
        <refpurpose>Creates an OpenCL buffer object from a Direct3D 11 buffer.</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>clCreateFromD3D11BufferKHR</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>ID3D11Buffer<parameter>*resource</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 created from a Direct3D 11 device.
                </para>
            </listitem>
        </varlistentry>

        <varlistentry>
            <term><varname>flags</varname></term>
            <listitem>
                <para>
                    A bit-field that is used to specify usage information.
                    May be <constant>CL_MEM_READ_ONLY</constant>, <constant>CL_MEM_WRITE_ONLY</constant>, or
                    <constant>CL_MEM_READ_WRITE</constant>. (See the table for
                    <citerefentry><refentrytitle>clCreateBuffer</refentrytitle></citerefentry>
                    for more information.)
                </para>
            </listitem>
        </varlistentry>

        <varlistentry>
            <term><varname>resource</varname></term>
            <listitem>
                <para>
                    A pointer to the Direct3D 11 buffer to share.
                </para>
            </listitem>
        </varlistentry>

        <varlistentry>
            <term><varname>errcode_ret</varname></term>
            <listitem>
                <para>
                    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>
          The size of the returned OpenCL buffer object is the same as the size
          of <varname>resource</varname>.  This call will increment the internal Direct3D
          reference count on <varname>resource</varname>. The internal Direct3D reference count
          on resource will be decremented when the OpenCL reference count on the returned OpenCL
          memory object drops to zero.
        </para>

        &sharingD3D11Inc;

    </refsect1>

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

    <refsect1 id="errors"><title>Errors</title>
        <para>
          Returns a valid non-zero OpenCL buffer
          object and <varname>errcode_ret</varname> is set to <errorname>CL_SUCCESS</errorname>
          if the buffer 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_D3D11_RESOURCE_KHR</errorname> if <varname>resource</varname>
              is not a Direct3D 11 buffer resource, if <varname>resource</varname> was created with
              the <constant>D3D11_USAGE</constant> flag <constant>D3D11_USAGE_IMMUTABLE</constant>,
              if a <type>cl_mem</type> from <varname>resource</varname> has already
              been created using <function>clCreateFromD3D11BufferKHR</function>, or if
              <varname>context</varname> was not created against the same Direct3D 11 device
              from which <varname>resource</varname> was created.
            </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="clCreateFromD3D11BufferKHR">OpenCL Specification</olink>
        </para>
    </refsect1>

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

    <refsect1 id="seealso"><title>Also see</title>
        <para>
            <citerefentry><refentrytitle>cl_khr_d3d11_sharing</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>

<!-- 22-Dec-2013, rev. 19 -->
</refentry>

