Actual docs from SGI ogl-sample
cvs -d :pserver:cvs@oss.sgi.com/cvs co -PA projects/ogl-sample/main/doc/man/manglw
This commit is contained in:
parent
c462c22aeb
commit
b8ec01ee9a
13
doc/gl-docs/GLw/Distfile
Normal file
13
doc/gl-docs/GLw/Distfile
Normal file
@ -0,0 +1,13 @@
|
||||
#
|
||||
# $Date: 2006/11/29 17:04:40 $ $Revision: 1.1.1.1 $
|
||||
# $Header: /home/cvs/xenocara/doc/gl-docs/GLw/Attic/Distfile,v 1.1.1.1 2006/11/29 17:04:40 matthieu Exp $
|
||||
#
|
||||
|
||||
DISTDIR_SI = /xc/doc/man/GL/glw
|
||||
|
||||
DISTFILES_SI = \
|
||||
glwcreatemdrawingarea.3gl \
|
||||
glwdrawingarea.3gl \
|
||||
glwdrawingareamakecurrent.3gl \
|
||||
glwdrawingareaswapbuffers.3gl \
|
||||
$(NULL)
|
85
doc/gl-docs/GLw/GNUmakefile
Normal file
85
doc/gl-docs/GLw/GNUmakefile
Normal file
@ -0,0 +1,85 @@
|
||||
#!gmake
|
||||
#
|
||||
# License Applicability. Except to the extent portions of this file are
|
||||
# made subject to an alternative license as permitted in the SGI Free
|
||||
# Software License B, Version 1.1 (the "License"), the contents of this
|
||||
# file are subject only to the provisions of the License. You may not use
|
||||
# this file except in compliance with the License. You may obtain a copy
|
||||
# of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
|
||||
# Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
|
||||
#
|
||||
# http://oss.sgi.com/projects/FreeB
|
||||
#
|
||||
# Note that, as provided in the License, the Software is distributed on an
|
||||
# "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
|
||||
# DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
|
||||
# CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
|
||||
# PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
|
||||
#
|
||||
# Original Code. The Original Code is: OpenGL Sample Implementation,
|
||||
# Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
|
||||
# Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc.
|
||||
# Copyright in any portions created by third parties is as indicated
|
||||
# elsewhere herein. All Rights Reserved.
|
||||
#
|
||||
# Additional Notice Provisions: The application programming interfaces
|
||||
# established by SGI in conjunction with the Original Code are The
|
||||
# OpenGL(R) Graphics System: A Specification (Version 1.2.1), released
|
||||
# April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version
|
||||
# 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X
|
||||
# Window System(R) (Version 1.3), released October 19, 1998. This software
|
||||
# was created using the OpenGL(R) version 1.2.1 Sample Implementation
|
||||
# published by SGI, but has not been independently verified as being
|
||||
# compliant with the OpenGL(R) version 1.2.1 Specification.
|
||||
#
|
||||
# $Date: 2006/11/29 17:04:40 $ $Revision: 1.1.1.1 $
|
||||
# $Header: /home/cvs/xenocara/doc/gl-docs/GLw/Attic/GNUmakefile,v 1.1.1.1 2006/11/29 17:04:40 matthieu Exp $
|
||||
|
||||
COMMONPREF = standard
|
||||
include $(ROOT)/usr/include/make/commondefs
|
||||
|
||||
DEPTH = ..
|
||||
LANGOPT = c
|
||||
PREFIX = GLw
|
||||
IDB_PATH = /usr/share/catman/g_man/cat3/glw
|
||||
|
||||
MANPREF = man
|
||||
include $(DEPTH)/mandefs
|
||||
|
||||
APIFILE = $(ROOT)/usr/include/GL/gl.h
|
||||
|
||||
VERSION = Version 1.0
|
||||
DATE = Aug 1998
|
||||
MMFLAGS = -rs2
|
||||
|
||||
LEGALSUF1 = gl#
|
||||
LEGALSUF2 = gl#
|
||||
LEGALSUF3 = gl#
|
||||
LEGALSUF4 = gl#
|
||||
LEGALSUF5 = gl#
|
||||
|
||||
LOCALPRINTLISTFILTER = | sed -e '/^intro\.p$$/d' | (echo intro.p ; cat )
|
||||
|
||||
default:
|
||||
$(MAKE) manpages
|
||||
|
||||
headers headers_install libs libs_install apps:
|
||||
|
||||
distsi: default
|
||||
$(MAKE) $(COMMONPREF)$@
|
||||
|
||||
distoss:
|
||||
$(MAKE) $(COMMONPREF)$@
|
||||
|
||||
manpages: $(patsubst %.gl,%.3gl,$(wildcard *.gl))
|
||||
|
||||
install: manpages
|
||||
for file in *.3gl; do \
|
||||
install -D -m 644 $$file ${ROOT}/usr/man/man3/`basename $$file .3gl`.3gl ; \
|
||||
done
|
||||
|
||||
clobber:
|
||||
rm -f *.3gl
|
||||
|
||||
include $(DEPTH)/manrules
|
||||
include $(COMMONRULES)
|
50
doc/gl-docs/GLw/glwcreatemdrawingarea.gl
Normal file
50
doc/gl-docs/GLw/glwcreatemdrawingarea.gl
Normal file
@ -0,0 +1,50 @@
|
||||
.\" **
|
||||
.\" ** (c) Copyright 1993, 1994, 1995, 1996 Silicon Graphics, Inc.
|
||||
.\" **
|
||||
.\" ** (c) Copyright 1989, 1990, 1991 Open Software Foundation, Inc.
|
||||
.\" ** All Rights Reserved.
|
||||
.\" **
|
||||
.\" ** (c) Copyright 1987, 1988, 1989, by Hewlett-Packard Company
|
||||
.\" **
|
||||
.\" ** (c) Copyright 1987, 1988 by Digital Equipment Corporation,
|
||||
.\" ** Maynard, MA. All Rights Reserved.
|
||||
.\" **
|
||||
.\" **
|
||||
.TH GLwCreateMDrawingArea 3X "" "" "" ""
|
||||
.SH NAME
|
||||
\fBGLwCreateMDrawingArea \(em Create a Motif/OpenGL Drawing Widget.\fP
|
||||
.iX "GLwCreateMDrawingArea"
|
||||
.iX "creation functions"
|
||||
.sp 1
|
||||
.SH SYNOPSIS
|
||||
\fB#include <X11/GLw/GLwMDrawA.h>\fP
|
||||
.br
|
||||
Widget \fBGLwCreateMDrawingArea\fP( Widget \fIparent\fP,
|
||||
String \fIname\fP,
|
||||
ArgList \fIarglist\fP,
|
||||
Cardinal \fIargcount\fP )
|
||||
.fi
|
||||
\fP
|
||||
.SH DESCRIPTION
|
||||
\fBGLwCreateMDrawingArea\fP creates an instance of a GLwMDrawingArea
|
||||
widget and returns the associated widget ID.
|
||||
.sp 1
|
||||
.IP "\fIparent\fP" .95i
|
||||
Specifies the parent widget ID
|
||||
.IP "\fIname\fP" .95i
|
||||
Specifies the name of the created widget
|
||||
.IP "\fIarglist\fP" .95i
|
||||
Specifies the argument list
|
||||
.IP "\fIargcount\fP" .95i
|
||||
Specifies the number of attribute/value pairs in the argument list
|
||||
(\fIarglist\fP)
|
||||
.sp 1
|
||||
.PP
|
||||
For a complete definition of GLwMDrawingArea and its associated resources, see
|
||||
\fBGLwDrawingArea(3X)\fP.
|
||||
.sp 1
|
||||
.SH RETURN VALUE
|
||||
Returns the GLwMDrawingArea widget ID.
|
||||
.sp 1
|
||||
.SH SEE ALSO
|
||||
\fBGLwDrawingArea(3X)\fP.
|
485
doc/gl-docs/GLw/glwdrawingarea.gl
Normal file
485
doc/gl-docs/GLw/glwdrawingarea.gl
Normal file
@ -0,0 +1,485 @@
|
||||
.\" **
|
||||
.\" ** (c) Copyright 1993, 1994, 1995, 1996 Silicon Graphics, Inc.
|
||||
.\" **
|
||||
.\" ** (c) Copyright 1989, 1990, 1991 Open Software Foundation, Inc.
|
||||
.\" ** All Rights Reserved.
|
||||
.\" **
|
||||
.\" ** (c) Copyright 1987, 1988, 1989, by Hewlett-Packard Company
|
||||
.\" **
|
||||
.\" ** (c) Copyright 1987, 1988 by Digital Equipment Corporation,
|
||||
.\" ** Maynard, MA. All Rights Reserved.
|
||||
.\" **
|
||||
.\" **
|
||||
.TH GLwDrawingArea 3X "" "" "" ""
|
||||
.SH NAME
|
||||
\fBGLwDrawingArea, GLwMDrawingArea \(em OpenGL drawing widgets.\fP
|
||||
.iX "GLwDrawingArea" "GLwMDrawingArea"
|
||||
.iX "widget class" "OpenGL" "Draw"
|
||||
.sp 1
|
||||
.SH SYNOPSIS
|
||||
\fB#include <X11/GLw/GLwDrawA.h>
|
||||
.br
|
||||
\fBld ... -lGLw -lGL -l<anywidgetlibrary> -lXext -lXt -lX11 -lm
|
||||
.sp
|
||||
\fB#include <X11/GLw/GLwMDrawA.h>
|
||||
.br
|
||||
\fBld ... -lGLw -lGL -lXm -lXext -lXt -lX11 -lm
|
||||
.sp 1
|
||||
.SH DESCRIPTION
|
||||
\fBGLwDrawingArea\fP and \fBGLwMDrawingArea\fP are widgets suitable
|
||||
for OpenGL drawing. They
|
||||
provide a window with the appropriate visual and colormaps needed for
|
||||
OpenGL, based on supplied parameters. GLwDrawingArea and
|
||||
GLwMDrawingArea also provide
|
||||
callbacks for redraw, resize, input, and initialization.
|
||||
.PP
|
||||
GLwDrawingArea is not a part of any widget set, but depends only on Xt.
|
||||
GLwDrawingArea can be used with any widget set. GLwMDrawingArea
|
||||
is identical to
|
||||
GLwDrawingArea except that it is a subclass of the Motif\(Tm widget
|
||||
class XmPrimitive and
|
||||
has resources and defaults suitable for use with Motif. For example,
|
||||
GLwMDrawingArea provides the default Motif background and foreground colors
|
||||
for resources, and deals better with keyboard traversal. Although the
|
||||
GLwDrawingArea widget can be used in a Motif program, it is recommended that
|
||||
GLwMDrawingArea be used instead.
|
||||
.PP
|
||||
Since both GLwDrawingArea and GLwMDrawingArea
|
||||
widgets behave almost identically, the
|
||||
remainder of this manual page will refer only to GLwDrawingArea, except when
|
||||
the behaviors differ. Unless explicitly stated, all statements
|
||||
about GLwDrawingArea also apply to GLwMDrawingArea.
|
||||
.PP
|
||||
Among the information provided when creating a GLwDrawingArea is
|
||||
information necessary to determine the visual. This may be provided
|
||||
in three ways, all of them through resources. A specific visualInfo
|
||||
structure may be passed in. (This visualInfo must have been obtained
|
||||
elsewhere; it is the application designer's responsibility to make
|
||||
sure that it is compatible with the OpenGL rendering done by the
|
||||
application). Alternatively, an attribute list may be provided. This
|
||||
attribute list is formatted identically to that used for direct open
|
||||
GL programming. Finally, each attribute can be specified as an
|
||||
individual resource. The latter method is the simplest, and is the
|
||||
only method that works from resource files.
|
||||
.PP
|
||||
In addition to allocating the visual, the GLwDrawingArea will also
|
||||
allocate the colormap unless one is provided by the application. (If
|
||||
one is provided it is the application writer's responsibility to
|
||||
guarantee compatibility between the colormap and the visual). If
|
||||
an application creates multiple GLwDrawingAreas with the same visual,
|
||||
the same colormap will be used. (However the colormap
|
||||
will not be shared among separate applications).
|
||||
.PP
|
||||
Creating the widget does not actually create the window until it is
|
||||
realized, and consequently, the application should not perform any
|
||||
OpenGL operations
|
||||
to the window immediately after creation. Instead the application
|
||||
must wait until after it has realized the window. Alternatively, the
|
||||
\fBginit\fP callback may be used to indicate when the window has been
|
||||
created. Upon receiving this callback, the application can perform
|
||||
all OpenGL initialization for the window, and can subsequently perform
|
||||
other operations on it. The initialization is discussed in more
|
||||
detail below.
|
||||
.PP
|
||||
Applications select which GLwDrawingArea they are accessing using either
|
||||
\fBglXMakeCurrent\fP or the convenience function
|
||||
\fBGLwDrawingAreaMakeCurrent\fP which uses a widget instead of a
|
||||
display and window. If there is only one GLwDrawingArea this need
|
||||
only be called once, however if there is more than one GLwDrawingArea
|
||||
it should be called at the start of each callback.
|
||||
Callbacks in this case include not only
|
||||
callbacks provided by the widget itself, but any other callback that
|
||||
leads to GL activity such as a timeout or a workproc.
|
||||
.PP
|
||||
If an application is using double buffering, it may call
|
||||
\fBGLwDrawingAreaSwapBuffers\fP instead of \fBglXSwapBuffers\fP. This
|
||||
allows the use of the widget instead of the display and window.
|
||||
.ne 5
|
||||
.SS "GLwDrawingArea Classes"
|
||||
GLwDrawingArea inherits behavior and resources from the \fBCore\fP class.
|
||||
.br
|
||||
The class pointer is \fBglwDrawingAreaWidgetClass\fP.
|
||||
.br
|
||||
The class name is \fBGLwDrawingArea\fP.
|
||||
.PP
|
||||
.ne 5
|
||||
.SS "GLwMDrawingArea Classes"
|
||||
GLwMDrawingArea inherits behavior and resources from the
|
||||
\fBXmPrimitive\fP and \fBCore\fP classes.
|
||||
.br
|
||||
The class pointer is \fBglwMDrawingAreaWidgetClass\fP.
|
||||
.br
|
||||
The class name is \fBGLwMDrawingArea\fP.
|
||||
.sp 1
|
||||
.SS "New Resources"
|
||||
The following tables define a set of widget resources used by the programmer
|
||||
to specify data. The programmer can also set the resource values for the
|
||||
inherited classes to set attributes for this widget. To reference a
|
||||
resource by name or by class in a .Xdefaults file, remove the \fBGLwN\fP or
|
||||
\fBGLwC\fP prefix and use the remaining letters.
|
||||
There are two tables included. The first table includes resources
|
||||
that correspond directly to the attributes used by \fBglXChooseVisual\fP.
|
||||
As with \fBglXChooseVisual\fP, all Boolean resources default to FALSE
|
||||
and all integer resources default to 0, except redSize, greenSize and
|
||||
blueSize which default to 1. These resources can all be
|
||||
set only at creation time, and are used to determine the visual. If
|
||||
either the \fIGLwNattribList\fP or \fIGLwNvisualInfo\fP resource is
|
||||
set, these resources are ignored. The specific meaning of these
|
||||
resources is discussed in the \fBglXChooseVisual\fP manual page and
|
||||
will not be discussed here.
|
||||
.sp 1
|
||||
.ne 18
|
||||
.TS
|
||||
center allbox;
|
||||
lBp8 lBp8 lBp8 lBp8
|
||||
lp8 lp8 lp8 lp8.
|
||||
Name Class Type OpenGL attribute
|
||||
GLwNbufferSize GLwCBufferSize int GLX_BUFFER_SIZE
|
||||
GLwNlevel GLwCLevel int GLX_LEVEL
|
||||
GLwNrgba GLwCRgba Boolean GLX_RGBA
|
||||
GLwNdoublebuffer GLwCDoublebuffer Boolean GLX_DOUBLEBUFFER
|
||||
GLwNstereo GLwCStereo Boolean GLX_STEREO
|
||||
GLwNauxBuffers GLwCAuxBuffers Boolean GLX_AUX_BUFFERS
|
||||
GLwNredSize GLwCColorSize int GLX_RED_SIZE
|
||||
GLwNgreenSize GLwCColorSize int GLX_GREEN_SIZE
|
||||
GLwNblueSize GLwCColorSize int GLX_BLUE_SIZE
|
||||
GLwNalphaSize GLwCAlphaSize int GLX_ALPHA_SIZE
|
||||
GLwNdepthSize GLwCDepthSize int GLX_DEPTH_SIZE
|
||||
GLwNstencilSize GLwCStencilSize int GLX_STENCIL_SIZE
|
||||
GLwNaccumRedSize GLwCAccumColorSize int GLX_ACCUM_RED_SIZE
|
||||
GLwNaccumGreenSize GLwCAccumColorSize int GLX_ACCUM_GREEN_SIZE
|
||||
GLwNaccumBlueSize GLwCAccumColorSize int GLX_ACCUM_BLUE_SIZE
|
||||
GLwNaccumAlphaSize GLwCAccumAlphaSize int GLX_ACCUM_ALPHA_SIZE
|
||||
.TE
|
||||
.sp 1
|
||||
.PP
|
||||
The following table lists other resources of the GLwDrawingArea
|
||||
widget. each of these will be described subsequently.
|
||||
The codes in the access column indicate if the given resource can be
|
||||
set at creation time (\fBC\fP),
|
||||
set by using \fBXtSetValues\fP (\fBS\fP),
|
||||
retrieved by using \fBXtGetValues\fP (\fBG\fP), or is not applicable
|
||||
(\fBN/A\fP).
|
||||
.sp 1
|
||||
.ne 12
|
||||
.TS
|
||||
center;
|
||||
lp8B lp8B lp8B lp8B lp8B
|
||||
lp8 lp8 lp8 lp8 lp8.
|
||||
Name Class Type Def Acc
|
||||
_
|
||||
GLwNallocateBackground GLwCAllocateColors Boolean F CG
|
||||
GLwNallocateOtherColors GLwCAllocateColors Boolean F CG
|
||||
GLwNattribList GLwCAttribList int * NULL CG
|
||||
GLwNexposeCallback GLwCCallback XtCallbackList NULL C
|
||||
GLwNginitCallback GLwCCallback XtCallbackList NULL C
|
||||
GLwNinputCallback GLwCCallback XtCallbackList NULL C
|
||||
GLwNinstallBackground GLwCInstallBackground Boolean T CG
|
||||
GLwNinstallColormap GLwCInstallColormap Boolean T CG
|
||||
GLwNresizeCallback GLwCCallback XtCallbackList NULL C
|
||||
GLwNvisualInfo GLwCVisualInfo XVisualInfo* NULL CG
|
||||
.TE
|
||||
.sp 1
|
||||
.IP "\fBGLwNallocateBackground\fP"
|
||||
If TRUE, the background pixel and pixmap will be allocated if
|
||||
appropriate using the newly calculated colormap and visual. If FALSE,
|
||||
they will retain values calculated using the parent's colormap and
|
||||
visual. Applications which wish to have X clear their background for
|
||||
them will usually set this to TRUE. Applications clearing their own
|
||||
background will often set this to FALSE, although they may set this to
|
||||
TRUE if they query the background for their own use. One reason to
|
||||
leave this resource FALSE is that if color index mode is in use this
|
||||
avoid using up a pixel from the newly allocated colormap. Also, on
|
||||
hardware that supports only one colormap, the application may need to
|
||||
do more careful color allocation to avoid flashing between the OpenGL
|
||||
colormap and the default X colormap.
|
||||
(Note that because of the way Xt works, the background colors
|
||||
are originally calculated using the default colormap; if this resource
|
||||
is set they can be recalculated correctly. If a colormap was
|
||||
explicitly supplied to the widget rather than being dynamically
|
||||
calculated, these resources are always calculated using that colormap.)
|
||||
.IP "\fBGLwNallocateOtherColors\fP"
|
||||
This is similar to \fBGLwNallocateBackground\fP, but allocates other
|
||||
colors normally allocated by widgets. Although the GLwDrawingArea
|
||||
and GLwMDrawingArea widget do not make use of these colors the
|
||||
application may choose to query them. For the non-Motif
|
||||
GLwDrawingArea widget there are no other colors allocated, so this
|
||||
resource is a no-op. For the Motif GLwMDrawingArea are widget, the
|
||||
XmPrimitive resources \fBXmNforeground\fP, \fBXmNhighlightColor\fP,
|
||||
and \fBXmNhighlightPixmap\fP are calculated.
|
||||
.IP "\fBGLwNattribList\fP"
|
||||
Contains the list of attributes suitable for a call to
|
||||
\fBglXChooseVisual\fP. If this resource is NULL, it is calculated
|
||||
based on the attribute resources. If it is not NULL, the attribute
|
||||
resources are ignored.
|
||||
.IP "\fBGLwNexposeCallback\fP"
|
||||
Specifies the list of callbacks that is
|
||||
called when the widget receives an exposure event.
|
||||
The callback reason is \fBGLwCR_EXPOSE\fP.
|
||||
The callback structure also includes the exposure event. The
|
||||
application will generally want to redraw the scene.
|
||||
.IP "\fBGLwNginitCallback\fP"
|
||||
Specifies the list of callbacks that is
|
||||
called when the widget is first realized. Since no OpenGL operations can
|
||||
be done before the widget is realized, this callback can be used to
|
||||
perform any appropriate OpenGL initialization such as creating a context.
|
||||
The callback reason is \fBGLwCR_GINIT\fP.
|
||||
.IP "\fBGLwNinputCallback\fP"
|
||||
Specifies the list of callbacks that is
|
||||
called when the widget receives a keyboard
|
||||
or mouse event. By default, the input callback is called on each key
|
||||
press and key release, on each mouse button press and release, and
|
||||
whenever the mouse is moved while a button is pressed. However this
|
||||
can be changed by providing a different translation table.
|
||||
The callback structure also includes the input event.
|
||||
The callback reason is \fBGLwCR_INPUT\fP.
|
||||
.IP ""
|
||||
The input callback is provided as a programming convenience, as it
|
||||
provides a convenient way to catch all input events. However, a more
|
||||
modular program can often be obtained by providing specific actions and
|
||||
translations in the application rather than using a single catch all
|
||||
callback. Use of explicit translations can also provide for more
|
||||
customization.
|
||||
.IP "\fBGLwNinstallBackground\fP"
|
||||
If set to TRUE, the background is installed on the window. If set to
|
||||
FALSE, the window has no background. This resource has no effect
|
||||
unless \fBGLwNallocateBackground\fP is also TRUE.
|
||||
.IP "\fBGLwNinstallColormap\fP"
|
||||
If set to TRUE, the widget will call \fIXSetWMColormapWindows\fP to
|
||||
tell the window manager to install the colormap when the window's
|
||||
shell has focus. If set to FALSE, this will not be called. For
|
||||
applications with multiple GLwDrawingAreas sharing a single colormap,
|
||||
it is most efficient to set this resource to TRUE for exactly one
|
||||
GLwDrawingArea with each colormap. If an application needs
|
||||
additional control over the order of colormaps, this resource can be
|
||||
set to FALSE, with the application calling \fIXSetWMColormapWindows\fP
|
||||
explicitly.
|
||||
.IP "\fBGLwNresizeCallback\fP"
|
||||
Specifies the list of callbacks that is
|
||||
called when the GLwDrawingArea is resized.
|
||||
The callback reason is \fBGLwCR_RESIZE\fP.
|
||||
.IP "\fBGLwNvisualInfo\fP"
|
||||
Contains a pointer to the window's visual info structure. If NULL,
|
||||
the visualInfo is calculated at widget creation time based on the
|
||||
\fIGLwNattributeList\fP resource (which is itself calculated from the
|
||||
various resources). If \fBGLwNvisualInfo\fP is not NULL the
|
||||
\fIGLwNattributList\fP and the attribute resources are ignored.
|
||||
.sp 1
|
||||
.SS "Inherited Resources"
|
||||
Both GLwDrawingArea and GLwMDrawingArea inherit behavior and resources
|
||||
from the core superclass. Other than the behavior of the colormap and
|
||||
background resources described previously, all defaults are the same as
|
||||
for core.
|
||||
.PP
|
||||
In addition, the Motif version GLwMDrawingArea also inherits from XmPrimitive.
|
||||
The behavior of the color resources has been described previously.
|
||||
The \fITraversalOn\fP resource is disabled for this widget, but if
|
||||
keyboard input is required it should be enabled. (Also, the
|
||||
application should call \fBXmProcessTraversal(widget, XmTRAVERSE_CURRENT)\fP
|
||||
whenever mouse button 1 is clicked in the widget. This is similar to
|
||||
the requirements of the Motif Drawing area.) Because Motif gets
|
||||
confused by having multiple visuals in one top level shell,
|
||||
\fBXmNhighlightOnEnter\fP has been disabled, and
|
||||
\fBXmNhighlightThickness\fP has been set to 0.
|
||||
.SS "Callback Information"
|
||||
A pointer to the following structure is passed to each callback:
|
||||
.sp 1
|
||||
.ne 6
|
||||
.nf
|
||||
.ta .25i 1.3i
|
||||
\fBtypedef struct\fP
|
||||
{
|
||||
\fBint\fP \fIreason\fP;
|
||||
\fBXEvent\fP \fI*event\fP;
|
||||
\fBDimension\fP \fIwidth, height\fP;
|
||||
} \fBGLwDrawingAreaCallbackStruct\fP;
|
||||
.fi
|
||||
.sp 1
|
||||
.IP "\fIreason\fP" .75i
|
||||
Indicates why the callback was invoked. Appropriate values are
|
||||
stated in the above resource descriptions. For Motif programmers, the
|
||||
values \fBGLwCR_EXPOSE\fP, \fBGLwCR_RESIZE\fP, and \fBGLwCR_INPUT\fP
|
||||
are equal to \fBXmCR_EXPOSE\fP, \fBXmCR_RESIZE\fP, and
|
||||
\fBXmCR_INPUT\fP respectively. \fBGLwCR_GINIT\fP does not have a
|
||||
Motif equivalent.
|
||||
.IP "\fIevent\fP" .75i
|
||||
Points to the \fBXEvent\fP that triggered the callback.
|
||||
This is NULL for \fBGLwNginitCallback and \fBGLwNresizeCallback\fP.
|
||||
.IP "\fIwidth\fP and \fIheight\fP" .75i
|
||||
Are set to the width and height of the window.
|
||||
.br
|
||||
.ne 10
|
||||
.sp 1 \"Adds space before the SS
|
||||
.SS "Translations"
|
||||
GLwDrawingArea has the translations listed below.
|
||||
\fB
|
||||
.nf
|
||||
.ta 1.5i
|
||||
.ne 5
|
||||
<KeyDown>: glwInput()
|
||||
<KeyUp>: glwInput()
|
||||
<BtnDown>: glwInput()
|
||||
<BtnUp>: glwInput()
|
||||
<BtnMotion>: glwInput()
|
||||
.fi
|
||||
.PP
|
||||
GLwMDrawingArea has the following additional translation:
|
||||
\fB
|
||||
.nf
|
||||
.ta 1.5i
|
||||
<Key>osfHelp: PrimitiveHelp()
|
||||
.fi
|
||||
.PP
|
||||
An application wishing to catch other events than these defaults can
|
||||
do so by installing a different translation table.
|
||||
\fP
|
||||
.sp 1 \"Adds space before the SS
|
||||
.SS "Action Routines"
|
||||
The GLwDrawingArea has the following action routine:
|
||||
.IP "\fBglwInput()\fP:"
|
||||
Called whenever one of the above translations specifies that input has
|
||||
occurred. Its sole purpose is to call the input callback.
|
||||
.sp 1
|
||||
.SH INITIALIZATION
|
||||
.PP
|
||||
When the widget is initially created (e.g. through
|
||||
\fBXtCreateWidget(3X)\fP) the associated window is not actually
|
||||
created. Instead, window creation is delayed until the widget is
|
||||
realized. However, \fBglXchooseVisual\fP is called immediately, so
|
||||
information based on its results is available.
|
||||
.PP
|
||||
Between the time the widget is created and it is realized,
|
||||
the following apply:
|
||||
.TP
|
||||
\(bu
|
||||
No OpenGL operations can be done to the window
|
||||
.TP
|
||||
\(bu
|
||||
No resize callbacks are generated.
|
||||
.TP
|
||||
\(bu
|
||||
The normal window is available (XtWindow returns NULL).
|
||||
.TP
|
||||
\(bu
|
||||
\fBGLwDrawingAreaMakeCurrent\fP (and \fBglXMakeCurrent\fP) should not
|
||||
be called.
|
||||
.PP
|
||||
When the widget is realized, the following actions take place:
|
||||
.PP
|
||||
.TP
|
||||
\(bu
|
||||
The window is created.
|
||||
.TP
|
||||
\(bu
|
||||
The \fBginit\fP callback is called. The user may use this callback to
|
||||
perform any needed OpenGL initialization to the window.
|
||||
.sp 1
|
||||
.SH NOTES
|
||||
.PP
|
||||
When using the input callback to receive keyboard input, the keycode
|
||||
in the event must be converted to a KeySym. Use
|
||||
\fBXLookupKeysym(3X)\fP or \fBXLookupString(3X)\fP to do the
|
||||
conversion. Keyboard input can also be dealt using translations, in
|
||||
which case no such conversion is required.
|
||||
.PP
|
||||
Motif programmers should keep in mind that OSF uses virtual
|
||||
bindings and replaces some of the key bindings. As a common example,
|
||||
if the ESC key is to be used to exit the program (as it often is in GL
|
||||
programs), the translation should specify <key>osfCancel instead of
|
||||
<key>Escape.
|
||||
.PP
|
||||
Motif programmers may also create a GLwMDrawingArea widget with the Motif
|
||||
style \fBGLwCreateMDrawingArea\fP.
|
||||
.sp 1
|
||||
.ne 10
|
||||
.SH EXAMPLE
|
||||
Here are some code fragments that create a GLwDrawingArea widget, and manage
|
||||
the appropriate callbacks.
|
||||
.sp
|
||||
.nf
|
||||
\f(CW
|
||||
#include <stdlib.h>
|
||||
#include <X11/GLw/GLwDrawA.h>
|
||||
static GLXContext glx_context; /* assume only one context */
|
||||
. . .
|
||||
|
||||
main()
|
||||
{
|
||||
Arg args[10];
|
||||
int n;
|
||||
|
||||
Widget parent; /* The parent of the gl widget */
|
||||
Widget glw; /* The GLwDrawingArea widget */
|
||||
. . .
|
||||
|
||||
/* Create the widget using RGB mode. This can also be set
|
||||
* in an X Defaults file
|
||||
*/
|
||||
n = 0;
|
||||
XtSetArg(args[n], GLwNrgba, True); n++;
|
||||
glw = XtCreateManagedWidget("glw", glwDrawingAreaWidgetClass,
|
||||
parent, args, n);
|
||||
XtAddCallback(glw, GLwNexposeCallback, exposeCB, NULL);
|
||||
XtAddCallback(glw, GLwNresizeCallback, resizeCB, NULL);
|
||||
XtAddCallback(glw, GLwNginitCallback, ginitCB, NULL);
|
||||
/* Also add input callback if needed */
|
||||
. . .
|
||||
}
|
||||
|
||||
static void
|
||||
exposeCB(Widget w, XtPointer client_data,
|
||||
GLwDrawingAreaCallbackStruct *call_data)
|
||||
{
|
||||
GLwDrawingAreaMakeCurrent(w, glx_context);
|
||||
/* redraw the display */
|
||||
}
|
||||
|
||||
static void
|
||||
resizeCB(Widget w, XtPointer client_data,
|
||||
GLwDrawingAreaCallbackStruct *call_data)
|
||||
{
|
||||
GLwDrawingAreaMakeCurrent(w, glx_context);
|
||||
/* perform any resize actions */
|
||||
}
|
||||
|
||||
static void
|
||||
ginitCB(Widget w, XtPointer client_data,
|
||||
GLwDrawingAreaCallbackStruct *call_data)
|
||||
{
|
||||
Arg args[1];
|
||||
XVisualInfo *vi;
|
||||
|
||||
XtSetArg(args[0], GLwNvisualInfo, &vi);
|
||||
XtGetValues(w, args, 1);
|
||||
|
||||
/* create a visual context */
|
||||
glx_context = glXCreateContext(XtDisplay(w), vi,
|
||||
NULL, GL_FALSE);
|
||||
GLwDrawingAreaMakeCurrent(w, glx_context);
|
||||
/* Perform any necessary graphics initialization.*/
|
||||
}
|
||||
\fP
|
||||
.fi
|
||||
.P
|
||||
The Motif program need only differ by including
|
||||
\fBGLwMDrawingArea.h\fP instead of \fBGLwDrawingArea.h\fP and by creating a widget of type
|
||||
\fBGLwMDrawingAreaWidgetClass\fP instead of \fBGLwDrawingAreaWidgetClass\fP. As an
|
||||
alternative, the Motif program could use \fBGLwCreateMDraw(3X)\fP instead.
|
||||
.sp 1
|
||||
.SH WARNINGS
|
||||
.PP
|
||||
If a GLwDrawingArea widget is created as a child of an already realized
|
||||
widget, the GLwDrawingArea widget will be created immediately, without giving
|
||||
the user an opportunity to add the \fBginit\fP callback. In such a
|
||||
case, initialization should be done immediately after creating the
|
||||
widget rather than by using the callback.
|
||||
.PP
|
||||
If the non-Motif GLwDrawingArea widget is used in a Motif program and
|
||||
keyboard traversal is attempted, the behavior is undefined if the user
|
||||
traverses into the GLwDrawingArea widget.
|
||||
.SH SEE ALSO
|
||||
\fBglXChooseVisual(3G)\fP, \fBGLwDrawingAreaMakeCurrent(3X)\fP,
|
||||
\fBglXMakeCurrent(3G)\fP, \fBGLwDrawingAreaSwapBuffers(3X)\fP
|
||||
\fBGLwCreateMDraw(3X)\fP, \fBCore(3X)\fP, \fBXmPrimitive(3X)\fP,
|
||||
\fBVirtualBindings(3X)\fP, \fBXSetWMColormapWindows(3X11)\fP
|
||||
and the OpenGL spec.
|
30
doc/gl-docs/GLw/glwdrawingareamakecurrent.gl
Normal file
30
doc/gl-docs/GLw/glwdrawingareamakecurrent.gl
Normal file
@ -0,0 +1,30 @@
|
||||
.\" **
|
||||
.\" ** (c) Copyright 1993, 1994, 1995, 1996 Silicon Graphics, Inc.
|
||||
.\" **
|
||||
.\" ** (c) Copyright 1989, 1990, 1991 Open Software Foundation, Inc.
|
||||
.\" ** All Rights Reserved.
|
||||
.\" **
|
||||
.\" ** (c) Copyright 1987, 1988, 1989, by Hewlett-Packard Company
|
||||
.\" **
|
||||
.\" ** (c) Copyright 1987, 1988 by Digital Equipment Corporation,
|
||||
.\" ** Maynard, MA. All Rights Reserved.
|
||||
.\" **
|
||||
.\" **
|
||||
.TH GLwDrawingAreaMakeCurrent 3X "" "" "" ""
|
||||
.SH NAME
|
||||
\fBGLwDrawingAreaMakeCurrent \(em Make the current GLwDrawingArea current.\fP
|
||||
.iX "GLwDrawingAreaMakeCurrent"
|
||||
.iX "GLwDrawingArea"
|
||||
.sp 1
|
||||
.SH SYNOPSIS
|
||||
\fB#include <X11/GLw/GLwDraw.h>\fP
|
||||
.br
|
||||
void \fBGLwDrawingAreaMakeCurrent\fP( Widget \fIw\fP,
|
||||
GLXContext \fIctx\fP )
|
||||
.fi
|
||||
.SH DESCRIPTION
|
||||
\fBGLwDrawingAreaMakeCurrent\fP is a front end to \fBglXMakeCurrent\fP,
|
||||
however instead of passing in a Display and a Window, a Widget is
|
||||
passed in.
|
||||
.SH SEE ALSO
|
||||
\fBGLwMDrawingArea(3X)\fP, \fBglXMakeCurrent(3G)\fP.
|
30
doc/gl-docs/GLw/glwdrawingareaswapbuffers.gl
Normal file
30
doc/gl-docs/GLw/glwdrawingareaswapbuffers.gl
Normal file
@ -0,0 +1,30 @@
|
||||
.\" **
|
||||
.\" ** (c) Copyright 1993, 1994, 1995, 1996 Silicon Graphics, Inc.
|
||||
.\" **
|
||||
.\" ** (c) Copyright 1989, 1990, 1991 Open Software Foundation, Inc.
|
||||
.\" ** All Rights Reserved.
|
||||
.\" **
|
||||
.\" ** (c) Copyright 1987, 1988, 1989, by Hewlett-Packard Company
|
||||
.\" **
|
||||
.\" ** (c) Copyright 1987, 1988 by Digital Equipment Corporation,
|
||||
.\" ** Maynard, MA. All Rights Reserved.
|
||||
.\" **
|
||||
.\" **
|
||||
.TH GLwDrawingAreaSwapBuffers 3X "" "" "" ""
|
||||
.SH NAME
|
||||
\fBGLwDrawingAreaSwapBuffers \(em Swap buffers in a GLwDrawingArea.\fP
|
||||
.iX "GLwDrawingAreaSwapBuffers"
|
||||
.iX "GLwDrawingArea"
|
||||
.sp 1
|
||||
.SH SYNOPSIS
|
||||
\fB#include <X11/GLw/GLwDraw.h>\fP
|
||||
.br
|
||||
void \fBGLwDrawingAreaSwapBuffers\fP( Widget \fIw\fP )
|
||||
.br
|
||||
.fi
|
||||
.SH DESCRIPTION
|
||||
\fBGLwDrawingAreaSwapBuffers\fP is a front end to \fBglXSwapBuffers\fP,
|
||||
however instead of passing in a Display and a Window, a Widget is
|
||||
passed in.
|
||||
.SH SEE ALSO
|
||||
\fBGLwMDrawingArea(3X)\fP, \fBglXSwapBuffers(3G)\fP.
|
Loading…
Reference in New Issue
Block a user