<?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>eglGetConfigAttrib</title>
    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
  </head>
  <body>
    <div class="refentry">
      <a id="eglGetConfigAttrib"></a>
      <div class="titlepage"></div>
      <div xmlns="" class="refnamediv">
        <h1>eglGetConfigAttrib</h1>
        <p>
            return information about an <acronym xmlns="http://www.w3.org/1999/xhtml" class="acronym">EGL</acronym> frame buffer
            configuration
        </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">eglGetConfigAttrib</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>EGLConfig  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">config</var>, </td>
            </tr>
            <tr valign="top">
              <td> </td>
              <td>EGLint  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">attribute</var>, </td>
            </tr>
            <tr valign="top">
              <td> </td>
              <td>EGLint *  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">value</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>config</code>
                </em>
              </span>
            </dt>
            <dd>
              <p>Specifies the EGL frame buffer configuration to be
                    queried.
                </p>
            </dd>
            <dt>
              <span class="term">
                <em class="parameter">
                  <code>attribute</code>
                </em>
              </span>
            </dt>
            <dd>
              <p>Specifies the EGL rendering context attribute to be
                returned.</p>
            </dd>
            <dt>
              <span class="term">
                <em class="parameter">
                  <code>value</code>
                </em>
              </span>
            </dt>
            <dd>
              <p>Returns the requested value.</p>
            </dd>
          </dl>
        </div>
      </div>
      <div class="refsect1">
        <a id="description"></a>
        <h2>Description</h2>
        <p>
            <code class="function">eglGetConfigAttrib</code> returns in
            <em class="parameter"><code>value</code></em> the value of
            <em class="parameter"><code>attribute</code></em> for
            <em class="parameter"><code>config</code></em>
            (config attributes are described in more detail in the
            <a class="citerefentry" href="eglChooseConfig.html"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>
            reference page).
            <em class="parameter"><code>attribute</code></em> can be one of the following:
        </p>
        <div class="variablelist">
          <dl class="variablelist">
            <dt>
              <span class="term">
                <code class="constant">EGL_ALPHA_SIZE</code>
              </span>
            </dt>
            <dd>
              <p>Returns the number of bits of alpha stored in the
            color buffer.
            </p>
            </dd>
            <dt>
              <span class="term">
                <code class="constant">EGL_ALPHA_MASK_SIZE</code>
              </span>
            </dt>
            <dd>
              <p>
                    Returns the number of bits in the alpha mask buffer.
                </p>
            </dd>
            <dt>
              <span class="term">
                <code class="constant">EGL_BIND_TO_TEXTURE_RGB</code>
              </span>
            </dt>
            <dd>
              <p>Returns <code class="constant">EGL_TRUE</code> if color buffers can be
            bound to an RGB texture,
            <code class="constant">EGL_FALSE</code> otherwise.
            </p>
            </dd>
            <dt>
              <span class="term">
                <code class="constant">EGL_BIND_TO_TEXTURE_RGBA</code>
              </span>
            </dt>
            <dd>
              <p>Returns <code class="constant">EGL_TRUE</code> if color buffers can be
            bound to an RGBA texture,
            <code class="constant">EGL_FALSE</code> otherwise.
            </p>
            </dd>
            <dt>
              <span class="term">
                <code class="constant">EGL_BLUE_SIZE</code>
              </span>
            </dt>
            <dd>
              <p>Returns the number of bits of blue stored in the
            color buffer.
            </p>
            </dd>
            <dt>
              <span class="term">
                <code class="constant">EGL_BUFFER_SIZE</code>
              </span>
            </dt>
            <dd>
              <p>Returns the depth of the color buffer.
                It 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>.
            </p>
            </dd>
            <dt>
              <span class="term">
                <code class="constant">EGL_COLOR_BUFFER_TYPE</code>
              </span>
            </dt>
            <dd>
              <p>
                    Returns the color buffer type. Possible types are
                    <code class="constant">EGL_RGB_BUFFER</code> and
                    <code class="constant">EGL_LUMINANCE_BUFFER</code>.
                </p>
            </dd>
            <dt>
              <span class="term">
                <code class="constant">EGL_CONFIG_CAVEAT</code>
              </span>
            </dt>
            <dd>
              <p>Returns the caveats for the frame buffer configuration.
                Possible caveat values are
                <code class="constant">EGL_NONE</code>,
                <code class="constant">EGL_SLOW_CONFIG</code>, and
                <code class="constant">EGL_NON_CONFORMANT</code>.
            </p>
            </dd>
            <dt>
              <span class="term">
                <code class="constant">EGL_CONFIG_ID</code>
              </span>
            </dt>
            <dd>
              <p>Returns the ID of the frame buffer configuration.
            </p>
            </dd>
            <dt>
              <span class="term">
                <code class="constant">EGL_CONFORMANT</code>
              </span>
            </dt>
            <dd>
              <p>
                Returns a bitmask indicating which client API contexts
                created with respect to this config are conformant.
            </p>
            </dd>
            <dt>
              <span class="term">
                <code class="constant">EGL_DEPTH_SIZE</code>
              </span>
            </dt>
            <dd>
              <p>Returns the number of bits in the depth buffer.
            </p>
            </dd>
            <dt>
              <span class="term">
                <code class="constant">EGL_GREEN_SIZE</code>
              </span>
            </dt>
            <dd>
              <p>Returns the number of bits of green stored in the
            color buffer.
            </p>
            </dd>
            <dt>
              <span class="term">
                <code class="constant">EGL_LEVEL</code>
              </span>
            </dt>
            <dd>
              <p>Returns the frame buffer level.
                Level zero is the default frame buffer.
                Positive levels correspond to frame buffers that overlay the default
                buffer and negative levels correspond to frame buffers that underlay
                the default buffer.
            </p>
            </dd>
            <dt>
              <span class="term">
                <code class="constant">EGL_LUMINANCE_SIZE</code>
              </span>
            </dt>
            <dd>
              <p>
                    Returns the number of bits of luminance stored in the luminance buffer.
                </p>
            </dd>
            <dt>
              <span class="term">
                <code class="constant">EGL_MAX_PBUFFER_WIDTH</code>
              </span>
            </dt>
            <dd>
              <p>Returns the maximum width of a pixel buffer surface in pixels.
            </p>
            </dd>
            <dt>
              <span class="term">
                <code class="constant">EGL_MAX_PBUFFER_HEIGHT</code>
              </span>
            </dt>
            <dd>
              <p>Returns the maximum height of a pixel buffer surface in pixels.
            </p>
            </dd>
            <dt>
              <span class="term">
                <code class="constant">EGL_MAX_PBUFFER_PIXELS</code>
              </span>
            </dt>
            <dd>
              <p>Returns the maximum size of a pixel buffer surface in pixels.
            </p>
            </dd>
            <dt>
              <span class="term">
                <code class="constant">EGL_MAX_SWAP_INTERVAL</code>
              </span>
            </dt>
            <dd>
              <p>Returns the maximum value that can be passed to eglSwapInterval.
                </p>
            </dd>
            <dt>
              <span class="term">
                <code class="constant">EGL_MIN_SWAP_INTERVAL</code>
              </span>
            </dt>
            <dd>
              <p>Returns the minimum value that can be passed to eglSwapInterval.
                </p>
            </dd>
            <dt>
              <span class="term">
                <code class="constant">EGL_NATIVE_RENDERABLE</code>
              </span>
            </dt>
            <dd>
              <p>Returns <code class="constant">EGL_TRUE</code> if native rendering
                APIs can render into the surface,
                <code class="constant">EGL_FALSE</code> otherwise.
            </p>
            </dd>
            <dt>
              <span class="term">
                <code class="constant">EGL_NATIVE_VISUAL_ID</code>
              </span>
            </dt>
            <dd>
              <p>Returns the ID of the associated native visual.
            </p>
            </dd>
            <dt>
              <span class="term">
                <code class="constant">EGL_NATIVE_VISUAL_TYPE</code>
              </span>
            </dt>
            <dd>
              <p>Returns the type of the associated native visual.
            </p>
            </dd>
            <dt>
              <span class="term">
                <code class="constant">EGL_RED_SIZE</code>
              </span>
            </dt>
            <dd>
              <p>Returns the number of bits of red stored in the
            color buffer.
            </p>
            </dd>
            <dt>
              <span class="term">
                <code class="constant">EGL_RENDERABLE_TYPE</code>
              </span>
            </dt>
            <dd>
              <p>
                    Returns a bitmask indicating the types of supported
                    client API contexts.
                </p>
            </dd>
            <dt>
              <span class="term">
                <code class="constant">EGL_SAMPLE_BUFFERS</code>
              </span>
            </dt>
            <dd>
              <p>Returns the number of multisample buffers.
            </p>
            </dd>
            <dt>
              <span class="term">
                <code class="constant">EGL_SAMPLES</code>
              </span>
            </dt>
            <dd>
              <p>Returns the number of samples per pixel.</p>
            </dd>
            <dt>
              <span class="term">
                <code class="constant">EGL_STENCIL_SIZE</code>
              </span>
            </dt>
            <dd>
              <p>Returns the number of bits in the stencil buffer.
            </p>
            </dd>
            <dt>
              <span class="term">
                <code class="constant">EGL_SURFACE_TYPE</code>
              </span>
            </dt>
            <dd>
              <p>
                Returns a bitmask indicating the types of supported EGL
                surfaces.
            </p>
            </dd>
            <dt>
              <span class="term">
                <code class="constant">EGL_TRANSPARENT_TYPE</code>
              </span>
            </dt>
            <dd>
              <p>Returns the type of supported transparency.
                Possible transparency values are:
                <code class="constant">EGL_NONE</code>, and
                <code class="constant">EGL_TRANSPARENT_RGB</code>.
            </p>
            </dd>
            <dt>
              <span class="term">
                <code class="constant">EGL_TRANSPARENT_RED_VALUE</code>
              </span>
            </dt>
            <dd>
              <p>Returns the transparent red value.</p>
            </dd>
            <dt>
              <span class="term">
                <code class="constant">EGL_TRANSPARENT_GREEN_VALUE</code>
              </span>
            </dt>
            <dd>
              <p>Returns the transparent green value.</p>
            </dd>
            <dt>
              <span class="term">
                <code class="constant">EGL_TRANSPARENT_BLUE_VALUE</code>
              </span>
            </dt>
            <dd>
              <p>Returns the transparent blue value.</p>
            </dd>
          </dl>
        </div>
      </div>
      <div class="refsect1">
        <a id="notes"></a>
        <h2>Notes</h2>
        <p>
            <code class="constant">EGL_CONFORMANT</code> is 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>, and
            <code class="constant">EGL_RENDERABLE_TYPE</code> are supported only
            if the EGL version is 1.2 or greater.
        </p>
        <p>
            While <code class="constant">EGL_MATCH_NATIVE_PIXMAP</code> can be
            specified in the attribute list passed to
            <a class="citerefentry" href="eglChooseConfig.html"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>,
            it is not an attribute of the resulting config and cannot be
            queried using <code class="function">eglGetConfigAttrib</code>.
        </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>value</code></em> is 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_NOT_INITIALIZED</code> is generated if
            <em class="parameter"><code>display</code></em> has not been initialized.
        </p>
        <p>
            <code class="constant">EGL_BAD_CONFIG</code> is generated if
            <em class="parameter"><code>config</code></em> is not an EGL frame buffer configuration.
        </p>
        <p>
            <code class="constant">EGL_BAD_ATTRIBUTE</code> is generated if
            <em class="parameter"><code>attribute</code></em> is not a valid frame buffer
            configuration attribute.
        </p>
      </div>
      <div class="refsect1">
        <a id="seealso"></a>
        <h2>See Also</h2>
        <p>
            <a class="citerefentry" href="eglChooseConfig.html"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>,
            <a class="citerefentry" href="eglGetConfigs.html"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</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>
