<?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>eglCreatePixmapSurface</title>
    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
  </head>
  <body>
    <div class="refentry">
      <a id="eglCreatePixmapSurface"></a>
      <div class="titlepage"></div>
      <div xmlns="" class="refnamediv">
        <h1>eglCreatePixmapSurface</h1>
        <p>
            create a new <acronym xmlns="http://www.w3.org/1999/xhtml" class="acronym">EGL</acronym> pixmap surface
        </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">EGLSurface <strong class="fsfunc">eglCreatePixmapSurface</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>NativePixmapType  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">native_pixmap</var>, </td>
            </tr>
            <tr valign="top">
              <td> </td>
              <td>EGLint const *  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">attrib_list</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 that defines the
                    frame buffer resource available to the surface.</p>
            </dd>
            <dt>
              <span class="term">
                <em class="parameter">
                  <code>native_pixmap</code>
                </em>
              </span>
            </dt>
            <dd>
              <p>Specifies the native pixmap.</p>
            </dd>
            <dt>
              <span class="term">
                <em class="parameter">
                  <code>attrib_list</code>
                </em>
              </span>
            </dt>
            <dd>
              <p>
                    Specifies pixmap surface attributes.
                    May be <code class="constant">NULL</code> or empty
                    (first attribute is <code class="constant">EGL_NONE</code>).
                </p>
            </dd>
          </dl>
        </div>
      </div>
      <div class="refsect1">
        <a id="description"></a>
        <h2>Description</h2>
        <p>
            <code class="function">eglCreatePixmapSurface</code> creates an
            off-screen <acronym class="acronym">EGL</acronym> pixmap surface and returns
            its handle. If <code class="function">eglCreatePixmapSurface</code>
            fails to create a pixmap surface,
            <code class="constant">EGL_NO_SURFACE</code> is returned.
        </p>
        <p>
            Surface attributes are specified as a list of
            attribute-value pairs, terminated with
            <code class="constant">EGL_NONE</code>. Accepted attributes
            are:
        </p>
        <div class="variablelist">
          <dl class="variablelist">
            <dt>
              <span class="term">
                <code class="constant">EGL_VG_ALPHA_FORMAT</code>
              </span>
            </dt>
            <dd>
              <p>
                    Specifies how alpha values are interpreted by OpenVG
                    when rendering to the surface. If its value is
                    <code class="constant">EGL_VG_ALPHA_FORMAT_NONPRE</code>,
                    then alpha values are not premultipled. If its value
                    is <code class="constant">EGL_VG_ALPHA_FORMAT_PRE</code>,
                    then alpha values are premultiplied. The default
                    value of <code class="constant">EGL_VG_ALPHA_FORMAT</code> is
                    <code class="constant">EGL_VG_ALPHA_FORMAT_NONPRE</code>.
                </p>
            </dd>
            <dt>
              <span class="term">
                <code class="constant">EGL_VG_COLORSPACE</code>
              </span>
            </dt>
            <dd>
              <p>
                    Specifies the color space used by OpenVG when
                    rendering to the surface. If its value is
                    <code class="constant">EGL_VG_COLORSPACE_sRGB</code>, then a
                    non-linear, perceptually uniform color space is
                    assumed, with a corresponding
                    <span class="type">VGImageFormat</span> of form
                    <code class="constant">VG_s*</code>. If its value is
                    <code class="constant">EGL_VG_COLORSPACE_LINEAR</code>, then
                    a linear color space is assumed, with a
                    corresponding <span class="type">VGImageFormat</span> of form
                    <code class="constant">VG_l*</code>. The default value of
                    <code class="constant">EGL_VG_COLORSPACE</code> is
                    <code class="constant">EGL_VG_COLORSPACE_sRGB</code>.
                </p>
            </dd>
          </dl>
        </div>
        <p>
            Any EGL rendering context that was created with respect to
            <em class="parameter"><code>config</code></em> can be used to render into the
            surface. Use
            <a class="citerefentry" href="eglMakeCurrent.html"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>
            to attach an EGL rendering context to the surface.
        </p>
        <p>
            Use
            <a class="citerefentry" href="eglQuerySurface.html"><span class="citerefentry"><span class="refentrytitle">eglQuerySurface</span></span></a>
            to retrieve the ID of <em class="parameter"><code>config</code></em>.
        </p>
        <p>
            Use <a class="citerefentry" href="eglDestroySurface.html"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>
            to destroy the surface.
        </p>
      </div>
      <div class="refsect1">
        <a id="notes"></a>
        <h2>Notes</h2>
        <p>
            The <code class="constant">EGL_MATCH_NATIVE_PIXMAP</code> attribute
            of
            <a class="citerefentry" href="eglChooseConfig.html"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>
            can be used to select a frame buffer configuration matching
            a specified native pixmap.
        </p>
        <p>
            Attributes
            <code class="constant">EGL_VG_ALPHA_FORMAT</code> and
            <code class="constant">EGL_VG_COLORSPACE</code>, and the
            corresponding attribute values, are supported only if the
            EGL version is 1.2 or greater.
        </p>
        <p>
            The <code class="constant">EGL_VG_ALPHA_FORMAT</code> and
            <code class="constant">EGL_VG_COLORSPACE</code> attributes are used
            only by OpenVG. EGL itself, and other client APIs such as
            OpenGL and OpenGL ES , do not distinguish multiple
            colorspace models. Refer to section 11.2 of the OpenVG 1.0
            specification for more information. The native window
            system's use and interpretation of alpha values is outside
            the scope of EGL, although the preferred behavior is for the
            window system to ignore the value of
            <code class="constant">EGL_VG_ALPHA_FORMAT</code>.
        </p>
      </div>
      <div class="refsect1">
        <a id="errors"></a>
        <h2>Errors</h2>
        <p>
            <code class="constant">EGL_NO_SURFACE</code> is returned if creation of
            the context fails.
        </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 config.
        </p>
        <p>
            <code class="constant">EGL_BAD_NATIVE_PIXMAP</code> may be generated if
            <em class="parameter"><code>native_pixmap</code></em> is not a valid native pixmap.
        </p>
        <p>
            <code class="constant">EGL_BAD_ATTRIBUTE</code> is generated if
            <em class="parameter"><code>attrib_list</code></em> contains an invalid pixmap attribute
            or if an attribute value is not recognized or out of range.
        </p>
        <p>
            <code class="constant">EGL_BAD_ALLOC</code> is generated if there are not
            enough resources to allocate the new surface.
        </p>
        <p>
            <code class="constant">EGL_BAD_MATCH</code> is generated if the attributes of
            <em class="parameter"><code>native_pixmap</code></em> do not correspond to
            <em class="parameter"><code>config</code></em> or if
            <em class="parameter"><code>config</code></em> does not support rendering to pixmaps
            (the <code class="constant">EGL_SURFACE_TYPE</code> attribute does not contain
            <code class="constant">EGL_PIXMAP_BIT</code>).
        </p>
        <p>
            <code class="constant">EGL_BAD_MATCH</code> is generated if
            <em class="parameter"><code>config</code></em> does not support the specified
            OpenVG alpha format attribute (the value of
            <code class="constant">EGL_VG_ALPHA_FORMAT</code> is
            <code class="constant">EGL_VG_ALPHA_FORMAT_PRE</code> and the
            <code class="constant">EGL_VG_ALPHA_FORMAT_PRE_BIT</code> is not set
            in the <code class="constant">EGL_SURFACE_TYPE</code> attribute of
            <em class="parameter"><code>config</code></em>) or colorspace attribute (the
            value of <code class="constant">EGL_VG_COLORSPACE</code> is
            <code class="constant">EGL_VG_COLORSPACE_LINEAR</code> and the
            <code class="constant">EGL_VG_COLORSPACE_LINEAR_IT</code> is not set
            in the <code class="constant">EGL_SURFACE_TYPE</code> attribute of
            <em class="parameter"><code>config</code></em>).
        </p>
      </div>
      <div class="refsect1">
        <a id="seealso"></a>
        <h2>See Also</h2>
        <p>
            <a class="citerefentry" href="eglDestroySurface.html"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>,
            <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>,
            <a class="citerefentry" href="eglMakeCurrent.html"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>,
            <a class="citerefentry" href="eglQuerySurface.html"><span class="citerefentry"><span class="refentrytitle">eglQuerySurface</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>
