<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" pref:renderer="mathplayer-dl">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <style xmlns="" type="text/css">
/* This style sets a margin around the entire page */
        html, body { margin: 10px; }

        p { font-family:verdana,sans-serif; font-size:95%;
                margin-top:0px; margin-bottom:20px; padding-top:0px; padding-bottom:0px;  }

        h1 {font: bold 1.75em verdana,sans-serif;
                margin-top:0px; margin-bottom:3px; padding-top:0px; padding-bottom:0px; }

        h2 { font-family:verdana,sans-serif; font-size:1.20em
                margin-top:28px; margin-bottom:3px; padding-top:0px; padding-bottom:0px; }

        li { font-family:verdana,sans-serif; font-size:95%;
                margin-top:0px; margin-bottom:18px; padding-top:0px; padding-bottom:0px;  }

        code, constant {font: normal 1.1em 'courier new',monospace; }
        code.function {font: bold 1.1em 'courier new',monospace; }
        code.varname {font: italic 1.1em 'courier new',monospace; }
        code.funcdef {font: normal 1.1em 'courier new',monospace; }
        .citerefentry {font: normal 1.1em 'courier new',monospace; }
        .parameter { font-style: italic; }
        code.fsfunc {font: normal 1.1em 'courier new',monospace; }
        div.funcsynopsis {font: normal 1.1em 'courier new',monospace; text-align:left; background-color:#e6e6e6;}
        div.funcsynopsis table { margin-top: 10px; border-collapse:separate; }
        div.funcsynopsis td {background-color:#e6e6e6; border:0px solid black; padding:2px; }
        div.refsect1 {font-family:verdana,sans-serif; font-size:95%;}

/* PARAMETER: This style controls spacing between the terms in Parameter section */
        dt { margin-top:15px; }

/* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
        div.refsect3 { font-family:verdana,sans-serif; font-size:75%;
                margin-top:50px; margin-bottom:20px; padding-top:0px; padding-bottom:0px;  }

/* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
        div.refsect1 table { margin-top: 10px; background-color:#FFF; width:100%; border-collapse:collapse; }
        div.refsect1 td {background-color:#FFF; border:1px solid black; padding:5px;
                font: normal 95% verdana,san-serif;}
        div.refsect1 th {background-color:#FFF; border:1px solid black; padding:5px;
                font: bold 95% verdana,san-serif;}

/* EXAMPLE: These styles apply only to the Example section */
        div.refsect2 { font-family:verdana,sans-serif; }
        h3 { font:bold 1.25em verdana,sans-serif; font-size:135%;
                margin-top:28px; margin-bottom:3px; padding-top:0px; padding-bottom:0px; }
        div.refsect2 table {margin-top:0px; background-color:#e6e6e6;
                width:100%; border:0px solid black; padding:2px;}
        div.refsect2 td {background-color:##e6e6e6; white-space: pre; font: normal 1.1em 'courier new',monospace;}

/* SPECIFICATION: Add an Acrobat Reader icon to PDF links
        a[href$=".pdf"] {background: url(pdficon_small1.gif) left center no-repeat; padding-left: 22px;}
        a[href$=".pdf"]:hover {background: url(pdficon_small1.gif) left center no-repeat;}*/

</style>
    <title>EGL Reference Pages</title>
    <meta name="generator" content="DocBook XSL Stylesheets V1.69.1" />
    <meta name="keywords" content="OpenCl Reference Title Page" />
  </head>
  <body>
    <div class="refentry" lang="en" xml:lang="en">
      <a id="id4796348"></a>
      <div class="titlepage"></div>
      <div xmlns="" class="refnamediv">
        <a xmlns="http://www.w3.org/1999/xhtml" id="Memory Objects"></a>
        <h1>EGL Reference Pages</h1>
        <p></p>
      </div>
      <div class="refsect1" lang="en" xml:lang="en">
        <a id="description"></a>
        <h2></h2>
        <p>
            <img src="EGL_300.png" alt=""
                hspace="40" vspace="40" border="0" align="right"
                xmlns="http://www.w3.org/1999/xhtml" />
            EGL&trade; is an interface between Khronos rendering APIs
            such as OpenGL ES or OpenVG and the underlying native
            platform window system. It handles graphics context
            management, surface/buffer binding, and rendering
            synchronization and enables high-performance, accelerated,
            mixed-mode 2D and 3D rendering using other Khronos APIs.
        </p>
        <p>
            The reference pages describe the latest approved version of
            EGL, EGL 1.4, but can be used with earlier versions since
            each page notes when features are available only starting
            with specific versions (1.2, 1.3, and 1.4).
        </p>
        <p>
            A more detailed overview of EGL functionality and technical
            concepts can be found in the
            <a target="pagedisplay" href="eglIntro.html">eglIntro</a>
            page.
        </p>
      </div>
      <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4>
                <img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><br>
                Copyright &#169; 2007-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.
</div>
    </div>
  </body>
</html>

