blob: 574ec71ede4ee6d9eb51e4b3c1db1135dd0cd244 [file] [log] [blame]
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglQuerySurface">
<info>
<copyright>
<year>2003-2018</year>
<holder>The Khronos Group Inc.</holder>
</copyright>
</info>
<refmeta>
<refentrytitle>eglQuerySurface</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>eglQuerySurface</refname>
<refpurpose>
return <acronym>EGL</acronym> surface information
</refpurpose>
</refnamediv>
<refsynopsisdiv>
<title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>EGLBoolean <function>eglQuerySurface</function></funcdef>
<paramdef>EGLDisplay <parameter>display</parameter></paramdef>
<paramdef>EGLSurface <parameter>surface</parameter></paramdef>
<paramdef>EGLint <parameter>attribute</parameter></paramdef>
<paramdef>EGLint * <parameter>value</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>surface</parameter></term>
<listitem>
<para>
Specifies the EGL surface to query.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>attribute</parameter></term>
<listitem>
<para>
Specifies the EGL surface attribute to be returned.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>value</parameter></term>
<listitem>
<para>
Returns the requested value.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 xml:id="description"><title>Description</title>
<para>
<function>eglQuerySurface</function> returns in
<parameter>value</parameter> the value of
<parameter>attribute</parameter> for <parameter>surface</parameter>.
<parameter>attribute</parameter> can be one of the following:
</para>
<variablelist>
<varlistentry>
<term><constant>EGL_CONFIG_ID</constant></term>
<listitem><para>
Returns the ID of the EGL frame buffer configuration
with respect to which the surface was created.
</para></listitem>
</varlistentry>
<varlistentry>
<term><constant>EGL_GL_COLORSPACE</constant></term>
<listitem><para>
Returns the color space used by OpenGL and OpenGL ES
when rendering to the surface, either
<constant>EGL_GL_COLORSPACE_SRGB</constant> or
<constant>EGL_GL_COLORSPACE_LINEAR</constant>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><constant>EGL_HEIGHT</constant></term>
<listitem><para>
Returns the height of the surface in pixels.
</para></listitem>
</varlistentry>
<varlistentry>
<term><constant>EGL_HORIZONTAL_RESOLUTION</constant></term>
<listitem><para>
Returns the horizontal dot pitch of the display on
which a window surface is visible. The value
returned is equal to the actual dot pitch, in
pixels/meter, multiplied by the constant value
<constant>EGL_DISPLAY_SCALING</constant>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><constant>EGL_LARGEST_PBUFFER</constant></term>
<listitem><para>
Returns the same attribute value specified when the
surface was created with
<citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>.
For a window or pixmap surface,
<parameter>value</parameter> is not modified.
</para></listitem>
</varlistentry>
<varlistentry>
<term><constant>EGL_MIPMAP_LEVEL</constant></term>
<listitem><para>
Returns which level of the mipmap to render to, if
texture has mipmaps.
</para></listitem>
</varlistentry>
<varlistentry>
<term><constant>EGL_MIPMAP_TEXTURE</constant></term>
<listitem><para>
Returns <constant>EGL_TRUE</constant> if texture has
mipmaps, <constant>EGL_FALSE</constant> otherwise.
</para></listitem>
</varlistentry>
<varlistentry>
<term><constant>EGL_MULTISAMPLE_RESOLVE</constant></term>
<listitem>
<para>
Returns the filter used when resolving the
multisample buffer. The filter may be either
<constant>EGL_MULTISAMPLE_RESOLVE_DEFAULT</constant>
or <constant>EGL_MULTISAMPLE_RESOLVE_BOX</constant>,
as described for
<citerefentry><refentrytitle>eglSurfaceAttrib</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>EGL_PIXEL_ASPECT_RATIO</constant></term>
<listitem><para>
Returns the aspect ratio of an individual pixel (the
ratio of a pixel's width to its height). The value
returned is equal to the actual aspect ratio
multiplied by the constant value
<constant>EGL_DISPLAY_SCALING</constant>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><constant>EGL_RENDER_BUFFER</constant></term>
<listitem><para>
Returns the buffer which client API rendering is
requested to use. For a window surface, this is the
same attribute value specified when the surface was
created. For a pbuffer surface, it is always
<constant>EGL_BACK_BUFFER</constant>. For a pixmap
surface, it is always
<constant>EGL_SINGLE_BUFFER</constant>. To determine
the actual buffer being rendered to by a context,
call
<citerefentry><refentrytitle>eglQueryContext</refentrytitle></citerefentry>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><constant>EGL_SWAP_BEHAVIOR</constant></term>
<listitem><para>
Returns the effect on the color buffer when posting
a surface with
<citerefentry><refentrytitle>eglSwapBuffers</refentrytitle></citerefentry>.
Swap behavior may be either
<constant>EGL_BUFFER_PRESERVED</constant> or
<constant>EGL_BUFFER_DESTROYED</constant>, as
described for
<citerefentry><refentrytitle>eglSurfaceAttrib</refentrytitle></citerefentry>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><constant>EGL_TEXTURE_FORMAT</constant></term>
<listitem><para>
Returns format of texture. Possible values are
<constant>EGL_NO_TEXTURE</constant>,
<constant>EGL_TEXTURE_RGB</constant>, and
<constant>EGL_TEXTURE_RGBA</constant>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><constant>EGL_TEXTURE_TARGET</constant></term>
<listitem><para>
Returns type of texture. Possible values are
<constant>EGL_NO_TEXTURE</constant>, or
<constant>EGL_TEXTURE_2D</constant>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><constant>EGL_VERTICAL_RESOLUTION</constant></term>
<listitem><para>
Returns the vertical dot pitch of the display on
which a window surface is visible. The value
returned is equal to the actual dot pitch, in
pixels/meter, multiplied by the constant value
<constant>EGL_DISPLAY_SCALING</constant>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><constant>EGL_VG_ALPHA_FORMAT</constant></term>
<listitem><para>
Returns the interpretation of alpha values used by
OpenVG when rendering to the surface, either
<constant>EGL_VG_ALPHA_FORMAT_NONPRE</constant> or
<constant>EGL_VG_ALPHA_FORMAT_PRE</constant>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><constant>EGL_VG_COLORSPACE</constant></term>
<listitem><para>
Returns the color space used by OpenVG when rendering to
the surface, either
<constant>EGL_VG_COLORSPACE_sRGB</constant> or
<constant>EGL_VG_COLORSPACE_LINEAR</constant>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><constant>EGL_WIDTH</constant></term>
<listitem><para>
Returns the width of the surface in pixels.
</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 xml:id="notes"><title>Notes</title>
<para>
Attribute <constant>EGL_GL_COLORSPACE</constant> is supported
only if the EGL version is 1.5 or greater.
</para>
<para>
Attribute <constant>EGL_MULTISAMPLE_RESOLVE</constant> is
supported only if the EGL version is 1.4 or greater.
</para>
<para>
Attributes <constant>EGL_DISPLAY_SCALING</constant>.
<constant>EGL_HORIZONTAL_RESOLUTION</constant>,
<constant>EGL_PIXEL_ASPECT_RATIO</constant>,
<constant>EGL_RENDER_BUFFER</constant>,
<constant>EGL_SWAP_BEHAVIOR</constant>, and
<constant>EGL_VERTICAL_RESOLUTION</constant> are supported
only if the EGL version is 1.2 or greater.
</para>
<para>
Querying attributes <constant>EGL_TEXTURE_FORMAT</constant>,
<constant>EGL_TEXTURE_TARGET</constant>,
<constant>EGL_MIPMAP_TEXTURE</constant>, or
<constant>EGL_MIPMAP_LEVEL</constant> for a non-pbuffer
surface is not an error, but <parameter>value</parameter> is
not modified.
</para>
<para>
<constant>EGL_DISPLAY_SCALING</constant> is the constant
value 10000. Floating-point values such as resolution and
pixel aspect ratio are scaled by this value before being
returned as integers so that sufficient precision to be
meaningful will be retained in the returned value.
</para>
<para>
For an offscreen (pbuffer or pixmap) surface, or a surface
whose pixel dot pitch or aspect ratio are unknown, querying
<constant>EGL_HORIZONTAL_RESOLUTION</constant>,
<constant>EGL_PIXEL_ASPECT_RATIO</constant>, or
<constant>EGL_VERTICAL_RESOLUTION</constant> will return the
constant value <constant>EGL_UNKNOWN</constant> (-1).
</para>
</refsect1>
<refsect1 xml:id="errors"><title>Errors</title>
<para>
<constant>EGL_FALSE</constant> is returned on failure,
<constant>EGL_TRUE</constant> otherwise.
<parameter>value</parameter> is 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_NOT_INITIALIZED</constant> is generated if
<parameter>display</parameter> has not been initialized.
</para>
<para>
<constant>EGL_BAD_SURFACE</constant> is generated if
<parameter>surface</parameter> is not an EGL surface.
</para>
<para>
<constant>EGL_BAD_ATTRIBUTE</constant> is generated if
<parameter>attribute</parameter> is not a valid surface attribute.
</para>
</refsect1>
<refsect1 xml:id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>eglSurfaceAttrib</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>eglSwapBuffers</refentrytitle></citerefentry>
</para>
</refsect1>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
</refentry>