| <?xml version="1.0" encoding="UTF-8"?> |
| <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN" |
| "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd"> |
| <refentry xml:base="" id="eglCreateContext"> |
| <refentryinfo> |
| <copyright> |
| <year>2003-2014</year> |
| <holder>The Khronos Group Inc.</holder> |
| </copyright> |
| </refentryinfo> |
| <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 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 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_CLIENT_VERSION</constant></term> |
| <listitem><para> |
| Must be followed by an integer that determines which |
| version of an OpenGL ES context to create. A value |
| of 1 specifies creation of an OpenGL ES 1.x context. |
| An attribute value of 2 specifies creation of an |
| OpenGL ES 2.x context. The default value is 1. This |
| attribute can only be specified when creating a |
| OpenGL ES context (e.g. when the current rendering |
| API is <constant>EGL_OPENGL_ES_API</constant>). |
| </para></listitem> |
| </varlistentry> |
| </variablelist> |
| </refsect1> |
| <refsect1 id="notes"><title>Notes</title> |
| <para> |
| The current rendering API is only respected if the EGL |
| version is 1.2 or greater. Otherwise, an OpenGL ES context |
| will always be created. |
| </para> |
| <para> |
| The <constant>EGL_CONTEXT_CLIENT_VERSION</constant> |
| attribute is only supported if the EGL version is 1.3 or |
| greater. |
| </para> |
| <para> |
| A <firstterm>process</firstterm> is a single execution environment, |
| implemented in a single address space, consisting of one or more threads. |
| </para> |
| <para> |
| A <firstterm>thread</firstterm> is one of a set of subprocesses that |
| share a single address space, but maintain separate program counters, |
| stack spaces, and other related global data. |
| A thread is the only member of its subprocess group is equivalent to a |
| process. |
| </para> |
| </refsect1> |
| <refsect1 id="errors"><title>Errors</title> |
| <para> |
| <constant>EGL_NO_CONTEXT</constant> is returned if creation of |
| the context fails. |
| </para> |
| <para> |
| <constant>EGL_BAD_MATCH</constant> is generated if the |
| current rendering API is <constant>EGL_NONE</constant> (this |
| can only arise in an EGL implementation which does not |
| support OpenGL ES, prior to the first call to |
| <function>eglBindAPI</function>). |
| </para> |
| <para> |
| <constant>EGL_BAD_MATCH</constant> is generated if the |
| server context state for |
| <parameter>share_context</parameter> exists in an address |
| space which cannot be shared with the newly created context, |
| if <parameter>share_context</parameter> was created on a |
| different display than the one referenced by |
| <parameter>config</parameter>, or if the contexts are |
| otherwise incompatible. |
| </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 frame buffer |
| configuration, or does not support the current rendering |
| API. This includes requesting creation of an OpenGL ES 1.x |
| context when the <constant>EGL_RENDERABLE_TYPE</constant> |
| attribute of <parameter>config</parameter> does not contain |
| <constant>EGL_OPENGL_ES_BIT</constant>, or creation of an |
| OpenGL ES 2.x context when the attribute does not contain |
| <constant>EGL_OPENGL_ES2_BIT</constant>. |
| </para> |
| <para> |
| <constant>EGL_BAD_CONTEXT</constant> is generated if |
| <parameter>share_context</parameter> is not an EGL rendering |
| context of the same client API type as the newly created |
| context and is not <constant>EGL_NO_CONTEXT</constant>. |
| </para> |
| <para> |
| <constant>EGL_BAD_ATTRIBUTE</constant> is generated if |
| <parameter>attrib_list</parameter> contains an invalid |
| context attribute or if an attribute is not recognized or |
| out of range. Note that attribute |
| <constant>EGL_CONTEXT_CLIENT_VERSION</constant> is |
| only valid when the current rendering API is |
| <constant>EGL_OPENGL_ES_API</constant>. |
| </para> |
| <para> |
| <constant>EGL_BAD_ALLOC</constant> is generated if there are not |
| enough resources to allocate the new context. |
| </para> |
| </refsect1> |
| <refsect1 id="seealso"><title>See Also</title> |
| <para> |
| <citerefentry><refentrytitle>eglDestroyContext</refentrytitle></citerefentry>, |
| <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>, |
| <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>, |
| <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry> |
| </para> |
| </refsect1> |
| <refsect3 id="Copyright"><title></title> |
| <!-- Content included from copyright.inc.xsl --> |
| <imageobject> |
| <imagedata fileref="KhronosLogo.jpg" format="jpg" /> |
| </imageobject> |
| <para /> |
| </refsect3> |
| </refentry> |