From 84396a72dffd04115e2952847793261143ba1f09 Mon Sep 17 00:00:00 2001 From: Daniel Borca Date: Mon, 14 Feb 2005 15:04:52 +0000 Subject: separated DOS GLUT from GLX GLUT. added a few FreeGLUT specific functions. --- src/glut/dos/internal.h | 197 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 197 insertions(+) create mode 100644 src/glut/dos/internal.h (limited to 'src/glut/dos/internal.h') diff --git a/src/glut/dos/internal.h b/src/glut/dos/internal.h new file mode 100644 index 0000000000..063c2d00d9 --- /dev/null +++ b/src/glut/dos/internal.h @@ -0,0 +1,197 @@ +/* + * DOS/DJGPP Mesa Utility Toolkit + * Version: 1.0 + * + * Copyright (C) 2005 Daniel Borca All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * DANIEL BORCA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + +#ifndef INTERNAL_H_included +#define INTERNAL_H_included + +#include + +#include "GL/dmesa.h" + + +#define MAX_WINDOWS 2 +#define MAX_TIMER_CB 8 +#define RESERVED_COLORS 0 + + +/* 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); /* DEPRECATED. */ +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, int, int, int); + +typedef void (GLUTCALLBACK *GLUTdestroyCB) (void); +typedef void (GLUTCALLBACK *GLUTmouseWheelCB) (int, int, int, int); +typedef void (GLUTCALLBACK *GLUTmenuDestroyCB) (void); + + +typedef struct { + GLuint bpp, alpha; + GLuint depth, stencil; + GLuint accum; + + GLint geometry[2]; + GLuint refresh; + + GLint flags; +} GLUTvisual; + +typedef struct { + GLint x, y; + GLint width, height; + GLuint mode; +} GLUTdefault; + +typedef struct { + void (*func) (int); + int value; + int time; +} GLUTSShotCB; + +typedef struct GLUTwindow { + int num; /* window id */ + + DMesaContext context; + DMesaBuffer buffer; + + int show_mouse; + GLboolean redisplay; + + /* GLUT settable or visible window state. */ + int xpos; + int ypos; + int width; /* window width in pixels */ + int height; /* window height in pixels */ + + /* 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 */ + GLUTjoystickCB joystick; /* joystick */ + + GLUTdestroyCB destroy; /* destroy */ + GLUTmouseWheelCB mouseWheel; /* mouse wheel */ + + /* specific data */ + void *data; +} GLUTwindow; + +typedef struct { + int width, height; + int xorig, yorig; + int xmove; + const unsigned char *bitmap; +} GLUTBitmapChar; + +typedef struct { + const char *name; + int height; + int num; + const GLUTBitmapChar *const *table; +} GLUTBitmapFont; + +typedef struct { + const GLfloat x, y; +} GLUTStrokeVertex; + +typedef struct { + const unsigned num; + const GLUTStrokeVertex *vertex; +} GLUTStrokeStrip; + +typedef struct { + const GLfloat right; + const unsigned num; + const GLUTStrokeStrip *strip; +} GLUTStrokeChar; + +typedef struct { + const char *name; + const unsigned num; + const GLUTStrokeChar *const *table; + const GLfloat height; + const GLfloat descent; +} GLUTStrokeFont; + + +extern char *__glutProgramName; + +extern GLUTvisual _glut_visual; +extern GLUTdefault _glut_default; + +extern GLuint _glut_fps; +extern GLUTidleCB _glut_idle_func; +extern GLUTmenuStatusCB _glut_menu_status_func; +extern GLUTSShotCB _glut_timer_cb[]; + +extern GLUTwindow *_glut_current, *_glut_windows[]; + +extern int _glut_mouse; /* number of buttons, if mouse installed */ +extern int _glut_mouse_x, _glut_mouse_y; /* mouse coords, relative to current win */ + + +extern void _glut_mouse_init (void); +extern void _glut_fatal(char *format,...); +extern void *_glut_font (void *font); + + +#include "pc_hw/pc_hw.h" + +#endif -- cgit v1.2.3