summaryrefslogtreecommitdiff
path: root/glew/auto/EGL-Registry/sdk/docs/man/html/eglIntro.xhtml
diff options
context:
space:
mode:
Diffstat (limited to 'glew/auto/EGL-Registry/sdk/docs/man/html/eglIntro.xhtml')
-rw-r--r--glew/auto/EGL-Registry/sdk/docs/man/html/eglIntro.xhtml304
1 files changed, 304 insertions, 0 deletions
diff --git a/glew/auto/EGL-Registry/sdk/docs/man/html/eglIntro.xhtml b/glew/auto/EGL-Registry/sdk/docs/man/html/eglIntro.xhtml
new file mode 100644
index 0000000..b82eade
--- /dev/null
+++ b/glew/auto/EGL-Registry/sdk/docs/man/html/eglIntro.xhtml
@@ -0,0 +1,304 @@
+<?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">eglIntro - 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="eglIntro">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglIntro —
+ introduction to managing client API rendering through the
+ <abbr class="acronym">EGL</abbr> API.
+ </p>
+ </div>
+ <div class="refsect1" id="overview">
+ <h2>Overview</h2>
+ <p>
+ The <em class="firstterm">Khronos Native Platform Graphics
+ Interface</em> (EGL) provides a means for rendering
+ using a <em class="firstterm">client API</em> such as OpenGL ES
+ (a 3D renderer for embedded systems), OpenGL (a functional
+ superset of OpenGL ES for desktop systems), and OpenVG (a 2D
+ vector graphics renderer) together with a
+ <em class="firstterm">platform</em>, such as Microsoft Windows or
+ the X Window System.
+ </p>
+ <p>
+ Depending on its implementation EGL might be more or less
+ tightly integrated into the platform. Most EGL
+ functions require an EGL display connection, which can be
+ obtained by calling
+ <a class="citerefentry" href="eglGetPlatformDisplay.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetPlatformDisplay</span></span></a>
+ or
+ <a class="citerefentry" href="eglGetDisplay.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetDisplay</span></span></a>.
+ To initialize and
+ query what EGL version is supported on the display
+ connection, call
+ <a class="citerefentry" href="eglInitialize.xhtml"><span class="citerefentry"><span class="refentrytitle">eglInitialize</span></span></a>.
+ </p>
+ <p>
+ The EGL specification does not define the set of platforms that
+ may be supported by an EGL implementation, nor does it specify
+ behavior specific to any platform. The set of supported
+ platforms and their behavior is defined by platform-specific
+ extensions. To detect if a particular platform is supported,
+ clients should query the <code class="constant">EGL_EXTENSIONS</code>
+ string of <code class="constant">EGL_NO_DISPLAY</code> using
+ <a class="citerefentry" href="eglQueryString.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQueryString</span></span></a>.
+ </p>
+ <p>
+ Platforms supporting EGL make a subset of their
+ visuals (which may also referred to as pixel formats, frame
+ buffer configurations, or other similar terms) available for
+ client API rendering. Windows and pixmaps created with these
+ visuals may also be rendered into using the platform APIs.
+ </p>
+ <p>
+ An EGL <em class="firstterm">surface</em> extends a native
+ window or pixmap with additional <em class="firstterm">auxillary
+ buffers</em>. These buffers include a color buffer, a
+ depth buffer, a stencil buffer, and an alpha mask buffer.
+ Some or all of the buffers listed are included in each EGL
+ frame buffer configuration.
+ </p>
+ <p>
+ EGL supports rendering into three types of surfaces:
+ windows, pixmaps and pixel buffers (pbuffers). EGL window
+ and pixmap surfaces are associated with corresponding
+ resources of the platform. EGL pixel buffers are
+ EGL-only resources, and do not accept rendering through the
+ platform APIs.
+ </p>
+ <p>
+ To render using a client API into an EGL surface, you must
+ determine the appropriate EGL frame buffer configuration,
+ which supports the rendering features the application
+ requires.
+ <a class="citerefentry" href="eglChooseConfig.xhtml"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>
+ returns an <span class="type">EGLConfig</span> matching the required
+ attributes, if any. A complete list of EGL frame buffer
+ configurations can be obtained by calling
+ <a class="citerefentry" href="eglGetConfigs.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a>.
+ Attributes of a particular EGL frame buffer configuration
+ can be queried by calling
+ <a class="citerefentry" href="eglGetConfigAttrib.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetConfigAttrib</span></span></a>.
+ </p>
+ <p>
+ For EGL window and pixmap surfaces, a suitable native window
+ or pixmap with a matching native visual must be created
+ first. For a given EGL frame buffer configuration, the
+ native visual type and ID can be retrieved with a call to
+ <a class="citerefentry" href="eglGetConfigAttrib.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetConfigAttrib</span></span></a>.
+ For pixel buffers, no underlying native resource is
+ required.
+ </p>
+ <p>
+ To create an EGL window surface from a native window, call
+ <a class="citerefentry" href="eglCreateWindowSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateWindowSurface</span></span></a>.
+ To create an EGL pixmap surface from a native pixmap, call
+ <a class="citerefentry" href="eglCreatePixmapSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePixmapSurface</span></span></a>.
+ To create a pixel buffer (pbuffer) surface (which has no
+ associated native buffer), call
+ <a class="citerefentry" href="eglCreatePbufferSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>
+ To create a pixel buffer (pbuffer) surface whose color
+ buffer is provided by an OpenVG <span class="type">VGImage</span>, call
+ <a class="citerefentry" href="eglCreatePbufferFromClientBuffer.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferFromClientBuffer</span></span></a>.
+ Use
+ <a class="citerefentry" href="eglDestroySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>
+ to release previously allocated resources.
+ </p>
+ <p>
+ An EGL rendering context is required to bind client API
+ rendering to an EGL surface. An EGL surface and an EGL
+ rendering context must have compatible EGL frame buffer
+ configurations. To create an EGL rendering context, call
+ <a class="citerefentry" href="eglCreateContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateContext</span></span></a>.
+ The type of client API context created (OpenGL ES, OpenVG,
+ etc.) can be changed by first calling
+ <a class="citerefentry" href="eglBindAPI.xhtml"><span class="citerefentry"><span class="refentrytitle">eglBindAPI</span></span></a>.
+ </p>
+ <p>
+ An EGL rendering context may be bound to one or two EGL
+ surfaces by calling
+ <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>.
+ This context/surface(s) association specifies the
+ <em class="firstterm">current context</em> and
+ <em class="firstterm">current surface</em>, and is used by all
+ client API rendering commands for the bound context until
+ <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>
+ is called with different arguments.
+ </p>
+ <p>
+ Both platform and client API commands may be used to operate
+ on certain surfaces. However, the two command streams are
+ not synchronized. Synchronization can be explicitly
+ specified using by calling
+ <a class="citerefentry" href="eglWaitClient.xhtml"><span class="citerefentry"><span class="refentrytitle">eglWaitClient</span></span></a>,
+ <a class="citerefentry" href="eglWaitNative.xhtml"><span class="citerefentry"><span class="refentrytitle">eglWaitNative</span></span></a>,
+ and possibly by calling other platform APIs.
+ </p>
+ </div>
+ <div class="refsect1" id="examples">
+ <h2>Examples</h2>
+ <p>
+ Below is a minimal example of creating an RGBA-format window that
+ allows rendering with OpenGL ES.
+ The window is cleared to yellow when the program runs. For simplicity,
+ the program does not check for any errors.
+ </p>
+ <pre class="programlisting">
+#include &lt;stdlib.h&gt;
+#include &lt;unistd.h&gt;
+#include &lt;EGL/egl.h&gt;
+#include &lt;GLES/gl.h&gt;
+typedef ... NativeWindowType;
+extern NativeWindowType createNativeWindow(void);
+static EGLint const attribute_list[] = {
+ EGL_RED_SIZE, 1,
+ EGL_GREEN_SIZE, 1,
+ EGL_BLUE_SIZE, 1,
+ EGL_NONE
+};
+int main(int argc, char ** argv)
+{
+ EGLDisplay display;
+ EGLConfig config;
+ EGLContext context;
+ EGLSurface surface;
+ NativeWindowType native_window;
+ EGLint num_config;
+
+ /* get an EGL display connection */
+ display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
+
+ /* initialize the EGL display connection */
+ eglInitialize(display, NULL, NULL);
+
+ /* get an appropriate EGL frame buffer configuration */
+ eglChooseConfig(display, attribute_list, &amp;config, 1, &amp;num_config);
+
+ /* create an EGL rendering context */
+ context = eglCreateContext(display, config, EGL_NO_CONTEXT, NULL);
+
+ /* create a native window */
+ native_window = createNativeWindow();
+
+ /* create an EGL window surface */
+ surface = eglCreateWindowSurface(display, config, native_window, NULL);
+
+ /* connect the context to the surface */
+ eglMakeCurrent(display, surface, surface, context);
+
+ /* clear the color buffer */
+ glClearColor(1.0, 1.0, 0.0, 1.0);
+ glClear(GL_COLOR_BUFFER_BIT);
+ glFlush();
+
+ eglSwapBuffers(display, surface);
+
+ sleep(10);
+ return EXIT_SUCCESS;
+}
+</pre>
+ </div>
+ <div class="refsect1" id="notes">
+ <h2>Notes</h2>
+ <p>
+ Prior to EGL 1.5, platforms were referred to as the
+ <em class="firstterm">native window system</em>, and
+ platform-specific queries and APIs were not available. Only a
+ single native window system was supported.
+ </p>
+ </div>
+ <div class="refsect1" id="usingeglextensions">
+ <h2>Using EGL Extensions</h2>
+ <p>
+ All supported EGL extensions will have a corresponding definition in
+ <code class="filename">egl.h</code> and a token in the extension strings returned
+ by
+ <a class="citerefentry" href="eglQueryString.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQueryString</span></span></a>.
+ </p>
+ </div>
+ <div class="refsect1" id="futureeglversions">
+ <h2>Future EGL Versions</h2>
+ <p>
+ <a class="citerefentry" href="eglInitialize.xhtml"><span class="citerefentry"><span class="refentrytitle">eglInitialize</span></span></a>
+ and
+ <a class="citerefentry" href="eglQueryString.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQueryString</span></span></a>
+ can be used to determine at run-time what version of EGL is available.
+ To check the EGL version at compile-time, test whether
+ <code class="constant">EGL_VERSION_<em class="replaceable"><code>x</code></em>_<em class="replaceable"><code>y</code></em></code>
+ is defined, where <em class="replaceable"><code>x</code></em> and
+ <em class="replaceable"><code>y</code></em> are the major and minor version
+ numbers.
+ </p>
+ </div>
+ <div class="refsect1" id="files">
+ <h2>Files</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <code class="filename">GLES/egl.h</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ EGL header file
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+
+ <a class="citerefentry" href="eglBindAPI.xhtml"><span class="citerefentry"><span class="refentrytitle">eglBindAPI</span></span></a>,
+ <a class="citerefentry" href="eglChooseConfig.xhtml"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>,
+ <a class="citerefentry" href="eglCreateContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateContext</span></span></a>,
+ <a class="citerefentry" href="eglCreatePbufferFromClientBuffer.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferFromClientBuffer</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="eglDestroyContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglDestroyContext</span></span></a>,
+ <a class="citerefentry" href="eglDestroySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>,
+ <a class="citerefentry" href="eglGetConfigs.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a>,
+ <a class="citerefentry" href="eglGetDisplay.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetDisplay</span></span></a>,
+ <a class="citerefentry" href="eglGetPlatformDisplay.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetPlatformDisplay</span></span></a>,
+ <a class="citerefentry" href="eglInitialize.xhtml"><span class="citerefentry"><span class="refentrytitle">eglInitialize</span></span></a>,
+ <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>,
+ <a class="citerefentry" href="eglQueryString.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQueryString</span></span></a>,
+ <a class="citerefentry" href="eglSwapBuffers.xhtml"><span class="citerefentry"><span class="refentrytitle">eglSwapBuffers</span></span></a>,
+ <a class="citerefentry" href="eglTerminate.xhtml"><span class="citerefentry"><span class="refentrytitle">eglTerminate</span></span></a>,
+ <a class="citerefentry" href="eglWaitGL.xhtml"><span class="citerefentry"><span class="refentrytitle">eglWaitGL</span></span></a>,
+ <a class="citerefentry" href="eglWaitNative.xhtml"><span class="citerefentry"><span class="refentrytitle">eglWaitNative</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>