glw: Remove GLw source.

libGLw is an old OpenGL widget library with optional Motif support.
It almost never changes and very few people actually still care about
it, so we've decided to ship it separately.

The new home for libGLw is: git://git.freedesktop.org/mesa/glw/

Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
Kenneth Graunke
2011-08-05 16:39:56 -07:00
parent a352e2d08e
commit 63720114b4
16 changed files with 4 additions and 1357 deletions

View File

@@ -50,7 +50,6 @@ GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB)
GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X11_DIR)/$(LIB_DIR) -lX11 -lXt
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X11_DIR)/$(LIB_DIR) -lX11 -lXmu -lXt -lXi -lm
# omit glw lib for now:
SRC_DIRS = glsl mapi/glapi mapi/vgapi glx/apple mesa gallium glu
GLU_DIRS = sgi
DRIVER_DIRS = osmesa

View File

@@ -105,7 +105,7 @@ MOTIF_CFLAGS = -I/usr/include/Motif1.2
# Directories to build
LIB_DIR = lib
SRC_DIRS = glsl mapi/glapi mapi/vgapi mesa \
gallium egl gallium/winsys gallium/targets glu glw
gallium egl gallium/winsys gallium/targets glu
GLU_DIRS = sgi
DRIVER_DIRS = x11 osmesa

View File

@@ -42,7 +42,7 @@ GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L/usr/local/lib -lGL -lXt -lX11
# Directories
SRC_DIRS = glx gallium mesa glu glw
SRC_DIRS = glx gallium mesa glu
DRIVER_DIRS = dri
DRM_SOURCE_PATH=$(TOP)/../drm

View File

@@ -36,7 +36,6 @@ CFLAGS = $(COMMON_C_CPP_FLAGS) -Wmissing-prototypes -std=c99
CXXFLAGS = $(COMMON_C_CPP_FLAGS)
# Omitting glw here:
SRC_DIRS = glsl mapi/glapi mapi/vgapi mesa \
gallium gallium/winsys gallium/targets glu

View File

