<?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 xml:base="" id="eglCreatePbufferFromClientBuffer">
    <refentryinfo>
         <copyright>
             <year>2003-2014</year>
             <holder>The Khronos Group Inc.</holder>
         </copyright>
    </refentryinfo>
    <refmeta>
        <refentrytitle>eglCreatePbufferFromClientBuffer</refentrytitle>
        <manvolnum>3G</manvolnum>
    </refmeta>
    <refnamediv>
        <refname>eglCreatePbufferFromClientBuffer</refname>
        <refpurpose>
            create a new <acronym>EGL</acronym> pixel buffer surface
            bound to an OpenVG image
        </refpurpose>
    </refnamediv>
    <refsynopsisdiv>
        <title>C Specification</title>
        <funcsynopsis>
            <funcprototype>
                <funcdef>EGLSurface <function>eglCreatePbufferFromClientBuffer</function></funcdef>
                <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
                <paramdef>EGLenum <parameter>buftype</parameter></paramdef>
                <paramdef>EGLClientBuffer <parameter>buffer</parameter></paramdef>
                <paramdef>EGLConfig <parameter>config</parameter></paramdef>
                <paramdef>EGLint const * <parameter>attrib_list</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
    </refsynopsisdiv>
    <refsect1 id="parameters"><title>Parameters</title>
        <variablelist>
            <varlistentry>
                <term><parameter>display</parameter></term>
                <listitem><para>Specifies the EGL display connection.</para></listitem>
            </varlistentry>
            <varlistentry>
                <term><parameter>buftype</parameter></term>
                <listitem>
                <para>
                    Specifies the type of client API buffer to be bound.
                    Must be <constant>EGL_OPENVG_IMAGE</constant>,
                    corresponding to an OpenVG <type>VGImage</type>
                    buffer.
                </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><parameter>buffer</parameter></term>
                <listitem>
                <para>
                    Specifies the OpenVG <type>VGImage</type> handle of
                    the buffer to be bound.
                </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><parameter>config</parameter></term>
                <listitem><para>
                    Specifies the EGL frame buffer configuration that defines the
                    frame buffer resource available to the surface.
                </para></listitem>
            </varlistentry>
            <varlistentry>
                <term><parameter>attrib_list</parameter></term>
                <listitem><para>
                    Specifies pixel buffer surface attributes.
                    May be <constant>NULL</constant> or empty
                    (first attribute is <constant>EGL_NONE</constant>).
                </para></listitem>
            </varlistentry>
        </variablelist>
    </refsect1>
    <refsect1 id="description"><title>Description</title>
        <para>
            <function>eglCreatePbufferFromClientBuffer</function> creates an
            off-screen pixel buffer surface and returns its handle. If
            <function>eglCreatePbufferFromClientBuffer</function> fails to create
            a pixel buffer surface, <constant>EGL_NO_SURFACE</constant>
            is returned.
        </para>
        <para>
            The new pixel buffer surface is similar to a pixel buffer
            created with
            <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>,
            but storage for the color buffer is provided by a client API
            buffer. Other buffer required by
            <parameter>config</parameter>, such as depth, stencil, and
            alpha mask, are allocated by EGL.
        </para>
        <para>
            <parameter>buftype</parameter> must be
            <constant>EGL_OPENVG_IMAGE</constant>, corresponding to an
            OpenVG <type>VGImage</type> buffer.
            <parameter>buffer</parameter> must be a valid
            <type>VGImage</type> handle in the current OpenVG context,
            cast into the type <type>EGLClientBuffer</type>.
        </para>
        <para>
            The height, width,, OpenVG alpha format, and OpenVG
            colorspace (surface attributes
            <constant>EGL_HEIGHT</constant>,
            <constant>EGL_WIDTH</constant>,
            <constant>EGL_VG_ALPHA_FORMAT</constant>, and
            <constant>EGL_VG_COLORSPACE</constant>, respectively) of the
            resulting surface are determined by the size and format of
            <parameter>buffer</parameter>.
        </para>
        <para>
            Surface attributes are specified as a list of
            attribute-value pairs, terminated with
            <constant>EGL_NONE</constant>. Accepted attributes are:
        </para>
        <variablelist>
            <varlistentry>
                <term><constant>EGL_MIPMAP_TEXTURE</constant></term>
                <listitem>
                <para>
                    Specifies whether storage for mipmaps should be
                    allocated. Space for mipmaps will be set aside if
                    the attribute value is <constant>EGL_TRUE</constant>
                    and <constant>EGL_TEXTURE_FORMAT</constant> is not
                    <constant>EGL_NO_TEXTURE</constant>. The default
                    value is <constant>EGL_FALSE</constant>.
                </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>EGL_TEXTURE_FORMAT</constant></term>
                <listitem>
                <para>
                    Specifies the format of the texture that will be
                    created when a pbuffer is bound to a texture map.
                    Possible values are
                    <constant>EGL_NO_TEXTURE</constant>,
                    <constant>EGL_TEXTURE_RGB</constant>, and
                    <constant>EGL_TEXTURE_RGBA</constant>. The default
                    value is <constant>EGL_NO_TEXTURE</constant>.
                </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>EGL_TEXTURE_TARGET</constant></term>
                <listitem>
                <para>
                    Specifies the target for the texture that will be
                    created when the pbuffer is created with a texture
                    format of <constant>EGL_TEXTURE_RGB</constant> or
                    <constant>EGL_TEXTURE_RGBA</constant>. Possible
                    values are <constant>EGL_NO_TEXTURE</constant>, or
                    <constant>EGL_TEXTURE_2D</constant>. The default
                    value is <constant>EGL_NO_TEXTURE</constant>.
                </para>
                </listitem>
            </varlistentry>
        </variablelist>
        <para>
            Any EGL rendering context that was created with respect to
            <parameter>config</parameter> can be used to render into the
            surface. Use
            <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>
            to attach an EGL rendering context to the surface.
        </para>
        <para>
            Use
            <citerefentry><refentrytitle>eglQuerySurface</refentrytitle></citerefentry>
            to retrieve the dimensions of the allocated pixel buffer
            surface or the ID of <parameter>config</parameter>.
        </para>
        <para>
            Use <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>
            to destroy the surface.
        </para>
    </refsect1>
    <refsect1 id="notes"><title>Notes</title>
        <para>
            <function>eglCreatePbufferFromClientBuffer</function> is
            supported only if the EGL version is 1.2 or greater, and if
            the EGL implementation supports the OpenVG client API.
        </para>
        <para>
            Currently
            <function>eglCreatePbufferFromClientBuffer</function> only
            supports binding OpenVG <type>VGImage</type> buffers to
            pixel buffers. While other client API resources could be
            supported in the future, mechanisms such as OpenGL ES
            framebuffer objects, and the family of EGL and client API
            extensions for defining and using <type>EGLImageKHR</type>
            images, are a more flexible and general framework to satisfy
            most of the same needs.
        </para>
        <para>
            If the value of <parameter>config</parameter> attribute
            <constant>EGL_TEXTURE_FORMAT</constant> is not
            <constant>EGL_NO_TEXTURE</constant>, then the pbuffer width
            and height specify the size of the level zero texture image
        </para>
        <para>
            If <constant>EGL_LARGEST_PBUFFER</constant> is specified and
            if the pbuffer will be used as a texture (i.e. the value of
            <constant>EGL_TEXTURE_TARGET</constant> is
            <constant>EGL_TEXTURE_2D</constant>, and the value of
            <constant>EGL_TEXTURE FORMAT</constant> is
            <constant>EGL_TEXTURE_RGB</constant> or
            <constant>EGL_TEXTURE_RGBA</constant>), then the aspect
            ratio will be preserved and the new width and height will be
            valid sizes for the texture target (e.g. if the underlying
            OpenGL ES implementation does not support non-power-of-two
            textures, both the width and height will be a power of 2).
        </para>
        <para>
            The contents of the depth and stencil buffers may not be
            preserved when rendering a texture to the pbuffer and
            switching which image of the texture is rendered to (e.g.,
            switching from rendering one mipmap level to rendering
            another).
        </para>
        <para>
            Binding client API buffers to EGL pbuffers create the
            possibility of race conditions, and of buffers being deleted
            through one API while still in use in another API. To avoid
            these problems, a number of constraints apply to bound
            client API buffers:
            <orderedlist>
                <listitem>
                <para>
                    Bound buffers may be used exclusively by either EGL,
                    or the client API that originally created them. For
                    example, if a <type>VGImage</type> is bound to a
                    pbuffer, and that pbuffer is bound to any client API
                    rendering context, then the <type>VGImage</type> may
                    not be used as the explicit source or destination of
                    any OpenVG operation. Errors resulting from such use
                    are described in client API specifications.
                    Similarly, while a <type>VGImage</type> is in use by
                    OpenVG, the pbuffer it is bound to may not be made
                    current to any client API context using
                    <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>.
                </para>
                </listitem>
                <listitem>
                <para>
                    Binding a buffer creates an additional reference to
                    it, and implementations must respect outstanding
                    references when destroying objects. For example, if
                    a <type>VGImage</type> is bound to a pbuffer,
                    destroying the image with
                    <function>vgDestroyImage</function> will not free
                    the underlying buffer, because it is still in use by
                    EGL. However, following
                    <function>vgDestroyImage</function> the buffer may
                    only be referred to via the EGL pbuffer handle,
                    since the OpenVG handle to that buffer no longer
                    exists. Similarly, destroying the pbuffer with
                    <function>eglDestroySurface</function> will not free
                    the underlying buffer, because it is still in use by
                    OpenVG . However, following
                    <function>eglDestroySurface</function> the buffer
                    may only be referred to via the OpenVG
                    <type>VGImage</type> handle, since the EGL pbuffer
                    handle no longer exists.
                </para>
                </listitem>
            </orderedlist>
        </para>
    </refsect1>
    <refsect1 id="errors"><title>Errors</title>
        <para>
            <constant>EGL_NO_SURFACE</constant> is returned if creation of
            the context fails.
        </para>
        <para>
            <constant>EGL_BAD_DISPLAY</constant> is generated if
            <parameter>display</parameter> is not an EGL display connection.
        </para>
        <para>
            <constant>EGL_NOT_INITIALIZED</constant> is generated if
            <parameter>display</parameter> has not been initialized.
        </para>
        <para>
            <constant>EGL_BAD_CONFIG</constant> is generated if
            <parameter>config</parameter> is not an EGL frame buffer configuration.
        </para>
        <para>
            <constant>EGL_BAD_PARAMETER</constant> is generated if
            <parameter>buftype</parameter> is not
            <constant>EGL_OPENVG_IMAGE</constant>, or if
            <parameter>buffer</parameter> is not a valid handle to a
            <type>VGImage</type> object in the currently bound OpenVG
            context.
        </para>
        <para>
            <constant>EGL_BAD_ACCESS</constant> is generated if there is
            no current OpenVG context, or if
            <parameter>buffer</parameter> is already bound to another
            pixel buffer or in use by OpenVG as discussed in the Notes
            section above.
        </para>
        <para>
            <constant>EGL_BAD_ALLOC</constant> is generated if there are not
            enough resources to allocate the new surface.
        </para>
        <para>
            <constant>EGL_BAD_ATTRIBUTE</constant> is generated if
            <parameter>attrib_list</parameter> contains an invalid pixel
            buffer attribute or if an attribute value is not recognized
            or out of range.
        </para>
        <para>
            <constant>EGL_BAD_ATTRIBUTE</constant> is generated if
            <parameter>attrib_list</parameter> contains any of the
            attributes <constant>EGL_MIPMAP_TEXTURE</constant>,
            <constant>EGL_TEXTURE_FORMAT</constant>, or
            <constant>EGL_TEXTURE_TARGET</constant>, and
            <parameter>config</parameter> does not support OpenGL ES
            rendering (e.g. the EGL version is 1.2 or later, and the
            <constant>EGL_RENDERABLE_TYPE</constant> attribute of
            <parameter>config</parameter> does not include at least one
            of <constant>EGL_OPENGL_ES_BIT</constant> or
            <constant>EGL_OPENGL_ES2_BIT</constant>).
        </para>
        <para>
            <constant>EGL_BAD_MATCH</constant> is generated if
            <parameter>config</parameter> does not support rendering to pixel buffers
            (the <constant>EGL_SURFACE_TYPE</constant> attribute does not contain
            <constant>EGL_PBUFFER_BIT</constant>).
        </para>
        <para>
            <constant>EGL_BAD_MATCH</constant> is generated if the
            buffers contained in <parameter>buffer</parameter> do not
            match the bit depths for those buffers specified by
            <parameter>config</parameter>.
        </para>
        <para>
            <constant>EGL_BAD_MATCH</constant> is generated if the
            <constant>EGL_TEXTURE_FORMAT</constant> attribute is not
            <constant>EGL_NO_TEXTURE</constant>, and
            <constant>EGL_WIDTH</constant> and/or
            <constant>EGL_HEIGHT</constant> specify an invalid size
            (e.g., the texture size is not a power of 2, and the
            underlying OpenGL ES implementation does not support
            non-power-of-two textures).
        </para>
        <para>
            <constant>EGL_BAD_MATCH</constant> is generated if
            the <constant>EGL_TEXTURE_FORMAT</constant> attribute is
            <constant>EGL_NO_TEXTURE</constant>, and
            <constant>EGL_TEXTURE_TARGET</constant> is something other
            than <constant>EGL_NO_TEXTURE</constant>; or,
            <constant>EGL_TEXTURE_FORMAT</constant> is something other
            than <constant>EGL_NO_TEXTURE</constant>, and
            <constant>EGL_TEXTURE_TARGET</constant> is
            <constant>EGL_NO_TEXTURE</constant>.
        </para>
        <para>
            <constant>EGL_BAD_MATCH</constant> is generated if the
            implementation has additional constraints on which types of
            client API buffers may be bound to pixel buffer surfaces.
            For example, it is possible that the OpenVG implementation
            might not support a <type>VGImage</type> being bound to a
            pixel buffer which will be used as a mipmapped OpenGL ES
            texture (e.g. whose <constant>EGL_MIPMAP_TEXTURE</constant>
            attribute is <constant>TRUE</constant>). Any such
            constraints should be documented by the implementation
            release notes.
        </para>
    </refsect1>
    <refsect1 id="seealso"><title>See Also</title>
        <para>
            <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>eglQuerySurface</refentrytitle></citerefentry>
        </para>
    </refsect1>
    <refsect3 id="Copyright"><title></title>
        <!-- Content included from copyright.inc.xsl -->
        <imageobject>
                <imagedata fileref="KhronosLogo.jpg" format="jpg" />
        </imageobject>
        <para />
    </refsect3>
</refentry>
