diff options
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.xml | 321 |
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> |