mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 19:34:08 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			224 lines
		
	
	
	
		
			6 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
			
		
		
	
	
			224 lines
		
	
	
	
		
			6 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
\section{\module{gl} ---
 | 
						|
         \emph{Graphics Library} interface}
 | 
						|
 | 
						|
\declaremodule{builtin}{gl}
 | 
						|
  \platform{IRIX}
 | 
						|
\modulesynopsis{Functions from the Silicon Graphics \emph{Graphics Library}.}
 | 
						|
 | 
						|
 | 
						|
This module provides access to the Silicon Graphics
 | 
						|
\emph{Graphics Library}.
 | 
						|
It is available only on Silicon Graphics machines.
 | 
						|
 | 
						|
\warning{Some illegal calls to the GL library cause the Python
 | 
						|
interpreter to dump core.
 | 
						|
In particular, the use of most GL calls is unsafe before the first
 | 
						|
window is opened.}
 | 
						|
 | 
						|
The module is too large to document here in its entirety, but the
 | 
						|
following should help you to get started.
 | 
						|
The parameter conventions for the C functions are translated to Python as
 | 
						|
follows:
 | 
						|
 | 
						|
\begin{itemize}
 | 
						|
\item
 | 
						|
All (short, long, unsigned) int values are represented by Python
 | 
						|
integers.
 | 
						|
\item
 | 
						|
All float and double values are represented by Python floating point
 | 
						|
numbers.
 | 
						|
In most cases, Python integers are also allowed.
 | 
						|
\item
 | 
						|
All arrays are represented by one-dimensional Python lists.
 | 
						|
In most cases, tuples are also allowed.
 | 
						|
\item
 | 
						|
\begin{sloppypar}
 | 
						|
All string and character arguments are represented by Python strings,
 | 
						|
for instance,
 | 
						|
\code{winopen('Hi There!')}
 | 
						|
and
 | 
						|
\code{rotate(900, 'z')}.
 | 
						|
\end{sloppypar}
 | 
						|
\item
 | 
						|
All (short, long, unsigned) integer arguments or return values that are
 | 
						|
only used to specify the length of an array argument are omitted.
 | 
						|
For example, the C call
 | 
						|
 | 
						|
\begin{verbatim}
 | 
						|
lmdef(deftype, index, np, props)
 | 
						|
\end{verbatim}
 | 
						|
 | 
						|
is translated to Python as
 | 
						|
 | 
						|
\begin{verbatim}
 | 
						|
lmdef(deftype, index, props)
 | 
						|
\end{verbatim}
 | 
						|
 | 
						|
\item
 | 
						|
Output arguments are omitted from the argument list; they are
 | 
						|
transmitted as function return values instead.
 | 
						|
If more than one value must be returned, the return value is a tuple.
 | 
						|
If the C function has both a regular return value (that is not omitted
 | 
						|
because of the previous rule) and an output argument, the return value
 | 
						|
comes first in the tuple.
 | 
						|
Examples: the C call
 | 
						|
 | 
						|
\begin{verbatim}
 | 
						|
getmcolor(i, &red, &green, &blue)
 | 
						|
\end{verbatim}
 | 
						|
 | 
						|
is translated to Python as
 | 
						|
 | 
						|
\begin{verbatim}
 | 
						|
red, green, blue = getmcolor(i)
 | 
						|
\end{verbatim}
 | 
						|
 | 
						|
\end{itemize}
 | 
						|
 | 
						|
The following functions are non-standard or have special argument
 | 
						|
conventions:
 | 
						|
 | 
						|
\begin{funcdesc}{varray}{argument}
 | 
						|
%JHXXX the argument-argument added
 | 
						|
Equivalent to but faster than a number of
 | 
						|
\code{v3d()}
 | 
						|
calls.
 | 
						|
The \var{argument} is a list (or tuple) of points.
 | 
						|
Each point must be a tuple of coordinates
 | 
						|
\code{(\var{x}, \var{y}, \var{z})} or \code{(\var{x}, \var{y})}.
 | 
						|
The points may be 2- or 3-dimensional but must all have the
 | 
						|
same dimension.
 | 
						|
Float and int values may be mixed however.
 | 
						|
The points are always converted to 3D double precision points
 | 
						|
by assuming \code{\var{z} = 0.0} if necessary (as indicated in the man page),
 | 
						|
and for each point
 | 
						|
\code{v3d()}
 | 
						|
is called.
 | 
						|
\end{funcdesc}
 | 
						|
 | 
						|
\begin{funcdesc}{nvarray}{}
 | 
						|
Equivalent to but faster than a number of
 | 
						|
\code{n3f}
 | 
						|
and
 | 
						|
\code{v3f}
 | 
						|
calls.
 | 
						|
The argument is an array (list or tuple) of pairs of normals and points.
 | 
						|
Each pair is a tuple of a point and a normal for that point.
 | 
						|
Each point or normal must be a tuple of coordinates
 | 
						|
\code{(\var{x}, \var{y}, \var{z})}.
 | 
						|
Three coordinates must be given.
 | 
						|
Float and int values may be mixed.
 | 
						|
For each pair,
 | 
						|
\code{n3f()}
 | 
						|
is called for the normal, and then
 | 
						|
\code{v3f()}
 | 
						|
