Initial revision
[mesa.git] / include / GL / mglmesa.h
1 /****************************************************************************
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
49 extern "C" { /* Use "C" linkage when in C++ mode */
50 #endif
51
52 #ifndef __WINDOWS__
53 #define GLAPIENTRY
54 #endif
55
56 #ifdef __WINDOWS__
57 bool GLAPIENTRY MGLMesaInitDLL(MGLCallbacks *cb,char *version);
58 #endif
59 void GLAPIENTRY MGLMesaChooseVisual(MGLDC *dc,MGLVisual *visual);
60 bool GLAPIENTRY MGLMesaSetVisual(MGLDC *dc,MGLVisual *visual);
61 bool GLAPIENTRY MGLMesaCreateContext(MGLDC *dc,bool forceMemDC);
62 void GLAPIENTRY MGLMesaDestroyContext(MGLDC *dc);
63 void GLAPIENTRY MGLMesaMakeCurrent(MGLDC *dc);
64 void 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
72 void GLAPIENTRY MGLMesaSetPaletteEntry(MGLDC *dc,int entry,uchar red,uchar green,uchar blue);
73 void GLAPIENTRY MGLMesaSetPalette(MGLDC *dc,palette_t *pal,int numColors,int startIndex);
74 void 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 */