102f4aeb0Sopenharmony_ci<?xml version="1.0" encoding="UTF-8"?> 202f4aeb0Sopenharmony_ci<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN" 302f4aeb0Sopenharmony_ci "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd"> 402f4aeb0Sopenharmony_ci<refentry xml:base="" id="eglChooseConfig"> 502f4aeb0Sopenharmony_ci <refentryinfo> 602f4aeb0Sopenharmony_ci <copyright> 702f4aeb0Sopenharmony_ci <year>2003-2014</year> 802f4aeb0Sopenharmony_ci <holder>The Khronos Group Inc.</holder> 902f4aeb0Sopenharmony_ci </copyright> 1002f4aeb0Sopenharmony_ci </refentryinfo> 1102f4aeb0Sopenharmony_ci <refmeta> 1202f4aeb0Sopenharmony_ci <refentrytitle>eglChooseConfig</refentrytitle> 1302f4aeb0Sopenharmony_ci <manvolnum>3G</manvolnum> 1402f4aeb0Sopenharmony_ci </refmeta> 1502f4aeb0Sopenharmony_ci <refnamediv> 1602f4aeb0Sopenharmony_ci <refname>eglChooseConfig</refname> 1702f4aeb0Sopenharmony_ci <refpurpose> 1802f4aeb0Sopenharmony_ci return a list of EGL frame buffer configurations that match specified attributes 1902f4aeb0Sopenharmony_ci </refpurpose> 2002f4aeb0Sopenharmony_ci </refnamediv> 2102f4aeb0Sopenharmony_ci <refsynopsisdiv> 2202f4aeb0Sopenharmony_ci <title>C Specification</title> 2302f4aeb0Sopenharmony_ci <funcsynopsis> 2402f4aeb0Sopenharmony_ci <funcprototype> 2502f4aeb0Sopenharmony_ci <funcdef>EGLBoolean <function>eglChooseConfig</function></funcdef> 2602f4aeb0Sopenharmony_ci <paramdef>EGLDisplay <parameter>display</parameter></paramdef> 2702f4aeb0Sopenharmony_ci <paramdef>EGLint const * <parameter>attrib_list</parameter></paramdef> 2802f4aeb0Sopenharmony_ci <paramdef>EGLConfig * <parameter>configs</parameter></paramdef> 2902f4aeb0Sopenharmony_ci <paramdef>EGLint <parameter>config_size</parameter></paramdef> 3002f4aeb0Sopenharmony_ci <paramdef>EGLint * <parameter>num_config</parameter></paramdef> 3102f4aeb0Sopenharmony_ci </funcprototype> 3202f4aeb0Sopenharmony_ci </funcsynopsis> 3302f4aeb0Sopenharmony_ci </refsynopsisdiv> 3402f4aeb0Sopenharmony_ci <refsect1 id="parameters"><title>Parameters</title> 3502f4aeb0Sopenharmony_ci <variablelist> 3602f4aeb0Sopenharmony_ci <varlistentry> 3702f4aeb0Sopenharmony_ci <term><parameter>display</parameter></term> 3802f4aeb0Sopenharmony_ci <listitem><para>Specifies the EGL display connection.</para></listitem> 3902f4aeb0Sopenharmony_ci </varlistentry> 4002f4aeb0Sopenharmony_ci <varlistentry> 4102f4aeb0Sopenharmony_ci <term><parameter>attrib_list</parameter></term> 4202f4aeb0Sopenharmony_ci <listitem><para>Specifies attributes required to match by configs.</para></listitem> 4302f4aeb0Sopenharmony_ci </varlistentry> 4402f4aeb0Sopenharmony_ci <varlistentry> 4502f4aeb0Sopenharmony_ci <term><parameter>configs</parameter></term> 4602f4aeb0Sopenharmony_ci <listitem><para>Returns an array of frame buffer configurations.</para></listitem> 4702f4aeb0Sopenharmony_ci </varlistentry> 4802f4aeb0Sopenharmony_ci <varlistentry> 4902f4aeb0Sopenharmony_ci <term><parameter>config_size</parameter></term> 5002f4aeb0Sopenharmony_ci <listitem><para>Specifies the size of the array of frame buffer configurations.</para></listitem> 5102f4aeb0Sopenharmony_ci </varlistentry> 5202f4aeb0Sopenharmony_ci <varlistentry> 5302f4aeb0Sopenharmony_ci <term><parameter>num_config</parameter></term> 5402f4aeb0Sopenharmony_ci <listitem><para>Returns the number of frame buffer configurations returned.</para></listitem> 5502f4aeb0Sopenharmony_ci </varlistentry> 5602f4aeb0Sopenharmony_ci </variablelist> 5702f4aeb0Sopenharmony_ci </refsect1> 5802f4aeb0Sopenharmony_ci <refsect1 id="description"><title>Description</title> 5902f4aeb0Sopenharmony_ci <para> 6002f4aeb0Sopenharmony_ci <function>eglChooseConfig</function> returns in 6102f4aeb0Sopenharmony_ci <parameter>configs</parameter> a list of all 6202f4aeb0Sopenharmony_ci <acronym>EGL</acronym> frame buffer configurations that 6302f4aeb0Sopenharmony_ci match the attributes specified in 6402f4aeb0Sopenharmony_ci <parameter>attrib_list</parameter>. The returned 6502f4aeb0Sopenharmony_ci <type>EGLConfig</type>s can be used in any 6602f4aeb0Sopenharmony_ci <acronym>EGL</acronym> function that requires an 6702f4aeb0Sopenharmony_ci <acronym>EGL</acronym> frame buffer configuration. 6802f4aeb0Sopenharmony_ci </para> 6902f4aeb0Sopenharmony_ci <para> 7002f4aeb0Sopenharmony_ci If <parameter>configs</parameter> is not 7102f4aeb0Sopenharmony_ci <constant>NULL</constant>, up to 7202f4aeb0Sopenharmony_ci <parameter>config_size</parameter> configs will be returned 7302f4aeb0Sopenharmony_ci in the array pointed to by <parameter>configs</parameter>. 7402f4aeb0Sopenharmony_ci The number of configs actually returned will be returned in 7502f4aeb0Sopenharmony_ci *<parameter>num_config</parameter>. 7602f4aeb0Sopenharmony_ci </para> 7702f4aeb0Sopenharmony_ci <para> 7802f4aeb0Sopenharmony_ci If <parameter>configs</parameter> is 7902f4aeb0Sopenharmony_ci <constant>NULL</constant>, no configs will be returned in 8002f4aeb0Sopenharmony_ci <parameter>configs</parameter>. Instead, the total number of 8102f4aeb0Sopenharmony_ci configs matching <parameter>attrib_list</parameter> will be 8202f4aeb0Sopenharmony_ci returned in *<parameter>num_config</parameter>. In this case 8302f4aeb0Sopenharmony_ci <parameter>config_size</parameter> is ignored. This form of 8402f4aeb0Sopenharmony_ci <function>eglChooseConfig</function> is used to determine 8502f4aeb0Sopenharmony_ci the number of matching frame buffer configurations, followed 8602f4aeb0Sopenharmony_ci by allocating an array of <type>EGLConfig</type> to pass 8702f4aeb0Sopenharmony_ci into another call to <function>eglChooseConfig</function> 8802f4aeb0Sopenharmony_ci with all other parameters unchanged. 8902f4aeb0Sopenharmony_ci </para> 9002f4aeb0Sopenharmony_ci <para> 9102f4aeb0Sopenharmony_ci All attributes in <parameter>attrib_list</parameter>, 9202f4aeb0Sopenharmony_ci including boolean attributes, are immediately followed by 9302f4aeb0Sopenharmony_ci the corresponding desired value. The list is terminated with 9402f4aeb0Sopenharmony_ci <constant>EGL_NONE</constant>. If an attribute is not 9502f4aeb0Sopenharmony_ci specified in <parameter>attrib_list</parameter> then the 9602f4aeb0Sopenharmony_ci default value (see below) is used (and the attribute is said 9702f4aeb0Sopenharmony_ci to be specified implicitly). For example, if 9802f4aeb0Sopenharmony_ci <constant>EGL_DEPTH_SIZE</constant> is not specified then it 9902f4aeb0Sopenharmony_ci is assumed to be zero. For some attributes, the default is 10002f4aeb0Sopenharmony_ci <constant>EGL_DONT_CARE</constant> meaning that any value is 10102f4aeb0Sopenharmony_ci OK for this attribute, so the attribute will not be checked. 10202f4aeb0Sopenharmony_ci </para> 10302f4aeb0Sopenharmony_ci <para> 10402f4aeb0Sopenharmony_ci Attributes are matched in an attribute-specific manner. Some 10502f4aeb0Sopenharmony_ci of the attributes, such as <constant>EGL_LEVEL</constant>, 10602f4aeb0Sopenharmony_ci must match the specified value exactly. Others, such as, 10702f4aeb0Sopenharmony_ci <constant>EGL_RED_SIZE</constant> must meet or exceed the 10802f4aeb0Sopenharmony_ci specified minimum values. If more than one EGL frame buffer 10902f4aeb0Sopenharmony_ci configuration matching all attributes is found, then a list 11002f4aeb0Sopenharmony_ci of configurations, sorted according to the ``best'' match 11102f4aeb0Sopenharmony_ci criteria, is returned. The match criteria for each attribute 11202f4aeb0Sopenharmony_ci and the exact sorting order is defined below. 11302f4aeb0Sopenharmony_ci </para> 11402f4aeb0Sopenharmony_ci <para> 11502f4aeb0Sopenharmony_ci For the bitmask attributes 11602f4aeb0Sopenharmony_ci <constant>EGL_CONFORMANT</constant>, 11702f4aeb0Sopenharmony_ci <constant>EGL_RENDERABLE_TYPE</constant>, and 11802f4aeb0Sopenharmony_ci <constant>EGL_SURFACE_TYPE</constant>, only the nonzero bits 11902f4aeb0Sopenharmony_ci of the mask are considered when matching. Any bits that are 12002f4aeb0Sopenharmony_ci zero in the specified bitmask attribute value may be either 12102f4aeb0Sopenharmony_ci zero or one in the resulting config's attribute value. 12202f4aeb0Sopenharmony_ci </para> 12302f4aeb0Sopenharmony_ci <para> 12402f4aeb0Sopenharmony_ci Attributes which may appear in 12502f4aeb0Sopenharmony_ci <parameter>attrib_list</parameter>, and their descriptions 12602f4aeb0Sopenharmony_ci and allowed values, are: 12702f4aeb0Sopenharmony_ci </para> 12802f4aeb0Sopenharmony_ci <variablelist> 12902f4aeb0Sopenharmony_ci <varlistentry> 13002f4aeb0Sopenharmony_ci <term><constant>EGL_ALPHA_MASK_SIZE</constant></term> 13102f4aeb0Sopenharmony_ci <listitem><para> 13202f4aeb0Sopenharmony_ci Must be followed by a nonnegative integer that 13302f4aeb0Sopenharmony_ci indicates the desired alpha mask buffer size, in 13402f4aeb0Sopenharmony_ci bits. The smallest alpha mask buffers of at least 13502f4aeb0Sopenharmony_ci the specified size are preferred. The default value 13602f4aeb0Sopenharmony_ci is zero. 13702f4aeb0Sopenharmony_ci </para> 13802f4aeb0Sopenharmony_ci <para> 13902f4aeb0Sopenharmony_ci The alpha mask buffer is used only by OpenGL and 14002f4aeb0Sopenharmony_ci OpenGL ES client APIs. 14102f4aeb0Sopenharmony_ci </para> 14202f4aeb0Sopenharmony_ci </listitem> 14302f4aeb0Sopenharmony_ci </varlistentry> 14402f4aeb0Sopenharmony_ci <varlistentry> 14502f4aeb0Sopenharmony_ci <term><constant>EGL_ALPHA_SIZE</constant></term> 14602f4aeb0Sopenharmony_ci <listitem><para> 14702f4aeb0Sopenharmony_ci Must be followed by a nonnegative integer that 14802f4aeb0Sopenharmony_ci indicates the desired size of the alpha component of 14902f4aeb0Sopenharmony_ci the color buffer, in bits. If this value is zero, 15002f4aeb0Sopenharmony_ci color buffers with the smallest alpha component size 15102f4aeb0Sopenharmony_ci are preferred. Otherwise, color buffers with the 15202f4aeb0Sopenharmony_ci largest alpha component of at least the specified 15302f4aeb0Sopenharmony_ci size are preferred. The default value is zero. 15402f4aeb0Sopenharmony_ci </para></listitem> 15502f4aeb0Sopenharmony_ci </varlistentry> 15602f4aeb0Sopenharmony_ci <varlistentry> 15702f4aeb0Sopenharmony_ci <term><constant>EGL_BIND_TO_TEXTURE_RGB</constant></term> 15802f4aeb0Sopenharmony_ci <listitem><para> 15902f4aeb0Sopenharmony_ci Must be followed by 16002f4aeb0Sopenharmony_ci <constant>EGL_DONT_CARE</constant>, 16102f4aeb0Sopenharmony_ci <constant>EGL_TRUE</constant>, or 16202f4aeb0Sopenharmony_ci <constant>EGL_FALSE</constant>. 16302f4aeb0Sopenharmony_ci If <constant>EGL_TRUE</constant> is specified, then 16402f4aeb0Sopenharmony_ci only frame buffer configurations that support 16502f4aeb0Sopenharmony_ci binding of color buffers to an OpenGL ES RGB texture 16602f4aeb0Sopenharmony_ci will be considered. Currently only frame buffer 16702f4aeb0Sopenharmony_ci configurations that support pbuffers allow this. The 16802f4aeb0Sopenharmony_ci default value is <constant>EGL_DONT_CARE</constant>. 16902f4aeb0Sopenharmony_ci </para></listitem> 17002f4aeb0Sopenharmony_ci </varlistentry> 17102f4aeb0Sopenharmony_ci <varlistentry> 17202f4aeb0Sopenharmony_ci <term><constant>EGL_BIND_TO_TEXTURE_RGBA</constant></term> 17302f4aeb0Sopenharmony_ci <listitem><para> 17402f4aeb0Sopenharmony_ci Must be followed by one of 17502f4aeb0Sopenharmony_ci <constant>EGL_DONT_CARE</constant>, 17602f4aeb0Sopenharmony_ci <constant>EGL_TRUE</constant>, or 17702f4aeb0Sopenharmony_ci <constant>EGL_FALSE</constant>. 17802f4aeb0Sopenharmony_ci If <constant>EGL_TRUE</constant> is specified, then 17902f4aeb0Sopenharmony_ci only frame buffer configurations that support 18002f4aeb0Sopenharmony_ci binding of color buffers to an OpenGL ES RGBA 18102f4aeb0Sopenharmony_ci texture will be considered. Currently only frame 18202f4aeb0Sopenharmony_ci buffer configurations that support pbuffers allow 18302f4aeb0Sopenharmony_ci this. The default value is 18402f4aeb0Sopenharmony_ci <constant>EGL_DONT_CARE</constant>. 18502f4aeb0Sopenharmony_ci </para></listitem> 18602f4aeb0Sopenharmony_ci </varlistentry> 18702f4aeb0Sopenharmony_ci <varlistentry> 18802f4aeb0Sopenharmony_ci <term><constant>EGL_BLUE_SIZE</constant></term> 18902f4aeb0Sopenharmony_ci <listitem><para> 19002f4aeb0Sopenharmony_ci Must be followed by a nonnegative integer that 19102f4aeb0Sopenharmony_ci indicates the desired size of the blue component of 19202f4aeb0Sopenharmony_ci the color buffer, in bits. If this value is zero, 19302f4aeb0Sopenharmony_ci color buffers with the smallest blue component size 19402f4aeb0Sopenharmony_ci are preferred. Otherwise, color buffers with the 19502f4aeb0Sopenharmony_ci largest blue component of at least the specified 19602f4aeb0Sopenharmony_ci size are preferred. The default value is zero. 19702f4aeb0Sopenharmony_ci </para></listitem> 19802f4aeb0Sopenharmony_ci </varlistentry> 19902f4aeb0Sopenharmony_ci <varlistentry> 20002f4aeb0Sopenharmony_ci <term><constant>EGL_BUFFER_SIZE</constant></term> 20102f4aeb0Sopenharmony_ci <listitem><para> 20202f4aeb0Sopenharmony_ci Must be followed by a nonnegative integer that 20302f4aeb0Sopenharmony_ci indicates the desired color buffer size, in bits. 20402f4aeb0Sopenharmony_ci The smallest color buffers of at least the specified 20502f4aeb0Sopenharmony_ci size are preferred. The default value is zero. 20602f4aeb0Sopenharmony_ci </para> 20702f4aeb0Sopenharmony_ci <para> 20802f4aeb0Sopenharmony_ci The color buffer size is the sum of 20902f4aeb0Sopenharmony_ci <constant>EGL_RED_SIZE</constant>, 21002f4aeb0Sopenharmony_ci <constant>EGL_GREEN_SIZE</constant>, 21102f4aeb0Sopenharmony_ci <constant>EGL_BLUE_SIZE</constant>, and 21202f4aeb0Sopenharmony_ci <constant>EGL_ALPHA_SIZE</constant>, and does not 21302f4aeb0Sopenharmony_ci include any padding bits which may be present in the 21402f4aeb0Sopenharmony_ci pixel format. It is usually preferable to specify 21502f4aeb0Sopenharmony_ci desired sizes for these color components 21602f4aeb0Sopenharmony_ci individually. 21702f4aeb0Sopenharmony_ci </para> 21802f4aeb0Sopenharmony_ci </listitem> 21902f4aeb0Sopenharmony_ci </varlistentry> 22002f4aeb0Sopenharmony_ci <varlistentry> 22102f4aeb0Sopenharmony_ci <term><constant>EGL_COLOR_BUFFER_TYPE</constant></term> 22202f4aeb0Sopenharmony_ci <listitem> 22302f4aeb0Sopenharmony_ci <para> 22402f4aeb0Sopenharmony_ci Must be followed by one of 22502f4aeb0Sopenharmony_ci <constant>EGL_RGB_BUFFER</constant> or 22602f4aeb0Sopenharmony_ci <constant>EGL_LUMINANCE_BUFFER</constant>. 22702f4aeb0Sopenharmony_ci </para> 22802f4aeb0Sopenharmony_ci <para> 22902f4aeb0Sopenharmony_ci <constant>EGL_RGB_BUFFER</constant> indicates 23002f4aeb0Sopenharmony_ci an RGB color buffer; in this case, 23102f4aeb0Sopenharmony_ci attributes <constant>EGL_RED_SIZE</constant>, 23202f4aeb0Sopenharmony_ci <constant>EGL_GREEN_SIZE</constant> and 23302f4aeb0Sopenharmony_ci <constant>EGL_BLUE_SIZE</constant> must be non-zero, and 23402f4aeb0Sopenharmony_ci <constant>EGL_LUMINANCE_SIZE</constant> must be zero. 23502f4aeb0Sopenharmony_ci </para> 23602f4aeb0Sopenharmony_ci <para> 23702f4aeb0Sopenharmony_ci <constant>EGL_LUMINANCE_BUFFER</constant> indicates a luminance color 23802f4aeb0Sopenharmony_ci buffer. In this case <constant>EGL_RED_SIZE</constant>, 23902f4aeb0Sopenharmony_ci <constant>EGL_GREEN_SIZE</constant>, 24002f4aeb0Sopenharmony_ci <constant>EGL_BLUE_SIZE</constant> must be zero, and 24102f4aeb0Sopenharmony_ci <constant>EGL_LUMINANCE_SIZE</constant> must be non-zero. 24202f4aeb0Sopenharmony_ci </para> 24302f4aeb0Sopenharmony_ci <para> 24402f4aeb0Sopenharmony_ci For both RGB and luminance color buffers, 24502f4aeb0Sopenharmony_ci <constant>EGL_ALPHA_SIZE</constant> may be zero or 24602f4aeb0Sopenharmony_ci non-zero. 24702f4aeb0Sopenharmony_ci </para> 24802f4aeb0Sopenharmony_ci </listitem> 24902f4aeb0Sopenharmony_ci </varlistentry> 25002f4aeb0Sopenharmony_ci <varlistentry> 25102f4aeb0Sopenharmony_ci <term><constant>EGL_CONFIG_CAVEAT</constant></term> 25202f4aeb0Sopenharmony_ci <listitem> 25302f4aeb0Sopenharmony_ci <para> 25402f4aeb0Sopenharmony_ci Must be followed by 25502f4aeb0Sopenharmony_ci <constant>EGL_DONT_CARE</constant>, 25602f4aeb0Sopenharmony_ci <constant>EGL_NONE</constant>, 25702f4aeb0Sopenharmony_ci <constant>EGL_SLOW_CONFIG</constant>, or 25802f4aeb0Sopenharmony_ci <constant>EGL_NON_CONFORMANT_CONFIG</constant>. 25902f4aeb0Sopenharmony_ci </para> 26002f4aeb0Sopenharmony_ci <para> 26102f4aeb0Sopenharmony_ci If <constant>EGL_DONT_CARE</constant> is specified, 26202f4aeb0Sopenharmony_ci then configs are not matched for this attribute. The 26302f4aeb0Sopenharmony_ci default value is <constant>EGL_DONT_CARE</constant>. 26402f4aeb0Sopenharmony_ci </para> 26502f4aeb0Sopenharmony_ci <para> 26602f4aeb0Sopenharmony_ci If <constant>EGL_NONE</constant> is specified, then 26702f4aeb0Sopenharmony_ci configs are matched for this attribute, but only 26802f4aeb0Sopenharmony_ci configs with no caveats (neither 26902f4aeb0Sopenharmony_ci <constant>EGL_SLOW_CONFIG</constant> or 27002f4aeb0Sopenharmony_ci <constant>EGL_NON_CONFORMANT_CONFIG</constant>) will 27102f4aeb0Sopenharmony_ci be considered. 27202f4aeb0Sopenharmony_ci </para> 27302f4aeb0Sopenharmony_ci <para> 27402f4aeb0Sopenharmony_ci If <constant>EGL_SLOW_CONFIG</constant> is 27502f4aeb0Sopenharmony_ci specified, then only slow configs configurations 27602f4aeb0Sopenharmony_ci will be considered. The meaning of``slow'' is 27702f4aeb0Sopenharmony_ci implementation-dependent, but typically indicates a 27802f4aeb0Sopenharmony_ci non-hardware-accelerated (software) implementation. 27902f4aeb0Sopenharmony_ci </para> 28002f4aeb0Sopenharmony_ci <para> 28102f4aeb0Sopenharmony_ci If <constant>EGL_NON_CONFORMANT_CONFIG</constant> is 28202f4aeb0Sopenharmony_ci specified, then only configs supporting 28302f4aeb0Sopenharmony_ci non-conformant OpenGL ES contexts will be 28402f4aeb0Sopenharmony_ci considered. 28502f4aeb0Sopenharmony_ci </para> 28602f4aeb0Sopenharmony_ci <para> 28702f4aeb0Sopenharmony_ci If the EGL version is 1.3 or later, caveat 28802f4aeb0Sopenharmony_ci <constant>EGL_NON_CONFORMANT_CONFIG</constant> is 28902f4aeb0Sopenharmony_ci obsolete, since the same information can be 29002f4aeb0Sopenharmony_ci specified via the 29102f4aeb0Sopenharmony_ci <constant>EGL_CONFORMANT</constant> attribute on a 29202f4aeb0Sopenharmony_ci per-client-API basis, not just for OpenGL ES. 29302f4aeb0Sopenharmony_ci </para> 29402f4aeb0Sopenharmony_ci </listitem> 29502f4aeb0Sopenharmony_ci </varlistentry> 29602f4aeb0Sopenharmony_ci <varlistentry> 29702f4aeb0Sopenharmony_ci <term><constant>EGL_CONFIG_ID</constant></term> 29802f4aeb0Sopenharmony_ci <listitem> 29902f4aeb0Sopenharmony_ci <para> 30002f4aeb0Sopenharmony_ci Must be followed by a valid integer ID that 30102f4aeb0Sopenharmony_ci indicates the desired EGL frame buffer 30202f4aeb0Sopenharmony_ci configuration. When a 30302f4aeb0Sopenharmony_ci <constant>EGL_CONFIG_ID</constant> is specified, all 30402f4aeb0Sopenharmony_ci other attributes are ignored. The default value is 30502f4aeb0Sopenharmony_ci <constant>EGL_DONT_CARE</constant>. 30602f4aeb0Sopenharmony_ci </para> 30702f4aeb0Sopenharmony_ci <para> 30802f4aeb0Sopenharmony_ci The meaning of config IDs is 30902f4aeb0Sopenharmony_ci implementation-dependent. They are used only to 31002f4aeb0Sopenharmony_ci uniquely identify different frame buffer 31102f4aeb0Sopenharmony_ci configurations. 31202f4aeb0Sopenharmony_ci </para> 31302f4aeb0Sopenharmony_ci </listitem> 31402f4aeb0Sopenharmony_ci </varlistentry> 31502f4aeb0Sopenharmony_ci <varlistentry> 31602f4aeb0Sopenharmony_ci <term><constant>EGL_CONFORMANT</constant></term> 31702f4aeb0Sopenharmony_ci <listitem> 31802f4aeb0Sopenharmony_ci <para> 31902f4aeb0Sopenharmony_ci Must be followed by a bitmask indicating which types 32002f4aeb0Sopenharmony_ci of client API contexts created with respect to the 32102f4aeb0Sopenharmony_ci frame buffer configuration config must pass the 32202f4aeb0Sopenharmony_ci required conformance tests for that API. Mask bits 32302f4aeb0Sopenharmony_ci include: 32402f4aeb0Sopenharmony_ci </para> 32502f4aeb0Sopenharmony_ci <variablelist> 32602f4aeb0Sopenharmony_ci <varlistentry> 32702f4aeb0Sopenharmony_ci <term><constant>EGL_OPENGL_BIT</constant></term> 32802f4aeb0Sopenharmony_ci <listitem><para> 32902f4aeb0Sopenharmony_ci Config supports creating OpenGL contexts. 33002f4aeb0Sopenharmony_ci </para></listitem> 33102f4aeb0Sopenharmony_ci </varlistentry> 33202f4aeb0Sopenharmony_ci <varlistentry> 33302f4aeb0Sopenharmony_ci <term><constant>EGL_OPENGL_ES_BIT</constant></term> 33402f4aeb0Sopenharmony_ci <listitem><para> 33502f4aeb0Sopenharmony_ci Config supports creating OpenGL ES 1.0 33602f4aeb0Sopenharmony_ci and/or 1.1 contexts. 33702f4aeb0Sopenharmony_ci </para></listitem> 33802f4aeb0Sopenharmony_ci </varlistentry> 33902f4aeb0Sopenharmony_ci <varlistentry> 34002f4aeb0Sopenharmony_ci <term><constant>EGL_OPENGL_ES2_BIT</constant></term> 34102f4aeb0Sopenharmony_ci <listitem><para> 34202f4aeb0Sopenharmony_ci Config supports creating OpenGL ES 2.0 contexts. 34302f4aeb0Sopenharmony_ci </para></listitem> 34402f4aeb0Sopenharmony_ci </varlistentry> 34502f4aeb0Sopenharmony_ci <varlistentry> 34602f4aeb0Sopenharmony_ci <term><constant>EGL_OPENVG_BIT</constant></term> 34702f4aeb0Sopenharmony_ci <listitem><para> 34802f4aeb0Sopenharmony_ci Config supports creating OpenVG contexts. 34902f4aeb0Sopenharmony_ci </para></listitem> 35002f4aeb0Sopenharmony_ci </varlistentry> 35102f4aeb0Sopenharmony_ci </variablelist> 35202f4aeb0Sopenharmony_ci <para> 35302f4aeb0Sopenharmony_ci For example, if the bitmask is set to 35402f4aeb0Sopenharmony_ci <constant>EGL_OPENGL_ES_BIT</constant>, only frame 35502f4aeb0Sopenharmony_ci buffer configurations that support creating 35602f4aeb0Sopenharmony_ci conformant OpenGL ES contexts will match. The 35702f4aeb0Sopenharmony_ci default value is zero. 35802f4aeb0Sopenharmony_ci </para> 35902f4aeb0Sopenharmony_ci <para> 36002f4aeb0Sopenharmony_ci Most EGLConfigs should be conformant for all 36102f4aeb0Sopenharmony_ci supported client APIs, and it is rarely desirable to 36202f4aeb0Sopenharmony_ci select a nonconformant config. Conformance 36302f4aeb0Sopenharmony_ci requirements limit the number of non-conformant 36402f4aeb0Sopenharmony_ci configs that an implementation can define. 36502f4aeb0Sopenharmony_ci </para> 36602f4aeb0Sopenharmony_ci </listitem> 36702f4aeb0Sopenharmony_ci </varlistentry> 36802f4aeb0Sopenharmony_ci <varlistentry> 36902f4aeb0Sopenharmony_ci <term><constant>EGL_DEPTH_SIZE</constant></term> 37002f4aeb0Sopenharmony_ci <listitem> 37102f4aeb0Sopenharmony_ci <para> 37202f4aeb0Sopenharmony_ci Must be followed by a nonnegative integer that 37302f4aeb0Sopenharmony_ci indicates the desired depth buffer size, in bits. 37402f4aeb0Sopenharmony_ci The smallest depth buffers of at least the specified 37502f4aeb0Sopenharmony_ci size is preferred. If the desired size is zero, 37602f4aeb0Sopenharmony_ci frame buffer configurations with no depth buffer are 37702f4aeb0Sopenharmony_ci preferred. The default value is zero. 37802f4aeb0Sopenharmony_ci </para> 37902f4aeb0Sopenharmony_ci <para> 38002f4aeb0Sopenharmony_ci The depth buffer is used only by OpenGL and OpenGL 38102f4aeb0Sopenharmony_ci ES client APIs. 38202f4aeb0Sopenharmony_ci </para> 38302f4aeb0Sopenharmony_ci </listitem> 38402f4aeb0Sopenharmony_ci </varlistentry> 38502f4aeb0Sopenharmony_ci <varlistentry> 38602f4aeb0Sopenharmony_ci <term><constant>EGL_GREEN_SIZE</constant></term> 38702f4aeb0Sopenharmony_ci <listitem><para> 38802f4aeb0Sopenharmony_ci Must be followed by a nonnegative integer that 38902f4aeb0Sopenharmony_ci indicates the desired size of the green component of 39002f4aeb0Sopenharmony_ci the color buffer, in bits. If this value is zero, 39102f4aeb0Sopenharmony_ci color buffers with the smallest green component size 39202f4aeb0Sopenharmony_ci are preferred. Otherwise, color buffers with the 39302f4aeb0Sopenharmony_ci largest green component of at least the specified 39402f4aeb0Sopenharmony_ci size are preferred. The default value is zero. 39502f4aeb0Sopenharmony_ci </para></listitem> 39602f4aeb0Sopenharmony_ci </varlistentry> 39702f4aeb0Sopenharmony_ci <varlistentry> 39802f4aeb0Sopenharmony_ci <term><constant>EGL_LEVEL</constant></term> 39902f4aeb0Sopenharmony_ci <listitem><para> 40002f4aeb0Sopenharmony_ci Must be followed by an integer buffer level 40102f4aeb0Sopenharmony_ci specification. This specification is honored 40202f4aeb0Sopenharmony_ci exactly. Buffer level zero corresponds to the 40302f4aeb0Sopenharmony_ci default frame buffer of the display. Buffer level 40402f4aeb0Sopenharmony_ci one is the first overlay frame buffer, level two the 40502f4aeb0Sopenharmony_ci second overlay frame buffer, and so on. Negative 40602f4aeb0Sopenharmony_ci buffer levels correspond to underlay frame buffers. 40702f4aeb0Sopenharmony_ci The default value is zero. 40802f4aeb0Sopenharmony_ci </para> 40902f4aeb0Sopenharmony_ci <para> 41002f4aeb0Sopenharmony_ci Most imlementations do not support overlay or 41102f4aeb0Sopenharmony_ci underlay planes (buffer levels other than zero). 41202f4aeb0Sopenharmony_ci </para> 41302f4aeb0Sopenharmony_ci </listitem> 41402f4aeb0Sopenharmony_ci </varlistentry> 41502f4aeb0Sopenharmony_ci <varlistentry> 41602f4aeb0Sopenharmony_ci <term><constant>EGL_LUMINANCE_SIZE</constant></term> 41702f4aeb0Sopenharmony_ci <listitem> 41802f4aeb0Sopenharmony_ci <para> 41902f4aeb0Sopenharmony_ci Must be followed by a nonnegative integer that 42002f4aeb0Sopenharmony_ci indicates the desired size of the luminance 42102f4aeb0Sopenharmony_ci component of the color buffer, in bits. If this 42202f4aeb0Sopenharmony_ci value is zero, color buffers with the smallest 42302f4aeb0Sopenharmony_ci luminance component size are preferred. Otherwise, 42402f4aeb0Sopenharmony_ci color buffers with the largest luminance component 42502f4aeb0Sopenharmony_ci of at least the specified size are preferred. The 42602f4aeb0Sopenharmony_ci default value is zero. 42702f4aeb0Sopenharmony_ci </para> 42802f4aeb0Sopenharmony_ci </listitem> 42902f4aeb0Sopenharmony_ci </varlistentry> 43002f4aeb0Sopenharmony_ci <varlistentry> 43102f4aeb0Sopenharmony_ci <term><constant>EGL_MATCH_NATIVE_PIXMAP</constant></term> 43202f4aeb0Sopenharmony_ci <listitem> 43302f4aeb0Sopenharmony_ci <para> 43402f4aeb0Sopenharmony_ci Must be followed by the handle of a valid native 43502f4aeb0Sopenharmony_ci pixmap, cast to <type>EGLint</type>, or 43602f4aeb0Sopenharmony_ci <constant>EGL_NONE</constant>. If the value is not 43702f4aeb0Sopenharmony_ci <constant>EGL_NONE</constant>, only configs which 43802f4aeb0Sopenharmony_ci support creating pixmap surfaces with this pixmap 43902f4aeb0Sopenharmony_ci using 44002f4aeb0Sopenharmony_ci <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry> 44102f4aeb0Sopenharmony_ci will match this attribute. If the value is 44202f4aeb0Sopenharmony_ci <constant>EGL_NONE</constant>, then configs are not 44302f4aeb0Sopenharmony_ci matched for this attribute. The default value is 44402f4aeb0Sopenharmony_ci <constant>EGL_NONE</constant>. 44502f4aeb0Sopenharmony_ci </para> 44602f4aeb0Sopenharmony_ci <para> 44702f4aeb0Sopenharmony_ci <constant>EGL_MATCH_NATIVE_PIXMAP</constant> was 44802f4aeb0Sopenharmony_ci introduced due to the difficulty of determining an 44902f4aeb0Sopenharmony_ci <type>EGLConfig</type> compatibile with a native 45002f4aeb0Sopenharmony_ci pixmap using only color component sizes. 45102f4aeb0Sopenharmony_ci </para> 45202f4aeb0Sopenharmony_ci </listitem> 45302f4aeb0Sopenharmony_ci </varlistentry> 45402f4aeb0Sopenharmony_ci <varlistentry> 45502f4aeb0Sopenharmony_ci <term><constant>EGL_NATIVE_RENDERABLE</constant></term> 45602f4aeb0Sopenharmony_ci <listitem><para> 45702f4aeb0Sopenharmony_ci Must be followed by 45802f4aeb0Sopenharmony_ci <constant>EGL_DONT_CARE</constant>, 45902f4aeb0Sopenharmony_ci <constant>EGL_TRUE</constant>, or 46002f4aeb0Sopenharmony_ci <constant>EGL_FALSE</constant>. 46102f4aeb0Sopenharmony_ci If <constant>EGL_TRUE</constant> is specified, then 46202f4aeb0Sopenharmony_ci only frame buffer configurations that allow native 46302f4aeb0Sopenharmony_ci rendering into the surface will be considered. The 46402f4aeb0Sopenharmony_ci default value is <constant>EGL_DONT_CARE</constant>. 46502f4aeb0Sopenharmony_ci </para></listitem> 46602f4aeb0Sopenharmony_ci </varlistentry> 46702f4aeb0Sopenharmony_ci <varlistentry> 46802f4aeb0Sopenharmony_ci <term><constant>EGL_MAX_SWAP_INTERVAL</constant></term> 46902f4aeb0Sopenharmony_ci <listitem><para> 47002f4aeb0Sopenharmony_ci Must be followed by a integer that indicates the 47102f4aeb0Sopenharmony_ci maximum value that can be passed to 47202f4aeb0Sopenharmony_ci <citerefentry><refentrytitle>eglSwapInterval</refentrytitle></citerefentry>. 47302f4aeb0Sopenharmony_ci The default value is 47402f4aeb0Sopenharmony_ci <constant>EGL_DONT_CARE</constant>. 47502f4aeb0Sopenharmony_ci </para></listitem> 47602f4aeb0Sopenharmony_ci </varlistentry> 47702f4aeb0Sopenharmony_ci <varlistentry> 47802f4aeb0Sopenharmony_ci <term><constant>EGL_MIN_SWAP_INTERVAL</constant></term> 47902f4aeb0Sopenharmony_ci <listitem><para> 48002f4aeb0Sopenharmony_ci Must be followed by a integer that indicates the 48102f4aeb0Sopenharmony_ci minimum value that can be passed to eglSwapInterval. 48202f4aeb0Sopenharmony_ci The default value is <constant>EGL_DONT_CARE</constant>. 48302f4aeb0Sopenharmony_ci </para></listitem> 48402f4aeb0Sopenharmony_ci </varlistentry> 48502f4aeb0Sopenharmony_ci <varlistentry> 48602f4aeb0Sopenharmony_ci <term><constant>EGL_RED_SIZE</constant></term> 48702f4aeb0Sopenharmony_ci <listitem><para> 48802f4aeb0Sopenharmony_ci Must be followed by a nonnegative integer that 48902f4aeb0Sopenharmony_ci indicates the desired size of the red component of 49002f4aeb0Sopenharmony_ci the color buffer, in bits. If this value is zero, 49102f4aeb0Sopenharmony_ci color buffers with the smallest red component size 49202f4aeb0Sopenharmony_ci are preferred. Otherwise, color buffers with the 49302f4aeb0Sopenharmony_ci largest red component of at least the specified size 49402f4aeb0Sopenharmony_ci are preferred. The default value is zero. 49502f4aeb0Sopenharmony_ci </para></listitem> 49602f4aeb0Sopenharmony_ci </varlistentry> 49702f4aeb0Sopenharmony_ci <varlistentry> 49802f4aeb0Sopenharmony_ci <term><constant>EGL_SAMPLE_BUFFERS</constant></term> 49902f4aeb0Sopenharmony_ci <listitem><para> 50002f4aeb0Sopenharmony_ci Must be followed by the minimum acceptable number of 50102f4aeb0Sopenharmony_ci multisample buffers. Configurations with the 50202f4aeb0Sopenharmony_ci smallest number of multisample buffers that meet or 50302f4aeb0Sopenharmony_ci exceed this minimum number are preferred. Currently 50402f4aeb0Sopenharmony_ci operation with more than one multisample buffer is 50502f4aeb0Sopenharmony_ci undefined, so only values of zero or one will 50602f4aeb0Sopenharmony_ci produce a match. The default value is zero. 50702f4aeb0Sopenharmony_ci </para></listitem> 50802f4aeb0Sopenharmony_ci </varlistentry> 50902f4aeb0Sopenharmony_ci <varlistentry> 51002f4aeb0Sopenharmony_ci <term><constant>EGL_SAMPLES</constant></term> 51102f4aeb0Sopenharmony_ci <listitem><para> 51202f4aeb0Sopenharmony_ci Must be followed by the minimum number of 51302f4aeb0Sopenharmony_ci samples required in multisample buffers. 51402f4aeb0Sopenharmony_ci Configurations with the smallest number of 51502f4aeb0Sopenharmony_ci samples that meet or exceed the specified 51602f4aeb0Sopenharmony_ci minimum number are preferred. Note that it is 51702f4aeb0Sopenharmony_ci possible for color samples in the multisample 51802f4aeb0Sopenharmony_ci buffer to have fewer bits than colors in the 51902f4aeb0Sopenharmony_ci main color buffers. However, multisampled 52002f4aeb0Sopenharmony_ci colors maintain at least as much color 52102f4aeb0Sopenharmony_ci resolution in aggregate as the main color 52202f4aeb0Sopenharmony_ci buffers. 52302f4aeb0Sopenharmony_ci </para></listitem> 52402f4aeb0Sopenharmony_ci </varlistentry> 52502f4aeb0Sopenharmony_ci <varlistentry> 52602f4aeb0Sopenharmony_ci <term><constant>EGL_STENCIL_SIZE</constant></term> 52702f4aeb0Sopenharmony_ci <listitem> 52802f4aeb0Sopenharmony_ci <para> 52902f4aeb0Sopenharmony_ci Must be followed by a nonnegative integer that 53002f4aeb0Sopenharmony_ci indicates the desired stencil buffer size, in bits. 53102f4aeb0Sopenharmony_ci The smallest stencil buffers of at least the 53202f4aeb0Sopenharmony_ci specified size are preferred. If the desired size is 53302f4aeb0Sopenharmony_ci zero, frame buffer configurations with no stencil 53402f4aeb0Sopenharmony_ci buffer are preferred. The default value is zero. 53502f4aeb0Sopenharmony_ci </para> 53602f4aeb0Sopenharmony_ci <para> 53702f4aeb0Sopenharmony_ci The stencil buffer is used only by OpenGL and 53802f4aeb0Sopenharmony_ci OpenGL ES client APIs. 53902f4aeb0Sopenharmony_ci </para> 54002f4aeb0Sopenharmony_ci </listitem> 54102f4aeb0Sopenharmony_ci </varlistentry> 54202f4aeb0Sopenharmony_ci <varlistentry> 54302f4aeb0Sopenharmony_ci <term><constant>EGL_RENDERABLE_TYPE</constant></term> 54402f4aeb0Sopenharmony_ci <listitem> 54502f4aeb0Sopenharmony_ci <para> 54602f4aeb0Sopenharmony_ci Must be followed by a bitmask indicating which types 54702f4aeb0Sopenharmony_ci of client API contexts the frame buffer 54802f4aeb0Sopenharmony_ci configuration must support creating with 54902f4aeb0Sopenharmony_ci <citerefentry><refentrytitle>eglCreateContext</refentrytitle></citerefentry>). 55002f4aeb0Sopenharmony_ci Mask bits are the same as for attribute 55102f4aeb0Sopenharmony_ci <constant>EGL_CONFORMANT</constant>. The default 55202f4aeb0Sopenharmony_ci value is <constant>EGL_OPENGL_ES_BIT</constant>. 55302f4aeb0Sopenharmony_ci </para> 55402f4aeb0Sopenharmony_ci </listitem> 55502f4aeb0Sopenharmony_ci </varlistentry> 55602f4aeb0Sopenharmony_ci <varlistentry> 55702f4aeb0Sopenharmony_ci <term><constant>EGL_SURFACE_TYPE</constant></term> 55802f4aeb0Sopenharmony_ci <listitem> 55902f4aeb0Sopenharmony_ci <para> 56002f4aeb0Sopenharmony_ci Must be followed by a bitmask indicating which EGL 56102f4aeb0Sopenharmony_ci surface types and capabilities the frame buffer 56202f4aeb0Sopenharmony_ci configuration must support. Mask bits include: 56302f4aeb0Sopenharmony_ci </para> 56402f4aeb0Sopenharmony_ci <variablelist> 56502f4aeb0Sopenharmony_ci <varlistentry> 56602f4aeb0Sopenharmony_ci <term><constant>EGL_MULTISAMPLE_RESOLVE_BOX_BIT</constant></term> 56702f4aeb0Sopenharmony_ci <listitem><para> 56802f4aeb0Sopenharmony_ci Config allows specifying box filtered 56902f4aeb0Sopenharmony_ci multisample resolve behavior with 57002f4aeb0Sopenharmony_ci <citerefentry><refentrytitle>eglSurfaceAttrib</refentrytitle></citerefentry>. 57102f4aeb0Sopenharmony_ci </para></listitem> 57202f4aeb0Sopenharmony_ci </varlistentry> 57302f4aeb0Sopenharmony_ci <varlistentry> 57402f4aeb0Sopenharmony_ci <term><constant>EGL_PBUFFER_BIT</constant></term> 57502f4aeb0Sopenharmony_ci <listitem><para> 57602f4aeb0Sopenharmony_ci Config supports creating pixel buffer surfaces. 57702f4aeb0Sopenharmony_ci </para></listitem> 57802f4aeb0Sopenharmony_ci </varlistentry> 57902f4aeb0Sopenharmony_ci <varlistentry> 58002f4aeb0Sopenharmony_ci <term><constant>EGL_PIXMAP_BIT</constant></term> 58102f4aeb0Sopenharmony_ci <listitem><para> 58202f4aeb0Sopenharmony_ci Config supports creating pixmap surfaces. 58302f4aeb0Sopenharmony_ci </para></listitem> 58402f4aeb0Sopenharmony_ci </varlistentry> 58502f4aeb0Sopenharmony_ci <varlistentry> 58602f4aeb0Sopenharmony_ci <term><constant>EGL_SWAP_BEHAVIOR_PRESERVED_BIT</constant></term> 58702f4aeb0Sopenharmony_ci <listitem><para> 58802f4aeb0Sopenharmony_ci Config allows setting swap behavior for 58902f4aeb0Sopenharmony_ci color buffers with 59002f4aeb0Sopenharmony_ci <citerefentry><refentrytitle>eglSurfaceAttrib</refentrytitle></citerefentry>. 59102f4aeb0Sopenharmony_ci </para></listitem> 59202f4aeb0Sopenharmony_ci </varlistentry> 59302f4aeb0Sopenharmony_ci <varlistentry> 59402f4aeb0Sopenharmony_ci <term><constant>EGL_VG_ALPHA_FORMAT_PRE_BIT</constant></term> 59502f4aeb0Sopenharmony_ci <listitem><para> 59602f4aeb0Sopenharmony_ci Config allows specifying OpenVG rendering 59702f4aeb0Sopenharmony_ci with premultiplied alpha values at surface 59802f4aeb0Sopenharmony_ci creation time (see 59902f4aeb0Sopenharmony_ci <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>, 60002f4aeb0Sopenharmony_ci <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry>, 60102f4aeb0Sopenharmony_ci and 60202f4aeb0Sopenharmony_ci <citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry>). 60302f4aeb0Sopenharmony_ci </para></listitem> 60402f4aeb0Sopenharmony_ci </varlistentry> 60502f4aeb0Sopenharmony_ci <varlistentry> 60602f4aeb0Sopenharmony_ci <term><constant>EGL_VG_COLORSPACE_LINEAR_BIT</constant></term> 60702f4aeb0Sopenharmony_ci <listitem><para> 60802f4aeb0Sopenharmony_ci Config allows specifying OpenVG rendering in 60902f4aeb0Sopenharmony_ci a linear colorspace at surface creation time 61002f4aeb0Sopenharmony_ci (see 61102f4aeb0Sopenharmony_ci <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>, 61202f4aeb0Sopenharmony_ci <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry>, 61302f4aeb0Sopenharmony_ci and 61402f4aeb0Sopenharmony_ci <citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry>). 61502f4aeb0Sopenharmony_ci </para></listitem> 61602f4aeb0Sopenharmony_ci </varlistentry> 61702f4aeb0Sopenharmony_ci <varlistentry> 61802f4aeb0Sopenharmony_ci <term><constant>EGL_WINDOW_BIT</constant></term> 61902f4aeb0Sopenharmony_ci <listitem><para> 62002f4aeb0Sopenharmony_ci Config supports creating window surfaces. 62102f4aeb0Sopenharmony_ci </para></listitem> 62202f4aeb0Sopenharmony_ci </varlistentry> 62302f4aeb0Sopenharmony_ci </variablelist> 62402f4aeb0Sopenharmony_ci <para> 62502f4aeb0Sopenharmony_ci For example, if the bitmask is set to 62602f4aeb0Sopenharmony_ci <inlineequation> 62702f4aeb0Sopenharmony_ci <mml:math> 62802f4aeb0Sopenharmony_ci <mml:mi><constant>EGL_WINDOW_BIT</constant></mml:mi> 62902f4aeb0Sopenharmony_ci <mml:mo>|</mml:mo> 63002f4aeb0Sopenharmony_ci <mml:mi><constant>EGL_PIXMAP_BIT</constant></mml:mi> 63102f4aeb0Sopenharmony_ci </mml:math> 63202f4aeb0Sopenharmony_ci </inlineequation>, 63302f4aeb0Sopenharmony_ci only frame buffer configurations that support both 63402f4aeb0Sopenharmony_ci windows and pixmaps will be considered. The default 63502f4aeb0Sopenharmony_ci value is <constant>EGL_WINDOW_BIT</constant>. 63602f4aeb0Sopenharmony_ci </para> 63702f4aeb0Sopenharmony_ci </listitem> 63802f4aeb0Sopenharmony_ci </varlistentry> 63902f4aeb0Sopenharmony_ci <varlistentry> 64002f4aeb0Sopenharmony_ci <term><constant>EGL_TRANSPARENT_TYPE</constant></term> 64102f4aeb0Sopenharmony_ci <listitem><para> 64202f4aeb0Sopenharmony_ci Must be followed by one of 64302f4aeb0Sopenharmony_ci <constant>EGL_NONE</constant> or 64402f4aeb0Sopenharmony_ci <constant>EGL_TRANSPARENT_RGB</constant>. If 64502f4aeb0Sopenharmony_ci <constant>EGL_NONE</constant> is specified, then 64602f4aeb0Sopenharmony_ci only opaque frame buffer configurations will be 64702f4aeb0Sopenharmony_ci considered. If 64802f4aeb0Sopenharmony_ci <constant>EGL_TRANSPARENT_RGB</constant> is 64902f4aeb0Sopenharmony_ci specified, then only transparent frame buffer 65002f4aeb0Sopenharmony_ci configurations will be considered. The default value 65102f4aeb0Sopenharmony_ci is <constant>EGL_NONE</constant>. 65202f4aeb0Sopenharmony_ci </para> 65302f4aeb0Sopenharmony_ci <para> 65402f4aeb0Sopenharmony_ci Most implementations support only opaque frame 65502f4aeb0Sopenharmony_ci buffer configurations. 65602f4aeb0Sopenharmony_ci </para> 65702f4aeb0Sopenharmony_ci </listitem> 65802f4aeb0Sopenharmony_ci </varlistentry> 65902f4aeb0Sopenharmony_ci <varlistentry> 66002f4aeb0Sopenharmony_ci <term><constant>EGL_TRANSPARENT_RED_VALUE</constant></term> 66102f4aeb0Sopenharmony_ci <listitem><para> 66202f4aeb0Sopenharmony_ci Must be followed by an integer value indicating the 66302f4aeb0Sopenharmony_ci transparent red value. The value must be between 66402f4aeb0Sopenharmony_ci zero and the maximum color buffer value for red. 66502f4aeb0Sopenharmony_ci Only frame buffer configurations that use the 66602f4aeb0Sopenharmony_ci specified transparent red value will be considered. 66702f4aeb0Sopenharmony_ci The default value is 66802f4aeb0Sopenharmony_ci <constant>EGL_DONT_CARE</constant>. 66902f4aeb0Sopenharmony_ci </para> 67002f4aeb0Sopenharmony_ci <para> 67102f4aeb0Sopenharmony_ci This attribute is ignored unless 67202f4aeb0Sopenharmony_ci <constant>EGL_TRANSPARENT_TYPE</constant> is included in 67302f4aeb0Sopenharmony_ci <parameter>attrib_list</parameter> and specified as 67402f4aeb0Sopenharmony_ci <constant>EGL_TRANSPARENT_RGB</constant>. 67502f4aeb0Sopenharmony_ci </para></listitem> 67602f4aeb0Sopenharmony_ci </varlistentry> 67702f4aeb0Sopenharmony_ci <varlistentry> 67802f4aeb0Sopenharmony_ci <term><constant>EGL_TRANSPARENT_GREEN_VALUE</constant></term> 67902f4aeb0Sopenharmony_ci <listitem><para> 68002f4aeb0Sopenharmony_ci Must be followed by an integer value indicating the 68102f4aeb0Sopenharmony_ci transparent green value. The value must be between 68202f4aeb0Sopenharmony_ci zero and the maximum color buffer value for green. 68302f4aeb0Sopenharmony_ci Only frame buffer configurations that use the 68402f4aeb0Sopenharmony_ci specified transparent green value will be 68502f4aeb0Sopenharmony_ci considered. The default value is 68602f4aeb0Sopenharmony_ci <constant>EGL_DONT_CARE</constant>. 68702f4aeb0Sopenharmony_ci </para> 68802f4aeb0Sopenharmony_ci <para> 68902f4aeb0Sopenharmony_ci This attribute is ignored unless 69002f4aeb0Sopenharmony_ci <constant>EGL_TRANSPARENT_TYPE</constant> is included in 69102f4aeb0Sopenharmony_ci <parameter>attrib_list</parameter> and specified as 69202f4aeb0Sopenharmony_ci <constant>EGL_TRANSPARENT_RGB</constant>. 69302f4aeb0Sopenharmony_ci </para></listitem> 69402f4aeb0Sopenharmony_ci </varlistentry> 69502f4aeb0Sopenharmony_ci <varlistentry> 69602f4aeb0Sopenharmony_ci <term><constant>EGL_TRANSPARENT_BLUE_VALUE</constant></term> 69702f4aeb0Sopenharmony_ci <listitem><para> 69802f4aeb0Sopenharmony_ci Must be followed by an integer value indicating the 69902f4aeb0Sopenharmony_ci transparent blue value. The value must be between 70002f4aeb0Sopenharmony_ci zero and the maximum color buffer value for blue. 70102f4aeb0Sopenharmony_ci Only frame buffer configurations that use the 70202f4aeb0Sopenharmony_ci specified transparent blue value will be considered. 70302f4aeb0Sopenharmony_ci The default value is 70402f4aeb0Sopenharmony_ci <constant>EGL_DONT_CARE</constant>. 70502f4aeb0Sopenharmony_ci </para> 70602f4aeb0Sopenharmony_ci <para> 70702f4aeb0Sopenharmony_ci This attribute is ignored unless 70802f4aeb0Sopenharmony_ci <constant>EGL_TRANSPARENT_TYPE</constant> is included in 70902f4aeb0Sopenharmony_ci <parameter>attrib_list</parameter> and specified as 71002f4aeb0Sopenharmony_ci <constant>EGL_TRANSPARENT_RGB</constant>. 71102f4aeb0Sopenharmony_ci </para></listitem> 71202f4aeb0Sopenharmony_ci </varlistentry> 71302f4aeb0Sopenharmony_ci </variablelist> 71402f4aeb0Sopenharmony_ci <para> 71502f4aeb0Sopenharmony_ci When more than one EGL frame buffer configuration matches 71602f4aeb0Sopenharmony_ci the specified attributes, a list of matching configurations 71702f4aeb0Sopenharmony_ci is returned. The list is sorted according to the following 71802f4aeb0Sopenharmony_ci precedence rules, which are applied in ascending order 71902f4aeb0Sopenharmony_ci (i.e., configurations that are considered equal by a lower 72002f4aeb0Sopenharmony_ci numbered rule are sorted by the higher numbered rule): 72102f4aeb0Sopenharmony_ci </para> 72202f4aeb0Sopenharmony_ci <orderedlist> 72302f4aeb0Sopenharmony_ci <listitem><para> 72402f4aeb0Sopenharmony_ci Special: by <constant>EGL_CONFIG_CAVEAT</constant>, 72502f4aeb0Sopenharmony_ci where the precedence is <constant>EGL_NONE</constant>, 72602f4aeb0Sopenharmony_ci <constant>EGL_SLOW_CONFIG</constant>, and 72702f4aeb0Sopenharmony_ci <constant>EGL_NON_CONFORMANT_CONFIG</constant>. 72802f4aeb0Sopenharmony_ci </para></listitem> 72902f4aeb0Sopenharmony_ci <listitem><para> 73002f4aeb0Sopenharmony_ci Special: by <constant>EGL_COLOR_BUFFER_TYPE</constant>, 73102f4aeb0Sopenharmony_ci where the precedence is 73202f4aeb0Sopenharmony_ci <constant>EGL_RGB_BUFFER</constant>, 73302f4aeb0Sopenharmony_ci <constant>EGL_LUMINANCE_BUFFER</constant>. 73402f4aeb0Sopenharmony_ci </para></listitem> 73502f4aeb0Sopenharmony_ci <listitem> 73602f4aeb0Sopenharmony_ci <para> 73702f4aeb0Sopenharmony_ci Special: by larger total number of color bits (for an 73802f4aeb0Sopenharmony_ci RGB color buffer, this is the sum of 73902f4aeb0Sopenharmony_ci <constant>EGL_RED_SIZE</constant>, 74002f4aeb0Sopenharmony_ci <constant>EGL_GREEN_SIZE</constant>, 74102f4aeb0Sopenharmony_ci <constant>EGL_BLUE_SIZE</constant>, and 74202f4aeb0Sopenharmony_ci <constant>EGL_ALPHA_SIZE</constant>; for a luminance 74302f4aeb0Sopenharmony_ci color buffer, the sum of 74402f4aeb0Sopenharmony_ci <constant>EGL_LUMINANCE_SIZE</constant> and 74502f4aeb0Sopenharmony_ci <constant>EGL_ALPHA_SIZE</constant>). If the requested 74602f4aeb0Sopenharmony_ci number of bits in <parameter>attrib_list</parameter> is 74702f4aeb0Sopenharmony_ci <constant>0</constant> or 74802f4aeb0Sopenharmony_ci <constant>EGL_DONT_CARE</constant> for a particular 74902f4aeb0Sopenharmony_ci color component, then the number of bits for that 75002f4aeb0Sopenharmony_ci component is not considered. 75102f4aeb0Sopenharmony_ci </para> 75202f4aeb0Sopenharmony_ci <para> 75302f4aeb0Sopenharmony_ci This sort rule places configs with deeper color buffers 75402f4aeb0Sopenharmony_ci before configs with shallower color buffers, which may 75502f4aeb0Sopenharmony_ci be counterintuitive. 75602f4aeb0Sopenharmony_ci </para> 75702f4aeb0Sopenharmony_ci </listitem> 75802f4aeb0Sopenharmony_ci <listitem><para> 75902f4aeb0Sopenharmony_ci Smaller <constant>EGL_BUFFER_SIZE</constant>. 76002f4aeb0Sopenharmony_ci </para></listitem> 76102f4aeb0Sopenharmony_ci <listitem><para> 76202f4aeb0Sopenharmony_ci Smaller <constant>EGL_SAMPLE_BUFFERS</constant>. 76302f4aeb0Sopenharmony_ci </para></listitem> 76402f4aeb0Sopenharmony_ci <listitem><para> 76502f4aeb0Sopenharmony_ci Smaller <constant>EGL_SAMPLES</constant>. 76602f4aeb0Sopenharmony_ci </para></listitem> 76702f4aeb0Sopenharmony_ci <listitem><para> 76802f4aeb0Sopenharmony_ci Smaller <constant>EGL_DEPTH_SIZE</constant>. 76902f4aeb0Sopenharmony_ci </para></listitem> 77002f4aeb0Sopenharmony_ci <listitem><para> 77102f4aeb0Sopenharmony_ci Smaller <constant>EGL_STENCIL_SIZE</constant>. 77202f4aeb0Sopenharmony_ci </para></listitem> 77302f4aeb0Sopenharmony_ci <listitem><para> 77402f4aeb0Sopenharmony_ci Smaller <constant>EGL_ALPHA_MASK_SIZE</constant>. 77502f4aeb0Sopenharmony_ci </para></listitem> 77602f4aeb0Sopenharmony_ci <listitem><para> 77702f4aeb0Sopenharmony_ci Special: <constant>EGL_NATIVE_VISUAL_TYPE</constant> 77802f4aeb0Sopenharmony_ci (the actual sort order is implementation-defined, 77902f4aeb0Sopenharmony_ci depending on the meaning of native visual types). 78002f4aeb0Sopenharmony_ci </para></listitem> 78102f4aeb0Sopenharmony_ci <listitem><para> 78202f4aeb0Sopenharmony_ci Smaller <constant>EGL_CONFIG_ID</constant> (this is 78302f4aeb0Sopenharmony_ci always the last sorting rule, and guarantees a unique 78402f4aeb0Sopenharmony_ci ordering). 78502f4aeb0Sopenharmony_ci </para></listitem> 78602f4aeb0Sopenharmony_ci </orderedlist> 78702f4aeb0Sopenharmony_ci <para> 78802f4aeb0Sopenharmony_ci <type>EGLConfigs</type> are not sorted with respect to the 78902f4aeb0Sopenharmony_ci attributes <constant>EGL_BIND_TO_TEXTURE_RGB</constant>, 79002f4aeb0Sopenharmony_ci <constant>EGL_BIND_TO_TEXTURE_RGBA</constant>, 79102f4aeb0Sopenharmony_ci <constant>EGL_CONFORMANT</constant>, 79202f4aeb0Sopenharmony_ci <constant>EGL_LEVEL</constant>, 79302f4aeb0Sopenharmony_ci <constant>EGL_NATIVE_RENDERABLE</constant>, 79402f4aeb0Sopenharmony_ci <constant>EGL_MAX_SWAP_INTERVAL</constant>, 79502f4aeb0Sopenharmony_ci <constant>EGL_MIN_SWAP_INTERVAL</constant>, 79602f4aeb0Sopenharmony_ci <constant>EGL_RENDERABLE_TYPE</constant>, 79702f4aeb0Sopenharmony_ci <constant>EGL_SURFACE_TYPE</constant>, 79802f4aeb0Sopenharmony_ci <constant>EGL_TRANSPARENT_TYPE</constant>, 79902f4aeb0Sopenharmony_ci <constant>EGL_TRANSPARENT_RED_VALUE</constant>, 80002f4aeb0Sopenharmony_ci <constant>EGL_TRANSPARENT_GREEN_VALUE</constant>, and 80102f4aeb0Sopenharmony_ci <constant>EGL_TRANSPARENT_BLUE_VALUE</constant>. 80202f4aeb0Sopenharmony_ci </para> 80302f4aeb0Sopenharmony_ci </refsect1> 80402f4aeb0Sopenharmony_ci <refsect1 id="examples"><title>Examples</title> 80502f4aeb0Sopenharmony_ci <para> 80602f4aeb0Sopenharmony_ci The following example specifies a frame buffer configuration 80702f4aeb0Sopenharmony_ci in the normal frame buffer (not an overlay or underlay). The 80802f4aeb0Sopenharmony_ci returned frame buffer configuration supports a color buffer 80902f4aeb0Sopenharmony_ci with at least 4 bits each of red, green and blue, and 81002f4aeb0Sopenharmony_ci possibly no alpha bits. The code shown in the example may or 81102f4aeb0Sopenharmony_ci may not have a depth buffer, or a stencil buffer. 81202f4aeb0Sopenharmony_ci </para> 81302f4aeb0Sopenharmony_ci <programlisting>EGLint const attrib_list[] = { 81402f4aeb0Sopenharmony_ci EGL_RED_SIZE, 4, 81502f4aeb0Sopenharmony_ci EGL_GREEN_SIZE, 4, 81602f4aeb0Sopenharmony_ci EGL_BLUE_SIZE, 4, 81702f4aeb0Sopenharmony_ci EGL_NONE 81802f4aeb0Sopenharmony_ci};</programlisting> 81902f4aeb0Sopenharmony_ci </refsect1> 82002f4aeb0Sopenharmony_ci <refsect1 id="notes"><title>Notes</title> 82102f4aeb0Sopenharmony_ci <para> 82202f4aeb0Sopenharmony_ci <constant>EGL_RENDERABLE_TYPE</constant> bit 82302f4aeb0Sopenharmony_ci <constant>EGL_OPENGL_BIT</constant>, and 82402f4aeb0Sopenharmony_ci <constant>EGL_SURFACE_TYPE</constant> bits 82502f4aeb0Sopenharmony_ci <constant>EGL_MULTISAMPLE_RESOLVE_BOX_BIT</constant> and 82602f4aeb0Sopenharmony_ci <constant>EGL_SWAP_BEHAVIOR_PRESERVED_BIT</constant> are 82702f4aeb0Sopenharmony_ci supported only if the EGL version is 1.4 or greater. 82802f4aeb0Sopenharmony_ci </para> 82902f4aeb0Sopenharmony_ci <para> 83002f4aeb0Sopenharmony_ci <constant>EGL_CONFORMANT</constant>, 83102f4aeb0Sopenharmony_ci <constant>EGL_MATCH_NATIVE_PIXMAP</constant>, 83202f4aeb0Sopenharmony_ci <constant>EGL_RENDERABLE_TYPE</constant> bit 83302f4aeb0Sopenharmony_ci <constant>EGL_OPENGL_ES2_BIT</constant>, and 83402f4aeb0Sopenharmony_ci <constant>EGL_SURFACE_TYPE</constant> bits 83502f4aeb0Sopenharmony_ci <constant>EGL_VG_ALPHA_FORMAT_PRE_BIT</constant> and 83602f4aeb0Sopenharmony_ci <constant>EGL_VG_COLORSPACE_LINEAR_BIT</constant> are 83702f4aeb0Sopenharmony_ci supported only if the EGL version is 1.3 or greater. 83802f4aeb0Sopenharmony_ci </para> 83902f4aeb0Sopenharmony_ci <para> 84002f4aeb0Sopenharmony_ci <constant>EGL_ALPHA_MASK_SIZE</constant>, 84102f4aeb0Sopenharmony_ci <constant>EGL_COLOR_BUFFER_TYPE</constant>, 84202f4aeb0Sopenharmony_ci <constant>EGL_LUMINANCE_SIZE</constant>, 84302f4aeb0Sopenharmony_ci <constant>EGL_RENDERABLE_TYPE</constant>, and 84402f4aeb0Sopenharmony_ci <constant>EGL_RENDERABLE_TYPE</constant> bits 84502f4aeb0Sopenharmony_ci <constant>EGL_OPENGL_ES_BIT</constant> and 84602f4aeb0Sopenharmony_ci <constant>EGL_OPENVG_BIT</constant> are supported only if 84702f4aeb0Sopenharmony_ci the EGL version is 1.2 or greater. 84802f4aeb0Sopenharmony_ci </para> 84902f4aeb0Sopenharmony_ci <para> 85002f4aeb0Sopenharmony_ci If OpenGL or OpenGL ES rendering is supported for a 85102f4aeb0Sopenharmony_ci luminance color buffer, it is treated as RGB rendering with 85202f4aeb0Sopenharmony_ci the value of <constant>GL_RED_BITS</constant> equal to 85302f4aeb0Sopenharmony_ci <constant>EGL_LUMINANCE_SIZE</constant> and the values of 85402f4aeb0Sopenharmony_ci <constant>GL_GREEN_BITS</constant> and 85502f4aeb0Sopenharmony_ci <constant>GL_BLUE_BITS</constant> equal to zero. The red 85602f4aeb0Sopenharmony_ci component of fragments is written to the luminance channel 85702f4aeb0Sopenharmony_ci of the color buffer while the green and blue components are 85802f4aeb0Sopenharmony_ci discarded. 85902f4aeb0Sopenharmony_ci </para> 86002f4aeb0Sopenharmony_ci <para> 86102f4aeb0Sopenharmony_ci <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry> 86202f4aeb0Sopenharmony_ci and 86302f4aeb0Sopenharmony_ci <citerefentry><refentrytitle>eglGetConfigAttrib</refentrytitle></citerefentry> 86402f4aeb0Sopenharmony_ci can be used to implement selection algorithms other than the 86502f4aeb0Sopenharmony_ci generic one implemented by 86602f4aeb0Sopenharmony_ci <function>eglChooseConfig</function>. Call 86702f4aeb0Sopenharmony_ci <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry> 86802f4aeb0Sopenharmony_ci to retrieve all the frame buffer configurations, or 86902f4aeb0Sopenharmony_ci alternatively, all the frame buffer configurations with a 87002f4aeb0Sopenharmony_ci particular set of attributes. Next call 87102f4aeb0Sopenharmony_ci <citerefentry><refentrytitle>eglGetConfigAttrib</refentrytitle></citerefentry> 87202f4aeb0Sopenharmony_ci to retrieve additional attributes for the frame buffer 87302f4aeb0Sopenharmony_ci configurations and then select between them. 87402f4aeb0Sopenharmony_ci </para> 87502f4aeb0Sopenharmony_ci <para> 87602f4aeb0Sopenharmony_ci EGL implementors are strongly discouraged, but not 87702f4aeb0Sopenharmony_ci proscribed, from changing the selection algorithm used by 87802f4aeb0Sopenharmony_ci <function>eglChooseConfig</function>. Therefore, selections 87902f4aeb0Sopenharmony_ci may change from release to release of the client-side 88002f4aeb0Sopenharmony_ci library. 88102f4aeb0Sopenharmony_ci </para> 88202f4aeb0Sopenharmony_ci </refsect1> 88302f4aeb0Sopenharmony_ci <refsect1 id="errors"><title>Errors</title> 88402f4aeb0Sopenharmony_ci <para> 88502f4aeb0Sopenharmony_ci <constant>EGL_FALSE</constant> is returned on failure, 88602f4aeb0Sopenharmony_ci <constant>EGL_TRUE</constant> otherwise. 88702f4aeb0Sopenharmony_ci <parameter>configs</parameter> and 88802f4aeb0Sopenharmony_ci <parameter>num_config</parameter> are not modified when 88902f4aeb0Sopenharmony_ci <constant>EGL_FALSE</constant> is returned. 89002f4aeb0Sopenharmony_ci </para> 89102f4aeb0Sopenharmony_ci <para> 89202f4aeb0Sopenharmony_ci <constant>EGL_BAD_DISPLAY</constant> is generated if 89302f4aeb0Sopenharmony_ci <parameter>display</parameter> is not an EGL display connection. 89402f4aeb0Sopenharmony_ci </para> 89502f4aeb0Sopenharmony_ci <para> 89602f4aeb0Sopenharmony_ci <constant>EGL_BAD_ATTRIBUTE</constant> is generated if 89702f4aeb0Sopenharmony_ci <parameter>attribute_list</parameter> contains an invalid frame buffer 89802f4aeb0Sopenharmony_ci configuration attribute or an 89902f4aeb0Sopenharmony_ci attribute value that is unrecognized or out of range. 90002f4aeb0Sopenharmony_ci </para> 90102f4aeb0Sopenharmony_ci <para> 90202f4aeb0Sopenharmony_ci <constant>EGL_NOT_INITIALIZED</constant> is generated if 90302f4aeb0Sopenharmony_ci <parameter>display</parameter> has not been initialized. 90402f4aeb0Sopenharmony_ci </para> 90502f4aeb0Sopenharmony_ci <para> 90602f4aeb0Sopenharmony_ci <constant>EGL_BAD_PARAMETER</constant> is generated if 90702f4aeb0Sopenharmony_ci <parameter>num_config</parameter> is <constant>NULL</constant>. 90802f4aeb0Sopenharmony_ci </para> 90902f4aeb0Sopenharmony_ci </refsect1> 91002f4aeb0Sopenharmony_ci <refsect1 id="seealso"><title>See Also</title> 91102f4aeb0Sopenharmony_ci <para> 91202f4aeb0Sopenharmony_ci <citerefentry><refentrytitle>eglCreateContext</refentrytitle></citerefentry>, 91302f4aeb0Sopenharmony_ci <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>, 91402f4aeb0Sopenharmony_ci <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry>, 91502f4aeb0Sopenharmony_ci <citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry>, 91602f4aeb0Sopenharmony_ci <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>, 91702f4aeb0Sopenharmony_ci <citerefentry><refentrytitle>eglGetConfigAttrib</refentrytitle></citerefentry>, 91802f4aeb0Sopenharmony_ci <citerefentry><refentrytitle>eglSurfaceAttrib</refentrytitle></citerefentry>, 91902f4aeb0Sopenharmony_ci <citerefentry><refentrytitle>eglSwapInterval</refentrytitle></citerefentry> 92002f4aeb0Sopenharmony_ci </para> 92102f4aeb0Sopenharmony_ci </refsect1> 92202f4aeb0Sopenharmony_ci <refsect3 id="Copyright"><title></title> 92302f4aeb0Sopenharmony_ci <!-- Content included from copyright.inc.xsl --> 92402f4aeb0Sopenharmony_ci <imageobject> 92502f4aeb0Sopenharmony_ci <imagedata fileref="KhronosLogo.jpg" format="jpg" /> 92602f4aeb0Sopenharmony_ci </imageobject> 92702f4aeb0Sopenharmony_ci <para /> 92802f4aeb0Sopenharmony_ci </refsect3> 92902f4aeb0Sopenharmony_ci</refentry> 930