summaryrefslogtreecommitdiff
path: root/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglIntro.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/eglIntro.xml
parentcd7c76017a12bb548036571c1ff13e551369d06d (diff)
add engine version
Diffstat (limited to 'engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglIntro.xml')
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglIntro.xml275
1 files changed, 275 insertions, 0 deletions
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglIntro.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglIntro.xml
new file mode 100644
index 0000000..0cdd0a1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglIntro.xml
@@ -0,0 +1,275 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglIntro">
+ <info>
+ <copyright>
+ <year>2003-2018</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglIntro</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglIntro</refname>
+ <refpurpose>
+ introduction to managing client API rendering through the
+ <acronym>EGL</acronym> API.
+ </refpurpose>
+ </refnamediv>
+ <refsect1 xml:id="overview"><title>Overview</title>
+ <para>
+ The <firstterm>Khronos Native Platform Graphics
+ Interface</firstterm> (EGL) provides a means for rendering
+ using a <firstterm>client API</firstterm> 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
+ <firstterm>platform</firstterm>, such as Microsoft Windows or
+ the X Window System.
+ </para>
+ <para>
+ 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
+ <citerefentry><refentrytitle>eglGetPlatformDisplay</refentrytitle></citerefentry>
+ or
+ <citerefentry><refentrytitle>eglGetDisplay</refentrytitle></citerefentry>.
+ To initialize and
+ query what EGL version is supported on the display
+ connection, call
+ <citerefentry><refentrytitle>eglInitialize</refentrytitle></citerefentry>.
+ </para>
+ <para>
+ 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 <constant>EGL_EXTENSIONS</constant>
+ string of <constant>EGL_NO_DISPLAY</constant> using
+ <citerefentry><refentrytitle>eglQueryString</refentrytitle></citerefentry>.
+ </para>
+ <para>
+ 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.
+ </para>
+ <para>
+ An EGL <firstterm>surface</firstterm> extends a native
+ window or pixmap with additional <firstterm>auxillary
+ buffers</firstterm>. 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.
+ </para>
+ <para>
+ 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.
+ </para>
+ <para>
+ 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.
+ <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>
+ returns an <type>EGLConfig</type> matching the required
+ attributes, if any. A complete list of EGL frame buffer
+ configurations can be obtained by calling
+ <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>.
+ Attributes of a particular EGL frame buffer configuration
+ can be queried by calling
+ <citerefentry><refentrytitle>eglGetConfigAttrib</refentrytitle></citerefentry>.
+ </para>
+ <para>
+ 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
+ <citerefentry><refentrytitle>eglGetConfigAttrib</refentrytitle></citerefentry>.
+ For pixel buffers, no underlying native resource is
+ required.
+ </para>
+ <para>
+ To create an EGL window surface from a native window, call
+ <citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry>.
+ To create an EGL pixmap surface from a native pixmap, call
+ <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry>.
+ To create a pixel buffer (pbuffer) surface (which has no
+ associated native buffer), call
+ <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>
+ To create a pixel buffer (pbuffer) surface whose color
+ buffer is provided by an OpenVG <type>VGImage</type>, call
+ <citerefentry><refentrytitle>eglCreatePbufferFromClientBuffer</refentrytitle></citerefentry>.
+ Use
+ <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>
+ to release previously allocated resources.
+ </para>
+ <para>
+ 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
+ <citerefentry><refentrytitle>eglCreateContext</refentrytitle></citerefentry>.
+ The type of client API context created (OpenGL ES, OpenVG,
+ etc.) can be changed by first calling
+ <citerefentry><refentrytitle>eglBindAPI</refentrytitle></citerefentry>.
+ </para>
+ <para>
+ An EGL rendering context may be bound to one or two EGL
+ surfaces by calling
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>.
+ This context/surface(s) association specifies the
+ <firstterm>current context</firstterm> and
+ <firstterm>current surface</firstterm>, and is used by all
+ client API rendering commands for the bound context until
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>
+ is called with different arguments.
+ </para>
+ <para>
+ 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
+ <citerefentry><refentrytitle>eglWaitClient</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglWaitNative</refentrytitle></citerefentry>,
+ and possibly by calling other platform APIs.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="examples"><title>Examples</title>
+ <para>
+ 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.
+ </para>
+<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;
+}
+</programlisting>
+ </refsect1>
+ <refsect1 xml:id="notes"><title>Notes</title>
+ <para>
+ Prior to EGL 1.5, platforms were referred to as the
+ <firstterm>native window system</firstterm>, and
+ platform-specific queries and APIs were not available. Only a
+ single native window system was supported.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="usingeglextensions"><title>Using EGL Extensions</title>
+ <para>
+ All supported EGL extensions will have a corresponding definition in
+ <filename>egl.h</filename> and a token in the extension strings returned
+ by
+ <citerefentry><refentrytitle>eglQueryString</refentrytitle></citerefentry>.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="futureeglversions"><title>Future EGL Versions</title>
+ <para>
+ <citerefentry><refentrytitle>eglInitialize</refentrytitle></citerefentry>
+ and
+ <citerefentry><refentrytitle>eglQueryString</refentrytitle></citerefentry>
+ can be used to determine at run-time what version of EGL is available.
+ To check the EGL version at compile-time, test whether
+ <constant>EGL_VERSION_<replaceable>x</replaceable>_<replaceable>y</replaceable></constant>
+ is defined, where <replaceable>x</replaceable> and
+ <replaceable>y</replaceable> are the major and minor version
+ numbers.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="files"><title>Files</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>GLES/egl.h</filename></term>
+ <listitem><para>
+ EGL header file
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+<!--
+ <citerefentry><refentrytitle>glIntro</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>glFinish</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>glFlush</refentrytitle></citerefentry>,
+-->
+ <citerefentry><refentrytitle>eglBindAPI</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreateContext</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePbufferFromClientBuffer</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglDestroyContext</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetDisplay</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetPlatformDisplay</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglInitialize</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglQueryString</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglSwapBuffers</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglTerminate</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglWaitGL</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglWaitNative</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>