diff options
author | jjesswan <jessica_wan@brown.edu> | 2024-04-22 21:56:26 -0400 |
---|---|---|
committer | jjesswan <jessica_wan@brown.edu> | 2024-04-22 21:56:26 -0400 |
commit | a556b45abf18f1bd509daaf63b66b7d55e9fd291 (patch) | |
tree | bc9b8a2d184c12aee236e7f9f276a34b84ca552d /engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglChooseConfig.xml | |
parent | cd7c76017a12bb548036571c1ff13e551369d06d (diff) |
add engine version
Diffstat (limited to 'engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglChooseConfig.xml')
-rw-r--r-- | engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglChooseConfig.xml | 915 |
1 files changed, 915 insertions, 0 deletions
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglChooseConfig.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglChooseConfig.xml new file mode 100644 index 0000000..87c7ce1 --- /dev/null +++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglChooseConfig.xml @@ -0,0 +1,915 @@ +<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglChooseConfig"> + <info> + <copyright> + <year>2003-2018</year> + <holder>The Khronos Group Inc.</holder> + </copyright> + </info> + <refmeta> + <refentrytitle>eglChooseConfig</refentrytitle> + <manvolnum>3G</manvolnum> + </refmeta> + <refnamediv> + <refname>eglChooseConfig</refname> + <refpurpose> + return a list of EGL frame buffer configurations that match specified attributes + </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>C Specification</title> + <funcsynopsis> + <funcprototype> + <funcdef>EGLBoolean <function>eglChooseConfig</function></funcdef> + <paramdef>EGLDisplay <parameter>display</parameter></paramdef> + <paramdef>EGLint const * <parameter>attrib_list</parameter></paramdef> + <paramdef>EGLConfig * <parameter>configs</parameter></paramdef> + <paramdef>EGLint <parameter>config_size</parameter></paramdef> + <paramdef>EGLint * <parameter>num_config</parameter></paramdef> + </funcprototype> + </funcsynopsis> + </refsynopsisdiv> + <refsect1 xml:id="parameters"><title>Parameters</title> + <variablelist> + <varlistentry> + <term><parameter>display</parameter></term> + <listitem><para>Specifies the EGL display connection.</para></listitem> + </varlistentry> + <varlistentry> + <term><parameter>attrib_list</parameter></term> + <listitem><para>Specifies attributes required to match by configs.</para></listitem> + </varlistentry> + <varlistentry> + <term><parameter>configs</parameter></term> + <listitem><para>Returns an array of frame buffer configurations.</para></listitem> + </varlistentry> + <varlistentry> + <term><parameter>config_size</parameter></term> + <listitem><para>Specifies the size of the array of frame buffer configurations.</para></listitem> + </varlistentry> + <varlistentry> + <term><parameter>num_config</parameter></term> + <listitem><para>Returns the number of frame buffer configurations returned.</para></listitem> + </varlistentry> + </variablelist> + </refsect1> + <refsect1 xml:id="description"><title>Description</title> + <para> + <function>eglChooseConfig</function> returns in + <parameter>configs</parameter> a list of all + <acronym>EGL</acronym> frame buffer configurations that + match the attributes specified in + <parameter>attrib_list</parameter>. The returned + <type>EGLConfig</type>s can be used in any + <acronym>EGL</acronym> function that requires an + <acronym>EGL</acronym> frame buffer configuration. + </para> + <para> + If <parameter>configs</parameter> is not + <constant>NULL</constant>, up to + <parameter>config_size</parameter> configs will be returned + in the array pointed to by <parameter>configs</parameter>. + The number of configs actually returned will be returned in + *<parameter>num_config</parameter>. + </para> + <para> + If <parameter>configs</parameter> is + <constant>NULL</constant>, no configs will be returned in + <parameter>configs</parameter>. Instead, the total number of + configs matching <parameter>attrib_list</parameter> will be + returned in *<parameter>num_config</parameter>. In this case + <parameter>config_size</parameter> is ignored. This form of + <function>eglChooseConfig</function> is used to determine + the number of matching frame buffer configurations, followed + by allocating an array of <type>EGLConfig</type> to pass + into another call to <function>eglChooseConfig</function> + with all other parameters unchanged. + </para> + <para> + All attributes in <parameter>attrib_list</parameter>, + including boolean attributes, are immediately followed by + the corresponding desired value. The list is terminated with + <constant>EGL_NONE</constant>. If an attribute is not + specified in <parameter>attrib_list</parameter> then the + default value (see below) is used (and the attribute is said + to be specified implicitly). For example, if + <constant>EGL_DEPTH_SIZE</constant> is not specified then it + is assumed to be zero. For some attributes, the default is + <constant>EGL_DONT_CARE</constant> meaning that any value is + OK for this attribute, so the attribute will not be checked. + </para> + <para> + Attributes are matched in an attribute-specific manner. Some + of the attributes, such as <constant>EGL_LEVEL</constant>, + must match the specified value exactly. Others, such as, + <constant>EGL_RED_SIZE</constant> 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. + </para> + <para> + For the bitmask attributes + <constant>EGL_CONFORMANT</constant>, + <constant>EGL_RENDERABLE_TYPE</constant>, and + <constant>EGL_SURFACE_TYPE</constant>, 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. + </para> + <para> + Attributes which may appear in + <parameter>attrib_list</parameter>, and their descriptions + and allowed values, are: + </para> + <variablelist> + <varlistentry> + <term><constant>EGL_ALPHA_MASK_SIZE</constant></term> + <listitem><para> + 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. + </para> + <para> + The alpha mask buffer is used only by OpenVG. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_ALPHA_SIZE</constant></term> + <listitem><para> + 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. + </para></listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_BIND_TO_TEXTURE_RGB</constant></term> + <listitem><para> + Must be followed by + <constant>EGL_DONT_CARE</constant>, + <constant>EGL_TRUE</constant>, or + <constant>EGL_FALSE</constant>. + If <constant>EGL_TRUE</constant> 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 <constant>EGL_DONT_CARE</constant>. + </para></listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_BIND_TO_TEXTURE_RGBA</constant></term> + <listitem><para> + Must be followed by one of + <constant>EGL_DONT_CARE</constant>, + <constant>EGL_TRUE</constant>, or + <constant>EGL_FALSE</constant>. + If <constant>EGL_TRUE</constant> 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 + <constant>EGL_DONT_CARE</constant>. + </para></listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_BLUE_SIZE</constant></term> + <listitem><para> + 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. + </para></listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_BUFFER_SIZE</constant></term> + <listitem><para> + 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. + </para> + <para> + The color buffer size is the sum of + <constant>EGL_RED_SIZE</constant>, + <constant>EGL_GREEN_SIZE</constant>, + <constant>EGL_BLUE_SIZE</constant>, and + <constant>EGL_ALPHA_SIZE</constant>, 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. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_COLOR_BUFFER_TYPE</constant></term> + <listitem> + <para> + Must be followed by one of + <constant>EGL_RGB_BUFFER</constant> or + <constant>EGL_LUMINANCE_BUFFER</constant>. + </para> + <para> + <constant>EGL_RGB_BUFFER</constant> indicates + an RGB color buffer; in this case, + attributes <constant>EGL_RED_SIZE</constant>, + <constant>EGL_GREEN_SIZE</constant> and + <constant>EGL_BLUE_SIZE</constant> must be non-zero, and + <constant>EGL_LUMINANCE_SIZE</constant> must be zero. + </para> + <para> + <constant>EGL_LUMINANCE_BUFFER</constant> indicates a luminance color + buffer. In this case <constant>EGL_RED_SIZE</constant>, + <constant>EGL_GREEN_SIZE</constant>, + <constant>EGL_BLUE_SIZE</constant> must be zero, and + <constant>EGL_LUMINANCE_SIZE</constant> must be non-zero. + </para> + <para> + For both RGB and luminance color buffers, + <constant>EGL_ALPHA_SIZE</constant> may be zero or + non-zero. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_CONFIG_CAVEAT</constant></term> + <listitem> + <para> + Must be followed by + <constant>EGL_DONT_CARE</constant>, + <constant>EGL_NONE</constant>, + <constant>EGL_SLOW_CONFIG</constant>, or + <constant>EGL_NON_CONFORMANT_CONFIG</constant>. + </para> + <para> + If <constant>EGL_DONT_CARE</constant> is specified, + then configs are not matched for this attribute. The + default value is <constant>EGL_DONT_CARE</constant>. + </para> + <para> + If <constant>EGL_NONE</constant> is specified, then + configs are matched for this attribute, but only + configs with no caveats (neither + <constant>EGL_SLOW_CONFIG</constant> or + <constant>EGL_NON_CONFORMANT_CONFIG</constant>) will + be considered. + </para> + <para> + If <constant>EGL_SLOW_CONFIG</constant> 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. + </para> + <para> + If <constant>EGL_NON_CONFORMANT_CONFIG</constant> is + specified, then only configs supporting + non-conformant OpenGL ES contexts will be + considered. + </para> + <para> + If the EGL version is 1.3 or later, caveat + <constant>EGL_NON_CONFORMANT_CONFIG</constant> is + obsolete, since the same information can be + specified via the + <constant>EGL_CONFORMANT</constant> attribute on a + per-client-API basis, not just for OpenGL ES. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_CONFIG_ID</constant></term> + <listitem> + <para> + Must be followed by a valid integer ID that + indicates the desired EGL frame buffer + configuration. When a + <constant>EGL_CONFIG_ID</constant> is specified, all + other attributes are ignored. The default value is + <constant>EGL_DONT_CARE</constant>. + </para> + <para> + The meaning of config IDs is + implementation-dependent. They are used only to + uniquely identify different frame buffer + configurations. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_CONFORMANT</constant></term> + <listitem> + <para> + 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: + </para> + <variablelist> + <varlistentry> + <term><constant>EGL_OPENGL_BIT</constant></term> + <listitem><para> + Config supports creating OpenGL contexts. + </para></listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_OPENGL_ES_BIT</constant></term> + <listitem><para> + Config supports creating OpenGL ES 1.0 + and/or 1.1 contexts. + </para></listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_OPENGL_ES2_BIT</constant></term> + <listitem><para> + Config supports creating OpenGL ES 2.0 contexts. + </para></listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_OPENVG_BIT</constant></term> + <listitem><para> + Config supports creating OpenVG contexts. + </para></listitem> + </varlistentry> + </variablelist> + <para> + For example, if the bitmask is set to + <constant>EGL_OPENGL_ES_BIT</constant>, only frame + buffer configurations that support creating + conformant OpenGL ES contexts will match. The + default value is zero. + </para> + <para> + 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. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_DEPTH_SIZE</constant></term> + <listitem> + <para> + 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. + </para> + <para> + The depth buffer is used only by OpenGL and OpenGL + ES client APIs. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_GREEN_SIZE</constant></term> + <listitem><para> + 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. + </para></listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_LEVEL</constant></term> + <listitem><para> + 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. + </para> + <para> + 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. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_LUMINANCE_SIZE</constant></term> + <listitem> + <para> + 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. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_MATCH_NATIVE_PIXMAP</constant></term> + <listitem> + <para> + Must be followed by the handle of a valid native + pixmap, cast to <type>EGLint</type>, or + <constant>EGL_NONE</constant>. If the value is not + <constant>EGL_NONE</constant>, only configs which + support creating pixmap surfaces with this pixmap + using + <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry> + will match this attribute. If the value is + <constant>EGL_NONE</constant>, then configs are not + matched for this attribute. The default value is + <constant>EGL_NONE</constant>. + </para> + <para> + <constant>EGL_MATCH_NATIVE_PIXMAP</constant> was + introduced due to the difficulty of determining an + <type>EGLConfig</type> compatibile with a native + pixmap using only color component sizes. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_NATIVE_RENDERABLE</constant></term> + <listitem><para> + Must be followed by + <constant>EGL_DONT_CARE</constant>, + <constant>EGL_TRUE</constant>, or + <constant>EGL_FALSE</constant>. + If <constant>EGL_TRUE</constant> is specified, then + only frame buffer configurations that allow native + rendering into the surface will be considered. The + default value is <constant>EGL_DONT_CARE</constant>. + </para></listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_MAX_SWAP_INTERVAL</constant></term> + <listitem><para> + Must be followed by a integer that indicates the + maximum value that can be passed to + <citerefentry><refentrytitle>eglSwapInterval</refentrytitle></citerefentry>. + The default value is + <constant>EGL_DONT_CARE</constant>. + </para></listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_MIN_SWAP_INTERVAL</constant></term> + <listitem><para> + Must be followed by a integer that indicates the + minimum value that can be passed to eglSwapInterval. + The default value is <constant>EGL_DONT_CARE</constant>. + </para></listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_RED_SIZE</constant></term> + <listitem><para> + 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. + </para></listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_SAMPLE_BUFFERS</constant></term> + <listitem><para> + 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. + </para></listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_SAMPLES</constant></term> + <listitem><para> + 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. + </para></listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_STENCIL_SIZE</constant></term> + <listitem> + <para> + 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. + </para> + <para> + The stencil buffer is used only by OpenGL and + OpenGL ES client APIs. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_RENDERABLE_TYPE</constant></term> + <listitem> + <para> + Must be followed by a bitmask indicating which types + of client API contexts the frame buffer + configuration must support creating with + <citerefentry><refentrytitle>eglCreateContext</refentrytitle></citerefentry>). + Mask bits are the same as for attribute + <constant>EGL_CONFORMANT</constant>. The default + value is <constant>EGL_OPENGL_ES_BIT</constant>. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_SURFACE_TYPE</constant></term> + <listitem> + <para> + Must be followed by a bitmask indicating which EGL + surface types and capabilities the frame buffer + configuration must support. Mask bits include: + </para> + <variablelist> + <varlistentry> + <term><constant>EGL_MULTISAMPLE_RESOLVE_BOX_BIT</constant></term> + <listitem><para> + Config allows specifying box filtered + multisample resolve behavior with + <citerefentry><refentrytitle>eglSurfaceAttrib</refentrytitle></citerefentry>. + </para></listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_PBUFFER_BIT</constant></term> + <listitem><para> + Config supports creating pixel buffer surfaces. + </para></listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_PIXMAP_BIT</constant></term> + <listitem><para> + Config supports creating pixmap surfaces. + </para></listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_SWAP_BEHAVIOR_PRESERVED_BIT</constant></term> + <listitem><para> + Config allows setting swap behavior for + color buffers with + <citerefentry><refentrytitle>eglSurfaceAttrib</refentrytitle></citerefentry>. + </para></listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_VG_ALPHA_FORMAT_PRE_BIT</constant></term> + <listitem><para> + Config allows specifying OpenVG rendering + with premultiplied alpha values at surface + creation time (see + <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>, + <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry>, + and + <citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry>). + </para></listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_VG_COLORSPACE_LINEAR_BIT</constant></term> + <listitem><para> + Config allows specifying OpenVG rendering in + a linear colorspace at surface creation time + (see + <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>, + <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry>, + and + <citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry>). + </para></listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_WINDOW_BIT</constant></term> + <listitem><para> + Config supports creating window surfaces. + </para></listitem> + </varlistentry> + </variablelist> + <para> + For example, if the bitmask is set to + <constant>EGL_WINDOW_BIT</constant> | + <constant>EGL_PIXMAP_BIT</constant>, + only frame buffer configurations that support both + windows and pixmaps will be considered. The default + value is <constant>EGL_WINDOW_BIT</constant>. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_TRANSPARENT_TYPE</constant></term> + <listitem><para> + Must be followed by one of + <constant>EGL_NONE</constant> or + <constant>EGL_TRANSPARENT_RGB</constant>. If + <constant>EGL_NONE</constant> is specified, then + only opaque frame buffer configurations will be + considered. If + <constant>EGL_TRANSPARENT_RGB</constant> is + specified, then only transparent frame buffer + configurations will be considered. The default value + is <constant>EGL_NONE</constant>. + </para> + <para> + Most implementations support only opaque frame + buffer configurations. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_TRANSPARENT_RED_VALUE</constant></term> + <listitem><para> + 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 + <constant>EGL_DONT_CARE</constant>. + </para> + <para> + This attribute is ignored unless + <constant>EGL_TRANSPARENT_TYPE</constant> is included in + <parameter>attrib_list</parameter> and specified as + <constant>EGL_TRANSPARENT_RGB</constant>. + </para></listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_TRANSPARENT_GREEN_VALUE</constant></term> + <listitem><para> + 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 + <constant>EGL_DONT_CARE</constant>. + </para> + <para> + This attribute is ignored unless + <constant>EGL_TRANSPARENT_TYPE</constant> is included in + <parameter>attrib_list</parameter> and specified as + <constant>EGL_TRANSPARENT_RGB</constant>. + </para></listitem> + </varlistentry> + <varlistentry> + <term><constant>EGL_TRANSPARENT_BLUE_VALUE</constant></term> + <listitem><para> + 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 + <constant>EGL_DONT_CARE</constant>. + </para> + <para> + This attribute is ignored unless + <constant>EGL_TRANSPARENT_TYPE</constant> is included in + <parameter>attrib_list</parameter> and specified as + <constant>EGL_TRANSPARENT_RGB</constant>. + </para></listitem> + </varlistentry> + </variablelist> + <para> + 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): + </para> + <orderedlist> + <listitem><para> + Special: by <constant>EGL_CONFIG_CAVEAT</constant>, + where the precedence is <constant>EGL_NONE</constant>, + <constant>EGL_SLOW_CONFIG</constant>, and + <constant>EGL_NON_CONFORMANT_CONFIG</constant>. + </para></listitem> + <listitem><para> + Special: by <constant>EGL_COLOR_BUFFER_TYPE</constant>, + where the precedence is + <constant>EGL_RGB_BUFFER</constant>, + <constant>EGL_LUMINANCE_BUFFER</constant>. + </para></listitem> + <listitem> + <para> + Special: by larger total number of color bits (for an + RGB color buffer, this is the sum of + <constant>EGL_RED_SIZE</constant>, + <constant>EGL_GREEN_SIZE</constant>, + <constant>EGL_BLUE_SIZE</constant>, and + <constant>EGL_ALPHA_SIZE</constant>; for a luminance + color buffer, the sum of + <constant>EGL_LUMINANCE_SIZE</constant> and + <constant>EGL_ALPHA_SIZE</constant>). If the requested + number of bits in <parameter>attrib_list</parameter> is + <constant>0</constant> or + <constant>EGL_DONT_CARE</constant> for a particular + color component, then the number of bits for that + component is not considered. + </para> + <para> + This sort rule places configs with deeper color buffers + before configs with shallower color buffers, which may + be counterintuitive. + </para> + </listitem> + <listitem><para> + Smaller <constant>EGL_BUFFER_SIZE</constant>. + </para></listitem> + <listitem><para> + Smaller <constant>EGL_SAMPLE_BUFFERS</constant>. + </para></listitem> + <listitem><para> + Smaller <constant>EGL_SAMPLES</constant>. + </para></listitem> + <listitem><para> + Smaller <constant>EGL_DEPTH_SIZE</constant>. + </para></listitem> + <listitem><para> + Smaller <constant>EGL_STENCIL_SIZE</constant>. + </para></listitem> + <listitem><para> + Smaller <constant>EGL_ALPHA_MASK_SIZE</constant>. + </para></listitem> + <listitem><para> + Special: <constant>EGL_NATIVE_VISUAL_TYPE</constant> + (the actual sort order is implementation-defined, + depending on the meaning of native visual types). + </para></listitem> + <listitem><para> + Smaller <constant>EGL_CONFIG_ID</constant> (this is + always the last sorting rule, and guarantees a unique + ordering). + </para></listitem> + </orderedlist> + <para> + <type>EGLConfigs</type> are not sorted with respect to the + attributes <constant>EGL_BIND_TO_TEXTURE_RGB</constant>, + <constant>EGL_BIND_TO_TEXTURE_RGBA</constant>, + <constant>EGL_CONFORMANT</constant>, + <constant>EGL_LEVEL</constant>, + <constant>EGL_NATIVE_RENDERABLE</constant>, + <constant>EGL_MAX_SWAP_INTERVAL</constant>, + <constant>EGL_MIN_SWAP_INTERVAL</constant>, + <constant>EGL_RENDERABLE_TYPE</constant>, + <constant>EGL_SURFACE_TYPE</constant>, + <constant>EGL_TRANSPARENT_TYPE</constant>, + <constant>EGL_TRANSPARENT_RED_VALUE</constant>, + <constant>EGL_TRANSPARENT_GREEN_VALUE</constant>, and + <constant>EGL_TRANSPARENT_BLUE_VALUE</constant>. + </para> + </refsect1> + <refsect1 xml:id="examples"><title>Examples</title> + <para> + 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. + </para> + <programlisting>EGLint const attrib_list[] = { + EGL_RED_SIZE, 4, + EGL_GREEN_SIZE, 4, + EGL_BLUE_SIZE, 4, + EGL_NONE +};</programlisting> + </refsect1> + <refsect1 xml:id="notes"><title>Notes</title> + <para> + <constant>EGL_RENDERABLE_TYPE</constant> bit + <constant>EGL_OPENGL_BIT</constant>, and + <constant>EGL_SURFACE_TYPE</constant> bits + <constant>EGL_MULTISAMPLE_RESOLVE_BOX_BIT</constant> and + <constant>EGL_SWAP_BEHAVIOR_PRESERVED_BIT</constant> are + supported only if the EGL version is 1.4 or greater. + </para> + <para> + <constant>EGL_CONFORMANT</constant>, + <constant>EGL_MATCH_NATIVE_PIXMAP</constant>, + <constant>EGL_RENDERABLE_TYPE</constant> bit + <constant>EGL_OPENGL_ES2_BIT</constant>, and + <constant>EGL_SURFACE_TYPE</constant> bits + <constant>EGL_VG_ALPHA_FORMAT_PRE_BIT</constant> and + <constant>EGL_VG_COLORSPACE_LINEAR_BIT</constant> are + supported only if the EGL version is 1.3 or greater. + </para> + <para> + <constant>EGL_ALPHA_MASK_SIZE</constant>, + <constant>EGL_COLOR_BUFFER_TYPE</constant>, + <constant>EGL_LUMINANCE_SIZE</constant>, + <constant>EGL_RENDERABLE_TYPE</constant>, and + <constant>EGL_RENDERABLE_TYPE</constant> bits + <constant>EGL_OPENGL_ES_BIT</constant> and + <constant>EGL_OPENVG_BIT</constant> are supported only if + the EGL version is 1.2 or greater. + </para> + <para> + If OpenGL or OpenGL ES rendering is supported for a + luminance color buffer, it is treated as RGB rendering with + the value of <constant>GL_RED_BITS</constant> equal to + <constant>EGL_LUMINANCE_SIZE</constant> and the values of + <constant>GL_GREEN_BITS</constant> and + <constant>GL_BLUE_BITS</constant> 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. + </para> + <para> + <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry> + and + <citerefentry><refentrytitle>eglGetConfigAttrib</refentrytitle></citerefentry> + can be used to implement selection algorithms other than the + generic one implemented by + <function>eglChooseConfig</function>. Call + <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry> + to retrieve all the frame buffer configurations, or + alternatively, all the frame buffer configurations with a + particular set of attributes. Next call + <citerefentry><refentrytitle>eglGetConfigAttrib</refentrytitle></citerefentry> + to retrieve additional attributes for the frame buffer + configurations and then select between them. + </para> + <para> + EGL implementors are strongly discouraged, but not + proscribed, from changing the selection algorithm used by + <function>eglChooseConfig</function>. Therefore, selections + may change from release to release of the client-side + library. + </para> + </refsect1> + <refsect1 xml:id="errors"><title>Errors</title> + <para> + <constant>EGL_FALSE</constant> is returned on failure, + <constant>EGL_TRUE</constant> otherwise. + <parameter>configs</parameter> and + <parameter>num_config</parameter> are not modified when + <constant>EGL_FALSE</constant> is returned. + </para> + <para> + <constant>EGL_BAD_DISPLAY</constant> is generated if + <parameter>display</parameter> is not an EGL display connection. + </para> + <para> + <constant>EGL_BAD_ATTRIBUTE</constant> is generated if + <parameter>attribute_list</parameter> contains an invalid frame buffer + configuration attribute or an + attribute value that is unrecognized or out of range. + </para> + <para> + <constant>EGL_NOT_INITIALIZED</constant> is generated if + <parameter>display</parameter> has not been initialized. + </para> + <para> + <constant>EGL_BAD_PARAMETER</constant> is generated if + <parameter>num_config</parameter> is <constant>NULL</constant>. + </para> + </refsect1> + <refsect1 xml:id="seealso"><title>See Also</title> + <para> + <citerefentry><refentrytitle>eglCreateContext</refentrytitle></citerefentry>, + <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>, + <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry>, + <citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry>, + <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>, + <citerefentry><refentrytitle>eglGetConfigAttrib</refentrytitle></citerefentry>, + <citerefentry><refentrytitle>eglSurfaceAttrib</refentrytitle></citerefentry>, + <citerefentry><refentrytitle>eglSwapInterval</refentrytitle></citerefentry> + </para> + </refsect1> + <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/> +</refentry> |