<?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>clGetDeviceIDsFromD3D10KHR</keyword></keywordset>
    </refentryinfo>
    <refmeta>
        <refentrytitle>clGetDeviceIDsFromD3D10KHR</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="clGetDeviceIDsFromD3D10KHR">
<refname>clGetDeviceIDsFromD3D10KHR</refname> 
           <refpurpose>Query the OpenCL devices corresponding to a Direct3D 10 device or a DXGI device.</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>clGetDeviceIDsFromD3D10KHR</function></funcdef>
                <paramdef><link xlink:href="abstractDataTypes.html">cl_platform_id</link><parameter>platform</parameter></paramdef>
                <paramdef><link xlink:href="enums.html#cl_d3d10_device_source_khr">cl_d3d10_device_source_khr</link><parameter>d3d_device_source</parameter></paramdef>
                <paramdef><link xlink:href="scalarDataTypes.html">void</link><parameter>*d3d_object</parameter></paramdef>
                <paramdef><link xlink:href="enums.html#cl_d3d10_device_set_khr">cl_d3d10_device_set_khr</link><parameter>d3d_device_set</parameter></paramdef>
                <paramdef><link xlink:href="scalarDataTypes.html">cl_uint</link><parameter>num_entries</parameter></paramdef>   
                <paramdef><link xlink:href="abstractDataTypes.html">cl_device_id</link><parameter>*devices</parameter></paramdef>
                <paramdef><link xlink:href="scalarDataTypes.html">cl_uint</link><parameter>*num_devices</parameter></paramdef>              
           </funcprototype>
        </funcsynopsis>     
    </refsynopsisdiv>

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

    <refsect1 id="parameters"><title>Parameters</title>
        <variablelist>
        <varlistentry>
            <term><varname>platform</varname></term>
            <listitem>
                <para>
                    Refers to the platform ID returned by 
                    <citerefentry><refentrytitle>clGetPlatformIDs</refentrytitle></citerefentry>.
                </para>
            </listitem>
        </varlistentry> 

    
        <varlistentry>
            <term><varname>d3d_device_source</varname></term>
            <listitem>
                <para>
                    Specifies the type of <varname>d3d_object</varname> and may be one of the following:.
                </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>cl_d3d_device_source_khr</entry>
                            <entry>Type of <varname>d3d_object</varname></entry>
                        </row>
                    </thead>
                    <tbody>
                        <row>
                            <entry><constant>CL_D3D10_DEVICE_KHR</constant></entry>
                            <entry>ID3D10Device *</entry>
                        </row>
                        <row>
                            <entry><constant>CL_D3D10_DXGI_ADAPTER_KHR</constant></entry>
                            <entry>IDXGIAdapter *</entry>
                        </row>
                    </tbody>    
                </tgroup></informaltable>   
            </listitem>
        </varlistentry>

        <varlistentry>
            <term><varname>d3d_object</varname></term>
            <listitem>
                <para>
                    Specifies the object whose corresponding OpenCL devices are being queried. The type of 
                    <varname>d3d_object</varname> must be as specified in the table above.
                </para>
            </listitem>
        </varlistentry>
        
        <varlistentry>
            <term><varname>d3d_device_set</varname></term>
            <listitem>
                <para>
                    Specifies the set of devices to return, and must be one of the following:
                </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>cl_d3d_device_set_khr</entry>
                            <entry>Devices returned in <varname>devices</varname></entry>
                        </row>
                    </thead>
                    <tbody>
                        <row>
                            <entry><constant>CL_PREFERRED_DEVICES_FOR_D3D10_KHR</constant></entry>
                            <entry>
                                The OpenCL devices associated with the specified Direct3D object.
                            </entry>
                        </row>
                        <row>
                            <entry><constant>CL_ALL_DEVICES_FOR_D3D10_KHR</constant></entry>
                            <entry>
                                All OpenCL devices which may interoperate with the specified Direct3D object. 
                                Performance of sharing data on these devices may be considerably less than on the
                                preferred devices.
                            </entry>
                        </row>
                    </tbody>    
                </tgroup></informaltable>
            </listitem>
        </varlistentry>
        
        <varlistentry>
            <term><varname>num_entries</varname></term>
            <listitem>
                <para>
                    The number of cl_device entries that can be added to <varname>devices</varname>. If <varname>devices</varname> is not NULL, the <varname>num_entries</varname> must be greater than zero.
                </para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term><varname>devices</varname></term>
            <listitem>
                <para>
                    A list of OpenCL devices found. The cl_device_id values returned in <varname>devices</varname> can be used to identify a specific OpenCL device. If <varname>devices</varname> is NULL, this argument is ignored. The number of OpenCL devices returned is the mininum of the value specified by <varname>num_entries</varname> and the number of OpenCL devices 
