blob: 76deb33971036b5ef4847fb995bb6ba7582cd6ab [file] [log] [blame]
jtgafb833d1999-08-19 00:55:39 +00001/****************************************************************************
2*
3* Mesa bindings for SciTech MGL
4*
5* Copyright (C) 1996 SciTech Software.
6* All rights reserved.
7*
8* Filename: $Workfile: mglmesa.h $
9* Version: $Revision: 1.1 $
10*
11* Language: ANSI C
12* Environment: Any
13*
14* Description: Header file for the Mesa/OpenGL interface bindings for the
15* SciTech MGL graphics library. Uses the MGL internal
16* device context structures to get direct access to the
17* high performance MGL rasterization functions for maximum
18* performance. Utilizes the VESA VBE/AF Accelerator Functions
19* via the MGL's accelerated device driver functions, as well
20* as basic DirectDraw accelerated functions provided by the
21* MGL.
22*
23* This library is free software; you can redistribute it and/or
24* modify it under the terms of the GNU Library General Public
25* License as published by the Free Software Foundation; either
26* version 2 of the License, or (at your option) any later version.
27*
28* This library is distributed in the hope that it will be useful,
29* but WITHOUT ANY WARRANTY; without even the implied warranty of
30* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
31* Library General Public License for more details.
32*
33* You should have received a copy of the GNU Library General Public
34* License along with this library; if not, write to the Free
35* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
36*
37* $Date: 1999/08/19 00:55:40 $ $Author: jtg $
38*
39****************************************************************************/
40
41#ifndef __MGLMESA_H
42#define __MGLMESA_H
43
44#include "mgraph.h"
45
46/*------------------------- Function Prototypes ---------------------------*/
47
48#ifdef __cplusplus
49extern "C" { /* Use "C" linkage when in C++ mode */
50#endif
51
52#ifndef __WINDOWS__
53#define GLAPIENTRY
54#endif
55
56#ifdef __WINDOWS__
57bool GLAPIENTRY MGLMesaInitDLL(MGLCallbacks *cb,char *version);
58#endif
59void GLAPIENTRY MGLMesaChooseVisual(MGLDC *dc,MGLVisual *visual);
60bool GLAPIENTRY MGLMesaSetVisual(MGLDC *dc,MGLVisual *visual);
61bool GLAPIENTRY MGLMesaCreateContext(MGLDC *dc,bool forceMemDC);
62void GLAPIENTRY MGLMesaDestroyContext(MGLDC *dc);
63void GLAPIENTRY MGLMesaMakeCurrent(MGLDC *dc);
64void GLAPIENTRY MGLMesaSwapBuffers(MGLDC *dc,bool waitVRT);
65
66/* Palette manipulation support. The reason we provide palette manipulation
67 * routines is so that when rendering in double buffered modes with a
68 * software backbuffer, the palette for the backbuffer is kept consistent
69 * with the hardware front buffer.
70 */
71
72void GLAPIENTRY MGLMesaSetPaletteEntry(MGLDC *dc,int entry,uchar red,uchar green,uchar blue);
73void GLAPIENTRY MGLMesaSetPalette(MGLDC *dc,palette_t *pal,int numColors,int startIndex);
74void GLAPIENTRY MGLMesaRealizePalette(MGLDC *dc,int numColors,int startIndex,int waitVRT);
75
76#ifdef __cplusplus
77} /* End of "C" linkage for C++ */
78#endif /* __cplusplus */
79
80#endif /* __MGLMESA_H */