mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-23 23:48:18 +02:00
197 lines
6.1 KiB
C
197 lines
6.1 KiB
C
/*
|
|
* 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 <GL/glut.h>
|
|
|
|
#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
|