corresponding to <varname>d3d_object</varname>.
                </para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term><varname>num_devices</varname></term>
            <listitem>
                <para>
                    The number of OpenCL devices available that correspond to <varname>d3d_object</varname>. If <varname>num_devices</varname> is NULL, this argument is ignored.
                </para>
            </listitem>
        </varlistentry>
        </variablelist>
    </refsect1>

<!-- ================================ NOTES  -->
    <refsect1 id="notes"><title>Notes</title>
    
    <para>The OpenCL devices corresponding to a Direct3D 10 device may be queried. The OpenCL
devices corresponding to a DXGI adapter may also be queried. The OpenCL devices
corresponding to a Direct3D 10 device will be a subset of the OpenCL devices corresponding to
the DXGI adapter against which the Direct3D 10 device was created.</para>
        
    </refsect1>         
    
<!-- ================================ ERRORS  -->       

    <refsect1 id="errors"><title>Errors</title>
        <para>
            Returns <errorname>CL_SUCCESS</errorname> if the function is executed
successfully. Otherwise it may return:
        </para>
        <itemizedlist mark="disc">
            <listitem>
                <errorname>CL_INVALID_PLATFORM</errorname> if <varname>platform</varname> is not a valid platform.
            </listitem>
            <listitem>
                <errorname>CL_INVALID_VALUE</errorname> if <varname>d3d_device_source</varname> is not a valid value,
                <varname>d3d_device_set</varname> is not a valid value, <varname>num_entries</varname> is equal to zero and
                <varname>devices</varname> is not NULL, or if both <varname>num_devices</varname> and <varname>devices</varname> 
                are NULL.
            </listitem>
            <listitem>
                <errorname>CL_DEVICE_NOT_FOUND</errorname> if no OpenCL devices that correspond to 
                <varname>d3d_object</varname> were found.
            </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="clGetDeviceIDsFromD3D10KHR">OpenCL Specification</olink>
        </para>
    </refsect1>     

<!-- ================================ ALSO SEE  --> 
    <refsect1 id="seealso"><title>Also see</title>
        <para>
            <citerefentry><refentrytitle>cl_khr_d3d10_sharing</refentrytitle></citerefentry>,
<!--            <citerefentry><refentrytitle>clGetDeviceIDsFromD3D10KHR</refentrytitle></citerefentry>,  -->
            <citerefentry><refentrytitle>clCreateFromD3D10BufferKHR</refentrytitle></citerefentry>, 
            <citerefentry><refentrytitle>clCreateFromD3D10Texture2DKHR</refentrytitle></citerefentry>, 
            <citerefentry><refentrytitle>clCreateFromD3D10Texture3DKHR</refentrytitle></citerefentry>, 
            <citerefentry><refentrytitle>clEnqueueAcquireD3D10ObjectsKHR</refentrytitle></citerefentry>, 
            <citerefentry><refentrytitle>clEnqueueReleaseD3D10ObjectsKHR</refentrytitle></citerefentry>
        </para>
    </refsect1>


<!-- ============================== COPYRIGHT -->
<!-- Content included from copyright.inc.xsl -->

    <refsect3 id="Copyright"><title></title>
            Copyright &#169; 
    </refsect3>

</refentry>

