diff options
Diffstat (limited to 'glew/auto/EGL-Registry/sdk/docs/man/html/eglChooseConfig.xhtml')
-rw-r--r-- | glew/auto/EGL-Registry/sdk/docs/man/html/eglChooseConfig.xhtml | 1150 |
1 files changed, 1150 insertions, 0 deletions
diff --git a/glew/auto/EGL-Registry/sdk/docs/man/html/eglChooseConfig.xhtml b/glew/auto/EGL-Registry/sdk/docs/man/html/eglChooseConfig.xhtml new file mode 100644 index 0000000..ffd6b64 --- /dev/null +++ b/glew/auto/EGL-Registry/sdk/docs/man/html/eglChooseConfig.xhtml @@ -0,0 +1,1150 @@ +<?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">eglChooseConfig - EGL Reference Pages</title> + <link rel="stylesheet" type="text/css" href="khronos-man.css"/> + <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/> + </head> + <body> + <header/> + <div class="refentry" id="eglChooseConfig"> + <div class="titlepage"/> + <div class="refnamediv"> + <h2>Name</h2> + <p>eglChooseConfig — + 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 style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table"> + <tr> + <td> + <code class="funcdef">EGLBoolean <strong class="fsfunc">eglChooseConfig</strong>(</code> + </td> + <td>EGLDisplay <var class="pdparam">display</var>, </td> + </tr> + <tr> + <td> </td> + <td>EGLint const * <var class="pdparam">attrib_list</var>, </td> + </tr> + <tr> + <td> </td> + <td>EGLConfig * <var class="pdparam">configs</var>, </td> + </tr> + <tr> + <td> </td> + <td>EGLint <var class="pdparam">config_size</var>, </td> + </tr> + <tr> + <td> </td> + <td>EGLint * <var class="pdparam">num_config</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>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" id="description"> + <h2>Description</h2> + <p> + <code class="function">eglChooseConfig</code> returns in + <em class="parameter"><code>configs</code></em> a list of all + <abbr class="acronym">EGL</abbr> 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 + <abbr class="acronym">EGL</abbr> function that requires an + <abbr class="acronym">EGL</abbr> 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 OpenVG. + </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 platforms do not support buffer levels other than + zero. The behavior of windows placed in overlay and + underlay planes depends on the underlying platform. + </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.xhtml"><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.xhtml"><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.xhtml"><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.xhtml"><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.xhtml"><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.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>, + <a class="citerefentry" href="eglCreatePixmapSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePixmapSurface</span></span></a>, + and + <a class="citerefentry" href="eglCreateWindowSurface.xhtml"><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.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>, + <a class="citerefentry" href="eglCreatePixmapSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePixmapSurface</span></span></a>, + and + <a class="citerefentry" href="eglCreateWindowSurface.xhtml"><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 + <code class="constant">EGL_WINDOW_BIT</code> | + <code class="constant">EGL_PIXMAP_BIT</code>, + 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" id="examples"> + <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" id="notes"> + <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.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a> + and + <a class="citerefentry" href="eglGetConfigAttrib.xhtml"><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.xhtml"><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.xhtml"><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" id="errors"> + <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" id="seealso"> + <h2>See Also</h2> + <p> + <a class="citerefentry" href="eglCreateContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateContext</span></span></a>, + <a class="citerefentry" href="eglCreatePbufferSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>, + <a class="citerefentry" href="eglCreatePixmapSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePixmapSurface</span></span></a>, + <a class="citerefentry" href="eglCreateWindowSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateWindowSurface</span></span></a>, + <a class="citerefentry" href="eglGetConfigs.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a>, + <a class="citerefentry" href="eglGetConfigAttrib.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetConfigAttrib</span></span></a>, + <a class="citerefentry" href="eglSurfaceAttrib.xhtml"><span class="citerefentry"><span class="refentrytitle">eglSurfaceAttrib</span></span></a>, + <a class="citerefentry" href="eglSwapInterval.xhtml"><span class="citerefentry"><span class="refentrytitle">eglSwapInterval</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> |