| <?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>eglCreatePbufferFromClientBuffer</title> |
| <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" /> |
| </head> |
| <body> |
| <div class="refentry"> |
| <a id="eglCreatePbufferFromClientBuffer"></a> |
| <div class="titlepage"></div> |
| <div xmlns="" class="refnamediv"> |
| <h1>eglCreatePbufferFromClientBuffer</h1> |
| <p> |
| create a new <acronym xmlns="http://www.w3.org/1999/xhtml" class="acronym">EGL</acronym> pixel buffer surface |
| bound to an OpenVG image |
| </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">eglCreatePbufferFromClientBuffer</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>EGLenum <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">buftype</var>, </td> |
| </tr> |
| <tr valign="top"> |
| <td> </td> |
| <td>EGLClientBuffer <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">buffer</var>, </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 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>buftype</code> |
| </em> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Specifies the type of client API buffer to be bound. |
| Must be <code class="constant">EGL_OPENVG_IMAGE</code>, |
| corresponding to an OpenVG <span class="type">VGImage</span> |
| buffer. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <em class="parameter"> |
| <code>buffer</code> |
| </em> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Specifies the OpenVG <span class="type">VGImage</span> handle of |
| the buffer to be bound. |
| </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>attrib_list</code> |
| </em> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Specifies pixel buffer 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">eglCreatePbufferFromClientBuffer</code> creates an |
| off-screen pixel buffer surface and returns its handle. If |
| <code class="function">eglCreatePbufferFromClientBuffer</code> fails to create |
| a pixel buffer surface, <code class="constant">EGL_NO_SURFACE</code> |
| is returned. |
| </p> |
| <p> |
| The new pixel buffer surface is similar to a pixel buffer |
| created with |
| <a class="citerefentry" href="eglCreatePbufferSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>, |
| but storage for the color buffer is provided by a client API |
| buffer. Other buffer required by |
| <em class="parameter"><code>config</code></em>, such as depth, stencil, and |
| alpha mask, are allocated by EGL. |
| </p> |
| <p> |
| <em class="parameter"><code>buftype</code></em> must be |
| <code class="constant">EGL_OPENVG_IMAGE</code>, corresponding to an |
| OpenVG <span class="type">VGImage</span> buffer. |
| <em class="parameter"><code>buffer</code></em> must be a valid |
| <span class="type">VGImage</span> handle in the current OpenVG context, |
| cast into the type <span class="type">EGLClientBuffer</span>. |
| </p> |
| <p> |
| The height, width,, OpenVG alpha format, and OpenVG |
| colorspace (surface attributes |
| <code class="constant">EGL_HEIGHT</code>, |
| <code class="constant">EGL_WIDTH</code>, |
| <code class="constant">EGL_VG_ALPHA_FORMAT</code>, and |
| <code class="constant">EGL_VG_COLORSPACE</code>, respectively) of the |
| resulting surface are determined by the size and format of |
| <em class="parameter"><code>buffer</code></em>. |
| </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_MIPMAP_TEXTURE</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Specifies whether storage for mipmaps should be |
| allocated. Space for mipmaps will be set aside if |
| the attribute value is <code class="constant">EGL_TRUE</code> |
| and <code class="constant">EGL_TEXTURE_FORMAT</code> is not |
| <code class="constant">EGL_NO_TEXTURE</code>. The default |
| value is <code class="constant">EGL_FALSE</code>. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_TEXTURE_FORMAT</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Specifies the format of the texture that will be |
| created when a pbuffer is bound to a texture map. |
| Possible values are |
| <code class="constant">EGL_NO_TEXTURE</code>, |
| <code class="constant">EGL_TEXTURE_RGB</code>, and |
| <code class="constant">EGL_TEXTURE_RGBA</code>. The default |
| value is <code class="constant">EGL_NO_TEXTURE</code>. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="constant">EGL_TEXTURE_TARGET</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Specifies the target for the texture that will be |
| created when the pbuffer is created with a texture |
| format of <code class="constant">EGL_TEXTURE_RGB</code> or |
| <code class="constant">EGL_TEXTURE_RGBA</code>. Possible |
| values are <code class="constant">EGL_NO_TEXTURE</code>, or |
| <code class="constant">EGL_TEXTURE_2D</code>. The default |
| value is <code class="constant">EGL_NO_TEXTURE</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 dimensions of the allocated pixel buffer |
| surface or 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> |
| <code class="function">eglCreatePbufferFromClientBuffer</code> is |
| supported only if the EGL version is 1.2 or greater, and if |
| the EGL implementation supports the OpenVG client API. |
| </p> |
| <p> |
| Currently |
| <code class="function">eglCreatePbufferFromClientBuffer</code> only |
| supports binding OpenVG <span class="type">VGImage</span> buffers to |
| pixel buffers. While other client API resources could be |
| supported in the future, mechanisms such as OpenGL ES |
| framebuffer objects, and the family of EGL and client API |
| extensions for defining and using <span class="type">EGLImageKHR</span> |
| images, are a more flexible and general framework to satisfy |
| most of the same needs. |
| </p> |
| <p> |
| If the value of <em class="parameter"><code>config</code></em> attribute |
| <code class="constant">EGL_TEXTURE_FORMAT</code> is not |
| <code class="constant">EGL_NO_TEXTURE</code>, then the pbuffer width |
| and height specify the size of the level zero texture image |
| </p> |
| <p> |
| If <code class="constant">EGL_LARGEST_PBUFFER</code> is specified and |
| if the pbuffer will be used as a texture (i.e. the value of |
| <code class="constant">EGL_TEXTURE_TARGET</code> is |
| <code class="constant">EGL_TEXTURE_2D</code>, and the value of |
| <code class="constant">EGL_TEXTURE FORMAT</code> is |
| <code class="constant">EGL_TEXTURE_RGB</code> or |
| <code class="constant">EGL_TEXTURE_RGBA</code>), then the aspect |
| ratio will be preserved and the new width and height will be |
| valid sizes for the texture target (e.g. if the underlying |
| OpenGL ES implementation does not support non-power-of-two |
| textures, both the width and height will be a power of 2). |
| </p> |
| <p> |
| The contents of the depth and stencil buffers may not be |
| preserved when rendering a texture to the pbuffer and |
| switching which image of the texture is rendered to (e.g., |
| switching from rendering one mipmap level to rendering |
| another). |
| </p> |
| <p> |
| Binding client API buffers to EGL pbuffers create the |
| possibility of race conditions, and of buffers being deleted |
| through one API while still in use in another API. To avoid |
| these problems, a number of constraints apply to bound |
| client API buffers: |
| </p> |
| <div class="orderedlist"> |
| <ol class="orderedlist" type="1"> |
| <li class="listitem"> |
| <p> |
| Bound buffers may be used exclusively by either EGL, |
| or the client API that originally created them. For |
| example, if a <span class="type">VGImage</span> is bound to a |
| pbuffer, and that pbuffer is bound to any client API |
| rendering context, then the <span class="type">VGImage</span> may |
| not be used as the explicit source or destination of |
| any OpenVG operation. Errors resulting from such use |
| are described in client API specifications. |
| Similarly, while a <span class="type">VGImage</span> is in use by |
| OpenVG, the pbuffer it is bound to may not be made |
| current to any client API context using |
| <a class="citerefentry" href="eglMakeCurrent.html"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>. |
| </p> |
| </li> |
| <li class="listitem"> |
| <p> |
| Binding a buffer creates an additional reference to |
| it, and implementations must respect outstanding |
| references when destroying objects. For example, if |
| a <span class="type">VGImage</span> is bound to a pbuffer, |
| destroying the image with |
| <code class="function">vgDestroyImage</code> will not free |
| the underlying buffer, because it is still in use by |
| EGL. However, following |
| <code class="function">vgDestroyImage</code> the buffer may |
| only be referred to via the EGL pbuffer handle, |
| since the OpenVG handle to that buffer no longer |
| exists. Similarly, destroying the pbuffer with |
| <code class="function">eglDestroySurface</code> will not free |
| the underlying buffer, because it is still in use by |
| OpenVG . However, following |
| <code class="function">eglDestroySurface</code> the buffer |
| may only be referred to via the OpenVG |
| <span class="type">VGImage</span> handle, since the EGL pbuffer |
| handle no longer exists. |
| </p> |
| </li> |
| </ol> |
| </div> |
| <p> |
| </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 frame buffer configuration. |
| </p> |
| <p> |
| <code class="constant">EGL_BAD_PARAMETER</code> is generated if |
| <em class="parameter"><code>buftype</code></em> is not |
| <code class="constant">EGL_OPENVG_IMAGE</code>, or if |
| <em class="parameter"><code>buffer</code></em> is not a valid handle to a |
| <span class="type">VGImage</span> object in the currently bound OpenVG |
| context. |
| </p> |
| <p> |
| <code class="constant">EGL_BAD_ACCESS</code> is generated if there is |
| no current OpenVG context, or if |
| <em class="parameter"><code>buffer</code></em> is already bound to another |
| pixel buffer or in use by OpenVG as discussed in the Notes |
| section above. |
| </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_ATTRIBUTE</code> is generated if |
| <em class="parameter"><code>attrib_list</code></em> contains an invalid pixel |
| buffer attribute or if an attribute value is not recognized |
| or out of range. |
| </p> |
| <p> |
| <code class="constant">EGL_BAD_ATTRIBUTE</code> is generated if |
| <em class="parameter"><code>attrib_list</code></em> contains any of the |
| attributes <code class="constant">EGL_MIPMAP_TEXTURE</code>, |
| <code class="constant">EGL_TEXTURE_FORMAT</code>, or |
| <code class="constant">EGL_TEXTURE_TARGET</code>, and |
| <em class="parameter"><code>config</code></em> does not support OpenGL ES |
| rendering (e.g. the EGL version is 1.2 or later, and the |
| <code class="constant">EGL_RENDERABLE_TYPE</code> attribute of |
| <em class="parameter"><code>config</code></em> does not include at least one |
| of <code class="constant">EGL_OPENGL_ES_BIT</code> or |
| <code class="constant">EGL_OPENGL_ES2_BIT</code>). |
| </p> |
| <p> |
| <code class="constant">EGL_BAD_MATCH</code> is generated if |
| <em class="parameter"><code>config</code></em> does not support rendering to pixel buffers |
| (the <code class="constant">EGL_SURFACE_TYPE</code> attribute does not contain |
| <code class="constant">EGL_PBUFFER_BIT</code>). |
| </p> |
| <p> |
| <code class="constant">EGL_BAD_MATCH</code> is generated if the |
| buffers contained in <em class="parameter"><code>buffer</code></em> do not |
| match the bit depths for those buffers specified by |
| <em class="parameter"><code>config</code></em>. |
| </p> |
| <p> |
| <code class="constant">EGL_BAD_MATCH</code> is generated if the |
| <code class="constant">EGL_TEXTURE_FORMAT</code> attribute is not |
| <code class="constant">EGL_NO_TEXTURE</code>, and |
| <code class="constant">EGL_WIDTH</code> and/or |
| <code class="constant">EGL_HEIGHT</code> specify an invalid size |
| (e.g., the texture size is not a power of 2, and the |
| underlying OpenGL ES implementation does not support |
| non-power-of-two textures). |
| </p> |
| <p> |
| <code class="constant">EGL_BAD_MATCH</code> is generated if |
| the <code class="constant">EGL_TEXTURE_FORMAT</code> attribute is |
| <code class="constant">EGL_NO_TEXTURE</code>, and |
| <code class="constant">EGL_TEXTURE_TARGET</code> is something other |
| than <code class="constant">EGL_NO_TEXTURE</code>; or, |
| <code class="constant">EGL_TEXTURE_FORMAT</code> is something other |
| than <code class="constant">EGL_NO_TEXTURE</code>, and |
| <code class="constant">EGL_TEXTURE_TARGET</code> is |
| <code class="constant">EGL_NO_TEXTURE</code>. |
| </p> |
| <p> |
| <code class="constant">EGL_BAD_MATCH</code> is generated if the |
| implementation has additional constraints on which types of |
| client API buffers may be bound to pixel buffer surfaces. |
| For example, it is possible that the OpenVG implementation |
| might not support a <span class="type">VGImage</span> being bound to a |
| pixel buffer which will be used as a mipmapped OpenGL ES |
| texture (e.g. whose <code class="constant">EGL_MIPMAP_TEXTURE</code> |
| attribute is <code class="constant">TRUE</code>). Any such |
| constraints should be documented by the implementation |
| release notes. |
| </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="eglCreatePbufferSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</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> |