summaryrefslogtreecommitdiff
path: root/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglMakeCurrent.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/eglMakeCurrent.xml
parentcd7c76017a12bb548036571c1ff13e551369d06d (diff)
add engine version
Diffstat (limited to 'engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglMakeCurrent.xml')
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglMakeCurrent.xml321
1 files changed, 321 insertions, 0 deletions
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglMakeCurrent.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglMakeCurrent.xml
new file mode 100644
index 0000000..3464640
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglMakeCurrent.xml
@@ -0,0 +1,321 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglMakeCurrent">
+ <info>
+ <copyright>
+ <year>2003-2018</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglMakeCurrent</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglMakeCurrent</refname>
+ <refpurpose>
+ attach an EGL rendering context to EGL surfaces
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglMakeCurrent</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLSurface <parameter>draw</parameter></paramdef>
+ <paramdef>EGLSurface <parameter>read</parameter></paramdef>
+ <paramdef>EGLContext <parameter>context</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem>
+ <para>Specifies the <acronym>EGL</acronym> display connection.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>draw</parameter></term>
+ <listitem>
+ <para>Specifies the <acronym>EGL</acronym> draw surface.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>read</parameter></term>
+ <listitem>
+ <para>Specifies the <acronym>EGL</acronym> read surface.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>context</parameter></term>
+ <listitem>
+ <para>Specifies the <acronym>EGL</acronym> rendering context
+ to be attached to the surfaces.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglMakeCurrent</function> binds <parameter>context</parameter>
+ to the current rendering thread and to the <parameter>draw</parameter>
+ and <parameter>read</parameter> surfaces.
+ </para>
+ <para>
+ For an OpenGL or OpenGL ES context, <parameter>draw</parameter>
+ is used for all operations except for any pixel data read back or copied
+ (<citerefentry><refentrytitle>glReadPixels</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>glCopyTexImage2D</refentrytitle></citerefentry>, and
+ <citerefentry><refentrytitle>glCopyTexSubImage2D</refentrytitle></citerefentry>),
+ which is taken from the frame buffer values of
+ <parameter>read</parameter>. Note that the same
+ <type>EGLSurface</type> may be specified for both draw and read.
+ </para>
+ <para>
+ For an OpenVG context, the same <type>EGLSurface</type> must be
+ specified for both <parameter>draw</parameter> and
+ <parameter>read</parameter>.
+ </para>
+ <para>
+ If the calling thread has already a current rendering context of
+ the same client API type as <parameter>context</parameter>, then
+ that context is flushed and marked as no longer current.
+ <parameter>context</parameter> is then made the current context
+ for the calling thread. For purposes of
+ <function>eglMakeCurrent</function>, the client API type of all
+ OpenGL ES and OpenGL contexts is considered the same. In other
+ words, if any OpenGL ES context is currently bound and
+ <parameter>context</parameter> is an OpenGL context, or if any
+ OpenGL context is currently bound and
+ <parameter>context</parameter> is an OpenGL ES context, the
+ currently bound context will be made no longer current and
+ <parameter>context</parameter> will be made current.
+ </para>
+ <para>
+ OpenGL and OpenGL ES buffer mappings created by e.g.
+ <function>glMapBuffer</function> are not affected by
+ <function>eglMakeCurrent</function>; they persist whether the
+ context owning the buffer is current or not.
+ </para>
+ <para>
+ If <parameter>draw</parameter> is destroyed after
+ <function>eglMakeCurrent</function> is called, then subsequent
+ rendering commands will be processed and the context state will
+ be updated, but the surface contents become undefined. If
+ <parameter>read</parameter> is destroyed after
+ <function>eglMakeCurrent</function> then pixel values
+ <parameter>read</parameter> from the framebuffer (e.g., as
+ result of calling glReadPixels) are undefined. If a native
+ window or pixmap underlying the <parameter>draw</parameter> or
+ <parameter>read</parameter> surfaces is destroyed, rendering and
+ <parameter>read</parameter>back are handled as above.
+ </para>
+ <para>
+ To release the current context without assigning a new one, set
+ <parameter>context</parameter> to
+ <constant>EGL_NO_CONTEXT</constant> and set
+ <parameter>draw</parameter> and <parameter>read</parameter> to
+ <constant>EGL_NO_SURFACE</constant> . The currently bound
+ context for the client API specified by the current rendering
+ API is flushed and marked as no longer current, and there will
+ be no current context for that client API after
+ <function>eglMakeCurrent</function> returns. This is the only
+ case in which <function>eglMakeCurrent</function> respects the
+ current rendering API. In all other cases, the client API
+ affected is determined by <parameter>context</parameter>. This
+ is the only case where an uninitialized display may be passed to
+ <function>eglMakeCurrent</function>.
+ </para>
+ <para>
+ If ctx is not <constant>EGL_NO_CONTEXT</constant>, then both
+ <parameter>draw</parameter> and <parameter>read</parameter> must
+ not be <constant>EGL_NO_SURFACE</constant> unless
+ <parameter>context</parameter> is a context which supports being
+ bound without read and draw surfaces. In this case the context
+ is made current without a default framebuffer. The meaning of
+ this is defined by the client API of the supporting context (see
+ chapter 4 of the OpenGL 3.0 Specification, and the
+ <constant>GL_OES_surfaceless_context</constant> OpenGL ES
+ extension.).
+ </para>
+ <para>
+ The first time a OpenGL or OpenGL ES context is made current the
+ viewport and scissor dimensions are set to the size of the
+ <parameter>draw</parameter> surface (as though
+ <function>glViewport</function>(0,0,w,h) and
+ <function>glScissor</function>(0,0,<parameter>w</parameter>,<parameter>h</parameter>)
+ were called, where <parameter>w</parameter> and
+ <parameter>h</parameter> are the width and height of the
+ surface, respectively). However, the viewport and scissor
+ dimensions are not modified when <parameter>context</parameter>
+ is subsequently made current. The client is responsible for
+ resetting the viewport and scissor in this case.
+ </para>
+ <para>
+ The first time <parameter>context</parameter> is made current,
+ if it is without a default framebuffer (e.g. both
+ <parameter>draw</parameter> and <parameter>read</parameter> are
+ <constant>EGL_NO_SURFACE</constant> ), then the viewport and
+ scissor regions are set as though
+ <function>glViewport</function>(0,0,0,0) and
+ <function>glScissor</function>(0,0,0,0) were called.
+ </para>
+ <para>
+ Implementations may delay allocation of auxiliary buffers for a
+ surface until they are required by a context (which may result
+ in the <constant>EGL_BAD_ALLOC</constant> error described
+ above). Once allocated, however, auxiliary buffers and their
+ contents persist until a surface is deleted.
+ </para>
+ <para>
+ Use
+ <citerefentry><refentrytitle>eglGetCurrentContext</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetCurrentDisplay</refentrytitle></citerefentry>, and
+ <citerefentry><refentrytitle>eglGetCurrentSurface</refentrytitle></citerefentry>
+ to query the current rendering context and associated display connection and surfaces.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ If <parameter>draw</parameter> or <parameter>read</parameter>
+ are not compatible with <parameter>context</parameter>, then an
+ <constant>EGL_BAD_MATCH</constant> error is generated.
+ </para>
+ <para>
+ If <parameter>context</parameter> is current to some other
+ thread, or if either <parameter>draw</parameter> or
+ <parameter>read</parameter> are bound to contexts in another
+ thread, an <constant>EGL_BAD_ACCESS</constant> error is
+ generated.
+ </para>
+ <para>
+ If binding <parameter>context</parameter> would exceed the
+ number of current contexts of that client API type supported by
+ the implementation, an <constant>EGL_BAD_ACCESS</constant> error
+ is generated.
+ </para>
+ <para>
+ If either <parameter>draw</parameter> or
+ <parameter>read</parameter> are pbuffers created with
+ <function>eglCreatePbufferFromClientBuffer</function>, and the
+ underlying bound client API buffers are in use by the client API
+ that created them, an <constant>EGL_BAD_ACCESS</constant> error
+ is generated.
+ </para>
+ <para>
+ If <parameter>context</parameter> is not a valid context and is
+ not <constant>EGL_NO_CONTEXT</constant>, an
+ <constant>EGL_BAD_CONTEXT</constant> error is generated.
+ </para>
+ <para>
+ If either <parameter>draw</parameter> or
+ <parameter>read</parameter> are not valid EGL surfaces and are
+ not <constant>EGL_NO_SURFACE</constant>, an
+ <constant>EGL_BAD_SURFACE</constant> error is generated.
+ </para>
+ <para>
+ If <parameter>context</parameter> is
+ <constant>EGL_NO_CONTEXT</constant> and either
+ <parameter>draw</parameter> or <parameter>read</parameter> are
+ not <constant>EGL_NO_SURFACE</constant>, an
+ <constant>EGL_BAD_MATCH</constant> error is generated.
+ </para>
+ <para>
+ If either of <parameter>draw</parameter> or
+ <parameter>read</parameter> is a valid surface and the other is
+ <constant>EGL_NO_SURFACE</constant>, an
+ <constant>EGL_BAD_MATCH</constant> error is generated.
+ </para>
+ <para>
+ If <parameter>context</parameter> does not support being bound
+ without <parameter>read</parameter> and
+ <parameter>draw</parameter> surfaces, and both
+ <parameter>draw</parameter> and <parameter>read</parameter> are
+ <constant>EGL_NO_SURFACE</constant>, an
+ <constant>EGL_BAD_MATCH</constant> error is generated.
+ </para>
+ <para>
+ If a native window underlying either <parameter>draw</parameter>
+ or <parameter>read</parameter> is no longer valid, an
+ <constant>EGL_BAD_NATIVE_WINDOW</constant> error is generated.
+ </para>
+ <para>
+ If <parameter>draw</parameter> and <parameter>read</parameter>
+ cannot fit into graphics memory simultaneously, an
+ <constant>EGL_BAD_MATCH</constant> error is generated.
+ </para>
+ <para>
+ If the previous context of the calling thread has unflushed
+ commands, and the previous surface is no longer valid, an
+ <constant>EGL_BAD_CURRENT_SURFACE</constant> error is generated.
+ </para>
+ <para>
+ If the ancillary buffers for <parameter>draw</parameter> and
+ <parameter>read</parameter> cannot be allocated, an
+ <constant>EGL_BAD_ALLOC</constant> error is generated.
+ </para>
+ <para>
+ If a power management event has occurred, an
+ <constant>EGL_CONTEXT_LOST</constant> error is generated.
+ </para>
+ <para>
+ If any of the following are true:
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <parameter>context</parameter> is not
+ <constant>EGL_NO_CONTEXT</constant>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <parameter>read</parameter> is not
+ <constant>EGL_NO_SURFACE</constant>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <parameter>draw</parameter> is not
+ <constant>EGL_NO_SURFACE</constant>
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ then an <constant>EGL_NOT_INITIALIZED</constant> error is
+ generated if <parameter>display</parameter> is a valid but
+ uninitialized display.
+ </para>
+ <para>
+ As with other commands taking <type>EGLDisplay</type>
+ parameters, if <parameter>display</parameter> is not a valid
+ <type>EGLDisplay</type> handle, an
+ <constant>EGL_BAD_DISPLAY</constant> error is generated. (Some
+ implementations have chosen to allow
+ <constant>EGL_NO_DISPLAY</constant> as a valid
+ <parameter>display</parameter> parameter for
+ <function>eglMakeCurrent</function>. This behavior is not
+ portable to all EGL implementations, and should be considered as
+ an undocumented vendor extension).
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>glReadPixels</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>glCopyTexImage2D</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>glCopyTexSubImage2D</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreateContext</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetCurrentContext</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetCurrentDisplay</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetCurrentSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetDisplay</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglInitialize</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>