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>
213 lines
11 KiB
XML
Executable File
213 lines
11 KiB
XML
Executable File
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglCreateContext">
|
|
<info>
|
|
<copyright>
|
|
<year>2003-2018</year>
|
|
<holder>The Khronos Group Inc.</holder>
|
|
</copyright>
|
|
</info>
|
|
<refmeta>
|
|
<refentrytitle>eglCreateContext</refentrytitle>
|
|
<manvolnum>3G</manvolnum>
|
|
</refmeta>
|
|
<refnamediv>
|
|
<refname>eglCreateContext</refname>
|
|
<refpurpose>
|
|
create a new <acronym>EGL</acronym> rendering context
|
|
</refpurpose>
|
|
</refnamediv>
|
|
<refsynopsisdiv>
|
|
<title>C Specification</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>EGLContext <function>eglCreateContext</function></funcdef>
|
|
<paramdef>EGLDisplay <parameter>display</parameter></paramdef>
|
|
<paramdef>EGLConfig <parameter>config</parameter></paramdef>
|
|
<paramdef>EGLContext <parameter>share_context</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
|
|
<acronym>EGL</acronym>
|
|
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 rendering context.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>share_context</parameter></term>
|
|
<listitem><para>
|
|
Specifies another
|
|
<acronym>EGL</acronym>
|
|
rendering context with which to share data, as
|
|
defined by the client API corresponding to the
|
|
contexts. Data is also shared with all other
|
|
contexts with which
|
|
<parameter>share_context</parameter> shares data.
|
|
<constant>EGL_NO_CONTEXT</constant> indicates that
|
|
no sharing is to take place.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>attrib_list</parameter></term>
|
|
<listitem><para>
|
|
Specifies attributes and attribute values for the
|
|
context being created. Only the attribute
|
|
<constant>EGL_CONTEXT_CLIENT_VERSION</constant> may
|
|
be specified.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</refsect1>
|
|
<refsect1 xml:id="description"><title>Description</title>
|
|
<para>
|
|
<function>eglCreateContext</function> creates an EGL
|
|
rendering context for the current rendering API (as set with
|
|
<function>eglBindAPI</function>) and returns a handle to the
|
|
context. The context can then be used to render into an EGL
|
|
drawing surface. If <function>eglCreateContext</function>
|
|
fails to create a rendering context,
|
|
<constant>EGL_NO_CONTEXT</constant> is returned.
|
|
</para>
|
|
<para>
|
|
If <parameter>share_context</parameter> is not
|
|
<constant>EGL_NO_CONTEXT</constant>, then all shareable data
|
|
in the context (as defined by the client API specification
|
|
for the current rendering API) are shared by context
|
|
<parameter>share_context</parameter>, all other contexts
|
|
<parameter>share_context</parameter> already shares with,
|
|
and the newly created context. An arbitrary number of
|
|
rendering contexts can share data. However, all rendering
|
|
contexts that share data must themselves exist in the same
|
|
address space. Two rendering contexts share an address space
|
|
if both are owned by a single process.
|
|
</para>
|
|
<para>
|
|
<parameter>attrib_list</parameter> specifies a list of
|
|
attributes for the context. The list has the same structure
|
|
as described for <function>eglChooseConfig</function>. The
|
|
attributes and attribute values which may be specified are
|
|
as follows:
|
|
</para>
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><constant>EGL_CONTEXT_MAJOR_VERSION</constant></term>
|
|
<listitem><para>
|
|
Must be followed by an integer specifying the requested
|
|
major version of an OpenGL or OpenGL ES context. The
|
|
default value is 1. This attribute is an alias of the
|
|
older <constant>EGL_CONTEXT_CLIENT_VERSION</constant>,
|
|
and the tokens may be used interchangeably.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><constant>EGL_CONTEXT_MINOR_VERSION</constant></term>
|
|
<listitem><para>
|
|
Must be followed by an integer specifying the requested
|
|
minor version of an OpenGL or OpenGL ES context. The
|
|
default value is 0.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><constant>EGL_CONTEXT_OPENGL_PROFILE_MASK</constant></term>
|
|
<listitem><para>
|
|
Must be followed by an integer bitmask specifying the
|
|
<firstterm>profile</firstterm> of an OpenGL context.
|
|
Bits which may be set include
|
|
<constant>EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT</constant>
|
|
for a core profile and
|
|
<constant>EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT</constant>
|
|
for a compatibility profile. The default value is
|
|
<constant>EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT</constant>.
|
|
All OpenGL 3.2 and later implementations are required to
|
|
implement the core profile, but implementation of the
|
|
compatibility profile is optional.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><constant>EGL_CONTEXT_OPENGL_DEBUG</constant></term>
|
|
<listitem><para>
|
|
Must be followed by <constant>EGL_TRUE</constant>,
|
|
specifying that an OpenGL or OpenGL ES <firstterm>debug
|
|
context</firstterm> should be created, or
|
|
<constant>EGL_FALSE</constant>, if a non-debug context
|
|
should be created. The default value is
|
|
<constant>EGL_FALSE</constant>.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><constant>EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE</constant></term>
|
|
<listitem><para>
|
|
Must be followed by <constant>EGL_TRUE</constant>,
|
|
specifying that a
|
|
<firstterm>forward-compatible</firstterm> OpenGL context
|
|
should be created, or <constant>EGL_FALSE</constant>, if
|
|
a non-forward-compatible context should be created. The
|
|
default value is <constant>EGL_FALSE</constant>.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><constant>EGL_CONTEXT_OPENGL_ROBUST_ACCESS</constant></term>
|
|
<listitem><para>
|
|
Must be followed by <constant>EGL_TRUE</constant>,
|
|
specifying that an OpenGL or OpenGL ES context
|
|
supporting <firstterm>robust buffer access</firstterm>
|
|
should be created, or <constant>EGL_FALSE</constant>, if
|
|
a non-robust context should be created. The default
|
|
value is <constant>EGL_FALSE</constant>.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><constant>EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY</constant></term>
|
|
<listitem><para>
|
|
Must be followed by
|
|
<constant>EGL_LOSE_CONTEXT_ON_RESET</constant>,
|
|
specifying that an OpenGL or OpenGL ES context with
|
|
reset notification behavior
|
|
<constant>GL_LOSE_CONTEXT_ON_RESET_ARB</constant> should
|
|
be created, or
|
|
<constant>EGL_NO_RESET_NOTIFICATION</constant>,
|
|
specifying that an OpenGL or OpenGL ES context with
|
|
reset notification behavior
|
|
<constant>GL_NO_RESET_NOTIFICATION_ARB</constant> should
|
|
be created, as described by the
|
|
<constant>GL_ARB_robustness</constant> extension.
|
|
</para><para>
|
|
If the
|
|
<constant>EGL_CONTEXT_OPENGL_ROBUST_ACCESS</constant>
|
|
attribute is not set to <constant>EGL_TRUE</constant>,
|
|
context creation will not fail, but the resulting
|
|
context may not support robust buffer access, and
|
|
therefore may not support the requested reset
|
|
notification strategy The default value for
|
|
<constant>EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY</constant>
|
|
is <constant>EGL_NO_RESET_NOTIFICATION</constant> .
|
|
</para></listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
<para>
|
|
There are many possible interactions between requested OpenGL
|
|
and OpenGL ES context creation attributes, depending on the API
|
|
versions and extensions supported by the implementation. These
|
|
interactions are described in detail in the EGL 1.5
|
|
Specification, but are not listed here for compactness. The
|
|
requested attributes may not be able to be satisfied, but
|
|
context creation may still succeed. Applications should ensure
|
|
that the OpenGL or OpenGL ES contexts supports needed features
|
|
before using them, by determining the actual context version,
|
|
supported extensions, and supported context flags using runtime
|
|
queries.
|
|
</para>
|
|
</refsect1>
|
|
</refentry>
|