/* * 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