<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>
