summaryrefslogtreecommitdiff
path: root/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCreatePbufferFromClientBuffer.xml
diff options
context:
space:
mode:
authorjjesswan <jessica_wan@brown.edu>2024-04-22 21:56:26 -0400
committerjjesswan <jessica_wan@brown.edu>2024-04-22 21:56:26 -0400
commita556b45abf18f1bd509daaf63b66b7d55e9fd291 (patch)
treebc9b8a2d184c12aee236e7f9f276a34b84ca552d /engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCreatePbufferFromClientBuffer.xml
parentcd7c76017a12bb548036571c1ff13e551369d06d (diff)
add engine version
Diffstat (limited to 'engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCreatePbufferFromClientBuffer.xml')
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCreatePbufferFromClientBuffer.xml389
1 files changed, 389 insertions, 0 deletions
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCreatePbufferFromClientBuffer.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCreatePbufferFromClientBuffer.xml
new file mode 100644
index 0000000..bb311f3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCreatePbufferFromClientBuffer.xml
@@ -0,0 +1,389 @@
+<?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>