@@ -49,7 +49,7 @@ DRI_LIB_DEPS = $(MESA_MODULES) $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl $(L
GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lm -lpthread -ldl \
$(LIBDRM_LIB) $(shell pkg-config --libs xcb) $(shell pkg-config --libs x11-xcb) $(shell pkg-config --libs xcb-glx)
SRC_DIRS = glx gallium mesa glu glw
SRC_DIRS = glx gallium mesa glu
DRIVER_DIRS = dri
DRI_DIRS = i810 i915 mach64 mga r128 r200 r300 radeon \

View File

@@ -48,5 +48,5 @@ GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lm -lpthread -ldl
# Directories
SRC_DIRS = glx glu glw
SRC_DIRS = glx glu
DRIVER_DIRS =

View File

@@ -359,7 +359,6 @@ fi
GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
GLUT_LIB_NAME='lib$(GLUT_LIB).'${LIB_EXTENSION}
GLW_LIB_NAME='lib$(GLW_LIB).'${LIB_EXTENSION}
OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
@@ -372,7 +371,6 @@ GBM_LIB_NAME='lib$(GBM_LIB).'${LIB_EXTENSION}
GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
GLUT_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLUT_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
GLW_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLW_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
OSMESA_LIB_GLOB=${LIB_PREFIX_GLOB}'$(OSMESA_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
@@ -386,7 +384,6 @@ GBM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GBM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTE
AC_SUBST([GL_LIB_NAME])
AC_SUBST([GLU_LIB_NAME])
AC_SUBST([GLUT_LIB_NAME])
AC_SUBST([GLW_LIB_NAME])
AC_SUBST([OSMESA_LIB_NAME])
AC_SUBST([EGL_LIB_NAME])
AC_SUBST([GLESv1_CM_LIB_NAME])
@@ -399,7 +396,6 @@ AC_SUBST([GBM_LIB_NAME])
AC_SUBST([GL_LIB_GLOB])
AC_SUBST([GLU_LIB_GLOB])
AC_SUBST([GLUT_LIB_GLOB])
AC_SUBST([GLW_LIB_GLOB])
AC_SUBST([OSMESA_LIB_GLOB])
AC_SUBST([EGL_LIB_GLOB])
AC_SUBST([GLESv1_CM_LIB_GLOB])
@@ -1604,77 +1600,6 @@ AC_SUBST([GLU_PC_REQ_PRIV])
AC_SUBST([GLU_PC_LIB_PRIV])
AC_SUBST([GLU_PC_CFLAGS])
dnl
dnl GLw configuration
dnl
AC_ARG_ENABLE([glw],
[AS_HELP_STRING([--disable-glw],
[enable Xt/Motif widget library @<:@default=enabled@:>@])],
[enable_glw="$enableval"],
[enable_glw=yes])
dnl Don't build GLw on osmesa
if test "x$enable_glw" = xyes -a "x$enable_glx" = xno; then
AC_MSG_NOTICE([Disabling GLw since there is no OpenGL driver])
enable_glw=no
fi
AC_ARG_ENABLE([motif],
[AS_HELP_STRING([--enable-motif],
[use Motif widgets in GLw @<:@default=disabled@:>@])],
[enable_motif="$enableval"],
[enable_motif=no])
if test "x$enable_glw" = xyes; then
SRC_DIRS="$SRC_DIRS glw"
if test "$x11_pkgconfig" = yes; then
PKG_CHECK_MODULES([GLW],[x11 xt])
GLW_PC_REQ_PRIV="x11 xt"
GLW_LIB_DEPS="$GLW_LIBS"
else
# should check these...
GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
GLW_PC_LIB_PRIV="$GLW_LIB_DEPS"
GLW_PC_CFLAGS="$X11_INCLUDES"
fi
GLW_SOURCES="GLwDrawA.c"
MOTIF_CFLAGS=
if test "x$enable_motif" = xyes; then
GLW_SOURCES="$GLW_SOURCES GLwMDrawA.c"
AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no])
if test "x$MOTIF_CONFIG" != xno; then
MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags`
MOTIF_LIBS=`$MOTIF_CONFIG --libs`
else
AC_CHECK_HEADER([Xm/PrimitiveP.h], [],
[AC_MSG_ERROR([Can't locate Motif headers])])
AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"],
[AC_MSG_ERROR([Can't locate Motif Xm library])])
fi
# MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV"
GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS"
fi
# If static, empty GLW_LIB_DEPS and add libs for programs to link
GLW_PC_LIB_PRIV="$GLW_PC_LIB_PRIV"
if test "$enable_static" = no; then
GLW_MESA_DEPS='-l$(GL_LIB)'
GLW_LIB_DEPS="$GLW_LIB_DEPS"
else
APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
GLW_LIB_DEPS=""
GLW_MESA_DEPS=""
fi
fi
AC_SUBST([GLW_LIB_DEPS])
AC_SUBST([GLW_MESA_DEPS])
AC_SUBST([GLW_SOURCES])
AC_SUBST([MOTIF_CFLAGS])
AC_SUBST([GLW_PC_REQ_PRIV])
AC_SUBST([GLW_PC_LIB_PRIV])
AC_SUBST([GLW_PC_CFLAGS])
dnl
dnl Program library dependencies
dnl Only libm is added here if necessary as the libraries should
@@ -2053,7 +1978,6 @@ esac
echo ""
echo " GLU: $enable_glu"
echo " GLw: $enable_glw (Motif: $enable_motif)"
dnl EGL
echo ""

View File

@@ -1,684 +0,0 @@
/*
* (c) Copyright 1993, Silicon Graphics, Inc.
* ALL RIGHTS RESERVED
* Permission to use, copy, modify, and distribute this software for
* any purpose and without fee is hereby granted, provided that the above
* copyright notice appear in all copies and that both the copyright notice
* and this permission notice appear in supporting documentation, and that
* the name of Silicon Graphics, Inc. not be used in advertising
* or publicity pertaining to distribution of the software without specific,
* written prior permission.
*
* THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
* AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
* INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
* FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
* GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
* SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
* KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
* LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
* THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
* ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
* POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
* US Government Users Restricted Rights
* Use, duplication, or disclosure by the Government is subject to
* restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
* (c)(1)(ii) of the Rights in Technical Data and Computer Software
* clause at DFARS 252.227-7013 and/or in similar or successor
* clauses in the FAR or the DOD or NASA FAR Supplement.
* Unpublished-- rights reserved under the copyright laws of the
* United States. Contractor/manufacturer is Silicon Graphics,
* Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
*
* OpenGL(TM) is a trademark of Silicon Graphics, Inc.
*/
/*
*
* This file has been slightly modified from the original for use with Mesa
*
* Jeroen van der Zijp
*
* jvz@cyberia.cfdrc.com
*
*/
#include <X11/IntrinsicP.h>
#include <X11/StringDefs.h>
#include <GL/glx.h>
#include <GL/gl.h>
#ifdef __GLX_MOTIF
#include <Xm/PrimitiveP.h>
#include "GLwMDrawAP.h"
#else
#include "GLwDrawAP.h"
#endif
#include <assert.h>
#include <stdio.h>
#ifdef __GLX_MOTIF
#define GLwDrawingAreaWidget GLwMDrawingAreaWidget
#define GLwDrawingAreaClassRec GLwMDrawingAreaClassRec
#define glwDrawingAreaClassRec glwMDrawingAreaClassRec
#define glwDrawingAreaWidgetClass glwMDrawingAreaWidgetClass
#define GLwDrawingAreaRec GLwMDrawingAreaRec
#endif
#define ATTRIBLIST_SIZE 32
#define offset(field) XtOffset(GLwDrawingAreaWidget,glwDrawingArea.field)
/* forward definitions */
static void createColormap(GLwDrawingAreaWidget w,int offset,XrmValue *value);
static void Initialize(GLwDrawingAreaWidget req,GLwDrawingAreaWidget neww,ArgList args,Cardinal *num_args);
static void Realize(Widget w,Mask *valueMask,XSetWindowAttributes *attributes);
static void Redraw(GLwDrawingAreaWidget w,XEvent *event,Region region);
static void Resize(GLwDrawingAreaWidget glw);
static void Destroy(GLwDrawingAreaWidget glw);
static void glwInput(GLwDrawingAreaWidget glw,XEvent *event,String *params,Cardinal *numParams);
static char defaultTranslations[] =
#ifdef __GLX_MOTIF
"<Key>osfHelp:PrimitiveHelp() \n"
#endif
"<KeyDown>: glwInput() \n\
<KeyUp>: glwInput() \n\
<BtnDown>: glwInput() \n\
<BtnUp>: glwInput() \n\
<BtnMotion>: glwInput() ";
static XtActionsRec actions[] = {
{"glwInput",(XtActionProc)glwInput}, /* key or mouse input */
};
/*
* There is a bit of unusual handling of the resources here.
* Because Xt insists on allocating the colormap resource when it is
* processing the core resources (even if we redeclare the colormap
* resource here, we need to do a little trick. When Xt first allocates
* the colormap, we allow it to allocate the default one, since we have
* not yet determined the appropriate visual (which is determined from
* resources parsed after the colormap). We also let it allocate colors
* in that default colormap.
*
* In the initialize proc we calculate the actual visual. Then, we
* reobtain the colormap resource using XtGetApplicationResources in
* the initialize proc. If requested, we also reallocate colors in
* that colormap using the same method.
*/
static XtResource resources[] = {
/* The GLX attributes. Add any new attributes here */
{GLwNbufferSize, GLwCBufferSize, XtRInt, sizeof (int),
offset(bufferSize), XtRImmediate, (XtPointer) 0},
{GLwNlevel, GLwCLevel, XtRInt, sizeof (int),
offset(level), XtRImmediate, (XtPointer) 0},
{GLwNrgba, GLwCRgba, XtRBoolean, sizeof (Boolean),
offset(rgba), XtRImmediate, (XtPointer) FALSE},
{GLwNdoublebuffer, GLwCDoublebuffer, XtRBoolean, sizeof (Boolean),
offset(doublebuffer), XtRImmediate, (XtPointer) FALSE},
{GLwNstereo, GLwCStereo, XtRBoolean, sizeof (Boolean),
offset(stereo), XtRImmediate, (XtPointer) FALSE},
{GLwNauxBuffers, GLwCAuxBuffers, XtRInt, sizeof (int),
offset(auxBuffers), XtRImmediate, (XtPointer) 0},
{GLwNredSize, GLwCColorSize, XtRInt, sizeof (int),
offset(redSize), XtRImmediate, (XtPointer) 1},
{GLwNgreenSize, GLwCColorSize, XtRInt, sizeof (int),
offset(greenSize), XtRImmediate, (XtPointer) 1},
{GLwNblueSize, GLwCColorSize, XtRInt, sizeof (int),
offset(blueSize), XtRImmediate, (XtPointer) 1},
{GLwNalphaSize, GLwCAlphaSize, XtRInt, sizeof (int),
offset(alphaSize), XtRImmediate, (XtPointer) 0},
{GLwNdepthSize, GLwCDepthSize, XtRInt, sizeof (int),
offset(depthSize), XtRImmediate, (XtPointer) 0},
{GLwNstencilSize, GLwCStencilSize, XtRInt, sizeof (int),
offset(stencilSize), XtRImmediate, (XtPointer) 0},
{GLwNaccumRedSize, GLwCAccumColorSize, XtRInt, sizeof (int),
offset(accumRedSize), XtRImmediate, (XtPointer) 0},
{GLwNaccumGreenSize, GLwCAccumColorSize, XtRInt, sizeof (int),
offset(accumGreenSize), XtRImmediate, (XtPointer) 0},
{GLwNaccumBlueSize, GLwCAccumColorSize, XtRInt, sizeof (int),
offset(accumBlueSize), XtRImmediate, (XtPointer) 0},
{GLwNaccumAlphaSize, GLwCAccumAlphaSize, XtRInt, sizeof (int),
offset(accumAlphaSize), XtRImmediate, (XtPointer) 0},
/* the attribute list */
{GLwNattribList, GLwCAttribList, XtRPointer, sizeof(int *),
offset(attribList), XtRImmediate, (XtPointer) NULL},
/* the visual info */
{GLwNvisualInfo, GLwCVisualInfo, GLwRVisualInfo, sizeof (XVisualInfo *),
offset(visualInfo), XtRImmediate, (XtPointer) NULL},
/* miscellaneous resources */
{GLwNinstallColormap, GLwCInstallColormap, XtRBoolean, sizeof (Boolean),
offset(installColormap), XtRImmediate, (XtPointer) TRUE},
{GLwNallocateBackground, GLwCAllocateColors, XtRBoolean, sizeof (Boolean),
offset(allocateBackground), XtRImmediate, (XtPointer) FALSE},
{GLwNallocateOtherColors, GLwCAllocateColors, XtRBoolean, sizeof (Boolean),
offset(allocateOtherColors), XtRImmediate, (XtPointer) FALSE},
{GLwNinstallBackground, GLwCInstallBackground, XtRBoolean, sizeof (Boolean),
offset(installBackground), XtRImmediate, (XtPointer) TRUE},
{GLwNginitCallback, GLwCCallback, XtRCallback, sizeof (XtCallbackList),
offset(ginitCallback), XtRImmediate, (XtPointer) NULL},
{GLwNinputCallback, GLwCCallback, XtRCallback, sizeof (XtCallbackList),
offset(inputCallback), XtRImmediate, (XtPointer) NULL},
{GLwNresizeCallback, GLwCCallback, XtRCallback, sizeof (XtCallbackList),
offset(resizeCallback), XtRImmediate, (XtPointer) NULL},
{GLwNexposeCallback, GLwCCallback, XtRCallback, sizeof (XtCallbackList),
offset(exposeCallback), XtRImmediate, (XtPointer) NULL},
/* Changes to Motif primitive resources */
#ifdef __GLX_MOTIF
{XmNtraversalOn, XmCTraversalOn, XmRBoolean, sizeof (Boolean),
XtOffset (GLwDrawingAreaWidget, primitive.traversal_on), XmRImmediate,
(XtPointer)FALSE},
/* highlighting is normally disabled, as when Motif tries to disable
* highlighting, it tries to reset the color back to the parent's
* background (usually Motif blue). Unfortunately, that is in a
* different colormap, and doesn't work too well.
*/
{XmNhighlightOnEnter, XmCHighlightOnEnter, XmRBoolean, sizeof (Boolean),
XtOffset (GLwDrawingAreaWidget, primitive.highlight_on_enter),
XmRImmediate, (XtPointer) FALSE},
{XmNhighlightThickness, XmCHighlightThickness, XmRHorizontalDimension,
sizeof (Dimension),
XtOffset (GLwDrawingAreaWidget, primitive.highlight_thickness),
XmRImmediate, (XtPointer) 0},
#endif
};
/*
** The following resources are reobtained using XtGetApplicationResources
** in the initialize proc.
*/
/* The colormap */
static XtResource initializeResources[] = {
/* reobtain the colormap with the new visual */
{XtNcolormap, XtCColormap, XtRColormap, sizeof(Colormap),
XtOffset(GLwDrawingAreaWidget, core.colormap),
XtRCallProc,(XtPointer) createColormap},
};
/* reallocate any colors we need in the new colormap */
/* The background is obtained only if the allocateBackground resource is TRUE*/
static XtResource backgroundResources[] = {
#ifdef __GLX_MOTIF
{XmNbackground, XmCBackground,XmRPixel,
sizeof(Pixel),XtOffset(GLwDrawingAreaWidget,core.background_pixel),
XmRString,(XtPointer)"lightgrey"},
/*XmRCallProc,(XtPointer)_XmBackgroundColorDefault},*/
{XmNbackgroundPixmap,XmCPixmap,XmRXmBackgroundPixmap,
sizeof(Pixmap),XtOffset(GLwDrawingAreaWidget,core.background_pixmap),
XmRImmediate,(XtPointer)XmUNSPECIFIED_PIXMAP},
#else
{XtNbackground,XtCBackground,XtRPixel,sizeof(Pixel),
XtOffset(GLwDrawingAreaWidget,core.background_pixel),
XtRString,(XtPointer)"lightgrey"},
/*XtRString,(XtPointer)"XtDefaultBackground"},*/
{XtNbackgroundPixmap, XtCPixmap, XtRPixmap, sizeof(Pixmap),
XtOffset(GLwDrawingAreaWidget,core.background_pixmap),
XtRImmediate,(XtPointer)XtUnspecifiedPixmap},
#endif
};
/* The other colors such as the foreground are allocated only if
* allocateOtherColors are set. These resources only exist in Motif.
*/
#ifdef __GLX_MOTIF
static XtResource otherColorResources[] = {
{XmNforeground,XmCForeground,XmRPixel,
sizeof(Pixel),XtOffset(GLwDrawingAreaWidget,primitive.foreground),
XmRString,(XtPointer)"lighgrey"},
/*XmRCallProc, (XtPointer) _XmForegroundColorDefault},*/
{XmNhighlightColor,XmCHighlightColor,XmRPixel,sizeof(Pixel),
XtOffset(GLwDrawingAreaWidget,primitive.highlight_color),
XmRString,(XtPointer)"lightgrey"},
/*XmRCallProc,(XtPointer)_XmHighlightColorDefault},*/
{XmNhighlightPixmap,XmCHighlightPixmap,XmRPrimHighlightPixmap,
sizeof(Pixmap),
XtOffset(GLwDrawingAreaWidget,primitive.highlight_pixmap),
XmRImmediate,(XtPointer)XmUNSPECIFIED_PIXMAP},
/*XmRCallProc,(XtPointer)_XmPrimitiveHighlightPixmapDefault},*/
};
#endif
#undef offset
GLwDrawingAreaClassRec glwDrawingAreaClassRec = {
{ /* core fields */
#ifdef __GLX_MOTIF
/* superclass */ (WidgetClass) &xmPrimitiveClassRec,
/* class_name */ "GLwMDrawingArea",
#else /* not __GLX_MOTIF */
/* superclass */ (WidgetClass) &widgetClassRec,
/* class_name */ "GLwDrawingArea",
#endif /* __GLX_MOTIF */
/* widget_size */ sizeof(GLwDrawingAreaRec),
/* class_initialize */ NULL,
/* class_part_initialize */ NULL,
/* class_inited */ FALSE,
/* initialize */ (XtInitProc) Initialize,
/* initialize_hook */ NULL,
/* realize */ Realize,
/* actions */ actions,
/* num_actions */ XtNumber(actions),
/* resources */ resources,
/* num_resources */ XtNumber(resources),
/* xrm_class */ NULLQUARK,
/* compress_motion */ TRUE,
/* compress_exposure */ TRUE,
/* compress_enterleave */ TRUE,
/* visible_interest */ TRUE,
/* destroy */ (XtWidgetProc) Destroy,
/* resize */ (XtWidgetProc) Resize,
/* expose */ (XtExposeProc) Redraw,
/* set_values */ NULL,
/* set_values_hook */ NULL,
/* set_values_almost */ XtInheritSetValuesAlmost,
/* get_values_hook */ NULL,
/* accept_focus */ NULL,
/* version */ XtVersion,
/* callback_private */ NULL,
/* tm_table */ defaultTranslations,
/* query_geometry */ XtInheritQueryGeometry,
/* display_accelerator */ XtInheritDisplayAccelerator,
/* extension */ NULL
},
#ifdef __GLX_MOTIF /* primitive resources */
{
/* border_highlight */ XmInheritBorderHighlight,
/* border_unhighlight */ XmInheritBorderUnhighlight,
/* translations */ XtInheritTranslations,
/* arm_and_activate */ NULL,
/* get_resources */ NULL,
/* num get_resources */ 0,
/* extension */ NULL,
}
#endif
};
WidgetClass glwDrawingAreaWidgetClass=(WidgetClass)&glwDrawingAreaClassRec;
static void error(Widget w,char* string){
char buf[100];
#ifdef __GLX_MOTIF
sprintf(buf,"GLwMDrawingArea: %s\n",string);
#else
sprintf(buf,"GLwDrawingArea: %s\n",string);
#endif
XtAppError(XtWidgetToApplicationContext(w),buf);
}
static void warning(Widget w,char* string){
char buf[100];
#ifdef __GLX_MOTIF
sprintf (buf, "GLwMDraw: %s\n", string);
#else
sprintf (buf, "GLwDraw: %s\n", string);
#endif
XtAppWarning(XtWidgetToApplicationContext(w), buf);
}
/* Initialize the attribList based on the attributes */
static void createAttribList(GLwDrawingAreaWidget w){
int *ptr;
w->glwDrawingArea.attribList = (int*)XtMalloc(ATTRIBLIST_SIZE*sizeof(int));
if(!w->glwDrawingArea.attribList){
error((Widget)w,"Unable to allocate attribute list");
}
ptr = w->glwDrawingArea.attribList;
*ptr++ = GLX_BUFFER_SIZE;
*ptr++ = w->glwDrawingArea.bufferSize;
*ptr++ = GLX_LEVEL;
*ptr++ = w->glwDrawingArea.level;
if(w->glwDrawingArea.rgba) *ptr++ = GLX_RGBA;
if(w->glwDrawingArea.doublebuffer) *ptr++ = GLX_DOUBLEBUFFER;
if(w->glwDrawingArea.stereo) *ptr++ = GLX_STEREO;
*ptr++ = GLX_AUX_BUFFERS;
*ptr++ = w->glwDrawingArea.auxBuffers;
*ptr++ = GLX_RED_SIZE;
*ptr++ = w->glwDrawingArea.redSize;
*ptr++ = GLX_GREEN_SIZE;
*ptr++ = w->glwDrawingArea.greenSize;
*ptr++ = GLX_BLUE_SIZE;
*ptr++ = w->glwDrawingArea.blueSize;
*ptr++ = GLX_ALPHA_SIZE;
*ptr++ = w->glwDrawingArea.alphaSize;
*ptr++ = GLX_DEPTH_SIZE;
*ptr++ = w->glwDrawingArea.depthSize;
*ptr++ = GLX_STENCIL_SIZE;
*ptr++ = w->glwDrawingArea.stencilSize;
*ptr++ = GLX_ACCUM_RED_SIZE;
*ptr++ = w->glwDrawingArea.accumRedSize;
*ptr++ = GLX_ACCUM_GREEN_SIZE;
*ptr++ = w->glwDrawingArea.accumGreenSize;
*ptr++ = GLX_ACCUM_BLUE_SIZE;
*ptr++ = w->glwDrawingArea.accumBlueSize;
*ptr++ = GLX_ACCUM_ALPHA_SIZE;
*ptr++ = w->glwDrawingArea.accumAlphaSize;
*ptr++ = None;
assert((ptr-w->glwDrawingArea.attribList)<ATTRIBLIST_SIZE);
}
/* Initialize the visualInfo based on the attribute list */
static void createVisualInfo(GLwDrawingAreaWidget w){
assert(w->glwDrawingArea.attribList);
w->glwDrawingArea.visualInfo=glXChooseVisual(XtDisplay(w),XScreenNumberOfScreen(XtScreen(w)),w->glwDrawingArea.attribList);
if(!w->glwDrawingArea.visualInfo) error((Widget)w,"requested visual not supported");
}
/* Initialize the colormap based on the visual info.
* This routine maintains a cache of visual-infos to colormaps. If two
* widgets share the same visual info, they share the same colormap.
* This function is called by the callProc of the colormap resource entry.
*/
static void createColormap(GLwDrawingAreaWidget w,int offset,XrmValue *value){
static struct cmapCache { Visual *visual; Colormap cmap; } *cmapCache;
static int cacheEntries=0;
static int cacheMalloced=0;
register int i;
assert(w->glwDrawingArea.visualInfo);
/* see if we can find it in the cache */
for(i=0; i<cacheEntries; i++){
if(cmapCache[i].visual==w->glwDrawingArea.visualInfo->visual){
value->addr=(XtPointer)(&cmapCache[i].cmap);
return;
}
}
/* not in the cache, create a new entry */
if(cacheEntries >= cacheMalloced){
/* need to malloc a new one. Since we are likely to have only a
* few colormaps, we allocate one the first time, and double
* each subsequent time.
*/
if(cacheMalloced==0){
cacheMalloced=1;
cmapCache=(struct cmapCache*)XtMalloc(sizeof(struct cmapCache));
}
else{
cacheMalloced<<=1;
cmapCache=(struct cmapCache*)XtRealloc((char*)cmapCache,sizeof(struct cmapCache)*cacheMalloced);
}
}
cmapCache[cacheEntries].cmap=XCreateColormap(XtDisplay(w),
RootWindow(XtDisplay(w),
w->glwDrawingArea.visualInfo->screen),
w->glwDrawingArea.visualInfo->visual,
AllocNone);
cmapCache[cacheEntries].visual=w->glwDrawingArea.visualInfo->visual;
value->addr=(XtPointer)(&cmapCache[cacheEntries++].cmap);
}
static void Initialize(GLwDrawingAreaWidget req,GLwDrawingAreaWidget neww,ArgList args,Cardinal *num_args){
/* fix size */
if(req->core.width==0) neww->core.width=100;
if(req->core.height==0) neww->core.width=100;
/* create the attribute list if needed */
neww->glwDrawingArea.myList=FALSE;
if(neww->glwDrawingArea.attribList==NULL){
neww->glwDrawingArea.myList=TRUE;
createAttribList(neww);
}
/* Gotta have it */
assert(neww->glwDrawingArea.attribList);
/* determine the visual info if needed */
neww->glwDrawingArea.myVisual=FALSE;
if(neww->glwDrawingArea.visualInfo==NULL){
neww->glwDrawingArea.myVisual=TRUE;
createVisualInfo(neww);
}
/* Gotta have that too */
assert(neww->glwDrawingArea.visualInfo);
neww->core.depth=neww->glwDrawingArea.visualInfo->depth;
/* Reobtain the colormap and colors in it using XtGetApplicationResources*/
XtGetApplicationResources((Widget)neww,neww,initializeResources,XtNumber(initializeResources),args,*num_args);
/* obtain the color resources if appropriate */
if(req->glwDrawingArea.allocateBackground){
XtGetApplicationResources((Widget)neww,neww,backgroundResources,XtNumber(backgroundResources),args,*num_args);
}
#ifdef __GLX_MOTIF
if(req->glwDrawingArea.allocateOtherColors){
XtGetApplicationResources((Widget)neww,neww,otherColorResources,XtNumber(otherColorResources),args,*num_args);
}
#endif
}
static void Realize(Widget w,Mask *valueMask,XSetWindowAttributes *attributes){
register GLwDrawingAreaWidget glw=(GLwDrawingAreaWidget)w;
GLwDrawingAreaCallbackStruct cb;
Widget parentShell;
Status status;
Window windows[2],*windowsReturn,*windowList;
int countReturn,i;
/* if we haven't requested that the background be both installed and
* allocated, don't install it.
*/
if(!(glw->glwDrawingArea.installBackground && glw->glwDrawingArea.allocateBackground)){
*valueMask&=~CWBackPixel;
}
XtCreateWindow(w,(unsigned int)InputOutput,glw->glwDrawingArea.visualInfo->visual,*valueMask,attributes);
/* if appropriate, call XSetWMColormapWindows to install the colormap */
if(glw->glwDrawingArea.installColormap){
/* Get parent shell */
for(parentShell=XtParent(w); parentShell&&!XtIsShell(parentShell); parentShell=XtParent(parentShell));
if(parentShell && XtWindow(parentShell)){
/* check to see if there is already a property */
status=XGetWMColormapWindows(XtDisplay(parentShell),XtWindow(parentShell),&windowsReturn,&countReturn);
/* if no property, just create one */
if(!status){
windows[0]=XtWindow(w);
windows[1]=XtWindow(parentShell);
XSetWMColormapWindows(XtDisplay(parentShell),XtWindow(parentShell),windows,2);
}
/* there was a property, add myself to the beginning */
else{
windowList=(Window *)XtMalloc((sizeof(Window))*(countReturn+1));
windowList[0]=XtWindow(w);
for(i=0; i<countReturn; i++) windowList[i+1]=windowsReturn[i];
XSetWMColormapWindows(XtDisplay(parentShell),XtWindow(parentShell),windowList,countReturn+1);
XtFree((char*)windowList);
XtFree((char*)windowsReturn);
}
}
else{
warning(w,"Could not set colormap property on parent shell");
}
}
/* Invoke callbacks */
cb.reason=GLwCR_GINIT;
cb.event=NULL;
cb.width=glw->core.width;
cb.height=glw->core.height;
XtCallCallbackList((Widget)glw,glw->glwDrawingArea.ginitCallback,&cb);
}
static void Redraw(GLwDrawingAreaWidget w,XEvent *event,Region region){
GLwDrawingAreaCallbackStruct cb;
if(!XtIsRealized((Widget)w)) return;
cb.reason=GLwCR_EXPOSE;
cb.event=event;
cb.width=w->core.width;
cb.height=w->core.height;
XtCallCallbackList((Widget)w,w->glwDrawingArea.exposeCallback,&cb);
}
static void Resize(GLwDrawingAreaWidget glw){
GLwDrawingAreaCallbackStruct cb;
if(!XtIsRealized((Widget)glw)) return;
cb.reason=GLwCR_RESIZE;
cb.event=NULL;
cb.width=glw->core.width;
cb.height=glw->core.height;
XtCallCallbackList((Widget)glw,glw->glwDrawingArea.resizeCallback,&cb);
}
static void Destroy(GLwDrawingAreaWidget glw){
Window *windowsReturn;
Widget parentShell;
Status status;
int countReturn;
register int i;
if(glw->glwDrawingArea.myList && glw->glwDrawingArea.attribList){
XtFree((XtPointer)glw->glwDrawingArea.attribList);
}
if(glw->glwDrawingArea.myVisual && glw->glwDrawingArea.visualInfo){
XtFree((XtPointer)glw->glwDrawingArea.visualInfo);
}
/* if my colormap was installed, remove it */
if(glw->glwDrawingArea.installColormap){
/* Get parent shell */
for(parentShell=XtParent(glw); parentShell&&!XtIsShell(parentShell); parentShell=XtParent(parentShell));
if(parentShell && XtWindow(parentShell)){
/* make sure there is a property */
status=XGetWMColormapWindows(XtDisplay(parentShell),XtWindow(parentShell),&windowsReturn,&countReturn);
/* if no property, just return. If there was a property, continue */
if(status){
/* search for a match */
for(i=0; i<countReturn; i++){
if(windowsReturn[i]==XtWindow(glw)){
/* we found a match, now copy the rest down */
for(i++; i<countReturn; i++){ windowsReturn[i-1]=windowsReturn[i]; }
XSetWMColormapWindows(XtDisplay(parentShell),XtWindow(parentShell),windowsReturn,countReturn-1);
break;
}
}
XtFree((char *)windowsReturn);
}
}
}
}
/* Action routine for keyboard and mouse events */
static void glwInput(GLwDrawingAreaWidget glw,XEvent *event,String *params,Cardinal *numParams){
GLwDrawingAreaCallbackStruct cb;
cb.reason=GLwCR_INPUT;
cb.event=event;
cb.width=glw->core.width;
cb.height=glw->core.height;
XtCallCallbackList((Widget)glw,glw->glwDrawingArea.inputCallback,&cb);
}
#ifdef __GLX_MOTIF
/* Create routine */
Widget GLwCreateMDrawingArea(Widget parent, char *name,ArgList arglist,Cardinal argcount){
return XtCreateWidget(name,glwMDrawingAreaWidgetClass, parent, arglist,argcount);
}
#endif
#ifndef __GLX_MOTIF
/* Make context current */
void GLwDrawingAreaMakeCurrent(Widget w,GLXContext ctx){
glXMakeCurrent(XtDisplay(w),XtWindow(w),ctx);
}
/* Swap buffers convenience function */
void GLwDrawingAreaSwapBuffers(Widget w){
glXSwapBuffers(XtDisplay(w),XtWindow(w));
}
#endif

View File

@@ -1,195 +0,0 @@
/*
* (c) Copyright 1993, Silicon Graphics, Inc.
* ALL RIGHTS RESERVED
* Permission to use, copy, modify, and distribute this software for
* any purpose and without fee is hereby granted, provided that the above
* copyright notice appear in all copies and that both the copyright notice
* and this permission notice appear in supporting documentation, and that
* the name of Silicon Graphics, Inc. not be used in advertising
* or publicity pertaining to distribution of the software without specific,
* written prior permission.
*
* THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
* AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
* INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
* FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
* GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
* SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
* KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
* LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
* THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
* ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
* POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
* US Government Users Restricted Rights
* Use, duplication, or disclosure by the Government is subject to
* restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
* (c)(1)(ii) of the Rights in Technical Data and Computer Software
* clause at DFARS 252.227-7013 and/or in similar or successor
* clauses in the FAR or the DOD or NASA FAR Supplement.
* Unpublished-- rights reserved under the copyright laws of the
* United States. Contractor/manufacturer is Silicon Graphics,
* Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
*
* OpenGL(TM) is a trademark of Silicon Graphics, Inc.
*/
#ifndef _GLwDrawA_h
#define _GLwDrawA_h
#include <GL/glx.h>
#include <GL/gl.h>
/****************************************************************
*
* GLwDrawingArea widgets
*
****************************************************************/
/* Resources:
Name Class RepType Default Value
---- ----- ------- -------------
attribList AttribList int * NULL
visualInfo VisualInfo VisualInfo NULL
installColormap InstallColormap Boolean TRUE
allocateBackground AllocateColors Boolean FALSE
allocateOtherColors AllocateColors Boolean FALSE
installBackground InstallBackground Boolean TRUE
exposeCallback Callback Pointer NULL
ginitCallback Callback Pointer NULL
inputCallback Callback Pointer NULL
resizeCallback Callback Pointer NULL
*** The following resources all correspond to the GLX configuration
*** attributes and are used to create the attribList if it is NULL
bufferSize BufferSize int 0
level Level int 0
rgba Rgba Boolean FALSE
doublebuffer Doublebuffer Boolean FALSE
stereo Stereo Boolean FALSE
auxBuffers AuxBuffers int 0
redSize ColorSize int 1
greenSize ColorSize int 1
blueSize ColorSize int 1
alphaSize AlphaSize int 0
depthSize DepthSize int 0
stencilSize StencilSize int 0
accumRedSize AccumColorSize int 0
accumGreenSize AccumColorSize int 0
accumBlueSize AccumColorSize int 0
accumAlphaSize AccumAlphaSize int 0
*/
#define GLwNattribList "attribList"
#define GLwCAttribList "AttribList"
#define GLwNvisualInfo "visualInfo"
#define GLwCVisualInfo "VisualInfo"
#define GLwRVisualInfo "VisualInfo"
#define GLwNinstallColormap "installColormap"
#define GLwCInstallColormap "InstallColormap"
#define GLwNallocateBackground "allocateBackground"
#define GLwNallocateOtherColors "allocateOtherColors"
#define GLwCAllocateColors "AllocateColors"
#define GLwNinstallBackground "installBackground"
#define GLwCInstallBackground "InstallBackground"
#define GLwCCallback "Callback"
#define GLwNexposeCallback "exposeCallback"
#define GLwNginitCallback "ginitCallback"
#define GLwNresizeCallback "resizeCallback"
#define GLwNinputCallback "inputCallback"
#define GLwNbufferSize "bufferSize"
#define GLwCBufferSize "BufferSize"
#define GLwNlevel "level"
#define GLwCLevel "Level"
#define GLwNrgba "rgba"
#define GLwCRgba "Rgba"
#define GLwNdoublebuffer "doublebuffer"
#define GLwCDoublebuffer "Doublebuffer"
#define GLwNstereo "stereo"
#define GLwCStereo "Stereo"
#define GLwNauxBuffers "auxBuffers"
#define GLwCAuxBuffers "AuxBuffers"
#define GLwNredSize "redSize"
#define GLwNgreenSize "greenSize"
#define GLwNblueSize "blueSize"
#define GLwCColorSize "ColorSize"
#define GLwNalphaSize "alphaSize"
#define GLwCAlphaSize "AlphaSize"
#define GLwNdepthSize "depthSize"
#define GLwCDepthSize "DepthSize"
#define GLwNstencilSize "stencilSize"
#define GLwCStencilSize "StencilSize"
#define GLwNaccumRedSize "accumRedSize"
#define GLwNaccumGreenSize "accumGreenSize"
#define GLwNaccumBlueSize "accumBlueSize"
#define GLwCAccumColorSize "AccumColorSize"
#define GLwNaccumAlphaSize "accumAlphaSize"
#define GLwCAccumAlphaSize "AccumAlphaSize"
#ifdef __GLX_MOTIF
typedef struct _GLwMDrawingAreaClassRec *GLwMDrawingAreaWidgetClass;
typedef struct _GLwMDrawingAreaRec *GLwMDrawingAreaWidget;
GLAPI WidgetClass glwMDrawingAreaWidgetClass;
#else
typedef struct _GLwDrawingAreaClassRec *GLwDrawingAreaWidgetClass;
typedef struct _GLwDrawingAreaRec *GLwDrawingAreaWidget;
GLAPI WidgetClass glwDrawingAreaWidgetClass;
#endif
/* Callback reasons */
#ifdef __GLX_MOTIF
#define GLwCR_EXPOSE XmCR_EXPOSE
#define GLwCR_RESIZE XmCR_RESIZE
#define GLwCR_INPUT XmCR_INPUT
#else
/* The same values as Motif, but don't use Motif constants */
#define GLwCR_EXPOSE 38
#define GLwCR_RESIZE 39
#define GLwCR_INPUT 40
#endif
#define GLwCR_GINIT 32135 /* Arbitrary number that should neverr clash */
typedef struct
{
int reason;
XEvent *event;
Dimension width,height;
}
GLwDrawingAreaCallbackStruct;
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
/* front ends to glXMakeCurrent and glXSwapBuffers */
GLAPI void GLwDrawingAreaMakeCurrent(Widget w,GLXContext ctx);
GLAPI void GLwDrawingAreaSwapBuffers(Widget w);
#ifdef __GLX_MOTIF
#ifdef _NO_PROTO
GLAPI Widget GLwCreateMDrawingArea();
#else
GLAPI Widget GLwCreateMDrawingArea(Widget parent,char *name,ArgList arglist,Cardinal argcount);
#endif
#endif
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif

View File

@@ -1,130 +0,0 @@
/*
* (c) Copyright 1993, Silicon Graphics, Inc.
* ALL RIGHTS RESERVED
* Permission to use, copy, modify, and distribute this software for
* any purpose and without fee is hereby granted, provided that the above
* copyright notice appear in all copies and that both the copyright notice
* and this permission notice appear in supporting documentation, and that
* the name of Silicon Graphics, Inc. not be used in advertising
* or publicity pertaining to distribution of the software without specific,
* written prior permission.
*
* THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
* AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
* INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
* FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
* GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
* SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
* KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
* LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
* THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
* ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
* POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
* US Government Users Restricted Rights
* Use, duplication, or disclosure by the Government is subject to
* restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
* (c)(1)(ii) of the Rights in Technical Data and Computer Software
* clause at DFARS 252.227-7013 and/or in similar or successor
* clauses in the FAR or the DOD or NASA FAR Supplement.
* Unpublished-- rights reserved under the copyright laws of the
* United States. Contractor/manufacturer is Silicon Graphics,
* Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
*
* OpenGL(TM) is a trademark of Silicon Graphics, Inc.
*/
#ifndef _GLwDrawAP_h
#define _GLwDrawAP_h
/* MOTIF */
#ifdef __GLX_MOTIF
#include "GLwMDrawA.h"
#else
#include "GLwDrawA.h"
#endif
typedef struct _GLwDrawingAreaClassPart {
caddr_t extension;
} GLwDrawingAreaClassPart;
#ifdef __GLX_MOTIF
typedef struct _GLwMDrawingAreaClassRec {
CoreClassPart core_class;
XmPrimitiveClassPart primitive_class;
GLwDrawingAreaClassPart glwDrawingArea_class;
} GLwMDrawingAreaClassRec;
GLAPI GLwMDrawingAreaClassRec glwMDrawingAreaClassRec;
/* XT */
#else
typedef struct _GLwDrawingAreaClassRec {
CoreClassPart core_class;
GLwDrawingAreaClassPart glwDrawingArea_class;
} GLwDrawingAreaClassRec;
GLAPI GLwDrawingAreaClassRec glwDrawingAreaClassRec;
#endif
typedef struct {
/* resources */
int * attribList;
XVisualInfo * visualInfo;
Boolean myList; /* TRUE if we malloced the attribList*/
Boolean myVisual; /* TRUE if we created the visualInfo*/
Boolean installColormap;
Boolean allocateBackground;
Boolean allocateOtherColors;
Boolean installBackground;
XtCallbackList ginitCallback;
XtCallbackList resizeCallback;
XtCallbackList exposeCallback;
XtCallbackList inputCallback;
/* specific attributes; add as we get new attributes */
int bufferSize;
int level;
Boolean rgba;
Boolean doublebuffer;
Boolean stereo;
int auxBuffers;
int redSize;
int greenSize;
int blueSize;
int alphaSize;
int depthSize;
int stencilSize;
int accumRedSize;
int accumGreenSize;
int accumBlueSize;
int accumAlphaSize;
} GLwDrawingAreaPart;
#ifdef __GLX_MOTIF
typedef struct _GLwMDrawingAreaRec {
CorePart core;
XmPrimitivePart primitive;
GLwDrawingAreaPart glwDrawingArea;
} GLwMDrawingAreaRec;
#else
typedef struct _GLwDrawingAreaRec {
CorePart core;
GLwDrawingAreaPart glwDrawingArea;
} GLwDrawingAreaRec;
#endif
#endif

View File

@@ -1,41 +0,0 @@
/*
* (c) Copyright 1993, Silicon Graphics, Inc.
* ALL RIGHTS RESERVED
* Permission to use, copy, modify, and distribute this software for
* any purpose and without fee is hereby granted, provided that the above
* copyright notice appear in all copies and that both the copyright notice
* and this permission notice appear in supporting documentation, and that
* the name of Silicon Graphics, Inc. not be used in advertising
* or publicity pertaining to distribution of the software without specific,
* written prior permission.
*
* THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
* AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
* INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
* FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
* GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
* SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
* KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
* LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
* THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
* ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
* POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
* US Government Users Restricted Rights
* Use, duplication, or disclosure by the Government is subject to
* restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
* (c)(1)(ii) of the Rights in Technical Data and Computer Software
* clause at DFARS 252.227-7013 and/or in similar or successor
* clauses in the FAR or the DOD or NASA FAR Supplement.
* Unpublished-- rights reserved under the copyright laws of the
* United States. Contractor/manufacturer is Silicon Graphics,
* Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
*
* OpenGL(TM) is a trademark of Silicon Graphics, Inc.
*/
#ifndef __GLX_MOTIF
#define __GLX_MOTIF 1
#endif
#include "GLwDrawA.c"

View File

@@ -1,41 +0,0 @@
/*
* (c) Copyright 1993, Silicon Graphics, Inc.
* ALL RIGHTS RESERVED
* Permission to use, copy, modify, and distribute this software for
* any purpose and without fee is hereby granted, provided that the above
* copyright notice appear in all copies and that both the copyright notice
* and this permission notice appear in supporting documentation, and that
* the name of Silicon Graphics, Inc. not be used in advertising
* or publicity pertaining to distribution of the software without specific,
* written prior permission.
*
* THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
* AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
* INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
* FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
* GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
* SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
* KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
* LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
* THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
* ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
* POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
* US Government Users Restricted Rights
* Use, duplication, or disclosure by the Government is subject to
* restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
* (c)(1)(ii) of the Rights in Technical Data and Computer Software
* clause at DFARS 252.227-7013 and/or in similar or successor
* clauses in the FAR or the DOD or NASA FAR Supplement.
* Unpublished-- rights reserved under the copyright laws of the
* United States. Contractor/manufacturer is Silicon Graphics,
* Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
*
* OpenGL(TM) is a trademark of Silicon Graphics, Inc.
*/
#ifndef __GLX_MOTIF
#define __GLX_MOTIF 1
#endif
#include "GLwDrawA.h"

View File

@@ -1,41 +0,0 @@
/*
* (c) Copyright 1993, Silicon Graphics, Inc.
* ALL RIGHTS RESERVED
* Permission to use, copy, modify, and distribute this software for
* any purpose and without fee is hereby granted, provided that the above
* copyright notice appear in all copies and that both the copyright notice
* and this permission notice appear in supporting documentation, and that
* the name of Silicon Graphics, Inc. not be used in advertising
* or publicity pertaining to distribution of the software without specific,
* written prior permission.
*
* THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
* AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
* INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
* FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
* GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
* SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
* KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
* LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
* THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
* ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
* POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
* US Government Users Restricted Rights
* Use, duplication, or disclosure by the Government is subject to
* restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
* (c)(1)(ii) of the Rights in Technical Data and Computer Software
* clause at DFARS 252.227-7013 and/or in similar or successor
* clauses in the FAR or the DOD or NASA FAR Supplement.
* Unpublished-- rights reserved under the copyright laws of the
* United States. Contractor/manufacturer is Silicon Graphics,
* Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
*
* OpenGL(TM) is a trademark of Silicon Graphics, Inc.
*/
#ifndef __GLX_MOTIF
#define __GLX_MOTIF 1
#endif
#include "GLwDrawAP.h"

View File

@@ -1,74 +0,0 @@
# src/glw/Makefile
TOP = ../..
include $(TOP)/configs/current
MAJOR = 1
MINOR = 0
TINY = 0
INCDIRS = -I$(TOP)/include $(MOTIF_CFLAGS) $(X11_INCLUDES)
OBJECTS = $(GLW_SOURCES:.c=.o)
##### RULES #####
.c.o:
$(CC) -c $(INCDIRS) $(CFLAGS) $(GLW_CFLAGS) $<
##### TARGETS #####
default: $(TOP)/$(LIB_DIR)/$(GLW_LIB_NAME)
# GLU pkg-config file
pcedit = sed \
-e 's,@INSTALL_DIR@,$(INSTALL_DIR),' \
-e 's,@INSTALL_LIB_DIR@,$(INSTALL_LIB_DIR),' \
-e 's,@INSTALL_INC_DIR@,$(INSTALL_INC_DIR),' \
-e 's,@VERSION@,$(MAJOR).$(MINOR).$(TINY),' \
-e 's,@GLW_PC_REQ_PRIV@,$(GLW_PC_REQ_PRIV),' \
-e 's,@GLW_PC_LIB_PRIV@,$(GLW_PC_LIB_PRIV),' \
-e 's,@GLW_PC_CFLAGS@,$(GLW_PC_CFLAGS),' \
-e 's,@GLW_LIB@,$(GLW_LIB),'
glw.pc: glw.pc.in
$(pcedit) $< > $@
install: glw.pc
$(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL
$(INSTALL) -d $(DESTDIR)$(INSTALL_LIB_DIR)
$(INSTALL) -d $(DESTDIR)$(INSTALL_LIB_DIR)/pkgconfig
$(INSTALL) -m 644 *.h $(DESTDIR)$(INSTALL_INC_DIR)/GL
$(MINSTALL) $(TOP)/$(LIB_DIR)/$(GLW_LIB_GLOB) $(DESTDIR)$(INSTALL_LIB_DIR)
$(INSTALL) -m 644 glw.pc $(DESTDIR)$(INSTALL_LIB_DIR)/pkgconfig
clean:
-rm -f depend depend.bak
-rm -f *.o *.pc *~
# Make the library
$(TOP)/$(LIB_DIR)/$(GLW_LIB_NAME): $(OBJECTS)
$(MKLIB) -o $(GLW_LIB) -linker '$(CC)' -ldflags '$(LDFLAGS)' \
-major $(MAJOR) -minor $(MINOR) -patch $(TINY) \
$(MKLIB_OPTIONS) -install $(TOP)/$(LIB_DIR) \
-id $(INSTALL_LIB_DIR)/lib$(GLW_LIB).$(MAJOR).dylib \
$(GLW_LIB_DEPS) $(OBJECTS)
#
# Run 'make depend' to update the dependencies if you change what's included
# by any source file.
#
depend: $(GLW_SOURCES)
rm -f depend
touch depend
$(MKDEP) $(MKDEP_OPTIONS) -I$(TOP)/include $(GLW_SOURCES) \
$(X11_INCLUDES) > /dev/null
-include depend

View File

@@ -1,56 +0,0 @@
widgets README file
This directory contains the source code for SGI's OpenGL Xt/Motif widgets,
slightly modified by Jeroen van der Zijp to work better with Mesa.
To compile the widget code (producing lib/libGLw.a) cd to the widgets/
directory and type 'make <config>' where <config> is the system configuration
you used to compile Mesa (like 'make linux'). This hasn't been tested on
many systems so let us know if you have trouble.
If you want to make a Linux ELF shared lib instead of the non-shared .a
file see the notes in the Makefile.
If you want to build with Motif support, edit Makefile.X11, looking
for the "Motif" information.
The SGI copyright is as follows.
* (c) Copyright 1993, Silicon Graphics, Inc.
* ALL RIGHTS RESERVED
* Permission to use, copy, modify, and distribute this software for
* any purpose and without fee is hereby granted, provided that the above
* copyright notice appear in all copies and that both the copyright notice
* and this permission notice appear in supporting documentation, and that
* the name of Silicon Graphics, Inc. not be used in advertising
* or publicity pertaining to distribution of the software without specific,
* written prior permission.
*
* THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
* AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
* INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
* FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
* GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
* SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
* KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
* LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
* THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
* ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
* POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
* US Government Users Restricted Rights
* Use, duplication, or disclosure by the Government is subject to
* restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
* (c)(1)(ii) of the Rights in Technical Data and Computer Software
* clause at DFARS 252.227-7013 and/or in similar or successor
* clauses in the FAR or the DOD or NASA FAR Supplement.
* Unpublished-- rights reserved under the copyright laws of the
* United States. Contractor/manufacturer is Silicon Graphics,
* Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
*
* OpenGL(TM) is a trademark of Silicon Graphics, Inc.

View File

@@ -1,13 +0,0 @@
prefix=@INSTALL_DIR@
exec_prefix=${prefix}
libdir=@INSTALL_LIB_DIR@
includedir=@INSTALL_INC_DIR@
Name: glw
Description: Mesa OpenGL widget library
Requires: gl
Requires.private: @GLW_PC_REQ_PRIV@
Version: @VERSION@
Libs: -L${libdir} -l@GLW_LIB@
Libs.private: @GLW_PC_LIB_PRIV@
Cflags: -I${includedir} @GLW_PC_CFLAGS@