is called for the point.
 | 
						|
\end{funcdesc}
 | 
						|
 | 
						|
\begin{funcdesc}{vnarray}{}
 | 
						|
Similar to 
 | 
						|
\code{nvarray()}
 | 
						|
but the pairs have the point first and the normal second.
 | 
						|
\end{funcdesc}
 | 
						|
 | 
						|
\begin{funcdesc}{nurbssurface}{s_k, t_k, ctl, s_ord, t_ord, type}
 | 
						|
% XXX s_k[], t_k[], ctl[][]
 | 
						|
Defines a nurbs surface.
 | 
						|
The dimensions of
 | 
						|
\code{\var{ctl}[][]}
 | 
						|
are computed as follows:
 | 
						|
\code{[len(\var{s_k}) - \var{s_ord}]},
 | 
						|
\code{[len(\var{t_k}) - \var{t_ord}]}.
 | 
						|
\end{funcdesc}
 | 
						|
 | 
						|
\begin{funcdesc}{nurbscurve}{knots, ctlpoints, order, type}
 | 
						|
Defines a nurbs curve.
 | 
						|
The length of ctlpoints is
 | 
						|
\code{len(\var{knots}) - \var{order}}.
 | 
						|
\end{funcdesc}
 | 
						|
 | 
						|
\begin{funcdesc}{pwlcurve}{points, type}
 | 
						|
Defines a piecewise-linear curve.
 | 
						|
\var{points}
 | 
						|
is a list of points.
 | 
						|
\var{type}
 | 
						|
must be
 | 
						|
\code{N_ST}.
 | 
						|
\end{funcdesc}
 | 
						|
 | 
						|
\begin{funcdesc}{pick}{n}
 | 
						|
\funcline{select}{n}
 | 
						|
The only argument to these functions specifies the desired size of the
 | 
						|
pick or select buffer.
 | 
						|
\end{funcdesc}
 | 
						|
 | 
						|
\begin{funcdesc}{endpick}{}
 | 
						|
\funcline{endselect}{}
 | 
						|
These functions have no arguments.
 | 
						|
They return a list of integers representing the used part of the
 | 
						|
pick/select buffer.
 | 
						|
No method is provided to detect buffer overrun.
 | 
						|
\end{funcdesc}
 | 
						|
 | 
						|
Here is a tiny but complete example GL program in Python:
 | 
						|
 | 
						|
\begin{verbatim}
 | 
						|
import gl, GL, time
 | 
						|
 | 
						|
def main():
 | 
						|
    gl.foreground()
 | 
						|
    gl.prefposition(500, 900, 500, 900)
 | 
						|
    w = gl.winopen('CrissCross')
 | 
						|
    gl.ortho2(0.0, 400.0, 0.0, 400.0)
 | 
						|
    gl.color(GL.WHITE)
 | 
						|
    gl.clear()
 | 
						|
    gl.color(GL.RED)
 | 
						|
    gl.bgnline()
 | 
						|
    gl.v2f(0.0, 0.0)
 | 
						|
    gl.v2f(400.0, 400.0)
 | 
						|
    gl.endline()
 | 
						|
    gl.bgnline()
 | 
						|
    gl.v2f(400.0, 0.0)
 | 
						|
    gl.v2f(0.0, 400.0)
 | 
						|
    gl.endline()
 | 
						|
    time.sleep(5)
 | 
						|
 | 
						|
main()
 | 
						|
\end{verbatim}
 | 
						|
 | 
						|
 | 
						|
\begin{seealso}
 | 
						|
  \seetitle[http://pyopengl.sourceforge.net/]
 | 
						|
           {PyOpenGL: The Python OpenGL Binding}
 | 
						|
           {An interface to OpenGL\index{OpenGL} is also available;
 | 
						|
            see information about the
 | 
						|
            \strong{PyOpenGL}\index{PyOpenGL} project online at
 | 
						|
            \url{http://pyopengl.sourceforge.net/}.  This may be a
 | 
						|
            better option if support for SGI hardware from before
 | 
						|
            about 1996 is not required.}
 | 
						|
\end{seealso}
 | 
						|
 | 
						|
 | 
						|
\section{\module{DEVICE} ---
 | 
						|
         Constants used with the \module{gl} module}
 | 
						|
 | 
						|
\declaremodule{standard}{DEVICE}
 | 
						|
  \platform{IRIX}
 | 
						|
\modulesynopsis{Constants used with the \module{gl} module.}
 | 
						|
 | 
						|
This modules defines the constants used by the Silicon Graphics
 | 
						|
\emph{Graphics Library} that C programmers find in the header file
 | 
						|
\code{<gl/device.h>}.
 | 
						|
Read the module source file for details.
 | 
						|
 | 
						|
 | 
						|
\section{\module{GL} ---
 | 
						|
         Constants used with the \module{gl} module}
 | 
						|
 | 
						|
\declaremodule[gl-constants]{standard}{GL}
 | 
						|
  \platform{IRIX}
 | 
						|
\modulesynopsis{Constants used with the \module{gl} module.}
 | 
						|
 | 
						|
This module contains constants used by the Silicon Graphics
 | 
						|
\emph{Graphics Library} from the C header file \code{<gl/gl.h>}.
 | 
						|
Read the module source file for details.
 |