mirror of
https://github.com/Ryujinx/Opentk.git
synced 2024-12-27 01:55:49 +00:00
168 lines
8.1 KiB
XML
168 lines
8.1 KiB
XML
|
<?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 id="glXMakeCurrent">
|
||
|
<refmeta>
|
||
|
<refmetainfo>
|
||
|
<copyright>
|
||
|
<year>1991-2006</year>
|
||
|
<holder>Silicon Graphics, Inc.</holder>
|
||
|
</copyright>
|
||
|
</refmetainfo>
|
||
|
<refentrytitle>glXMakeCurrent</refentrytitle>
|
||
|
<manvolnum>3G</manvolnum>
|
||
|
</refmeta>
|
||
|
<refnamediv>
|
||
|
<refname>glXMakeCurrent</refname>
|
||
|
<refpurpose>attach a GLX context to a window or a GLX pixmap</refpurpose>
|
||
|
</refnamediv>
|
||
|
<refsynopsisdiv><title>C Specification</title>
|
||
|
<funcsynopsis>
|
||
|
<funcprototype>
|
||
|
<funcdef>Bool <function>glXMakeCurrent</function></funcdef>
|
||
|
<paramdef>Display * <parameter>dpy</parameter></paramdef>
|
||
|
<paramdef>GLXDrawable <parameter>drawable</parameter></paramdef>
|
||
|
<paramdef>GLXContext <parameter>ctx</parameter></paramdef>
|
||
|
</funcprototype>
|
||
|
</funcsynopsis>
|
||
|
</refsynopsisdiv>
|
||
|
<!-- eqn: ignoring delim $$ -->
|
||
|
<refsect1 id="parameters"><title>Parameters</title>
|
||
|
<variablelist>
|
||
|
<varlistentry>
|
||
|
<term><parameter>dpy</parameter></term>
|
||
|
<listitem>
|
||
|
<para>
|
||
|
Specifies the connection to the X server.
|
||
|
</para>
|
||
|
</listitem>
|
||
|
</varlistentry>
|
||
|
<varlistentry>
|
||
|
<term><parameter>drawable</parameter></term>
|
||
|
<listitem>
|
||
|
<para>
|
||
|
Specifies a GLX drawable.
|
||
|
Must be either an X window ID or a GLX pixmap ID.
|
||
|
</para>
|
||
|
</listitem>
|
||
|
</varlistentry>
|
||
|
<varlistentry>
|
||
|
<term><parameter>ctx</parameter></term>
|
||
|
<listitem>
|
||
|
<para>
|
||
|
Specifies a GLX rendering context that is to be attached to <parameter>drawable</parameter>.
|
||
|
</para>
|
||
|
</listitem>
|
||
|
</varlistentry>
|
||
|
</variablelist>
|
||
|
</refsect1>
|
||
|
<refsect1 id="description"><title>Description</title>
|
||
|
<para>
|
||
|
<function>glXMakeCurrent</function> does two things:
|
||
|
It makes <parameter>ctx</parameter> the current GLX rendering context of the calling thread,
|
||
|
replacing the previously current context if there was one,
|
||
|
and it attaches <parameter>ctx</parameter> to a GLX drawable,
|
||
|
either a window or a GLX pixmap.
|
||
|
As a result of these two actions,
|
||
|
subsequent GL rendering calls
|
||
|
use rendering context <parameter>ctx</parameter> to modify GLX drawable <parameter>drawable</parameter> (for
|
||
|
reading and writing).
|
||
|
Because <function>glXMakeCurrent</function> always replaces the current rendering context with <parameter>ctx</parameter>,
|
||
|
there can be only one current context per thread.
|
||
|
</para>
|
||
|
<para>
|
||
|
Pending commands to the
|
||
|
previous context, if any, are flushed before it is released.
|
||
|
</para>
|
||
|
<para>
|
||
|
The first time <parameter>ctx</parameter> is made current to any thread,
|
||
|
its viewport is set to the full size of <parameter>drawable</parameter>.
|
||
|
Subsequent calls by any thread to <function>glXMakeCurrent</function> with <parameter>ctx</parameter>
|
||
|
have no effect on its viewport.
|
||
|
</para>
|
||
|
<para>
|
||
|
To release the current context without assigning a new one,
|
||
|
call <function>glXMakeCurrent</function> with <parameter>drawable</parameter> set to <constant>None</constant> and <parameter>ctx</parameter>
|
||
|
set to <constant>NULL</constant>.
|
||
|
</para>
|
||
|
<para>
|
||
|
<function>glXMakeCurrent</function> returns <constant>True</constant> if it is successful,
|
||
|
<constant>False</constant> otherwise.
|
||
|
If <constant>False</constant> is returned, the previously current rendering context
|
||
|
and drawable (if any) remain unchanged.
|
||
|
</para>
|
||
|
</refsect1>
|
||
|
<refsect1 id="notes"><title>Notes</title>
|
||
|
<para>
|
||
|
A <emphasis>process</emphasis> is a single-execution environment,
|
||
|
implemented in a single address space,
|
||
|
consisting of one or more threads.
|
||
|
</para>
|
||
|
<para>
|
||
|
A <emphasis>thread</emphasis> 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 <emphasis>thread</emphasis> that is the only member of its subprocess group
|
||
|
is equivalent to a <emphasis>process</emphasis>.
|
||
|
</para>
|
||
|
</refsect1>
|
||
|
<refsect1 id="errors"><title>Errors</title>
|
||
|
<para>
|
||
|
<constant>BadMatch</constant> is generated if <parameter>drawable</parameter> was not
|
||
|
created with the same X screen and visual as <parameter>ctx</parameter>.
|
||
|
It is also generated if <parameter>drawable</parameter> is <constant>None</constant> and <parameter>ctx</parameter> is not
|
||
|
<constant>NULL</constant>.
|
||
|
</para>
|
||
|
<para>
|
||
|
<constant>BadAccess</constant> is generated if <parameter>ctx</parameter> was current to another thread
|
||
|
at the time <function>glXMakeCurrent</function> was called.
|
||
|
</para>
|
||
|
<para>
|
||
|
<constant>GLXBadDrawable</constant> is generated if <parameter>drawable</parameter> is not a valid GLX drawable.
|
||
|
</para>
|
||
|
<para>
|
||
|
<constant>GLXBadContext</constant> is generated if <parameter>ctx</parameter> is not a valid GLX context.
|
||
|
</para>
|
||
|
<para>
|
||
|
<constant>GLXBadContextState</constant> is generated if <function>glXMakeCurrent</function> is executed between
|
||
|
the execution of <citerefentry><refentrytitle>glBegin</refentrytitle></citerefentry> and the corresponding execution of <citerefentry><refentrytitle>glEnd</refentrytitle></citerefentry>.
|
||
|
</para>
|
||
|
<para>
|
||
|
<constant>GLXBadContextState</constant> is also generated if the rendering context current
|
||
|
to the calling thread has GL renderer state <constant>GLX_FEEDBACK</constant> or
|
||
|
<constant>GLX_SELECT</constant>.
|
||
|
</para>
|
||
|
<para>
|
||
|
<constant>GLXBadCurrentWindow</constant> is generated if there are pending GL
|
||
|
commands for the previous context and the current drawable is
|
||
|
a window that is no longer valid.
|
||
|
</para>
|
||
|
<para>
|
||
|
<constant>BadAlloc</constant> may be generated if the server has delayed allocation
|
||
|
of ancillary buffers until <function>glXMakeCurrent</function> is called, only to find that it has
|
||
|
insufficient resources to complete the allocation.
|
||
|
</para>
|
||
|
</refsect1>
|
||
|
<refsect1 id="seealso"><title>See Also</title>
|
||
|
<para>
|
||
|
<citerefentry><refentrytitle>glXCreateContext</refentrytitle></citerefentry>,
|
||
|
<citerefentry><refentrytitle>glXCreateGLXPixmap</refentrytitle></citerefentry>
|
||
|
<citerefentry><refentrytitle>glXGetCurrentContext</refentrytitle></citerefentry>,
|
||
|
<citerefentry><refentrytitle>glXGetCurrentDisplay</refentrytitle></citerefentry>,
|
||
|
<citerefentry><refentrytitle>glXGetCurrentDrawable</refentrytitle></citerefentry>,
|
||
|
<citerefentry><refentrytitle>glXGetCurrentReadDrawable</refentrytitle></citerefentry>,
|
||
|
<citerefentry><refentrytitle>glXMakeContextCurrent</refentrytitle></citerefentry>
|
||
|
</para>
|
||
|
</refsect1>
|
||
|
<refsect1 id="Copyright"><title>Copyright</title>
|
||
|
<para>
|
||
|
Copyright <trademark class="copyright"></trademark> 1991-2006
|
||
|
Silicon Graphics, Inc. This document is licensed under the SGI
|
||
|
Free Software B License. For details, see
|
||
|
<ulink url="http://oss.sgi.com/projects/FreeB/">http://oss.sgi.com/projects/FreeB/</ulink>.
|
||
|
</para>
|
||
|
</refsect1>
|
||
|
</refentry>
|