st/xorg: Work around cursor reference counting bugs in older X servers.
[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: mglmesa.h
9 * Version: Revision: 1.1.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 *
38 ****************************************************************************/
39
40 #ifndef __MGLMESA_H
41 #define __MGLMESA_H
42
43 #include "mgraph.h"
44
45 /*------------------------- Function Prototypes ---------------------------*/
46
47 #ifdef __cplusplus
48 extern "C" { /* Use "C" linkage when in C++ mode */
49 #endif
50
51 #ifndef __WINDOWS__
52 #define GLAPIENTRY
53 #endif
54
55 #ifdef __WINDOWS__
56 bool GLAPIENTRY MGLMesaInitDLL(MGLCallbacks *cb,char *version);
57 #endif
58 void GLAPIENTRY MGLMesaChooseVisual(MGLDC *dc,MGLVisual *visual);
59 bool GLAPIENTRY MGLMesaSetVisual(MGLDC *dc,MGLVisual *visual);
60 bool GLAPIENTRY MGLMesaCreateContext(MGLDC *dc,bool forceMemDC);
61 void GLAPIENTRY MGLMesaDestroyContext(MGLDC *dc);
62 void GLAPIENTRY MGLMesaMakeCurrent(MGLDC *dc);
63 void GLAPIENTRY MGLMesaSwapBuffers(MGLDC *dc,bool waitVRT);
64
65 /* Palette manipulation support. The reason we provide palette manipulation
66 * routines is so that when rendering in double buffered modes with a
67 * software backbuffer, the palette for the backbuffer is kept consistent
68 * with the hardware front buffer.
69 */
70
71 void GLAPIENTRY MGLMesaSetPaletteEntry(MGLDC *dc,int entry,uchar red,uchar green,uchar blue);
72 void GLAPIENTRY MGLMesaSetPalette(MGLDC *dc,palette_t *pal,int numColors,int startIndex);
73 void GLAPIENTRY MGLMesaRealizePalette(MGLDC *dc,int numColors,int startIndex,int waitVRT);
74
75 #ifdef __cplusplus
76 } /* End of "C" linkage for C++ */
77 #endif /* __cplusplus */
78
79 #endif /* __MGLMESA_H */