summaryrefslogtreecommitdiffstats
path: root/src/glut/glx/glutint.h
diff options
context:
space:
mode:
authorJosé Fonseca <jfonseca@vmware.com>2011-07-14 17:28:52 +0100
committerJosé Fonseca <jfonseca@vmware.com>2011-07-14 17:35:05 +0100
commit9a7f84d6b28e180ef79349b36de9a5d58a1e2dc9 (patch)
tree31d2acf247f5a0738ed7656f86125fa065ce0a36 /src/glut/glx/glutint.h
parentff2efdf5997d20b41f7a82b77118366e6fbd23bc (diff)
downloadexternal_mesa3d-9a7f84d6b28e180ef79349b36de9a5d58a1e2dc9.tar.gz
external_mesa3d-9a7f84d6b28e180ef79349b36de9a5d58a1e2dc9.tar.bz2
external_mesa3d-9a7f84d6b28e180ef79349b36de9a5d58a1e2dc9.zip
Squashed commit of the following:
commit 1856230d9fa61710cce3e152b8d88b1269611a73 Author: José Fonseca <jose.r.fonseca@gmail.com> Date: Tue Jul 12 23:41:27 2011 +0100 make: Use better var names on packaging. commit d1ae72d0bd14e820ecfe9f8f27b316f9566ceb0c Author: José Fonseca <jose.r.fonseca@gmail.com> Date: Tue Jul 12 23:38:21 2011 +0100 make: Apply several of Dan Nicholson's suggestions. commit f27cf8743ac9cbf4c0ad66aff0cd3f97efde97e4 Author: José Fonseca <jose.r.fonseca@gmail.com> Date: Sat Jul 9 14:18:20 2011 +0100 make: Put back the tar.bz2 creation rule. Removed by accident. commit 34983337f9d7db984e9f0117808274106d262110 Author: José Fonseca <jose.r.fonseca@gmail.com> Date: Sat Jul 9 11:59:29 2011 +0100 make: Determine tarballs contents via git ls-files. The wildcards were a mess: - lots of files for non Linux platforms missing - several files listed and archived twice Using git-ls-files ensures things are not loss when making the tarballs. commit 34a28ccbf459ed5710aafba5e7149e8291cb808c Author: José Fonseca <jose.r.fonseca@gmail.com> Date: Sat Jul 9 11:07:14 2011 +0100 glut: Remove GLUT source. Most distros ship freeglut, and most people don't care one vs the other, and it hasn't been really maintained. So it is better to have Mesa GLUT be revisioned and built separately from Mesa. commit 5c26a2c3c0c7e95ef853e19d12d75c4f80137e7d Author: José Fonseca <jose.r.fonseca@gmail.com> Date: Sat Jul 9 10:31:02 2011 +0100 Ignore the tarballs. commit 26edecac589819f0d0efe2165ab748dbc4e53394 Author: José Fonseca <jose.r.fonseca@gmail.com> Date: Sat Jul 9 10:30:24 2011 +0100 make: Create the Mesa-xxx-devel symlink automatically. Also actually remote the intermediate uncompressed tarballs.
Diffstat (limited to 'src/glut/glx/glutint.h')
-rw-r--r--src/glut/glx/glutint.h798
1 files changed, 0 insertions, 798 deletions
diff --git a/src/glut/glx/glutint.h b/src/glut/glx/glutint.h
deleted file mode 100644
index ba30af60f0..0000000000
--- a/src/glut/glx/glutint.h
+++ /dev/null
@@ -1,798 +0,0 @@
-#ifndef __glutint_h__
-#define __glutint_h__
-
-/* Copyright (c) Mark J. Kilgard, 1994, 1997, 1998. */
-
-/* This program is freely distributable without licensing fees
- and is provided without guarantee or warrantee expressed or
- implied. This program is -not- in the public domain. */
-
-#ifdef __VMS
-#include <GL/vms_x_fix.h>
-#endif
-
-#if defined(__CYGWIN32__)
-#include <sys/time.h>
-#endif
-
-#define SUPPORT_FORTRAN /* With GLUT 3.7, everyone supports Fortran. */
-
-#if defined(_WIN32)
-#include "glutwin32.h"
-#else
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-#define GLX_GLXEXT_PROTOTYPES
-#include <GL/glx.h>
-#endif
-
-#ifndef GLUT_BUILDING_LIB
-#define GLUT_BUILDING_LIB /* Building the GLUT library itself. */
-#endif
-
-#include <GL/glut.h>
-
-#ifndef _WIN32
-/* added by BrianP: */
-#ifndef APIENTRY
-#define APIENTRY GLAPIENTRY
-#endif
-#define __cdecl GLAPIENTRY
-#define CDECL GLAPIENTRY
-#endif
-
-/* GLUT_BUILDING_LIB is used by <GL/glut.h> to 1) not #pragma link
- with the GLUT library, and 2) avoid the Win32 atexit hack. */
-
-#ifdef SUPPORT_FORTRAN
-#include <GL/glutf90.h>
-#endif
-
-#ifdef __vms
-#if ( __VMS_VER < 70000000 )
-#define OLD_VMS
-struct timeval6 {
- __int64 val;
-};
-extern int sys$gettim(struct timeval6 *);
-#else
-#include <time.h>
-#endif
-#else
-#include <sys/types.h>
-#if !defined(_WIN32) || defined(__CYGWIN32__)
-#include <sys/time.h>
-#else
-#include <winsock.h>
-#endif
-#endif
-#if defined(__vms) && ( __VMS_VER < 70000000 )
-
-/* For VMS6.2 or lower :
- One TICK on VMS is 100 nanoseconds; 0.1 microseconds or
- 0.0001 milliseconds. This means that there are 0.01
- ticks/ns, 10 ticks/us, 10,000 ticks/ms and 10,000,000
- ticks/second. */
-
-#define TICKS_PER_MILLISECOND 10000
-#define TICKS_PER_SECOND 10000000
-
-#define GETTIMEOFDAY(_x) (void) sys$gettim (_x);
-
-#define ADD_TIME(dest, src1, src2) { \
- (dest).val = (src1).val + (src2).val; \
-}
-
-#define TIMEDELTA(dest, src1, src2) { \
- (dest).val = (src1).val - (src2).val; \
-}
-
-#define IS_AFTER(t1, t2) ((t2).val > (t1).val)
-
-#define IS_AT_OR_AFTER(t1, t2) ((t2).val >= (t1).val)
-
-#else
-#if defined(SVR4) && !defined(sun) /* Sun claims SVR4, but
- wants 2 args. */
-#define GETTIMEOFDAY(_x) gettimeofday(_x)
-#else
-#define GETTIMEOFDAY(_x) gettimeofday(_x, NULL)
-#endif
-#define ADD_TIME(dest, src1, src2) { \
- if(((dest).tv_usec = \
- (src1).tv_usec + (src2).tv_usec) >= 1000000) { \
- (dest).tv_usec -= 1000000; \
- (dest).tv_sec = (src1).tv_sec + (src2).tv_sec + 1; \
- } else { \
- (dest).tv_sec = (src1).tv_sec + (src2).tv_sec; \
- if(((dest).tv_sec >= 1) && (((dest).tv_usec <0))) { \
- (dest).tv_sec --;(dest).tv_usec += 1000000; \
- } \
- } \
-}
-#define TIMEDELTA(dest, src1, src2) { \
- if(((dest).tv_usec = (src1).tv_usec - (src2).tv_usec) < 0) { \
- (dest).tv_usec += 1000000; \
- (dest).tv_sec = (src1).tv_sec - (src2).tv_sec - 1; \
- } else { \
- (dest).tv_sec = (src1).tv_sec - (src2).tv_sec; \
- } \
-}
-#define IS_AFTER(t1, t2) \
- (((t2).tv_sec > (t1).tv_sec) || \
- (((t2).tv_sec == (t1).tv_sec) && \
- ((t2).tv_usec > (t1).tv_usec)))
-#define IS_AT_OR_AFTER(t1, t2) \
- (((t2).tv_sec > (t1).tv_sec) || \
- (((t2).tv_sec == (t1).tv_sec) && \
- ((t2).tv_usec >= (t1).tv_usec)))
-#endif
-
-#define IGNORE_IN_GAME_MODE() \
- { if (__glutGameModeWindow) return; }
-
-#define GLUT_WIND_IS_RGB(x) (((x) & GLUT_INDEX) == 0)
-#define GLUT_WIND_IS_INDEX(x) (((x) & GLUT_INDEX) != 0)
-#define GLUT_WIND_IS_SINGLE(x) (((x) & GLUT_DOUBLE) == 0)
-#define GLUT_WIND_IS_DOUBLE(x) (((x) & GLUT_DOUBLE) != 0)
-#define GLUT_WIND_HAS_ACCUM(x) (((x) & GLUT_ACCUM) != 0)
-#define GLUT_WIND_HAS_ALPHA(x) (((x) & GLUT_ALPHA) != 0)
-#define GLUT_WIND_HAS_DEPTH(x) (((x) & GLUT_DEPTH) != 0)
-#define GLUT_WIND_HAS_STENCIL(x) (((x) & GLUT_STENCIL) != 0)
-#define GLUT_WIND_IS_MULTISAMPLE(x) (((x) & GLUT_MULTISAMPLE) != 0)
-#define GLUT_WIND_IS_STEREO(x) (((x) & GLUT_STEREO) != 0)
-#define GLUT_WIND_IS_LUMINANCE(x) (((x) & GLUT_LUMINANCE) != 0)
-#define GLUT_MAP_WORK (1 << 0)
-#define GLUT_EVENT_MASK_WORK (1 << 1)
-#define GLUT_REDISPLAY_WORK (1 << 2)
-#define GLUT_CONFIGURE_WORK (1 << 3)
-#define GLUT_COLORMAP_WORK (1 << 4)
-#define GLUT_DEVICE_MASK_WORK (1 << 5)
-#define GLUT_FINISH_WORK (1 << 6)
-#define GLUT_DEBUG_WORK (1 << 7)
-#define GLUT_DUMMY_WORK (1 << 8)
-#define GLUT_FULL_SCREEN_WORK (1 << 9)
-#define GLUT_OVERLAY_REDISPLAY_WORK (1 << 10)
-#define GLUT_REPAIR_WORK (1 << 11)
-#define GLUT_OVERLAY_REPAIR_WORK (1 << 12)
-
-/* Frame buffer capability macros and types. */
-#define RGBA 0
-#define BUFFER_SIZE 1
-#define DOUBLEBUFFER 2
-#define STEREO 3
-#define AUX_BUFFERS 4
-#define RED_SIZE 5 /* Used as mask bit for
- "color selected". */
-#define GREEN_SIZE 6
-#define BLUE_SIZE 7
-#define ALPHA_SIZE 8
-#define DEPTH_SIZE 9
-#define STENCIL_SIZE 10
-#define ACCUM_RED_SIZE 11 /* Used as mask bit for
- "acc selected". */
-#define ACCUM_GREEN_SIZE 12
-#define ACCUM_BLUE_SIZE 13
-#define ACCUM_ALPHA_SIZE 14
-#define LEVEL 15
-
-#define NUM_GLXCAPS (LEVEL + 1)
-
-#define XVISUAL (NUM_GLXCAPS + 0)
-#define TRANSPARENT (NUM_GLXCAPS + 1)
-#define SAMPLES (NUM_GLXCAPS + 2)
-#define XSTATICGRAY (NUM_GLXCAPS + 3) /* Used as
- mask bit
- for "any
- visual type
- selected". */
-#define XGRAYSCALE (NUM_GLXCAPS + 4)
-#define XSTATICCOLOR (NUM_GLXCAPS + 5)
-#define XPSEUDOCOLOR (NUM_GLXCAPS + 6)
-#define XTRUECOLOR (NUM_GLXCAPS + 7)
-#define XDIRECTCOLOR (NUM_GLXCAPS + 8)
-#define SLOW (NUM_GLXCAPS + 9)
-#define CONFORMANT (NUM_GLXCAPS + 10)
-
-#define NUM_CAPS (NUM_GLXCAPS + 11)
-
-/* Frame buffer capablities that don't have a corresponding
- FrameBufferMode entry. These get used as mask bits. */
-#define NUM (NUM_CAPS + 0)
-#define RGBA_MODE (NUM_CAPS + 1)
-#define CI_MODE (NUM_CAPS + 2)
-#define LUMINANCE_MODE (NUM_CAPS + 3)
-
-#define NONE 0
-#define EQ 1
-#define NEQ 2
-#define LTE 3
-#define GTE 4
-#define GT 5
-#define LT 6
-#define MIN 7
-
-typedef struct _Criterion {
- int capability;
- int comparison;
- int value;
-} Criterion;
-
-typedef struct _FrameBufferMode {
- XVisualInfo *vi;
-#if defined(GLX_VERSION_1_1) && defined(GLX_SGIX_fbconfig)
-
- /* fbc is non-NULL when the XVisualInfo* is not OpenGL-capable
- (ie, GLX_USE_GL is false), but the SGIX_fbconfig extension shows
- the visual's fbconfig is OpenGL-capable. The reason for this is typically
- an RGBA luminance fbconfig such as 16-bit StaticGray that could
- not be advertised as a GLX visual since StaticGray visuals are
- required (by the GLX specification) to be color index. The
- SGIX_fbconfig allows StaticGray visuals to instead advertised as
- fbconfigs that can provide RGBA luminance support. */
-
- GLXFBConfigSGIX fbc;
-#endif
- int valid;
- int cap[NUM_CAPS];
-} FrameBufferMode;
-
-/* DisplayMode capability macros for game mode. */
-#define DM_WIDTH 0 /* "width" */
-#define DM_HEIGHT 1 /* "height" */
-#define DM_PIXEL_DEPTH 2 /* "bpp" (bits per pixel) */
-#define DM_HERTZ 3 /* "hertz" */
-#define DM_NUM 4 /* "num" */
-
-#define NUM_DM_CAPS (DM_NUM+1)
-
-typedef struct _DisplayMode {
-#ifdef _WIN32
- DEVMODE devmode;
-#else
- /* XXX The X Window System does not have a standard
- mechanism for display setting changes. On SGI
- systems, GLUT could use the XSGIvc (SGI X video
- control extension). Perhaps this can be done in
- a future release of GLUT. */
-#endif
- int valid;
- int cap[NUM_DM_CAPS];
-} DisplayMode;
-
-/* GLUT function types */
-typedef void (GLUTCALLBACK *GLUTdisplayCB) (void);
-typedef void (GLUTCALLBACK *GLUTreshapeCB) (int, int);
-typedef void (GLUTCALLBACK *GLUTkeyboardCB) (unsigned char, int, int);
-typedef void (GLUTCALLBACK *GLUTmouseCB) (int, int, int, int);
-typedef void (GLUTCALLBACK *GLUTmotionCB) (int, int);
-typedef void (GLUTCALLBACK *GLUTpassiveCB) (int, int);
-typedef void (GLUTCALLBACK *GLUTentryCB) (int);
-typedef void (GLUTCALLBACK *GLUTvisibilityCB) (int);
-typedef void (GLUTCALLBACK *GLUTwindowStatusCB) (int);
-typedef void (GLUTCALLBACK *GLUTidleCB) (void);
-typedef void (GLUTCALLBACK *GLUTtimerCB) (int);
-typedef void (GLUTCALLBACK *GLUTmenuStateCB) (int); /* DEPRICATED. */
-typedef void (GLUTCALLBACK *GLUTmenuStatusCB) (int, int, int);
-typedef void (GLUTCALLBACK *GLUTselectCB) (int);
-typedef void (GLUTCALLBACK *GLUTspecialCB) (int, int, int);
-typedef void (GLUTCALLBACK *GLUTspaceMotionCB) (int, int, int);
-typedef void (GLUTCALLBACK *GLUTspaceRotateCB) (int, int, int);
-typedef void (GLUTCALLBACK *GLUTspaceButtonCB) (int, int);
-typedef void (GLUTCALLBACK *GLUTdialsCB) (int, int);
-typedef void (GLUTCALLBACK *GLUTbuttonBoxCB) (int, int);
-typedef void (GLUTCALLBACK *GLUTtabletMotionCB) (int, int);
-typedef void (GLUTCALLBACK *GLUTtabletButtonCB) (int, int, int, int);
-typedef void (GLUTCALLBACK *GLUTjoystickCB) (unsigned int buttonMask, int x, int y, int z);
-
-typedef struct _GLUTcolorcell GLUTcolorcell;
-struct _GLUTcolorcell {
- /* GLUT_RED, GLUT_GREEN, GLUT_BLUE */
- GLfloat component[3];
-};
-
-typedef struct _GLUTcolormap GLUTcolormap;
-struct _GLUTcolormap {
- Visual *visual; /* visual of the colormap */
- Colormap cmap; /* X colormap ID */
- int refcnt; /* number of windows using colormap */
- int size; /* number of cells in colormap */
- int transparent; /* transparent pixel, or -1 if opaque */
- GLUTcolorcell *cells; /* array of cells */
- GLUTcolormap *next; /* next colormap in list */
-};
-
-typedef struct _GLUTwindow GLUTwindow;
-typedef struct _GLUToverlay GLUToverlay;
-struct _GLUTwindow {
- int num; /* Small integer window id (0-based). */
-
- /* Window system related state. */
-#if defined(_WIN32)
- int pf; /* Pixel format. */
- HDC hdc; /* Window's Win32 device context. */
-#endif
- Window win; /* X window for GLUT window */
- GLXContext ctx; /* OpenGL context GLUT glut window */
- XVisualInfo *vis; /* visual for window */
- Bool visAlloced; /* if vis needs deallocate on destroy */
- Colormap cmap; /* RGB colormap for window; None if CI */
- GLUTcolormap *colormap; /* colormap; NULL if RGBA */
- GLUToverlay *overlay; /* overlay; NULL if no overlay */
-#if defined(_WIN32)
- HDC renderDc; /* Win32's device context for rendering. */
-#endif
- Window renderWin; /* X window for rendering (might be
- overlay) */
- GLXContext renderCtx; /* OpenGL context for rendering (might
- be overlay) */
- /* GLUT settable or visible window state. */
- int width; /* window width in pixels */
- int height; /* window height in pixels */
- int cursor; /* cursor name */
- int visState; /* visibility state (-1 is unknown) */
- int shownState; /* if window mapped */
- int entryState; /* entry state (-1 is unknown) */
-#define GLUT_MAX_MENUS 3
-
- int menu[GLUT_MAX_MENUS]; /* attatched menu nums */
- /* Window relationship state. */
- GLUTwindow *parent; /* parent window */
- GLUTwindow *children; /* list of children */
- GLUTwindow *siblings; /* list of siblings */
- /* Misc. non-API visible (hidden) state. */
- Bool treatAsSingle; /* treat this window as single-buffered
- (it might be "fake" though) */
- Bool forceReshape; /* force reshape before display */
-#if !defined(_WIN32)
- Bool isDirect; /* if direct context (X11 only) */
-#endif
- Bool usedSwapBuffers; /* if swap buffers used last display */
- long eventMask; /* mask of X events selected for */
- int buttonUses; /* number of button uses, ref cnt */
- int tabletPos[2]; /* tablet position (-1 is invalid) */
- /* Work list related state. */
- unsigned int workMask; /* mask of window work to be done */
- GLUTwindow *prevWorkWin; /* link list of windows to work on */
- Bool desiredMapState; /* how to mapped window if on map work
- list */
- Bool ignoreKeyRepeat; /* if window ignores autorepeat */
- int desiredConfMask; /* mask of desired window configuration
- */
- int desiredX; /* desired X location */
- int desiredY; /* desired Y location */
- int desiredWidth; /* desired window width */
- int desiredHeight; /* desired window height */
- int desiredStack; /* desired window stack */
- /* Per-window callbacks. */
- GLUTdisplayCB display; /* redraw */
- GLUTreshapeCB reshape; /* resize (width,height) */
- GLUTmouseCB mouse; /* mouse (button,state,x,y) */
- GLUTmotionCB motion; /* motion (x,y) */
- GLUTpassiveCB passive; /* passive motion (x,y) */
- GLUTentryCB entry; /* window entry/exit (state) */
- GLUTkeyboardCB keyboard; /* keyboard (ASCII,x,y) */
- GLUTkeyboardCB keyboardUp; /* keyboard up (ASCII,x,y) */
- GLUTwindowStatusCB windowStatus; /* window status */
- GLUTvisibilityCB visibility; /* visibility */
- GLUTspecialCB special; /* special key */
- GLUTspecialCB specialUp; /* special up key */
- GLUTbuttonBoxCB buttonBox; /* button box */
- GLUTdialsCB dials; /* dials */
- GLUTspaceMotionCB spaceMotion; /* Spaceball motion */
- GLUTspaceRotateCB spaceRotate; /* Spaceball rotate */
- GLUTspaceButtonCB spaceButton; /* Spaceball button */
- GLUTtabletMotionCB tabletMotion; /* tablet motion */
- GLUTtabletButtonCB tabletButton; /* tablet button */
-#ifdef _WIN32
- GLUTjoystickCB joystick; /* joystick */
- int joyPollInterval; /* joystick polling interval */
-#endif
-#ifdef SUPPORT_FORTRAN
- GLUTdisplayFCB fdisplay; /* Fortran display */
- GLUTreshapeFCB freshape; /* Fortran reshape */
- GLUTmouseFCB fmouse; /* Fortran mouse */
- GLUTmotionFCB fmotion; /* Fortran motion */
- GLUTpassiveFCB fpassive; /* Fortran passive */
- GLUTentryFCB fentry; /* Fortran entry */
- GLUTkeyboardFCB fkeyboard; /* Fortran keyboard */
- GLUTkeyboardFCB fkeyboardUp; /* Fortran keyboard up */
- GLUTwindowStatusFCB fwindowStatus; /* Fortran window status */
- GLUTvisibilityFCB fvisibility; /* Fortran visibility */
- GLUTspecialFCB fspecial; /* special key */
- GLUTspecialFCB fspecialUp; /* special key up */
- GLUTbuttonBoxFCB fbuttonBox; /* button box */
- GLUTdialsFCB fdials; /* dials */
- GLUTspaceMotionFCB fspaceMotion; /* Spaceball motion */
- GLUTspaceRotateFCB fspaceRotate; /* Spaceball rotate */
- GLUTspaceButtonFCB fspaceButton; /* Spaceball button */
- GLUTtabletMotionFCB ftabletMotion; /* tablet motion */
- GLUTtabletButtonFCB ftabletButton; /* tablet button */
-#ifdef _WIN32
- GLUTjoystickFCB fjoystick; /* joystick */
-#endif
-#endif
-};
-
-struct _GLUToverlay {
-#if defined(_WIN32)
- int pf;
- HDC hdc;
-#endif
- Window win;
- GLXContext ctx;
- XVisualInfo *vis; /* visual for window */
- Bool visAlloced; /* if vis needs deallocate on destroy */
- Colormap cmap; /* RGB colormap for window; None if CI */
- GLUTcolormap *colormap; /* colormap; NULL if RGBA */
- int shownState; /* if overlay window mapped */
- Bool treatAsSingle; /* treat as single-buffered */
-#if !defined(_WIN32)
- Bool isDirect; /* if direct context */
-#endif
- int transparentPixel; /* transparent pixel value */
- GLUTdisplayCB display; /* redraw */
-#ifdef SUPPORT_FORTRAN
- GLUTdisplayFCB fdisplay; /* redraw */
-#endif
-};
-
-typedef struct _GLUTstale GLUTstale;
-struct _GLUTstale {
- GLUTwindow *window;
- Window win;
- GLUTstale *next;
-};
-
-extern GLUTstale *__glutStaleWindowList;
-
-#define GLUT_OVERLAY_EVENT_FILTER_MASK \
- (ExposureMask | \
- StructureNotifyMask | \
- EnterWindowMask | \
- LeaveWindowMask)
-#define GLUT_DONT_PROPAGATE_FILTER_MASK \
- (ButtonReleaseMask | \
- ButtonPressMask | \
- KeyPressMask | \
- KeyReleaseMask | \
- PointerMotionMask | \
- Button1MotionMask | \
- Button2MotionMask | \
- Button3MotionMask)
-#define GLUT_HACK_STOP_PROPAGATE_MASK \
- (KeyPressMask | \
- KeyReleaseMask)
-
-typedef struct _GLUTmenu GLUTmenu;
-typedef struct _GLUTmenuItem GLUTmenuItem;
-struct _GLUTmenu {
- int id; /* small integer menu id (0-based) */
- Window win; /* X window for the menu */
- GLUTselectCB select; /* function of menu */
- GLUTmenuItem *list; /* list of menu entries */
- int num; /* number of entries */
-#if !defined(_WIN32)
- Bool managed; /* are the InputOnly windows size
- validated? */
- Bool searched; /* help detect menu loops */
- int pixheight; /* height of menu in pixels */
- int pixwidth; /* width of menu in pixels */
-#endif
- int submenus; /* number of submenu entries */
- GLUTmenuItem *highlighted; /* pointer to highlighted menu
- entry, NULL not highlighted */
- GLUTmenu *cascade; /* currently cascading this menu */
- GLUTmenuItem *anchor; /* currently anchored to this entry */
- int x; /* current x origin relative to the
- root window */
- int y; /* current y origin relative to the
- root window */
-#ifdef SUPPORT_FORTRAN
- GLUTselectFCB fselect; /* function of menu */
-#endif
-};
-
-struct _GLUTmenuItem {
- Window win; /* InputOnly X window for entry */
- GLUTmenu *menu; /* menu entry belongs to */
- Bool isTrigger; /* is a submenu trigger? */
- int value; /* value to return for selecting this
- entry; doubles as submenu id
- (0-base) if submenu trigger */
-#if defined(_WIN32)
- UINT unique; /* unique menu item id (Win32 only) */
-#endif
- char *label; /* __glutStrdup'ed label string */
- int len; /* length of label string */
- int pixwidth; /* width of X window in pixels */
- GLUTmenuItem *next; /* next menu entry on list for menu */
-};
-
-typedef struct _GLUTtimer GLUTtimer;
-struct _GLUTtimer {
- GLUTtimer *next; /* list of timers */
-#ifdef OLD_VMS
- struct timeval6 timeout; /* time to be called */
-#else
- struct timeval timeout; /* time to be called */
-#endif
- GLUTtimerCB func; /* timer (value) */
- int value; /* return value */
-#ifdef SUPPORT_FORTRAN
- GLUTtimerFCB ffunc; /* Fortran timer */
-#endif
-};
-
-typedef struct _GLUTeventParser GLUTeventParser;
-struct _GLUTeventParser {
- int (*func) (XEvent *);
- GLUTeventParser *next;
-};
-
-/* Declarations to implement glutFullScreen support with
- mwm/4Dwm. */
-
-/* The following X property format is defined in Motif 1.1's
- Xm/MwmUtils.h, but GLUT should not depend on that header
- file. Note: Motif 1.2 expanded this structure with
- uninteresting fields (to GLUT) so just stick with the
- smaller Motif 1.1 structure. */
-typedef struct {
-#define MWM_HINTS_DECORATIONS 2
- long flags;
- long functions;
- long decorations;
- long input_mode;
-} MotifWmHints;
-
-/* Make current and buffer swap macros. */
-#ifdef _WIN32
-#define MAKE_CURRENT_LAYER(window) \
- { \
- HGLRC currentContext = wglGetCurrentContext(); \
- HDC currentDc = wglGetCurrentDC(); \
- \
- if (currentContext != window->renderCtx \
- || currentDc != window->renderDc) { \
- wglMakeCurrent(window->renderDc, window->renderCtx); \
- } \
- }
-#define MAKE_CURRENT_WINDOW(window) \
- { \
- HGLRC currentContext = wglGetCurrentContext(); \
- HDC currentDc = wglGetCurrentDC(); \
- \
- if (currentContext != window->ctx || currentDc != window->hdc) { \
- wglMakeCurrent(window->hdc, window->ctx); \
- } \
- }
-#define MAKE_CURRENT_OVERLAY(overlay) \
- wglMakeCurrent(overlay->hdc, overlay->ctx)
-#define UNMAKE_CURRENT() \
- wglMakeCurrent(NULL, NULL)
-#define SWAP_BUFFERS_WINDOW(window) \
- SwapBuffers(window->hdc)
-#define SWAP_BUFFERS_LAYER(window) \
- SwapBuffers(window->renderDc)
-#else
-#define MAKE_CURRENT_LAYER(window) \
- glXMakeCurrent(__glutDisplay, window->renderWin, window->renderCtx)
-#define MAKE_CURRENT_WINDOW(window) \
- glXMakeCurrent(__glutDisplay, window->win, window->ctx)
-#define MAKE_CURRENT_OVERLAY(overlay) \
- glXMakeCurrent(__glutDisplay, overlay->win, overlay->ctx)
-#define UNMAKE_CURRENT() \
- glXMakeCurrent(__glutDisplay, None, NULL)
-#define SWAP_BUFFERS_WINDOW(window) \
- glXSwapBuffers(__glutDisplay, window->win)
-#define SWAP_BUFFERS_LAYER(window) \
- glXSwapBuffers(__glutDisplay, window->renderWin)
-#endif
-
-/* private variables from glut_event.c */
-extern GLUTwindow *__glutWindowWorkList;
-extern int __glutWindowDamaged;
-#ifdef SUPPORT_FORTRAN
-extern GLUTtimer *__glutTimerList;
-extern GLUTtimer *__glutNewTimer;
-#endif
-extern GLUTmenu *__glutMappedMenu;
-
-extern void (*__glutUpdateInputDeviceMaskFunc) (GLUTwindow *);
-#if !defined(_WIN32)
-extern void (*__glutMenuItemEnterOrLeave)(GLUTmenuItem * item,
- int num, int type);
-extern void (*__glutFinishMenu)(Window win, int x, int y);
-extern void (*__glutPaintMenu)(GLUTmenu * menu);
-extern void (*__glutStartMenu)(GLUTmenu * menu,
- GLUTwindow * window, int x, int y, int x_win, int y_win);
-extern GLUTmenu * (*__glutGetMenuByNum)(int menunum);
-extern GLUTmenuItem * (*__glutGetMenuItem)(GLUTmenu * menu,
- Window win, int *which);
-extern GLUTmenu * (*__glutGetMenu)(Window win);
-#endif
-
-/* private variables from glut_init.c */
-extern Atom __glutWMDeleteWindow;
-extern Display *__glutDisplay;
-extern unsigned int __glutDisplayMode;
-extern char *__glutDisplayString;
-extern XVisualInfo *(*__glutDetermineVisualFromString) (char *string, Bool * treatAsSingle,
- Criterion * requiredCriteria, int nRequired, int requiredMask, void **fbc);
-extern GLboolean __glutDebug;
-extern GLboolean __glutForceDirect;
-extern GLboolean __glutIconic;
-extern GLboolean __glutTryDirect;
-extern Window __glutRoot;
-extern XSizeHints __glutSizeHints;
-extern char **__glutArgv;
-extern char *__glutProgramName;
-extern int __glutArgc;
-extern int __glutConnectionFD;
-extern int __glutInitHeight;
-extern int __glutInitWidth;
-extern int __glutInitX;
-extern int __glutInitY;
-extern int __glutScreen;
-extern int __glutScreenHeight;
-extern int __glutScreenWidth;
-extern Atom __glutMotifHints;
-extern unsigned int __glutModifierMask;
-#ifdef _WIN32
-extern void (__cdecl *__glutExitFunc)(int retval);
-#endif
-extern char *__glutPPMFile;
-
-/* private variables from glut_menu.c */
-extern GLUTmenuItem *__glutItemSelected;
-extern GLUTmenu **__glutMenuList;
-extern void (GLUTCALLBACK *__glutMenuStatusFunc) (int, int, int);
-extern void __glutMenuModificationError(void);
-extern void __glutSetMenuItem(GLUTmenuItem * item,
- const char *label, int value, Bool isTrigger);
-
-/* private variables from glut_win.c */
-extern GLUTwindow **__glutWindowList;
-extern GLUTwindow *__glutCurrentWindow;
-extern GLUTwindow *__glutMenuWindow;
-extern GLUTmenu *__glutCurrentMenu;
-extern int __glutWindowListSize;
-extern void (*__glutFreeOverlayFunc) (GLUToverlay *);
-extern void __glutFreeOverlay(GLUToverlay * overlay);
-extern XVisualInfo *__glutDetermineWindowVisual(Bool * treatAsSingle,
- Bool * visAlloced, void **fbc);
-
-/* private variables from glut_ppm.c */
-extern void __glutWritePPMFile(void);
-
-/* private variables from glut_mesa.c */
-extern int __glutMesaSwapHackSupport;
-
-/* private variables from glut_gamemode.c */
-extern GLUTwindow *__glutGameModeWindow;
-
-/* private routines from glut_cindex.c */
-extern GLUTcolormap * __glutAssociateNewColormap(XVisualInfo * vis);
-extern void __glutFreeColormap(GLUTcolormap *);
-
-/* private routines from glut_cmap.c */
-extern void __glutSetupColormap(
- XVisualInfo * vi,
- GLUTcolormap ** colormap,
- Colormap * cmap);
-#if !defined(_WIN32)
-extern void __glutEstablishColormapsProperty(
- GLUTwindow * window);
-extern GLUTwindow *__glutToplevelOf(GLUTwindow * window);
-#endif
-
-/* private routines from glut_cursor.c */
-extern void __glutSetCursor(GLUTwindow *window);
-
-/* private routines from glut_event.c */
-extern void __glutPutOnWorkList(GLUTwindow * window,
- int work_mask);
-extern void __glutRegisterEventParser(GLUTeventParser * parser);
-extern void __glutPostRedisplay(GLUTwindow * window, int layerMask);
-extern void handleTimeouts(void);
-
-/* private routines from glut_init.c */
-#if !defined(_WIN32)
-extern void __glutOpenXConnection(char *display);
-#else
-extern void __glutOpenWin32Connection(char *display);
-#endif
-#ifdef OLD_VMS
-extern void __glutInitTime(struct timeval6 *beginning);
-#else
-extern void __glutInitTime(struct timeval *beginning);
-#endif
-
-/* private routines for glut_menu.c (or win32_menu.c) */
-#if defined(_WIN32)
-extern GLUTmenu *__glutGetMenu(Window win);
-extern GLUTmenu *__glutGetMenuByNum(int menunum);
-extern GLUTmenuItem *__glutGetMenuItem(GLUTmenu * menu,
- Window win, int *which);
-extern void __glutStartMenu(GLUTmenu * menu,
- GLUTwindow * window, int x, int y, int x_win, int y_win);
-extern void __glutFinishMenu(Window win, int x, int y);
-#endif
-extern void __glutSetMenu(GLUTmenu * menu);
-
-/* private routines from glut_util.c */
-extern char * __glutStrdup(const char *string);
-extern void __glutWarning(char *format,...);
-extern void __glutFatalError(char *format,...);
-extern void __glutFatalUsage(char *format,...);
-
-/* private routines from glut_win.c */
-extern GLUTwindow *__glutGetWindow(Window win);
-extern void __glutChangeWindowEventMask(long mask, Bool add);
-extern XVisualInfo *__glutDetermineVisual(
- unsigned int mode,
- Bool * fakeSingle,
- XVisualInfo * (getVisualInfo) (unsigned int));
-extern XVisualInfo *__glutGetVisualInfo(unsigned int mode);
-extern void __glutSetWindow(GLUTwindow * window);
-extern void __glutReshapeFunc(GLUTreshapeCB reshapeFunc,
- int callingConvention);
-extern void GLUTCALLBACK __glutDefaultReshape(int, int);
-extern GLUTwindow *__glutCreateWindow(
- GLUTwindow * parent,
- int x, int y, int width, int height, int gamemode);
-extern void __glutDestroyWindow(
- GLUTwindow * window,
- GLUTwindow * initialWindow);
-
-#if !defined(_WIN32)
-/* private routines from glut_glxext.c */
-extern int __glutIsSupportedByGLX(char *);
-extern int __glut_glXBindChannelToWindowSGIX(Display *dpy, int screen,
- int channel, Window window);
-extern int __glut_glXChannelRectSGIX(Display *dpy, int screen, int channel,
- int x, int y, int w, int h);
-extern int __glut_glXQueryChannelRectSGIX(Display *dpy, int screen,
- int channel, int *x, int *y,
- int *w, int *h);
-extern int __glut_glXQueryChannelDeltasSGIX(Display *dpy, int screen,
- int channel, int *dx, int *dy,
- int *dw, int *dh);
-extern int __glut_glXChannelRectSyncSGIX(Display *dpy, int screen, int channel,
- GLenum synctype);
-extern GLXContext __glut_glXCreateContextWithConfigSGIX(Display *dpy,
- GLXFBConfigSGIX config,
- int render_type,
- GLXContext share_list,
- Bool direct);
-extern int __glut_glXGetFBConfigAttribSGIX(Display *dpy,
- GLXFBConfigSGIX config,
- int attribute,
- int *value);
-extern GLXFBConfigSGIX __glut_glXGetFBConfigFromVisualSGIX(Display *dpy,
- XVisualInfo *vis);
-#endif
-
-/* private routines from glut_input.c */
-extern void __glutUpdateInputDeviceMask(GLUTwindow * window);
-
-/* private routines from glut_mesa.c */
-extern void __glutDetermineMesaSwapHackSupport(void);
-
-/* private routines from glut_gameglut.c */
-extern void __glutCloseDownGameMode(void);
-
-/* private variables from glut_swap.c (BrianP) */
-extern GLint __glutFPS;
-extern GLint __glutSwapCount;
-extern GLint __glutSwapTime;
-
-#if defined(_WIN32)
-/* private routines from win32_*.c */
-extern LONG WINAPI __glutWindowProc(HWND win, UINT msg, WPARAM w, LPARAM l);
-extern HDC XHDC;
-#endif
-
-
-#endif /* __glutint_h__ */