|  | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | 
|  | <!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"> | 
|  | <head> | 
|  | <title xmlns:xlink="http://www.w3.org/1999/xlink">eglCreateWindowSurface - EGL Reference Pages</title> | 
|  | <link rel="stylesheet" type="text/css" href="khronos-man.css"/> | 
|  | <meta name="generator" content="DocBook XSL Stylesheets V1.78.1"/> | 
|  | </head> | 
|  | <body> | 
|  | <header/> | 
|  | <div class="refentry" id="eglCreateWindowSurface"> | 
|  | <div class="titlepage"/> | 
|  | <div class="refnamediv"> | 
|  | <h2>Name</h2> | 
|  | <p>eglCreateWindowSurface — | 
|  | create a new <abbr class="acronym">EGL</abbr> window surface | 
|  | </p> | 
|  | </div> | 
|  | <div class="refsynopsisdiv"> | 
|  | <h2>C Specification</h2> | 
|  | <div class="funcsynopsis"> | 
|  | <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table"> | 
|  | <tr> | 
|  | <td> | 
|  | <code class="funcdef">EGLSurface <strong class="fsfunc">eglCreateWindowSurface</strong>(</code> | 
|  | </td> | 
|  | <td>EGLDisplay <var class="pdparam">display</var>, </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td> </td> | 
|  | <td>EGLConfig <var class="pdparam">config</var>, </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td> </td> | 
|  | <td>NativeWindowType <var class="pdparam">native_window</var>, </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td> </td> | 
|  | <td>EGLint const * <var class="pdparam">attrib_list</var><code>)</code>;</td> | 
|  | </tr> | 
|  | </table> | 
|  | <div class="funcprototype-spacer"> </div> | 
|  | </div> | 
|  | </div> | 
|  | <div class="refsect1" id="parameters"> | 
|  | <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_window</code> | 
|  | </em> | 
|  | </span> | 
|  | </dt> | 
|  | <dd> | 
|  | <p>Specifies the native window.</p> | 
|  | </dd> | 
|  | <dt> | 
|  | <span class="term"> | 
|  | <em class="parameter"> | 
|  | <code>attrib_list</code> | 
|  | </em> | 
|  | </span> | 
|  | </dt> | 
|  | <dd> | 
|  | <p> | 
|  | Specifies window 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" id="description"> | 
|  | <h2>Description</h2> | 
|  | <p> | 
|  | <code class="function">eglCreateWindowSurface</code> creates an EGL | 
|  | window surface and returns its handle. If | 
|  | <code class="function">eglCreateWindowSurface</code> fails to create | 
|  | a window 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_RENDER_BUFFER</code> | 
|  | </span> | 
|  | </dt> | 
|  | <dd> | 
|  | <p> | 
|  | Specifies which buffer should be used for client API | 
|  | rendering to the window. If its value is | 
|  | <code class="constant">EGL_SINGLE_BUFFER</code>, then client | 
|  | APIs should render directly into the visible window. | 
|  | If its value is | 
|  | <code class="constant">EGL_BACK_BUFFER</code>, then client | 
|  | APIs should render into the back buffer. The default | 
|  | value of <code class="constant">EGL_RENDER_BUFFER</code> is | 
|  | <code class="constant">EGL_BACK_BUFFER</code>. | 
|  | </p> | 
|  | <p> | 
|  | Client APIs may not be able to respect the requested | 
|  | rendering buffer. To determine the actual buffer | 
|  | being rendered to by a context, call | 
|  | <a class="citerefentry" href="eglQueryContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQueryContext</span></span></a>. | 
|  | </p> | 
|  | </dd> | 
|  | <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.xhtml"><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.xhtml"><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.xhtml"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a> | 
|  | to destroy the surface. | 
|  | </p> | 
|  | </div> | 
|  | <div class="refsect1" id="notes"> | 
|  | <h2>Notes</h2> | 
|  | <p> | 
|  | Attributes <code class="constant">EGL_RENDER_BUFFER</code>, | 
|  | <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> when compositing | 
|  | window surfaces. | 
|  | </p> | 
|  | </div> | 
|  | <div class="refsect1" id="errors"> | 
|  | <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 frame buffer configuration. | 
|  | </p> | 
|  | <p> | 
|  | <code class="constant">EGL_BAD_NATIVE_WINDOW</code> may be generated if | 
|  | <em class="parameter"><code>native_window</code></em> is not a valid native window. | 
|  | </p> | 
|  | <p> | 
|  | <code class="constant">EGL_BAD_ATTRIBUTE</code> is generated if | 
|  | <em class="parameter"><code>attrib_list</code></em> contains an invalid window attribute | 
|  | or if an attribute value is not recognized or is 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_window</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 windows | 
|  | (the <code class="constant">EGL_SURFACE_TYPE</code> attribute does not contain | 
|  | <code class="constant">EGL_WINDOW_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" id="seealso"> | 
|  | <h2>See Also</h2> | 
|  | <p> | 
|  | <a class="citerefentry" href="eglDestroySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>, | 
|  | <a class="citerefentry" href="eglChooseConfig.xhtml"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>, | 
|  | <a class="citerefentry" href="eglGetConfigs.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a>, | 
|  | <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>, | 
|  | <a class="citerefentry" href="eglQuerySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQuerySurface</span></span></a> | 
|  | </p> | 
|  | </div> | 
|  | <p> | 
|  | </p> | 
|  | <div class="refsect3" id="copyright"> | 
|  | <img src="KhronosLogo.jpg"/> | 
|  | <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. | 
|  | </p> | 
|  | </div> | 
|  | <p> | 
|  | </p> | 
|  | </div> | 
|  | <footer/> | 
|  | </body> | 
|  | </html> |