| <?xml version="1.0" encoding="UTF-8"?> |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd"> |
| <!-- saved from url=(0013)about:internet --> |
| <?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" xmlns:xlink="http://www.w3.org/1999/xlink" 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: normal 16px verdana, sans-serif; |
| margin: 0; |
| padding-bottom:12px; |
| } |
| |
| h1 { |
| font: bold 25px verdana, sans-serif; |
| margin-top: 0; |
| margin-bottom: 3px; |
| padding-top: 0; |
| padding-bottom: 0; |
| } |
| |
| h2 { |
| font: bold 19px verdana, sans-serif; |
| margin-top: 28px; |
| margin-bottom: 3px; |
| padding-top: 0; |
| padding-bottom: 0; |
| } |
| |
| h3 { |
| font: bold 19px verdana, sans-serif !important; |
| margin-top: 28px; |
| margin-bottom: 3px; |
| padding-top: 0; |
| padding-bottom: 0; |
| } |
| |
| li { |
| font: normal 16px verdana, sans-serif; |
| margin-top: 0; |
| margin-bottom: 18px; |
| padding-top: 0; |
| padding-bottom: 0; |
| } |
| |
| .pdparam { |
| font: italic 16px verdana, sans-serif; |
| } |
| |
| .term { |
| font: italic 16px verdana, sans-serif; |
| font-weight: normal; |
| } |
| |
| .type { |
| font: normal 16px verdana, sans-serif !important; |
| } |
| |
| .parameter { |
| font-style: italic; |
| } |
| |
| a:link, a:visited { |
| color: blue; |
| text-decoration: none; |
| font: normal 16px; |
| } |
| |
| a:hover { |
| background-color: #FFFF99; |
| font: normal 16px; |
| } |
| |
| div.funcsynopsis { |
| text-align: left; |
| background-color: #e6e6e6; |
| font: normal 16px verdana, sans-serif; |
| padding-top: 10px; |
| padding-bottom: 10px; |
| } |
| |
| div.funcsynopsis table { |
| border-collapse: separate; |
| font: normal 16px verdana, sans-serif; |
| } |
| |
| div.funcsynopsis td { |
| background-color: #e6e6e6; |
| border: 0 solid #000; |
| padding: 1px; |
| font: normal 16px verdana, sans-serif; |
| } |
| |
| div.refsect1 { |
| font-family: verdana, sans-serif; |
| font-size: 16px; |
| } |
| |
| code.constant { |
| font: normal 16px courier new, monospace !important; |
| } |
| |
| span.errorname { |
| font: normal 16px verdana, sans-serif !important; |
| } |
| |
| code.function { |
| font: bold 16px verdana, sans-serif !important; |
| } |
| |
| b.fsfunc { |
| font: bold 16px verdana, sans-serif !important; |
| } |
| |
| code.varname { |
| font: italic 16px verdana, sans-serif; |
| } |
| |
| code.replaceable { |
| font: italic 16px courier new, monospace; |
| } |
| |
| code.funcdef { |
| font: normal 16px verdana, sans-serif !important; |
| } |
| |
| .citerefentry { |
| font: normal 16px verdana, sans-serif !important; |
| } |
| |
| .parameter { |
| font-style: italic; |
| } |
| |
| code.fsfunc { |
| font: normal 16px verdana, sans-serif !important; |
| } |
| |
| /* PARAMETER: This style controls spacing between the terms in Parameter section */ |
| dt { |
| margin-top: 15px; |
| } |
| |
| /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */ |
| div.refsect1 table { |
| width: 100%; |
| margin-top: 10px; |
| background-color: #FFF; |
| border-collapse: collapse; |
| border-color: #000; |
| border-width: 1px; |
| font: normal 16px verdana, sans-serif; |
| } |
| |
| div.refsect1 th { |
| border-collapse: collapse; |
| border-color: #000; |
| border-width: 1px; |
| font: bold 16px verdana, sans-serif; |
| } |
| |
| div.refsect1 td { |
| background-color: #FFF; |
| padding: 5px; |
| vertical-align: text-top; |
| border-collapse: collapse; |
| border-color: #000; |
| border-width: 1px; |
| font: normal 16px verdana, sans-serif; |
| } |
| |
| div.refsect1 p{ |
| font: normal 16px verdana, sans-serif; |
| margin-top: 8px; |
| margin-bottom: 8px; |
| padding-top: 0; |
| padding-bottom: 0; |
| } |
| |
| |
| /* EXAMPLE: These styles apply only to the Example section */ |
| div.refsect2 { |
| font: normal 16px courier new, monospace !important; |
| } |
| |
| div.refsect2 table { |
| margin-top: 0; |
| background-color: #e6e6e6; |
| width: 100%; |
| border: 0 solid #000; |
| padding: 2px; |
| font: normal 16px courier new, monospace !important; |
| } |
| |
| div.refsect2 td { |
| background-color: #e6e6e6; |
| font: normal 16px courier new, monospace !important; |
| white-space:pre; |
| } |
| |
| /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */ |
| div.refsect3 { |
| font: normal 11px verdana, sans-serif; |
| margin-top: 50px; |
| margin-bottom: 20px; |
| padding-top: 0; |
| padding-bottom: 0; |
| } |
| |
| </style> |
| <title>eglChooseConfig</title> |
| <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" /> |
| </head> |
| <body> |
| <div class="refentry"> |
| <a id="eglChooseConfig"></a> |
| <div class="titlepage"></div> |
| <div xmlns="" class="refnamediv"> |
| <h1>eglChooseConfig</h1> |
| <p> |
| return a list of EGL frame buffer configurations that match specified attributes |
| </p> |
| </div> |
| <div class="refsynopsisdiv"> |
| <h2>C Specification</h2> |
| <div class="funcsynopsis"> |
| <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0"> |
| <tr valign="bottom"> |
| <td> |
| <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">EGLBoolean <strong class="fsfunc">eglChooseConfig</strong>(</code> |
| <td>EGLDisplay <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">display</var>, </td> |
| </td> |
| </tr> |
| <tr valign="top"> |
| <td> </td> |
| <td>EGLint const * <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">attrib_list</var>, </td> |
| </tr> |
| <tr valign="top"> |
| <td> </td> |
| <td>EGLConfig * <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">configs</var>, </td> |
| </tr> |
| <tr valign="top"> |
| <td> </td> |
| <td>EGLint <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">config_size</var>, </td> |
| </tr> |
| <tr valign="top"> |
| <td> </td> |
| <td>EGLint * <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">num_config</var><code>)</code></td> |
| </tr> |
| </table> |
| </div> |
| </div> |
| <div class="refsect1"> |
| <a id="parameters"></a> |
| <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 EGL display connection.</p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <em class="parameter"> |
| <code>attrib_list</code> |
| </em> |
| </span> |
| </dt> |
| <dd> |
| <p>Specifies attributes required to match by configs.</p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <em class="parameter"> |
| <code>configs</code> |
| </em> |
| </span> |
| </dt> |
| <dd> |
| <p>Returns an array of frame buffer configurations.</p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <em class="parameter"> |
| <code>config_size</code> |
| </em> |
| </span> |
| </dt> |
| <dd> |
| <p>Specifies the size of the array of frame buffer configurations.</p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <em class="parameter"> |
| <code>num_config</code> |
| </em> |
| </span> |
| </dt> |
| <dd> |
| <p>Returns the number of frame buffer configurations returned.</p> |
| </dd> |
| </dl> |
| </div> |
| </div> |
| <div class="refsect1"> |
| <a id="description"></a> |
| <h2>Description</h2> |
| <p> |
| <code class="function">eglChooseConfig</code> returns in |
| <em class="parameter"><code>configs</code></em> a list of all |
| <acronym class="acronym">EGL</acronym> frame buffer configurations that |
| match the attributes specified in |
| <em class="parameter"><code>attrib_list</code></em>. The returned |
| <span class="type">EGLConfig</span>s can be used in any |
| <acronym class="acronym">EGL</acronym> function that requires an |
| <acronym class="acronym">EGL</acronym> frame buffer configuration. |
| </p> |
| <p> |
| If <em class="parameter"><code>configs</code></em> is not |
| <code class="constant">NULL</code>, up to |
| <em class="parameter"><code>config_size</code></em> configs will be returned |
| in the array pointed to by <em class="parameter"><code>configs</code></em>. |
| The number of configs actually returned will be returned in |
| *<em class="parameter"><code>num_config</code></em>. |
| </p> |
| <p> |
| If <em class="parameter"><code>configs</code></em> is |
| <code class="constant">NULL</code>, no configs will be returned in |
| <em class="parameter"><code>configs</code></em>. Instead, the total number of |
| configs matching <em class="parameter"><code>attrib_list</code></em> will be |
| returned in *<em class="parameter"><code>num_config</code></em>. In this case |
| <em class="parameter"><code>config_size</code></em> is ignored. This form of |
| <code class="function">eglChooseConfig</code> is used to determine |
| the number of matching frame buffer configurations, followed |
| by allocating an array of <span class="type">EGLConfig</span> to pass |
| into another call to <code class="function">eglChooseConfig</code> |
| with all other parameters unchanged. |
| </p> |
| <p> |
| All attributes in <em class="parameter"><code>attrib_list</code></em>, |
| including boolean attributes, are immediately followed by |
| the corresponding desired value. The list is terminated with |
| <code class="constant">EGL_NONE</code>. If an attribute is not |
| specified in <em class="parameter"><code>attrib_list</code></em> then the |
| default value (see below) is used (and the attribute is said |
| to be specified implicitly). For example, if |
| <code class="constant">EGL_DEPTH_SIZE</code> is not specified then it |
| is assumed to be zero. For some attributes, the default is |
| <code class="constant">EGL_DONT_CARE</code> meaning that any value is |
| OK for this attribute, so the attribute will not be checked. |
| </p> |
| <p> |
| Attributes are matched in an attribute-specific manner. Some |
| of the attributes, such as <code class="constant">EGL_LEVEL</code>, |
| must match the specified value exactly. Others, such as, |
| <code class="constant">EGL_RED_SIZE</code> must meet or exceed the |
| specified minimum values. If more than one EGL frame buffer |
| configuration matching all attributes is found, then a list |
| of configurations, sorted according to the ``best'' match |
| criteria, is returned. The match criteria for each attribute |
| and the exact sorting order is defined below. |
| </p> |
| <p> |
| For the bitmask attributes |
| <code class="constant">EGL_CONFORMANT</code>, |
| <code class="constant">EGL_RENDERABLE_TYPE</code>, and |
| <code class="constant">EGL_SURFACE_TYPE</code>, only the nonzero bits |
| of the mask are considered when matching. Any bits that are |
| zero in the specified bitmask attribute value may be either |
| zero or one in the resulting config's attribute value. |
| </p> |
| <p> |
| Attributes which may appear in |
| <em class="parameter"><code>attrib_list</code></em>, and their descriptions |
| and allowed values, are: |
| </p> |
| <div class="variablelist"> |
| <dl class="variablelist"> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_ALPHA_MASK_SIZE</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Must be followed by a nonnegative integer that |
| indicates the desired alpha mask buffer size, in |
| bits. The smallest alpha mask buffers of at least |
| the specified size are preferred. The default value |
| is zero. |
| </p> |
| <p> |
| The alpha mask buffer is used only by OpenGL and |
| OpenGL ES client APIs. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_ALPHA_SIZE</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Must be followed by a nonnegative integer that |
| indicates the desired size of the alpha component of |
| the color buffer, in bits. If this value is zero, |
| color buffers with the smallest alpha component size |
| are preferred. Otherwise, color buffers with the |
| largest alpha component of at least the specified |
| size are preferred. The default value is zero. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_BIND_TO_TEXTURE_RGB</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Must be followed by |
| <code class="constant">EGL_DONT_CARE</code>, |
| <code class="constant">EGL_TRUE</code>, or |
| <code class="constant">EGL_FALSE</code>. |
| If <code class="constant">EGL_TRUE</code> is specified, then |
| only frame buffer configurations that support |
| binding of color buffers to an OpenGL ES RGB texture |
| will be considered. Currently only frame buffer |
| configurations that support pbuffers allow this. The |
| default value is <code class="constant">EGL_DONT_CARE</code>. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_BIND_TO_TEXTURE_RGBA</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Must be followed by one of |
| <code class="constant">EGL_DONT_CARE</code>, |
| <code class="constant">EGL_TRUE</code>, or |
| <code class="constant">EGL_FALSE</code>. |
| If <code class="constant">EGL_TRUE</code> is specified, then |
| only frame buffer configurations that support |
| binding of color buffers to an OpenGL ES RGBA |
| texture will be considered. Currently only frame |
| buffer configurations that support pbuffers allow |
| this. The default value is |
| <code class="constant">EGL_DONT_CARE</code>. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_BLUE_SIZE</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Must be followed by a nonnegative integer that |
| indicates the desired size of the blue component of |
| the color buffer, in bits. If this value is zero, |
| color buffers with the smallest blue component size |
| are preferred. Otherwise, color buffers with the |
| largest blue component of at least the specified |
| size are preferred. The default value is zero. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_BUFFER_SIZE</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Must be followed by a nonnegative integer that |
| indicates the desired color buffer size, in bits. |
| The smallest color buffers of at least the specified |
| size are preferred. The default value is zero. |
| </p> |
| <p> |
| The color buffer size is the sum of |
| <code class="constant">EGL_RED_SIZE</code>, |
| <code class="constant">EGL_GREEN_SIZE</code>, |
| <code class="constant">EGL_BLUE_SIZE</code>, and |
| <code class="constant">EGL_ALPHA_SIZE</code>, and does not |
| include any padding bits which may be present in the |
| pixel format. It is usually preferable to specify |
| desired sizes for these color components |
| individually. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_COLOR_BUFFER_TYPE</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Must be followed by one of |
| <code class="constant">EGL_RGB_BUFFER</code> or |
| <code class="constant">EGL_LUMINANCE_BUFFER</code>. |
| </p> |
| <p> |
| <code class="constant">EGL_RGB_BUFFER</code> indicates |
| an RGB color buffer; in this case, |
| attributes <code class="constant">EGL_RED_SIZE</code>, |
| <code class="constant">EGL_GREEN_SIZE</code> and |
| <code class="constant">EGL_BLUE_SIZE</code> must be non-zero, and |
| <code class="constant">EGL_LUMINANCE_SIZE</code> must be zero. |
| </p> |
| <p> |
| <code class="constant">EGL_LUMINANCE_BUFFER</code> indicates a luminance color |
| buffer. In this case <code class="constant">EGL_RED_SIZE</code>, |
| <code class="constant">EGL_GREEN_SIZE</code>, |
| <code class="constant">EGL_BLUE_SIZE</code> must be zero, and |
| <code class="constant">EGL_LUMINANCE_SIZE</code> must be non-zero. |
| </p> |
| <p> |
| For both RGB and luminance color buffers, |
| <code class="constant">EGL_ALPHA_SIZE</code> may be zero or |
| non-zero. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_CONFIG_CAVEAT</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Must be followed by |
| <code class="constant">EGL_DONT_CARE</code>, |
| <code class="constant">EGL_NONE</code>, |
| <code class="constant">EGL_SLOW_CONFIG</code>, or |
| <code class="constant">EGL_NON_CONFORMANT_CONFIG</code>. |
| </p> |
| <p> |
| If <code class="constant">EGL_DONT_CARE</code> is specified, |
| then configs are not matched for this attribute. The |
| default value is <code class="constant">EGL_DONT_CARE</code>. |
| </p> |
| <p> |
| If <code class="constant">EGL_NONE</code> is specified, then |
| configs are matched for this attribute, but only |
| configs with no caveats (neither |
| <code class="constant">EGL_SLOW_CONFIG</code> or |
| <code class="constant">EGL_NON_CONFORMANT_CONFIG</code>) will |
| be considered. |
| </p> |
| <p> |
| If <code class="constant">EGL_SLOW_CONFIG</code> is |
| specified, then only slow configs configurations |
| will be considered. The meaning of``slow'' is |
| implementation-dependent, but typically indicates a |
| non-hardware-accelerated (software) implementation. |
| </p> |
| <p> |
| If <code class="constant">EGL_NON_CONFORMANT_CONFIG</code> is |
| specified, then only configs supporting |
| non-conformant OpenGL ES contexts will be |
| considered. |
| </p> |
| <p> |
| If the EGL version is 1.3 or later, caveat |
| <code class="constant">EGL_NON_CONFORMANT_CONFIG</code> is |
| obsolete, since the same information can be |
| specified via the |
| <code class="constant">EGL_CONFORMANT</code> attribute on a |
| per-client-API basis, not just for OpenGL ES. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_CONFIG_ID</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Must be followed by a valid integer ID that |
| indicates the desired EGL frame buffer |
| configuration. When a |
| <code class="constant">EGL_CONFIG_ID</code> is specified, all |
| other attributes are ignored. The default value is |
| <code class="constant">EGL_DONT_CARE</code>. |
| </p> |
| <p> |
| The meaning of config IDs is |
| implementation-dependent. They are used only to |
| uniquely identify different frame buffer |
| configurations. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_CONFORMANT</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Must be followed by a bitmask indicating which types |
| of client API contexts created with respect to the |
| frame buffer configuration config must pass the |
| required conformance tests for that API. Mask bits |
| include: |
| </p> |
| <div class="variablelist"> |
| <dl class="variablelist"> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_OPENGL_BIT</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Config supports creating OpenGL contexts. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_OPENGL_ES_BIT</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Config supports creating OpenGL ES 1.0 |
| and/or 1.1 contexts. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_OPENGL_ES2_BIT</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Config supports creating OpenGL ES 2.0 contexts. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_OPENVG_BIT</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Config supports creating OpenVG contexts. |
| </p> |
| </dd> |
| </dl> |
| </div> |
| <p> |
| For example, if the bitmask is set to |
| <code class="constant">EGL_OPENGL_ES_BIT</code>, only frame |
| buffer configurations that support creating |
| conformant OpenGL ES contexts will match. The |
| default value is zero. |
| </p> |
| <p> |
| Most EGLConfigs should be conformant for all |
| supported client APIs, and it is rarely desirable to |
| select a nonconformant config. Conformance |
| requirements limit the number of non-conformant |
| configs that an implementation can define. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_DEPTH_SIZE</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Must be followed by a nonnegative integer that |
| indicates the desired depth buffer size, in bits. |
| The smallest depth buffers of at least the specified |
| size is preferred. If the desired size is zero, |
| frame buffer configurations with no depth buffer are |
| preferred. The default value is zero. |
| </p> |
| <p> |
| The depth buffer is used only by OpenGL and OpenGL |
| ES client APIs. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_GREEN_SIZE</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Must be followed by a nonnegative integer that |
| indicates the desired size of the green component of |
| the color buffer, in bits. If this value is zero, |
| color buffers with the smallest green component size |
| are preferred. Otherwise, color buffers with the |
| largest green component of at least the specified |
| size are preferred. The default value is zero. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_LEVEL</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Must be followed by an integer buffer level |
| specification. This specification is honored |
| exactly. Buffer level zero corresponds to the |
| default frame buffer of the display. Buffer level |
| one is the first overlay frame buffer, level two the |
| second overlay frame buffer, and so on. Negative |
| buffer levels correspond to underlay frame buffers. |
| The default value is zero. |
| </p> |
| <p> |
| Most imlementations do not support overlay or |
| underlay planes (buffer levels other than zero). |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_LUMINANCE_SIZE</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Must be followed by a nonnegative integer that |
| indicates the desired size of the luminance |
| component of the color buffer, in bits. If this |
| value is zero, color buffers with the smallest |
| luminance component size are preferred. Otherwise, |
| color buffers with the largest luminance component |
| of at least the specified size are preferred. The |
| default value is zero. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_MATCH_NATIVE_PIXMAP</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Must be followed by the handle of a valid native |
| pixmap, cast to <span class="type">EGLint</span>, or |
| <code class="constant">EGL_NONE</code>. If the value is not |
| <code class="constant">EGL_NONE</code>, only configs which |
| support creating pixmap surfaces with this pixmap |
| using |
| <a class="citerefentry" href="eglCreatePixmapSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePixmapSurface</span></span></a> |
| will match this attribute. If the value is |
| <code class="constant">EGL_NONE</code>, then configs are not |
| matched for this attribute. The default value is |
| <code class="constant">EGL_NONE</code>. |
| </p> |
| <p> |
| <code class="constant">EGL_MATCH_NATIVE_PIXMAP</code> was |
| introduced due to the difficulty of determining an |
| <span class="type">EGLConfig</span> compatibile with a native |
| pixmap using only color component sizes. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_NATIVE_RENDERABLE</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Must be followed by |
| <code class="constant">EGL_DONT_CARE</code>, |
| <code class="constant">EGL_TRUE</code>, or |
| <code class="constant">EGL_FALSE</code>. |
| If <code class="constant">EGL_TRUE</code> is specified, then |
| only frame buffer configurations that allow native |
| rendering into the surface will be considered. The |
| default value is <code class="constant">EGL_DONT_CARE</code>. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_MAX_SWAP_INTERVAL</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Must be followed by a integer that indicates the |
| maximum value that can be passed to |
| <a class="citerefentry" href="eglSwapInterval.html"><span class="citerefentry"><span class="refentrytitle">eglSwapInterval</span></span></a>. |
| The default value is |
| <code class="constant">EGL_DONT_CARE</code>. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_MIN_SWAP_INTERVAL</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Must be followed by a integer that indicates the |
| minimum value that can be passed to eglSwapInterval. |
| The default value is <code class="constant">EGL_DONT_CARE</code>. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_RED_SIZE</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Must be followed by a nonnegative integer that |
| indicates the desired size of the red component of |
| the color buffer, in bits. If this value is zero, |
| color buffers with the smallest red component size |
| are preferred. Otherwise, color buffers with the |
| largest red component of at least the specified size |
| are preferred. The default value is zero. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_SAMPLE_BUFFERS</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Must be followed by the minimum acceptable number of |
| multisample buffers. Configurations with the |
| smallest number of multisample buffers that meet or |
| exceed this minimum number are preferred. Currently |
| operation with more than one multisample buffer is |
| undefined, so only values of zero or one will |
| produce a match. The default value is zero. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_SAMPLES</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Must be followed by the minimum number of |
| samples required in multisample buffers. |
| Configurations with the smallest number of |
| samples that meet or exceed the specified |
| minimum number are preferred. Note that it is |
| possible for color samples in the multisample |
| buffer to have fewer bits than colors in the |
| main color buffers. However, multisampled |
| colors maintain at least as much color |
| resolution in aggregate as the main color |
| buffers. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_STENCIL_SIZE</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Must be followed by a nonnegative integer that |
| indicates the desired stencil buffer size, in bits. |
| The smallest stencil buffers of at least the |
| specified size are preferred. If the desired size is |
| zero, frame buffer configurations with no stencil |
| buffer are preferred. The default value is zero. |
| </p> |
| <p> |
| The stencil buffer is used only by OpenGL and |
| OpenGL ES client APIs. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_RENDERABLE_TYPE</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Must be followed by a bitmask indicating which types |
| of client API contexts the frame buffer |
| configuration must support creating with |
| <a class="citerefentry" href="eglCreateContext.html"><span class="citerefentry"><span class="refentrytitle">eglCreateContext</span></span></a>). |
| Mask bits are the same as for attribute |
| <code class="constant">EGL_CONFORMANT</code>. The default |
| value is <code class="constant">EGL_OPENGL_ES_BIT</code>. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_SURFACE_TYPE</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Must be followed by a bitmask indicating which EGL |
| surface types and capabilities the frame buffer |
| configuration must support. Mask bits include: |
| </p> |
| <div class="variablelist"> |
| <dl class="variablelist"> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_MULTISAMPLE_RESOLVE_BOX_BIT</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Config allows specifying box filtered |
| multisample resolve behavior with |
| <a class="citerefentry" href="eglSurfaceAttrib.html"><span class="citerefentry"><span class="refentrytitle">eglSurfaceAttrib</span></span></a>. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_PBUFFER_BIT</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Config supports creating pixel buffer surfaces. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_PIXMAP_BIT</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Config supports creating pixmap surfaces. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_SWAP_BEHAVIOR_PRESERVED_BIT</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Config allows setting swap behavior for |
| color buffers with |
| <a class="citerefentry" href="eglSurfaceAttrib.html"><span class="citerefentry"><span class="refentrytitle">eglSurfaceAttrib</span></span></a>. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_VG_ALPHA_FORMAT_PRE_BIT</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Config allows specifying OpenVG rendering |
| with premultiplied alpha values at surface |
| creation time (see |
| <a class="citerefentry" href="eglCreatePbufferSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>, |
| <a class="citerefentry" href="eglCreatePixmapSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePixmapSurface</span></span></a>, |
| and |
| <a class="citerefentry" href="eglCreateWindowSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreateWindowSurface</span></span></a>). |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_VG_COLORSPACE_LINEAR_BIT</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Config allows specifying OpenVG rendering in |
| a linear colorspace at surface creation time |
| (see |
| <a class="citerefentry" href="eglCreatePbufferSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>, |
| <a class="citerefentry" href="eglCreatePixmapSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePixmapSurface</span></span></a>, |
| and |
| <a class="citerefentry" href="eglCreateWindowSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreateWindowSurface</span></span></a>). |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_WINDOW_BIT</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Config supports creating window surfaces. |
| </p> |
| </dd> |
| </dl> |
| </div> |
| <p> |
| For example, if the bitmask is set to |
| <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll"> |
| <mml:mi><code class="constant">EGL_WINDOW_BIT</code></mml:mi> |
| <mml:mo>|</mml:mo> |
| <mml:mi><code class="constant">EGL_PIXMAP_BIT</code></mml:mi> |
| </mml:math>, |
| only frame buffer configurations that support both |
| windows and pixmaps will be considered. The default |
| value is <code class="constant">EGL_WINDOW_BIT</code>. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_TRANSPARENT_TYPE</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Must be followed by one of |
| <code class="constant">EGL_NONE</code> or |
| <code class="constant">EGL_TRANSPARENT_RGB</code>. If |
| <code class="constant">EGL_NONE</code> is specified, then |
| only opaque frame buffer configurations will be |
| considered. If |
| <code class="constant">EGL_TRANSPARENT_RGB</code> is |
| specified, then only transparent frame buffer |
| configurations will be considered. The default value |
| is <code class="constant">EGL_NONE</code>. |
| </p> |
| <p> |
| Most implementations support only opaque frame |
| buffer configurations. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_TRANSPARENT_RED_VALUE</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Must be followed by an integer value indicating the |
| transparent red value. The value must be between |
| zero and the maximum color buffer value for red. |
| Only frame buffer configurations that use the |
| specified transparent red value will be considered. |
| The default value is |
| <code class="constant">EGL_DONT_CARE</code>. |
| </p> |
| <p> |
| This attribute is ignored unless |
| <code class="constant">EGL_TRANSPARENT_TYPE</code> is included in |
| <em class="parameter"><code>attrib_list</code></em> and specified as |
| <code class="constant">EGL_TRANSPARENT_RGB</code>. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_TRANSPARENT_GREEN_VALUE</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Must be followed by an integer value indicating the |
| transparent green value. The value must be between |
| zero and the maximum color buffer value for green. |
| Only frame buffer configurations that use the |
| specified transparent green value will be |
| considered. The default value is |
| <code class="constant">EGL_DONT_CARE</code>. |
| </p> |
| <p> |
| This attribute is ignored unless |
| <code class="constant">EGL_TRANSPARENT_TYPE</code> is included in |
| <em class="parameter"><code>attrib_list</code></em> and specified as |
| <code class="constant">EGL_TRANSPARENT_RGB</code>. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_TRANSPARENT_BLUE_VALUE</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Must be followed by an integer value indicating the |
| transparent blue value. The value must be between |
| zero and the maximum color buffer value for blue. |
| Only frame buffer configurations that use the |
| specified transparent blue value will be considered. |
| The default value is |
| <code class="constant">EGL_DONT_CARE</code>. |
| </p> |
| <p> |
| This attribute is ignored unless |
| <code class="constant">EGL_TRANSPARENT_TYPE</code> is included in |
| <em class="parameter"><code>attrib_list</code></em> and specified as |
| <code class="constant">EGL_TRANSPARENT_RGB</code>. |
| </p> |
| </dd> |
| </dl> |
| </div> |
| <p> |
| When more than one EGL frame buffer configuration matches |
| the specified attributes, a list of matching configurations |
| is returned. The list is sorted according to the following |
| precedence rules, which are applied in ascending order |
| (i.e., configurations that are considered equal by a lower |
| numbered rule are sorted by the higher numbered rule): |
| </p> |
| <div class="orderedlist"> |
| <ol class="orderedlist" type="1"> |
| <li class="listitem"> |
| <p> |
| Special: by <code class="constant">EGL_CONFIG_CAVEAT</code>, |
| where the precedence is <code class="constant">EGL_NONE</code>, |
| <code class="constant">EGL_SLOW_CONFIG</code>, and |
| <code class="constant">EGL_NON_CONFORMANT_CONFIG</code>. |
| </p> |
| </li> |
| <li class="listitem"> |
| <p> |
| Special: by <code class="constant">EGL_COLOR_BUFFER_TYPE</code>, |
| where the precedence is |
| <code class="constant">EGL_RGB_BUFFER</code>, |
| <code class="constant">EGL_LUMINANCE_BUFFER</code>. |
| </p> |
| </li> |
| <li class="listitem"> |
| <p> |
| Special: by larger total number of color bits (for an |
| RGB color buffer, this is the sum of |
| <code class="constant">EGL_RED_SIZE</code>, |
| <code class="constant">EGL_GREEN_SIZE</code>, |
| <code class="constant">EGL_BLUE_SIZE</code>, and |
| <code class="constant">EGL_ALPHA_SIZE</code>; for a luminance |
| color buffer, the sum of |
| <code class="constant">EGL_LUMINANCE_SIZE</code> and |
| <code class="constant">EGL_ALPHA_SIZE</code>). If the requested |
| number of bits in <em class="parameter"><code>attrib_list</code></em> is |
| <code class="constant">0</code> or |
| <code class="constant">EGL_DONT_CARE</code> for a particular |
| color component, then the number of bits for that |
| component is not considered. |
| </p> |
| <p> |
| This sort rule places configs with deeper color buffers |
| before configs with shallower color buffers, which may |
| be counterintuitive. |
| </p> |
| </li> |
| <li class="listitem"> |
| <p> |
| Smaller <code class="constant">EGL_BUFFER_SIZE</code>. |
| </p> |
| </li> |
| <li class="listitem"> |
| <p> |
| Smaller <code class="constant">EGL_SAMPLE_BUFFERS</code>. |
| </p> |
| </li> |
| <li class="listitem"> |
| <p> |
| Smaller <code class="constant">EGL_SAMPLES</code>. |
| </p> |
| </li> |
| <li class="listitem"> |
| <p> |
| Smaller <code class="constant">EGL_DEPTH_SIZE</code>. |
| </p> |
| </li> |
| <li class="listitem"> |
| <p> |
| Smaller <code class="constant">EGL_STENCIL_SIZE</code>. |
| </p> |
| </li> |
| <li class="listitem"> |
| <p> |
| Smaller <code class="constant">EGL_ALPHA_MASK_SIZE</code>. |
| </p> |
| </li> |
| <li class="listitem"> |
| <p> |
| Special: <code class="constant">EGL_NATIVE_VISUAL_TYPE</code> |
| (the actual sort order is implementation-defined, |
| depending on the meaning of native visual types). |
| </p> |
| </li> |
| <li class="listitem"> |
| <p> |
| Smaller <code class="constant">EGL_CONFIG_ID</code> (this is |
| always the last sorting rule, and guarantees a unique |
| ordering). |
| </p> |
| </li> |
| </ol> |
| </div> |
| <p> |
| <span class="type">EGLConfigs</span> are not sorted with respect to the |
| attributes <code class="constant">EGL_BIND_TO_TEXTURE_RGB</code>, |
| <code class="constant">EGL_BIND_TO_TEXTURE_RGBA</code>, |
| <code class="constant">EGL_CONFORMANT</code>, |
| <code class="constant">EGL_LEVEL</code>, |
| <code class="constant">EGL_NATIVE_RENDERABLE</code>, |
| <code class="constant">EGL_MAX_SWAP_INTERVAL</code>, |
| <code class="constant">EGL_MIN_SWAP_INTERVAL</code>, |
| <code class="constant">EGL_RENDERABLE_TYPE</code>, |
| <code class="constant">EGL_SURFACE_TYPE</code>, |
| <code class="constant">EGL_TRANSPARENT_TYPE</code>, |
| <code class="constant">EGL_TRANSPARENT_RED_VALUE</code>, |
| <code class="constant">EGL_TRANSPARENT_GREEN_VALUE</code>, and |
| <code class="constant">EGL_TRANSPARENT_BLUE_VALUE</code>. |
| </p> |
| </div> |
| <div class="refsect1"> |
| <a id="examples"></a> |
| <h2>Examples</h2> |
| <p> |
| The following example specifies a frame buffer configuration |
| in the normal frame buffer (not an overlay or underlay). The |
| returned frame buffer configuration supports a color buffer |
| with at least 4 bits each of red, green and blue, and |
| possibly no alpha bits. The code shown in the example may or |
| may not have a depth buffer, or a stencil buffer. |
| </p> |
| <pre class="programlisting">EGLint const attrib_list[] = { |
| EGL_RED_SIZE, 4, |
| EGL_GREEN_SIZE, 4, |
| EGL_BLUE_SIZE, 4, |
| EGL_NONE |
| };</pre> |
| </div> |
| <div class="refsect1"> |
| <a id="notes"></a> |
| <h2>Notes</h2> |
| <p> |
| <code class="constant">EGL_RENDERABLE_TYPE</code> bit |
| <code class="constant">EGL_OPENGL_BIT</code>, and |
| <code class="constant">EGL_SURFACE_TYPE</code> bits |
| <code class="constant">EGL_MULTISAMPLE_RESOLVE_BOX_BIT</code> and |
| <code class="constant">EGL_SWAP_BEHAVIOR_PRESERVED_BIT</code> are |
| supported only if the EGL version is 1.4 or greater. |
| </p> |
| <p> |
| <code class="constant">EGL_CONFORMANT</code>, |
| <code class="constant">EGL_MATCH_NATIVE_PIXMAP</code>, |
| <code class="constant">EGL_RENDERABLE_TYPE</code> bit |
| <code class="constant">EGL_OPENGL_ES2_BIT</code>, and |
| <code class="constant">EGL_SURFACE_TYPE</code> bits |
| <code class="constant">EGL_VG_ALPHA_FORMAT_PRE_BIT</code> and |
| <code class="constant">EGL_VG_COLORSPACE_LINEAR_BIT</code> are |
| supported only if the EGL version is 1.3 or greater. |
| </p> |
| <p> |
| <code class="constant">EGL_ALPHA_MASK_SIZE</code>, |
| <code class="constant">EGL_COLOR_BUFFER_TYPE</code>, |
| <code class="constant">EGL_LUMINANCE_SIZE</code>, |
| <code class="constant">EGL_RENDERABLE_TYPE</code>, and |
| <code class="constant">EGL_RENDERABLE_TYPE</code> bits |
| <code class="constant">EGL_OPENGL_ES_BIT</code> and |
| <code class="constant">EGL_OPENVG_BIT</code> are supported only if |
| the EGL version is 1.2 or greater. |
| </p> |
| <p> |
| If OpenGL or OpenGL ES rendering is supported for a |
| luminance color buffer, it is treated as RGB rendering with |
| the value of <code class="constant">GL_RED_BITS</code> equal to |
| <code class="constant">EGL_LUMINANCE_SIZE</code> and the values of |
| <code class="constant">GL_GREEN_BITS</code> and |
| <code class="constant">GL_BLUE_BITS</code> equal to zero. The red |
| component of fragments is written to the luminance channel |
| of the color buffer while the green and blue components are |
| discarded. |
| </p> |
| <p> |
| <a class="citerefentry" href="eglGetConfigs.html"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a> |
| and |
| <a class="citerefentry" href="eglGetConfigAttrib.html"><span class="citerefentry"><span class="refentrytitle">eglGetConfigAttrib</span></span></a> |
| can be used to implement selection algorithms other than the |
| generic one implemented by |
| <code class="function">eglChooseConfig</code>. Call |
| <a class="citerefentry" href="eglGetConfigs.html"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a> |
| to retrieve all the frame buffer configurations, or |
| alternatively, all the frame buffer configurations with a |
| particular set of attributes. Next call |
| <a class="citerefentry" href="eglGetConfigAttrib.html"><span class="citerefentry"><span class="refentrytitle">eglGetConfigAttrib</span></span></a> |
| to retrieve additional attributes for the frame buffer |
| configurations and then select between them. |
| </p> |
| <p> |
| EGL implementors are strongly discouraged, but not |
| proscribed, from changing the selection algorithm used by |
| <code class="function">eglChooseConfig</code>. Therefore, selections |
| may change from release to release of the client-side |
| library. |
| </p> |
| </div> |
| <div class="refsect1"> |
| <a id="errors"></a> |
| <h2>Errors</h2> |
| <p> |
| <code class="constant">EGL_FALSE</code> is returned on failure, |
| <code class="constant">EGL_TRUE</code> otherwise. |
| <em class="parameter"><code>configs</code></em> and |
| <em class="parameter"><code>num_config</code></em> are not modified when |
| <code class="constant">EGL_FALSE</code> is returned. |
| </p> |
| <p> |
| <code class="constant">EGL_BAD_DISPLAY</code> is generated if |
| <em class="parameter"><code>display</code></em> is not an EGL display connection. |
| </p> |
| <p> |
| <code class="constant">EGL_BAD_ATTRIBUTE</code> is generated if |
| <em class="parameter"><code>attribute_list</code></em> contains an invalid frame buffer |
| configuration attribute or an |
| attribute value that is unrecognized or out of range. |
| </p> |
| <p> |
| <code class="constant">EGL_NOT_INITIALIZED</code> is generated if |
| <em class="parameter"><code>display</code></em> has not been initialized. |
| </p> |
| <p> |
| <code class="constant">EGL_BAD_PARAMETER</code> is generated if |
| <em class="parameter"><code>num_config</code></em> is <code class="constant">NULL</code>. |
| </p> |
| </div> |
| <div class="refsect1"> |
| <a id="seealso"></a> |
| <h2>See Also</h2> |
| <p> |
| <a class="citerefentry" href="eglCreateContext.html"><span class="citerefentry"><span class="refentrytitle">eglCreateContext</span></span></a>, |
| <a class="citerefentry" href="eglCreatePbufferSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>, |
| <a class="citerefentry" href="eglCreatePixmapSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePixmapSurface</span></span></a>, |
| <a class="citerefentry" href="eglCreateWindowSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreateWindowSurface</span></span></a>, |
| <a class="citerefentry" href="eglGetConfigs.html"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a>, |
| <a class="citerefentry" href="eglGetConfigAttrib.html"><span class="citerefentry"><span class="refentrytitle">eglGetConfigAttrib</span></span></a>, |
| <a class="citerefentry" href="eglSurfaceAttrib.html"><span class="citerefentry"><span class="refentrytitle">eglSurfaceAttrib</span></span></a>, |
| <a class="citerefentry" href="eglSwapInterval.html"><span class="citerefentry"><span class="refentrytitle">eglSwapInterval</span></span></a> |
| </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" /><p xmlns="http://www.w3.org/1999/xhtml"></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. |
| </div> |
| </div> |
| </body> |
| </html> |