diff options
Diffstat (limited to 'glew/auto/EGL-Registry/sdk/docs/man/html/eglMakeCurrent.xhtml')
-rw-r--r-- | glew/auto/EGL-Registry/sdk/docs/man/html/eglMakeCurrent.xhtml | 381 |
1 files changed, 381 insertions, 0 deletions
diff --git a/glew/auto/EGL-Registry/sdk/docs/man/html/eglMakeCurrent.xhtml b/glew/auto/EGL-Registry/sdk/docs/man/html/eglMakeCurrent.xhtml new file mode 100644 index 0000000..14f28ec --- /dev/null +++ b/glew/auto/EGL-Registry/sdk/docs/man/html/eglMakeCurrent.xhtml @@ -0,0 +1,381 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <title xmlns:xlink="http://www.w3.org/1999/xlink">eglMakeCurrent - EGL Reference Pages</title> + <link rel="stylesheet" type="text/css" href="khronos-man.css"/> + <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/> + </head> + <body> + <header/> + <div class="refentry" id="eglMakeCurrent"> + <div class="titlepage"/> + <div class="refnamediv"> + <h2>Name</h2> + <p>eglMakeCurrent — + attach an EGL rendering context to EGL surfaces + </p> + </div> + <div class="refsynopsisdiv"> + <h2>C Specification</h2> + <div class="funcsynopsis"> + <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table"> + <tr> + <td> + <code class="funcdef">EGLBoolean <strong class="fsfunc">eglMakeCurrent</strong>(</code> + </td> + <td>EGLDisplay <var class="pdparam">display</var>, </td> + </tr> + <tr> + <td> </td> + <td>EGLSurface <var class="pdparam">draw</var>, </td> + </tr> + <tr> + <td> </td> + <td>EGLSurface <var class="pdparam">read</var>, </td> + </tr> + <tr> + <td> </td> + <td>EGLContext <var class="pdparam">context</var><code>)</code>;</td> + </tr> + </table> + <div class="funcprototype-spacer"> </div> + </div> + </div> + <div class="refsect1" id="parameters"> + <h2>Parameters</h2> + <div class="variablelist"> + <dl class="variablelist"> + <dt> + <span class="term"> + <em class="parameter"> + <code>display</code> + </em> + </span> + </dt> + <dd> + <p>Specifies the <abbr class="acronym">EGL</abbr> display connection.</p> + </dd> + <dt> + <span class="term"> + <em class="parameter"> + <code>draw</code> + </em> + </span> + </dt> + <dd> + <p>Specifies the <abbr class="acronym">EGL</abbr> draw surface.</p> + </dd> + <dt> + <span class="term"> + <em class="parameter"> + <code>read</code> + </em> + </span> + </dt> + <dd> + <p>Specifies the <abbr class="acronym">EGL</abbr> read surface.</p> + </dd> + <dt> + <span class="term"> + <em class="parameter"> + <code>context</code> + </em> + </span> + </dt> + <dd> + <p>Specifies the <abbr class="acronym">EGL</abbr> rendering context + to be attached to the surfaces. + </p> + </dd> + </dl> + </div> + </div> + <div class="refsect1" id="description"> + <h2>Description</h2> + <p> + <code class="function">eglMakeCurrent</code> binds <em class="parameter"><code>context</code></em> + to the current rendering thread and to the <em class="parameter"><code>draw</code></em> + and <em class="parameter"><code>read</code></em> surfaces. + </p> + <p> + For an OpenGL or OpenGL ES context, <em class="parameter"><code>draw</code></em> + is used for all operations except for any pixel data read back or copied + (<a class="citerefentry" href="glReadPixels.xhtml"><span class="citerefentry"><span class="refentrytitle">glReadPixels</span></span></a>, + <a class="citerefentry" href="glCopyTexImage2D.xhtml"><span class="citerefentry"><span class="refentrytitle">glCopyTexImage2D</span></span></a>, and + <a class="citerefentry" href="glCopyTexSubImage2D.xhtml"><span class="citerefentry"><span class="refentrytitle">glCopyTexSubImage2D</span></span></a>), + which is taken from the frame buffer values of + <em class="parameter"><code>read</code></em>. Note that the same + <span class="type">EGLSurface</span> may be specified for both draw and read. + </p> + <p> + For an OpenVG context, the same <span class="type">EGLSurface</span> must be + specified for both <em class="parameter"><code>draw</code></em> and + <em class="parameter"><code>read</code></em>. + </p> + <p> + If the calling thread has already a current rendering context of + the same client API type as <em class="parameter"><code>context</code></em>, then + that context is flushed and marked as no longer current. + <em class="parameter"><code>context</code></em> is then made the current context + for the calling thread. For purposes of + <code class="function">eglMakeCurrent</code>, 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 + <em class="parameter"><code>context</code></em> is an OpenGL context, or if any + OpenGL context is currently bound and + <em class="parameter"><code>context</code></em> is an OpenGL ES context, the + currently bound context will be made no longer current and + <em class="parameter"><code>context</code></em> will be made current. + </p> + <p> + OpenGL and OpenGL ES buffer mappings created by e.g. + <code class="function">glMapBuffer</code> are not affected by + <code class="function">eglMakeCurrent</code>; they persist whether the + context owning the buffer is current or not. + </p> + <p> + If <em class="parameter"><code>draw</code></em> is destroyed after + <code class="function">eglMakeCurrent</code> is called, then subsequent + rendering commands will be processed and the context state will + be updated, but the surface contents become undefined. If + <em class="parameter"><code>read</code></em> is destroyed after + <code class="function">eglMakeCurrent</code> then pixel values + <em class="parameter"><code>read</code></em> from the framebuffer (e.g., as + result of calling glReadPixels) are undefined. If a native + window or pixmap underlying the <em class="parameter"><code>draw</code></em> or + <em class="parameter"><code>read</code></em> surfaces is destroyed, rendering and + <em class="parameter"><code>read</code></em>back are handled as above. + </p> + <p> + To release the current context without assigning a new one, set + <em class="parameter"><code>context</code></em> to + <code class="constant">EGL_NO_CONTEXT</code> and set + <em class="parameter"><code>draw</code></em> and <em class="parameter"><code>read</code></em> to + <code class="constant">EGL_NO_SURFACE</code> . 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 + <code class="function">eglMakeCurrent</code> returns. This is the only + case in which <code class="function">eglMakeCurrent</code> respects the + current rendering API. In all other cases, the client API + affected is determined by <em class="parameter"><code>context</code></em>. This + is the only case where an uninitialized display may be passed to + <code class="function">eglMakeCurrent</code>. + </p> + <p> + If ctx is not <code class="constant">EGL_NO_CONTEXT</code>, then both + <em class="parameter"><code>draw</code></em> and <em class="parameter"><code>read</code></em> must + not be <code class="constant">EGL_NO_SURFACE</code> unless + <em class="parameter"><code>context</code></em> 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 + <code class="constant">GL_OES_surfaceless_context</code> OpenGL ES + extension.). + </p> + <p> + The first time a OpenGL or OpenGL ES context is made current the + viewport and scissor dimensions are set to the size of the + <em class="parameter"><code>draw</code></em> surface (as though + <code class="function">glViewport</code>(0,0,w,h) and + <code class="function">glScissor</code>(0,0,<em class="parameter"><code>w</code></em>,<em class="parameter"><code>h</code></em>) + were called, where <em class="parameter"><code>w</code></em> and + <em class="parameter"><code>h</code></em> are the width and height of the + surface, respectively). However, the viewport and scissor + dimensions are not modified when <em class="parameter"><code>context</code></em> + is subsequently made current. The client is responsible for + resetting the viewport and scissor in this case. + </p> + <p> + The first time <em class="parameter"><code>context</code></em> is made current, + if it is without a default framebuffer (e.g. both + <em class="parameter"><code>draw</code></em> and <em class="parameter"><code>read</code></em> are + <code class="constant">EGL_NO_SURFACE</code> ), then the viewport and + scissor regions are set as though + <code class="function">glViewport</code>(0,0,0,0) and + <code class="function">glScissor</code>(0,0,0,0) were called. + </p> + <p> + Implementations may delay allocation of auxiliary buffers for a + surface until they are required by a context (which may result + in the <code class="constant">EGL_BAD_ALLOC</code> error described + above). Once allocated, however, auxiliary buffers and their + contents persist until a surface is deleted. + </p> + <p> + Use + <a class="citerefentry" href="eglGetCurrentContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentContext</span></span></a>, + <a class="citerefentry" href="eglGetCurrentDisplay.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentDisplay</span></span></a>, and + <a class="citerefentry" href="eglGetCurrentSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentSurface</span></span></a> + to query the current rendering context and associated display connection and surfaces. + </p> + </div> + <div class="refsect1" id="errors"> + <h2>Errors</h2> + <p> + If <em class="parameter"><code>draw</code></em> or <em class="parameter"><code>read</code></em> + are not compatible with <em class="parameter"><code>context</code></em>, then an + <code class="constant">EGL_BAD_MATCH</code> error is generated. + </p> + <p> + If <em class="parameter"><code>context</code></em> is current to some other + thread, or if either <em class="parameter"><code>draw</code></em> or + <em class="parameter"><code>read</code></em> are bound to contexts in another + thread, an <code class="constant">EGL_BAD_ACCESS</code> error is + generated. + </p> + <p> + If binding <em class="parameter"><code>context</code></em> would exceed the + number of current contexts of that client API type supported by + the implementation, an <code class="constant">EGL_BAD_ACCESS</code> error + is generated. + </p> + <p> + If either <em class="parameter"><code>draw</code></em> or + <em class="parameter"><code>read</code></em> are pbuffers created with + <code class="function">eglCreatePbufferFromClientBuffer</code>, and the + underlying bound client API buffers are in use by the client API + that created them, an <code class="constant">EGL_BAD_ACCESS</code> error + is generated. + </p> + <p> + If <em class="parameter"><code>context</code></em> is not a valid context and is + not <code class="constant">EGL_NO_CONTEXT</code>, an + <code class="constant">EGL_BAD_CONTEXT</code> error is generated. + </p> + <p> + If either <em class="parameter"><code>draw</code></em> or + <em class="parameter"><code>read</code></em> are not valid EGL surfaces and are + not <code class="constant">EGL_NO_SURFACE</code>, an + <code class="constant">EGL_BAD_SURFACE</code> error is generated. + </p> + <p> + If <em class="parameter"><code>context</code></em> is + <code class="constant">EGL_NO_CONTEXT</code> and either + <em class="parameter"><code>draw</code></em> or <em class="parameter"><code>read</code></em> are + not <code class="constant">EGL_NO_SURFACE</code>, an + <code class="constant">EGL_BAD_MATCH</code> error is generated. + </p> + <p> + If either of <em class="parameter"><code>draw</code></em> or + <em class="parameter"><code>read</code></em> is a valid surface and the other is + <code class="constant">EGL_NO_SURFACE</code>, an + <code class="constant">EGL_BAD_MATCH</code> error is generated. + </p> + <p> + If <em class="parameter"><code>context</code></em> does not support being bound + without <em class="parameter"><code>read</code></em> and + <em class="parameter"><code>draw</code></em> surfaces, and both + <em class="parameter"><code>draw</code></em> and <em class="parameter"><code>read</code></em> are + <code class="constant">EGL_NO_SURFACE</code>, an + <code class="constant">EGL_BAD_MATCH</code> error is generated. + </p> + <p> + If a native window underlying either <em class="parameter"><code>draw</code></em> + or <em class="parameter"><code>read</code></em> is no longer valid, an + <code class="constant">EGL_BAD_NATIVE_WINDOW</code> error is generated. + </p> + <p> + If <em class="parameter"><code>draw</code></em> and <em class="parameter"><code>read</code></em> + cannot fit into graphics memory simultaneously, an + <code class="constant">EGL_BAD_MATCH</code> error is generated. + </p> + <p> + If the previous context of the calling thread has unflushed + commands, and the previous surface is no longer valid, an + <code class="constant">EGL_BAD_CURRENT_SURFACE</code> error is generated. + </p> + <p> + If the ancillary buffers for <em class="parameter"><code>draw</code></em> and + <em class="parameter"><code>read</code></em> cannot be allocated, an + <code class="constant">EGL_BAD_ALLOC</code> error is generated. + </p> + <p> + If a power management event has occurred, an + <code class="constant">EGL_CONTEXT_LOST</code> error is generated. + </p> + <p> + If any of the following are true: + + </p> + <div class="itemizedlist"> + <ul class="itemizedlist" style="list-style-type: disc; "> + <li class="listitem"> + <p> + <em class="parameter"><code>context</code></em> is not + <code class="constant">EGL_NO_CONTEXT</code> + </p> + </li> + <li class="listitem"> + <p> + <em class="parameter"><code>read</code></em> is not + <code class="constant">EGL_NO_SURFACE</code> + </p> + </li> + <li class="listitem"> + <p> + <em class="parameter"><code>draw</code></em> is not + <code class="constant">EGL_NO_SURFACE</code> + </p> + </li> + </ul> + </div> + <p> + + then an <code class="constant">EGL_NOT_INITIALIZED</code> error is + generated if <em class="parameter"><code>display</code></em> is a valid but + uninitialized display. + </p> + <p> + As with other commands taking <span class="type">EGLDisplay</span> + parameters, if <em class="parameter"><code>display</code></em> is not a valid + <span class="type">EGLDisplay</span> handle, an + <code class="constant">EGL_BAD_DISPLAY</code> error is generated. (Some + implementations have chosen to allow + <code class="constant">EGL_NO_DISPLAY</code> as a valid + <em class="parameter"><code>display</code></em> parameter for + <code class="function">eglMakeCurrent</code>. This behavior is not + portable to all EGL implementations, and should be considered as + an undocumented vendor extension). + </p> + </div> + <div class="refsect1" id="seealso"> + <h2>See Also</h2> + <p> + <a class="citerefentry" href="glReadPixels.xhtml"><span class="citerefentry"><span class="refentrytitle">glReadPixels</span></span></a>, + <a class="citerefentry" href="glCopyTexImage2D.xhtml"><span class="citerefentry"><span class="refentrytitle">glCopyTexImage2D</span></span></a>, + <a class="citerefentry" href="glCopyTexSubImage2D.xhtml"><span class="citerefentry"><span class="refentrytitle">glCopyTexSubImage2D</span></span></a>, + <a class="citerefentry" href="eglCreateContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateContext</span></span></a>, + <a class="citerefentry" href="eglCreatePbufferSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>, + <a class="citerefentry" href="eglCreatePixmapSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePixmapSurface</span></span></a>, + <a class="citerefentry" href="eglCreateWindowSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateWindowSurface</span></span></a>, + <a class="citerefentry" href="eglGetCurrentContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentContext</span></span></a>, + <a class="citerefentry" href="eglGetCurrentDisplay.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentDisplay</span></span></a>, + <a class="citerefentry" href="eglGetCurrentSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentSurface</span></span></a>, + <a class="citerefentry" href="eglGetDisplay.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetDisplay</span></span></a>, + <a class="citerefentry" href="eglInitialize.xhtml"><span class="citerefentry"><span class="refentrytitle">eglInitialize</span></span></a> + </p> + </div> + <p> + </p> + <div class="refsect3" id="copyright"> + <img src="KhronosLogo.jpg"/> + <p> + Copyright © 2003-2014 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. + </p> + </div> + <p> +</p> + </div> + <footer/> + </body> +</html> |