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

    <refmeta>                                    
        <refentrytitle>clCreateFromGLTexture3D</refentrytitle>

        <refmiscinfo>
            <copyright>
                <year>2007-2009</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>2</manvolnum>
    </refmeta>

<!-- ================================ SYNOPSIS -->

    <refnamediv id="clCreateFromGLTexture3D">             
        <refname>clCreateFromGLTexture3D</refname>

        <refpurpose>
            Creates an OpenCL 3D image object from an OpenGL 3D texture object.
        </refpurpose>
    </refnamediv>


    <refsynopsisdiv xmlns:xlink="http://www.w3.org/1999/xlink"><title></title>
        <funcsynopsis>
            <funcprototype>
                <funcdef>
                        cl_mem
                    <function>                   
                        clCreateFromGLTexture3D
                    </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>GLenum<parameter>texture_target</parameter></paramdef>
                <paramdef>GLint<parameter>miplevel</parameter></paramdef>
                <paramdef>GLuint<parameter>texture</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> <!-- parameter name -->
                        context
                    </varname>
                </term>

                <listitem>
                    <para> <!-- parameter description -->
                        A valid OpenCL context created from an OpenGL 3D context.
                    </para>
               </listitem>
            </varlistentry>


            <varlistentry>
                <term>
                    <varname> <!-- parameter name -->
                        flags
                    </varname>
                </term>

                <listitem>
                    <para> <!-- parameter description -->
                        A bit-field that is used to specify usage information. Refer to
the table at
<function><citerefentry><refentrytitle>clCreateBuffer</refentrytitle></citerefentry></function><!-- table 5.3 -->
for a description of <varname>flags</varname>. Only the valuesCL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY and CL_MEM_READ_WRITE  can be used.
                    </para>
                </listitem>
            </varlistentry>

            <varlistentry>
                <term>
                    <varname> <!-- parameter name -->
                        texture_target
                    </varname>
                </term>

                <listitem>
                    <para> <!-- parameter description -->
                        <varname>texture_target</varname>
is used only to define the image type of <varname>texture</varname>. Must be GL_TEXTURE_3D. No reference to a bound GL texture object
is made or implied by this parameter.

                   </para>
                </listitem>
            </varlistentry>


            <varlistentry>
                <term>
                    <varname> <!-- parameter name -->
                        miplevel
                    </varname>
                </term>

                <listitem>
                    <para> <!-- parameter description -->
                        The mipmap level to be used.
                    </para>
                </listitem>
            </varlistentry>


            <varlistentry>
                <term>
                    <varname> <!-- parameter name -->
                        texture
                    </varname>
                </term>

                <listitem>
                    <para> <!-- parameter description -->
                        The name of a GL 3D texture object. The texture object must
be a complete texture as
per OpenGL rules on texture completeness.
The <varname>texture</varname>
format and dimensions defined by
OpenGL for the specified <varname>miplevel</varname> of the texture will
be used to create the 3D image object.
Only GL texture objects with an internal format that maps to appropriate image channel order
and data type specified in
the table of supported Image Channel Order Values and
the table of supported Image Channel Data Types at
<type><citerefentry><refentrytitle>cl_image_format</refentrytitle></citerefentry></type><!-- tables 5.4 and 5.5 -->
can be used to create the 3D image object.
                    </para>
                </listitem>
            </varlistentry>

            <varlistentry>
                <term>
                    <varname> <!-- parameter name -->
                        errcode_ret
                    </varname>
                </term>

                <listitem>
                    <para> <!-- parameter description -->
                         Returns an appropriate error code as described below.
If <varname>errcode_ret</varname> is NULL, no error code is returned.
                    </para>
                </listitem>
            </varlistentry>

        </variablelist>
    </refsect1>


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

    <refsect1 id="description"><title>Description</title>
        <para>
If the state of a GL texture object is modified through the GL API (e.g. the OpenGL functions
<function>glTexImage2D</function> or <function>glTexImage3D</function>, 
or the values of the texture parameters GL_TEXTURE_BASE_LEVEL or
GL_TEXTURE_MAX_LEVEL are modified) while there exists a corresponding CL image object,
subsequent use of the CL image object will result in undefined behavior.
        </para>

        <para>
The
<citerefentry><refentrytitle><function>clRetainMemObject</function></refentrytitle></citerefentry>
and
<citerefentry><refentrytitle><function>clReleaseMemObject</function></refentrytitle></citerefentry>
functions can be used to retain and release
the image objects.
        </para>

    </refsect1>


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


    <refsect1 id="notes"><title>Notes</title>
        <para>
OpenCL 1.0 supports read-only 3D image memory objects. Writes to 3D image objects that are GL 3D textures
are supported if the OpenCL implementation supports the <citerefentry><refentrytitle>cl_khr_3d_image_writes</refentrytitle></citerefentry> extension. 3D images
are optional in the embedded profile. If 3D images are not supported by the OpenCL embedded profile, the
<varname>errcode_ret</varname> argument to <function>clCreateFromGLTexture3D</function> will return CL_INVALID_OPERATION.
        </para>
    </refsect1>


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

    <refsect1 id="errors"><title>Errors</title>
        <para>
            Returns a valid non-zero OpenCL image object and <varname>errcode_ret</varname> is
set to <errorname>CL_SUCCESS</errorname> if the image 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 or was not created from a GL context.
.
            </listitem>

            <listitem>
                <errorname>CL_INVALID_VALUE</errorname> if values specified in
<varname>flags</varname> are not valid or if value specified in
<varname>texture_target</varname> is not one of the values specified
in the description of <varname>texture_target</varname>.
            </listitem>

            <listitem>
                <errorname>CL_INVALID_MIPLEVEL</errorname> if <varname>miplevel</varname> is less
than the value of <varname>level<subscript>base</subscript></varname> (for OpenGL
implementations) or zero (for OpenGL ES implementations); or greater than the value of
<varname>q</varname> (for both OpenGL and OpenGL ES).
<varname>level<subscript>base</subscript></varname> and <varname>q</varname>
are defined for the texture in
section 3.8.10 (Texture Completeness)
of the OpenGL 2.1 specification and
section 3.7.10 of the OpenGL ES 2.0.
            </listitem>

            <listitem>
                <errorname>CL_INVALID_MIPLEVEL</errorname> if <varname>miplevel</varname>
is greater than zero
and the OpenGL implementation does not support creating from non-zero mipmap levels.
            </listitem>

            <listitem>
                <errorname>CL_INVALID_GL_OBJECT</errorname> if <varname>texture</varname>
is not a
GL texture object whose type matches
<varname>texture_target</varname>, if the specified <varname>miplevel</varname> of
<varname>texture</varname> is not defined,
or if the width or height
of the specified <varname>miplevel</varname> is zero.
            </listitem>

            <listitem>
                <errorname>CL_INVALID_IMAGE_FORMAT_DESCRIPTOR</errorname> if the
OpenGL texture internal format
does not map to a supported OpenCL image format.
            </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="clCreateFromGLTexture3D">OpenCL Specification</olink>
        </para>
    </refsect1>


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

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

</refentry>

