mirror of
https://github.com/openharmony/third_party_egl.git
synced 2026-07-01 22:54:28 -04:00
880c4dea9d
Signed-off-by: lizheng <lizheng2@huawei.com>
271 lines
13 KiB
XML
271 lines
13 KiB
XML
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglCreatePlatformPixmapSurface">
|
|
<info>
|
|
<copyright>
|
|
<year>2003-2018</year>
|
|
<holder>The Khronos Group Inc.</holder>
|
|
</copyright>
|
|
</info>
|
|
<refmeta>
|
|
<refentrytitle>eglCreatePlatformPixmapSurface</refentrytitle>
|
|
<manvolnum>3G</manvolnum>
|
|
</refmeta>
|
|
<refnamediv>
|
|
<refname>eglCreatePlatformPixmapSurface</refname>
|
|
<refpurpose>
|
|
create a new <acronym>EGL</acronym> offscreen surface
|
|
</refpurpose>
|
|
</refnamediv>
|
|
<refsynopsisdiv>
|
|
<title>C Specification</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>EGLSurface <function>eglCreatePlatformPixmapSurface</function></funcdef>
|
|
<paramdef>EGLDisplay <parameter>display</parameter></paramdef>
|
|
<paramdef>EGLConfig <parameter>config</parameter></paramdef>
|
|
<paramdef>void * <parameter>native_pixmap</parameter></paramdef>
|
|
<paramdef>EGLint const * <parameter>attrib_list</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>config</parameter></term>
|
|
<listitem><para>
|
|
Specifies the EGL frame buffer configuration that defines the
|
|
frame buffer resource available to the surface.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>native_pixmap</parameter></term>
|
|
<listitem><para>Specifies the native pixmap.</para></listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>attrib_list</parameter></term>
|
|
<listitem><para>
|
|
Specifies pixmap surface attributes.
|
|
May be <constant>NULL</constant> or empty
|
|
(first attribute is <constant>EGL_NONE</constant>).
|
|
</para></listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</refsect1>
|
|
<refsect1 xml:id="description"><title>Description</title>
|
|
<para>
|
|
<function>eglCreatePlatformPixmapSurface</function> creates an
|
|
off-screen <acronym>EGL</acronym> pixmap surface and returns
|
|
a handle to it.
|
|
</para>
|
|
<para>
|
|
If <function>eglCreatePlatformPixmapSurface</function> fails to
|
|
create a pixmap surface, <constant>EGL_NO_SURFACE</constant> is
|
|
returned.
|
|
</para>
|
|
<para>
|
|
<parameter>native_pixmap</parameter> must belong to the same
|
|
platform as <parameter>display</parameter>, and EGL considers
|
|
the returned <type>EGLSurface</type> as belonging to that same
|
|
platform. The EGL extension that defines the platform to which
|
|
<parameter>display</parameter> belongs also defines the
|
|
requirements for the <parameter>native_pixmap</parameter>
|
|
parameter.
|
|
</para>
|
|
<para>
|
|
Surface attributes are specified as a list of
|
|
attribute-value pairs, terminated with
|
|
<constant>EGL_NONE</constant>. Accepted attributes
|
|
are:
|
|
</para>
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><constant>EGL_GL_COLORSPACE</constant></term>
|
|
<listitem>
|
|
<para>
|
|
Specifies the color space used by OpenGL and OpenGL ES
|
|
when rendering to the surface. If its value is
|
|
<constant>EGL_GL_COLORSPACE_SRGB</constant>, then a
|
|
non-linear, perceptually uniform color space is assumed,
|
|
with a corresponding
|
|
<constant>GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING</constant>
|
|
value of <constant>GL_SRGB</constant>. If its value is
|
|
<constant>EGL_GL_COLORSPACE_LINEAR</constant>, then a
|
|
linear color space is assumed, with a corresponding
|
|
<constant>GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING</constant>
|
|
value of <constant>GL_LINEAR</constant>. The default
|
|
value of <constant>EGL_GL_COLORSPACE</constant> is
|
|
<constant>EGL_GL_COLORSPACE_SRGB</constant>.
|
|
</para>
|
|
<para>
|
|
Note that the <constant>EGL_GL_COLORSPACE</constant>
|
|
attribute is used only by OpenGL and OpenGL ES contexts
|
|
supporting sRGB framebuffers. EGL itself does not
|
|
distinguish multiple colorspace models. Refer to the
|
|
``sRGB Conversion'' sections of the OpenGL 4.6 and
|
|
OpenGL ES 3.2 Specifications for more information.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><constant>EGL_VG_ALPHA_FORMAT</constant></term>
|
|
<listitem>
|
|
<para>
|
|
Specifies how alpha values are interpreted by OpenVG
|
|
when rendering to the surface. If its value is
|
|
<constant>EGL_VG_ALPHA_FORMAT_NONPRE</constant>,
|
|
then alpha values are not premultipled. If its value
|
|
is <constant>EGL_VG_ALPHA_FORMAT_PRE</constant>,
|
|
then alpha values are premultiplied. The default
|
|
value of <constant>EGL_VG_ALPHA_FORMAT</constant> is
|
|
<constant>EGL_VG_ALPHA_FORMAT_NONPRE</constant>.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><constant>EGL_VG_COLORSPACE</constant></term>
|
|
<listitem>
|
|
<para>
|
|
Specifies the color space used by OpenVG when
|
|
rendering to the surface. If its value is
|
|
<constant>EGL_VG_COLORSPACE_sRGB</constant>, then a
|
|
non-linear, perceptually uniform color space is
|
|
assumed, with a corresponding
|
|
<type>VGImageFormat</type> of form
|
|
<constant>VG_s*</constant>. If its value is
|
|
<constant>EGL_VG_COLORSPACE_LINEAR</constant>, then
|
|
a linear color space is assumed, with a
|
|
corresponding <type>VGImageFormat</type> of form
|
|
<constant>VG_l*</constant>. The default value of
|
|
<constant>EGL_VG_COLORSPACE</constant> is
|
|
<constant>EGL_VG_COLORSPACE_sRGB</constant>.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
<para>
|
|
Any EGL rendering context that was created with respect to
|
|
<parameter>config</parameter> can be used to render into the
|
|
surface. Use
|
|
<citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>
|
|
to attach an EGL rendering context to the surface.
|
|
</para>
|
|
<para>
|
|
Use
|
|
<citerefentry><refentrytitle>eglQuerySurface</refentrytitle></citerefentry>
|
|
to retrieve the ID of <parameter>config</parameter>.
|
|
</para>
|
|
<para>
|
|
Use <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>
|
|
to destroy the surface.
|
|
</para>
|
|
</refsect1>
|
|
<refsect1 xml:id="notes"><title>Notes</title>
|
|
<para>
|
|
The <constant>EGL_MATCH_NATIVE_PIXMAP</constant> attribute
|
|
of
|
|
<citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>
|
|
can be used to select a frame buffer configuration matching
|
|
a specified native pixmap.
|
|
</para>
|
|
<para>
|
|
Attribute <constant>EGL_GL_COLORSPACE</constant> is supported
|
|
only if the EGL version is 1.5 or greater.
|
|
</para>
|
|
<para>
|
|
Attributes
|
|
<constant>EGL_VG_ALPHA_FORMAT</constant> and
|
|
<constant>EGL_VG_COLORSPACE</constant>, and the
|
|
corresponding attribute values, are supported only if the
|
|
EGL version is 1.2 or greater.
|
|
</para>
|
|
<!-- Might want to mention aliasing of EGL_VG_* -> EGL_* that occurred in EGL 1.3 -->
|
|
<para>
|
|
The <constant>EGL_VG_ALPHA_FORMAT</constant> and
|
|
<constant>EGL_VG_COLORSPACE</constant> attributes are used only
|
|
by OpenVG and EGL itself. Refer to section 11.2 of the OpenVG
|
|
1.0 specification for more information. The platform's use and
|
|
interpretation of alpha values is outside the scope of EGL.
|
|
However, the preferred behavior is for the window system to
|
|
ignore the value of <constant>EGL_VG_ALPHA_FORMAT</constant>.
|
|
</para>
|
|
</refsect1>
|
|
<refsect1 xml:id="errors"><title>Errors</title>
|
|
<para>
|
|
If <parameter>display</parameter> and
|
|
<parameter>native_pixmap</parameter> do not belong to the same
|
|
platform, then undefined behavior occurs.
|
|
</para>
|
|
<para>
|
|
<constant>EGL_NO_SURFACE</constant> is returned if creation of
|
|
the surface fails.
|
|
</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_CONFIG</constant> is generated if
|
|
<parameter>config</parameter> is not an EGL config.
|
|
</para>
|
|
<para>
|
|
<constant>EGL_BAD_NATIVE_PIXMAP</constant> may be generated if
|
|
<parameter>native_pixmap</parameter> is not a valid native pixmap.
|
|
</para>
|
|
<para>
|
|
<constant>EGL_BAD_ATTRIBUTE</constant> is generated if
|
|
<parameter>attrib_list</parameter> contains an invalid pixmap attribute
|
|
or if an attribute value is not recognized or out of range.
|
|
</para>
|
|
<para>
|
|
<constant>EGL_BAD_ALLOC</constant> is generated if there is
|
|
already an <type>EGLSurface</type> associated with
|
|
<parameter>native_pixmap</parameter> (as a result of a previous
|
|
<function>eglCreatePlatformPixmapSurface</function> call).
|
|
</para>
|
|
<para>
|
|
<constant>EGL_BAD_ALLOC</constant> is generated if the
|
|
implementation cannot allocate resources for the new EGL window.
|
|
</para>
|
|
<para>
|
|
<constant>EGL_BAD_MATCH</constant> is generated if the attributes of
|
|
<parameter>native_pixmap</parameter> do not correspond to
|
|
<parameter>config</parameter> or if
|
|
<parameter>config</parameter> does not support rendering to pixmaps
|
|
(the <constant>EGL_SURFACE_TYPE</constant> attribute does not contain
|
|
<constant>EGL_PIXMAP_BIT</constant>).
|
|
</para>
|
|
<para>
|
|
<constant>EGL_BAD_MATCH</constant> is generated if
|
|
<parameter>config</parameter> does not support the specified
|
|
OpenVG alpha format attribute (the value of
|
|
<constant>EGL_VG_ALPHA_FORMAT</constant> is
|
|
<constant>EGL_VG_ALPHA_FORMAT_PRE</constant> and the
|
|
<constant>EGL_VG_ALPHA_FORMAT_PRE_BIT</constant> is not set
|
|
in the <constant>EGL_SURFACE_TYPE</constant> attribute of
|
|
<parameter>config</parameter>) or colorspace attribute (the
|
|
value of <constant>EGL_VG_COLORSPACE</constant> is
|
|
<constant>EGL_VG_COLORSPACE_LINEAR</constant> and the
|
|
<constant>EGL_VG_COLORSPACE_LINEAR_IT</constant> is not set
|
|
in the <constant>EGL_SURFACE_TYPE</constant> attribute of
|
|
<parameter>config</parameter>).
|
|
</para>
|
|
</refsect1>
|
|
<refsect1 xml:id="seealso"><title>See Also</title>
|
|
<para>
|
|
<citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>,
|
|
<citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>,
|
|
<citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>,
|
|
<citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>,
|
|
<citerefentry><refentrytitle>eglQuerySurface</refentrytitle></citerefentry>
|
|
</para>
|
|
</refsect1>
|
|
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
|
|
</refentry>
|