Windows ICD driver code (patch 1014800)

This commit is contained in:
Brian Paul 2004-08-25 14:59:45 +00:00
parent 7c544d3685
commit 86e001b78c
7 changed files with 821 additions and 19 deletions

View File

@ -40,6 +40,9 @@
# As a consequence, you'll need the Win32 Glide3
# library to build any application.
# default = no
# ICD=1 build the installable client driver interface
# (windows opengl driver interface)
# default = no
# X86=1 optimize for x86 (if possible, use MMX, SSE, 3DNow).
# default = no
#

View File

@ -40,6 +40,9 @@
# As a consequence, you'll need the Win32 Glide3
# library to build any application.
# default = no
# ICD=1 build the installable client driver interface
# (windows opengl driver interface)
# default = no
# X86=1 optimize for x86 (if possible, use MMX, SSE, 3DNow).
# default = no
#
@ -57,8 +60,13 @@
TOP = ../..
GLIDE ?= $(TOP)/glide3
LIBDIR = $(TOP)/lib
GL_DLL = opengl32.dll
GL_IMP = libopengl32.a
ifeq ($(ICD),1)
GL_DLL = mesa32.dll
GL_IMP = libmesa32.a
else
GL_DLL = opengl32.dll
GL_IMP = libopengl32.a
endif
LDLIBS = -lgdi32
@ -66,12 +74,17 @@ CC = mingw32-gcc
CFLAGS += -DBUILD_GL32 -D_OPENGL32_ -D_MSC_VER
CFLAGS += $(INCLUDE_DIRS)
ifeq ($(FX),1)
CFLAGS += -I$(GLIDE)/include -DFX
LDLIBS += -L$(GLIDE)/lib -lglide3x
GL_DEF = drivers/glide/fxopengl.def
GL_RES = drivers/glide/fx.rc
CFLAGS += -I$(GLIDE)/include -DFX
LDLIBS += -L$(GLIDE)/lib -lglide3x
GL_DEF = drivers/glide/fxopengl.def
GL_RES = drivers/glide/fx.rc
else
GL_DEF = drivers/windows/gdi/mesa.def
ifeq ($(ICD),1)
CFLAGS += -DUSE_MGL_NAMESPACE
GL_DEF = drivers/windows/icd/mesa.def
else
GL_DEF = drivers/windows/gdi/mesa.def
endif
endif
AR = ar
@ -100,10 +113,16 @@ DRIVER_SOURCES = \
$(GLIDE_DRIVER_SOURCES) \
drivers/glide/fxwgl.c
else
ifeq ($(ICD),1)
DRIVER_SOURCES = \
drivers/windows/gdi/wmesa.c \
drivers/windows/icd/icd.c
else
DRIVER_SOURCES = \
drivers/windows/gdi/wmesa.c \
drivers/windows/gdi/wgl.c
endif
endif
SOURCES = $(CORE_SOURCES) $(X86_SOURCES) $(COMMON_DRIVER_SOURCES) $(DRIVER_SOURCES)
@ -161,5 +180,6 @@ clean:
-$(call UNLINK,x86/*.o)
-$(call UNLINK,drivers/common/*.o)
-$(call UNLINK,drivers/windows/gdi/*.o)
-$(call UNLINK,drivers/windows/icd/*.o)
-$(call UNLINK,drivers/glide/*.o)
-$(call UNLINK,drivers/glide/*.res)

View File

@ -1,4 +1,4 @@
/* $Id: wgl.c,v 1.3 2004/01/07 12:34:28 dborca Exp $ */
/* $Id: wgl.c,v 1.4 2004/08/25 14:59:45 brianp Exp $ */
/*
* This library is free software; you can redistribute it and/or
@ -102,7 +102,7 @@ typedef struct {
static MesaWglCtx wgl_ctx[MESAWGL_CTX_MAX_COUNT];
static unsigned ctx_count = 0;
static unsigned ctx_current = -1;
static int ctx_current = -1;
static unsigned curPFD = 0;
WGLAPI BOOL GLAPIENTRY wglCopyContext(HGLRC hglrcSrc,HGLRC hglrcDst,UINT mask)

View File

@ -0,0 +1,332 @@
/*
* Mesa 3-D graphics library
* Version: 6.1
*
* Copyright (C) 1999-2004 Brian Paul 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
* BRIAN PAUL 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.
*/
/*
* File name: icd.c
* Author: Gregor Anich <blight@blight.eu.org>
*
* ICD (Installable Client Driver) interface.
* Based on the windows GDI/WGL driver.
*/
#ifdef WIN32
#ifdef __cplusplus
extern "C" {
#endif
#include <windows.h>
#define GL_GLEXT_PROTOTYPES
#include "GL/gl.h"
#include "GL/glext.h"
#ifdef __cplusplus
}
#endif
#include <stdio.h>
#include <tchar.h>
#include "../gdi/wmesadef.h"
#include "GL/wmesa.h"
#include "mtypes.h"
#include "glapi.h"
#define MAX_MESA_ATTRS 20
typedef struct _icdTable {
DWORD size;
PROC table[336];
} ICDTABLE, *PICDTABLE;
static ICDTABLE icdTable = { 336, {
#define ICD_ENTRY(func) (PROC)mgl##func,
#include "icdlist.h"
#undef ICD_ENTRY
} };
struct __pixelformat__
{
PIXELFORMATDESCRIPTOR pfd;
GLboolean doubleBuffered;
};
struct __pixelformat__ pix[] =
{
/* Double Buffer, alpha */
{ { sizeof(PIXELFORMATDESCRIPTOR), 1,
PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL|PFD_DOUBLEBUFFER|PFD_SWAP_COPY,
PFD_TYPE_RGBA,
24, 8, 0, 8, 8, 8, 16, 8, 24,
0, 0, 0, 0, 0, 16, 8, 0, 0, 0, 0, 0, 0 },
GL_TRUE
},
/* Single Buffer, alpha */
{ { sizeof(PIXELFORMATDESCRIPTOR), 1,
PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL, /* | PFD_SUPPORT_GDI ? */
PFD_TYPE_RGBA,
24, 8, 0, 8, 8, 8, 16, 8, 24,
0, 0, 0, 0, 0, 16, 8, 0, 0, 0, 0, 0, 0 },
GL_FALSE
},
/* Double Buffer, no alpha */
{ { sizeof(PIXELFORMATDESCRIPTOR), 1,
PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL|PFD_DOUBLEBUFFER|PFD_SWAP_COPY,
PFD_TYPE_RGBA,
24, 8, 0, 8, 8, 8, 16, 0, 0,
0, 0, 0, 0, 0, 16, 8, 0, 0, 0, 0, 0, 0 },
GL_TRUE
},
/* Single Buffer, no alpha */
{ { sizeof(PIXELFORMATDESCRIPTOR), 1,
PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL, /* | PFD_SUPPORT_GDI ? */
PFD_TYPE_RGBA,
24, 8, 0, 8, 8, 8, 16, 0, 0,
0, 0, 0, 0, 0, 16, 8, 0, 0, 0, 0, 0, 0 },
GL_FALSE
},
};
int qt_pix = sizeof(pix) / sizeof(pix[0]);
typedef struct {
WMesaContext ctx;
HDC hdc;
} MesaWglCtx;
#define MESAWGL_CTX_MAX_COUNT 20
static MesaWglCtx wgl_ctx[MESAWGL_CTX_MAX_COUNT];
static unsigned ctx_count = 0;
static int ctx_current = -1;
static unsigned curPFD = 0;
WGLAPI BOOL GLAPIENTRY DrvCopyContext(HGLRC hglrcSrc,HGLRC hglrcDst,UINT mask)
{
return(FALSE);
}
WGLAPI HGLRC GLAPIENTRY DrvCreateContext(HDC hdc)
{
HWND hWnd;
int i = 0;
if(!(hWnd = WindowFromDC(hdc)))
{
SetLastError(0);
return(NULL);
}
if (!ctx_count)
{
for(i=0;i<MESAWGL_CTX_MAX_COUNT;i++)
{
wgl_ctx[i].ctx = NULL;
wgl_ctx[i].hdc = NULL;
}
}
for( i = 0; i < MESAWGL_CTX_MAX_COUNT; i++ )
{
if ( wgl_ctx[i].ctx == NULL )
{
wgl_ctx[i].ctx = WMesaCreateContext( hWnd, NULL, GL_TRUE,
pix[curPFD-1].doubleBuffered,
pix[curPFD-1].pfd.cAlphaBits ? GL_TRUE : GL_FALSE);
if (wgl_ctx[i].ctx == NULL)
break;
wgl_ctx[i].hdc = hdc;
ctx_count++;
return ((HGLRC)wgl_ctx[i].ctx);
}
}
SetLastError(0);
return(NULL);
}
WGLAPI BOOL GLAPIENTRY DrvDeleteContext(HGLRC hglrc)
{
int i;
for ( i = 0; i < MESAWGL_CTX_MAX_COUNT; i++ )
{
if ( wgl_ctx[i].ctx == (PWMC) hglrc )
{
WMesaMakeCurrent((PWMC) hglrc);
WMesaDestroyContext();
wgl_ctx[i].ctx = NULL;
wgl_ctx[i].hdc = NULL;
ctx_count--;
return(TRUE);
}
}
SetLastError(0);
return(FALSE);
}
WGLAPI HGLRC GLAPIENTRY DrvCreateLayerContext(HDC hdc,int iLayerPlane)
{
if (iLayerPlane == 0)
return DrvCreateContext(hdc);
SetLastError(0);
return(NULL);
}
WGLAPI PICDTABLE GLAPIENTRY DrvSetContext(HDC hdc,HGLRC hglrc,void *callback)
{
int i;
/* new code suggested by Andy Sy */
if (!hdc || !hglrc) {
WMesaMakeCurrent(NULL);
ctx_current = -1;
return NULL;
}
for ( i = 0; i < MESAWGL_CTX_MAX_COUNT; i++ )
{
if ( wgl_ctx[i].ctx == (PWMC) hglrc )
{
wgl_ctx[i].hdc = hdc;
WMesaMakeCurrent( (PWMC) hglrc );
ctx_current = i;
return &icdTable;
}
}
return NULL;
}
WGLAPI void GLAPIENTRY DrvReleaseContext(HGLRC hglrc)
{
WMesaMakeCurrent(NULL);
ctx_current = -1;
}
WGLAPI BOOL GLAPIENTRY DrvShareLists(HGLRC hglrc1,HGLRC hglrc2)
{
return(TRUE);
}
WGLAPI BOOL GLAPIENTRY DrvDescribeLayerPlane(HDC hdc,int iPixelFormat,
int iLayerPlane,UINT nBytes,
LPLAYERPLANEDESCRIPTOR plpd)
{
SetLastError(0);
return(FALSE);
}
WGLAPI int GLAPIENTRY DrvSetLayerPaletteEntries(HDC hdc,int iLayerPlane,
int iStart,int cEntries,
CONST COLORREF *pcr)
{
SetLastError(0);
return(0);
}
WGLAPI int GLAPIENTRY DrvGetLayerPaletteEntries(HDC hdc,int iLayerPlane,
int iStart,int cEntries,
COLORREF *pcr)
{
SetLastError(0);
return(0);
}
WGLAPI BOOL GLAPIENTRY DrvRealizeLayerPalette(HDC hdc,int iLayerPlane,BOOL bRealize)
{
SetLastError(0);
return(FALSE);
}
WGLAPI BOOL GLAPIENTRY DrvSwapLayerBuffers(HDC hdc,UINT fuPlanes)
{
if( !hdc )
{
WMesaSwapBuffers();
return(TRUE);
}
SetLastError(0);
return(FALSE);
}
WGLAPI int GLAPIENTRY DrvDescribePixelFormat(HDC hdc,int iPixelFormat,UINT nBytes,
LPPIXELFORMATDESCRIPTOR ppfd)
{
int qt_valid_pix;
qt_valid_pix = qt_pix;
if(ppfd == NULL)
return(qt_valid_pix);
if(iPixelFormat < 1 || iPixelFormat > qt_valid_pix || nBytes != sizeof(PIXELFORMATDESCRIPTOR))
{
SetLastError(0);
return(0);
}
*ppfd = pix[iPixelFormat - 1].pfd;
return(qt_valid_pix);
}
/*
* GetProcAddress - return the address of an appropriate extension
*/
WGLAPI PROC GLAPIENTRY DrvGetProcAddress(LPCSTR lpszProc)
{
PROC p = (PROC) _glapi_get_proc_address((const char *) lpszProc);
if (p)
return p;
SetLastError(0);
return(NULL);
}
WGLAPI BOOL GLAPIENTRY DrvSetPixelFormat(HDC hdc,int iPixelFormat)
{
int qt_valid_pix;
qt_valid_pix = qt_pix;
if(iPixelFormat < 1 || iPixelFormat > qt_valid_pix)
{
SetLastError(0);
return(FALSE);
}
curPFD = iPixelFormat;
return(TRUE);
}
WGLAPI BOOL GLAPIENTRY DrvSwapBuffers(HDC hdc)
{
if (ctx_current < 0)
return FALSE;
if(wgl_ctx[ctx_current].ctx == NULL) {
SetLastError(0);
return(FALSE);
}
WMesaSwapBuffers();
return(TRUE);
}
WGLAPI BOOL GLAPIENTRY DrvValidateVersion(DWORD version)
{
return TRUE;
}
#endif /* WIN32 */

View File

@ -0,0 +1,336 @@
ICD_ENTRY(NewList) /* 0 */
ICD_ENTRY(EndList) /* 1 */
ICD_ENTRY(CallList) /* 2 */
ICD_ENTRY(CallLists) /* 3 */
ICD_ENTRY(DeleteLists) /* 4 */
ICD_ENTRY(GenLists) /* 5 */
ICD_ENTRY(ListBase) /* 6 */
ICD_ENTRY(Begin) /* 7 */
ICD_ENTRY(Bitmap) /* 8 */
ICD_ENTRY(Color3b) /* 9 */
ICD_ENTRY(Color3bv) /* 10 */
ICD_ENTRY(Color3d) /* 11 */
ICD_ENTRY(Color3dv) /* 12 */
ICD_ENTRY(Color3f) /* 13 */
ICD_ENTRY(Color3fv) /* 14 */
ICD_ENTRY(Color3i) /* 15 */
ICD_ENTRY(Color3iv) /* 16 */
ICD_ENTRY(Color3s) /* 17 */
ICD_ENTRY(Color3sv) /* 18 */
ICD_ENTRY(Color3ub) /* 19 */
ICD_ENTRY(Color3ubv) /* 20 */
ICD_ENTRY(Color3ui) /* 21 */
ICD_ENTRY(Color3uiv) /* 22 */
ICD_ENTRY(Color3us) /* 23 */
ICD_ENTRY(Color3usv) /* 24 */
ICD_ENTRY(Color4b) /* 25 */
ICD_ENTRY(Color4bv) /* 26 */
ICD_ENTRY(Color4d) /* 27 */
ICD_ENTRY(Color4dv) /* 28 */
ICD_ENTRY(Color4f) /* 29 */
ICD_ENTRY(Color4fv) /* 30 */
ICD_ENTRY(Color4i) /* 31 */
ICD_ENTRY(Color4iv) /* 32 */
ICD_ENTRY(Color4s) /* 33 */
ICD_ENTRY(Color4sv) /* 34 */
ICD_ENTRY(Color4ub) /* 35 */
ICD_ENTRY(Color4ubv) /* 36 */
ICD_ENTRY(Color4ui) /* 37 */
ICD_ENTRY(Color4uiv) /* 38 */
ICD_ENTRY(Color4us) /* 39 */
ICD_ENTRY(Color4usv) /* 40 */
ICD_ENTRY(EdgeFlag) /* 41 */
ICD_ENTRY(EdgeFlagv) /* 42 */
ICD_ENTRY(End) /* 43 */
ICD_ENTRY(Indexd) /* 44 */
ICD_ENTRY(Indexdv) /* 45 */
ICD_ENTRY(Indexf) /* 46 */
ICD_ENTRY(Indexfv) /* 47 */
ICD_ENTRY(Indexi) /* 48 */
ICD_ENTRY(Indexiv) /* 49 */
ICD_ENTRY(Indexs) /* 50 */
ICD_ENTRY(Indexsv) /* 51 */
ICD_ENTRY(Normal3b) /* 52 */
ICD_ENTRY(Normal3bv) /* 53 */
ICD_ENTRY(Normal3d) /* 54 */
ICD_ENTRY(Normal3dv) /* 55 */
ICD_ENTRY(Normal3f) /* 56 */
ICD_ENTRY(Normal3fv) /* 57 */
ICD_ENTRY(Normal3i) /* 58 */
ICD_ENTRY(Normal3iv) /* 59 */
ICD_ENTRY(Normal3s) /* 60 */
ICD_ENTRY(Normal3sv) /* 61 */
ICD_ENTRY(RasterPos2d) /* 62 */
ICD_ENTRY(RasterPos2dv) /* 63 */
ICD_ENTRY(RasterPos2f) /* 64 */
ICD_ENTRY(RasterPos2fv) /* 65 */
ICD_ENTRY(RasterPos2i) /* 66 */
ICD_ENTRY(RasterPos2iv) /* 67 */
ICD_ENTRY(RasterPos2s) /* 68 */
ICD_ENTRY(RasterPos2sv) /* 69 */
ICD_ENTRY(RasterPos3d) /* 70 */
ICD_ENTRY(RasterPos3dv) /* 71 */
ICD_ENTRY(RasterPos3f) /* 72 */
ICD_ENTRY(RasterPos3fv) /* 73 */
ICD_ENTRY(RasterPos3i) /* 74 */
ICD_ENTRY(RasterPos3iv) /* 75 */
ICD_ENTRY(RasterPos3s) /* 76 */
ICD_ENTRY(RasterPos3sv) /* 77 */
ICD_ENTRY(RasterPos4d) /* 78 */
ICD_ENTRY(RasterPos4dv) /* 79 */
ICD_ENTRY(RasterPos4f) /* 80 */
ICD_ENTRY(RasterPos4fv) /* 81 */
ICD_ENTRY(RasterPos4i) /* 82 */
ICD_ENTRY(RasterPos4iv) /* 83 */
ICD_ENTRY(RasterPos4s) /* 84 */
ICD_ENTRY(RasterPos4sv) /* 85 */
ICD_ENTRY(Rectd) /* 86 */
ICD_ENTRY(Rectdv) /* 87 */
ICD_ENTRY(Rectf) /* 88 */
ICD_ENTRY(Rectfv) /* 89 */
ICD_ENTRY(Recti) /* 90 */
ICD_ENTRY(Rectiv) /* 91 */
ICD_ENTRY(Rects) /* 92 */
ICD_ENTRY(Rectsv) /* 93 */
ICD_ENTRY(TexCoord1d) /* 94 */
ICD_ENTRY(TexCoord1dv) /* 95 */
ICD_ENTRY(TexCoord1f) /* 96 */
ICD_ENTRY(TexCoord1fv) /* 97 */
ICD_ENTRY(TexCoord1i) /* 98 */
ICD_ENTRY(TexCoord1iv) /* 99 */
ICD_ENTRY(TexCoord1s) /* 100 */
ICD_ENTRY(TexCoord1sv) /* 101 */
ICD_ENTRY(TexCoord2d) /* 102 */
ICD_ENTRY(TexCoord2dv) /* 103 */
ICD_ENTRY(TexCoord2f) /* 104 */
ICD_ENTRY(TexCoord2fv) /* 105 */
ICD_ENTRY(TexCoord2i) /* 106 */
ICD_ENTRY(TexCoord2iv) /* 107 */
ICD_ENTRY(TexCoord2s) /* 108 */
ICD_ENTRY(TexCoord2sv) /* 109 */
ICD_ENTRY(TexCoord3d) /* 110 */
ICD_ENTRY(TexCoord3dv) /* 111 */
ICD_ENTRY(TexCoord3f) /* 112 */
ICD_ENTRY(TexCoord3fv) /* 113 */
ICD_ENTRY(TexCoord3i) /* 114 */
ICD_ENTRY(TexCoord3iv) /* 115 */
ICD_ENTRY(TexCoord3s) /* 116 */
ICD_ENTRY(TexCoord3sv) /* 117 */
ICD_ENTRY(TexCoord4d) /* 118 */
ICD_ENTRY(TexCoord4dv) /* 119 */
ICD_ENTRY(TexCoord4f) /* 120 */
ICD_ENTRY(TexCoord4fv) /* 121 */
ICD_ENTRY(TexCoord4i) /* 122 */
ICD_ENTRY(TexCoord4iv) /* 123 */
ICD_ENTRY(TexCoord4s) /* 124 */
ICD_ENTRY(TexCoord4sv) /* 125 */
ICD_ENTRY(Vertex2d) /* 126 */
ICD_ENTRY(Vertex2dv) /* 127 */
ICD_ENTRY(Vertex2f) /* 128 */
ICD_ENTRY(Vertex2fv) /* 129 */
ICD_ENTRY(Vertex2i) /* 130 */
ICD_ENTRY(Vertex2iv) /* 131 */
ICD_ENTRY(Vertex2s) /* 132 */
ICD_ENTRY(Vertex2sv) /* 133 */
ICD_ENTRY(Vertex3d) /* 134 */
ICD_ENTRY(Vertex3dv) /* 135 */
ICD_ENTRY(Vertex3f) /* 136 */
ICD_ENTRY(Vertex3fv) /* 137 */
ICD_ENTRY(Vertex3i) /* 138 */
ICD_ENTRY(Vertex3iv) /* 139 */
ICD_ENTRY(Vertex3s) /* 140 */
ICD_ENTRY(Vertex3sv) /* 141 */
ICD_ENTRY(Vertex4d) /* 142 */
ICD_ENTRY(Vertex4dv) /* 143 */
ICD_ENTRY(Vertex4f) /* 144 */
ICD_ENTRY(Vertex4fv) /* 145 */
ICD_ENTRY(Vertex4i) /* 146 */
ICD_ENTRY(Vertex4iv) /* 147 */
ICD_ENTRY(Vertex4s) /* 148 */
ICD_ENTRY(Vertex4sv) /* 149 */
ICD_ENTRY(ClipPlane) /* 150 */
ICD_ENTRY(ColorMaterial) /* 151 */
ICD_ENTRY(CullFace) /* 152 */
ICD_ENTRY(Fogf) /* 153 */
ICD_ENTRY(Fogfv) /* 154 */
ICD_ENTRY(Fogi) /* 155 */
ICD_ENTRY(Fogiv) /* 156 */
ICD_ENTRY(FrontFace) /* 157 */
ICD_ENTRY(Hint) /* 158 */
ICD_ENTRY(Lightf) /* 159 */
ICD_ENTRY(Lightfv) /* 160 */
ICD_ENTRY(Lighti) /* 161 */
ICD_ENTRY(Lightiv) /* 162 */
ICD_ENTRY(LightModelf) /* 163 */
ICD_ENTRY(LightModelfv) /* 164 */
ICD_ENTRY(LightModeli) /* 165 */
ICD_ENTRY(LightModeliv) /* 166 */
ICD_ENTRY(LineStipple) /* 167 */
ICD_ENTRY(LineWidth) /* 168 */
ICD_ENTRY(Materialf) /* 169 */
ICD_ENTRY(Materialfv) /* 170 */
ICD_ENTRY(Materiali) /* 171 */
ICD_ENTRY(Materialiv) /* 172 */
ICD_ENTRY(PointSize) /* 173 */
ICD_ENTRY(PolygonMode) /* 174 */
ICD_ENTRY(PolygonStipple) /* 175 */
ICD_ENTRY(Scissor) /* 176 */
ICD_ENTRY(ShadeModel) /* 177 */
ICD_ENTRY(TexParameterf) /* 178 */
ICD_ENTRY(TexParameterfv) /* 179 */
ICD_ENTRY(TexParameteri) /* 180 */
ICD_ENTRY(TexParameteriv) /* 181 */
ICD_ENTRY(TexImage1D) /* 182 */
ICD_ENTRY(TexImage2D) /* 183 */
ICD_ENTRY(TexEnvf) /* 184 */
ICD_ENTRY(TexEnvfv) /* 185 */
ICD_ENTRY(TexEnvi) /* 186 */
ICD_ENTRY(TexEnviv) /* 187 */
ICD_ENTRY(TexGend) /* 188 */
ICD_ENTRY(TexGendv) /* 189 */
ICD_ENTRY(TexGenf) /* 190 */
ICD_ENTRY(TexGenfv) /* 191 */
ICD_ENTRY(TexGeni) /* 192 */
ICD_ENTRY(TexGeniv) /* 193 */
ICD_ENTRY(FeedbackBuffer) /* 194 */
ICD_ENTRY(SelectBuffer) /* 195 */
ICD_ENTRY(RenderMode) /* 196 */
ICD_ENTRY(InitNames) /* 197 */
ICD_ENTRY(LoadName) /* 198 */
ICD_ENTRY(PassThrough) /* 199 */
ICD_ENTRY(PopName) /* 200 */
ICD_ENTRY(PushName) /* 201 */
ICD_ENTRY(DrawBuffer) /* 202 */
ICD_ENTRY(Clear) /* 203 */
ICD_ENTRY(ClearAccum) /* 204 */
ICD_ENTRY(ClearIndex) /* 205 */
ICD_ENTRY(ClearColor) /* 206 */
ICD_ENTRY(ClearStencil) /* 207 */
ICD_ENTRY(ClearDepth) /* 208 */
ICD_ENTRY(StencilMask) /* 209 */
ICD_ENTRY(ColorMask) /* 210 */
ICD_ENTRY(DepthMask) /* 211 */
ICD_ENTRY(IndexMask) /* 212 */
ICD_ENTRY(Accum) /* 213 */
ICD_ENTRY(Disable) /* 214 */
ICD_ENTRY(Enable) /* 215 */
ICD_ENTRY(Finish) /* 216 */
ICD_ENTRY(Flush) /* 217 */
ICD_ENTRY(PopAttrib) /* 218 */
ICD_ENTRY(PushAttrib) /* 219 */
ICD_ENTRY(Map1d) /* 220 */
ICD_ENTRY(Map1f) /* 221 */
ICD_ENTRY(Map2d) /* 222 */
ICD_ENTRY(Map2f) /* 223 */
ICD_ENTRY(MapGrid1d) /* 224 */
ICD_ENTRY(MapGrid1f) /* 225 */
ICD_ENTRY(MapGrid2d) /* 226 */
ICD_ENTRY(MapGrid2f) /* 227 */
ICD_ENTRY(EvalCoord1d) /* 228 */
ICD_ENTRY(EvalCoord1dv) /* 229 */
ICD_ENTRY(EvalCoord1f) /* 230 */
ICD_ENTRY(EvalCoord1fv) /* 231 */
ICD_ENTRY(EvalCoord2d) /* 232 */
ICD_ENTRY(EvalCoord2dv) /* 233 */
ICD_ENTRY(EvalCoord2f) /* 234 */
ICD_ENTRY(EvalCoord2fv) /* 235 */
ICD_ENTRY(EvalMesh1) /* 236 */
ICD_ENTRY(EvalPoint1) /* 237 */
ICD_ENTRY(EvalMesh2) /* 238 */
ICD_ENTRY(EvalPoint2) /* 239 */
ICD_ENTRY(AlphaFunc) /* 240 */
ICD_ENTRY(BlendFunc) /* 241 */
ICD_ENTRY(LogicOp) /* 242 */
ICD_ENTRY(StencilFunc) /* 243 */
ICD_ENTRY(StencilOp) /* 244 */
ICD_ENTRY(DepthFunc) /* 245 */
ICD_ENTRY(PixelZoom) /* 246 */
ICD_ENTRY(PixelTransferf) /* 247 */
ICD_ENTRY(PixelTransferi) /* 248 */
ICD_ENTRY(PixelStoref) /* 249 */
ICD_ENTRY(PixelStorei) /* 250 */
ICD_ENTRY(PixelMapfv) /* 251 */
ICD_ENTRY(PixelMapuiv) /* 252 */
ICD_ENTRY(PixelMapusv) /* 253 */
ICD_ENTRY(ReadBuffer) /* 254 */
ICD_ENTRY(CopyPixels) /* 255 */
ICD_ENTRY(ReadPixels) /* 256 */
ICD_ENTRY(DrawPixels) /* 257 */
ICD_ENTRY(GetBooleanv) /* 258 */
ICD_ENTRY(GetClipPlane) /* 259 */
ICD_ENTRY(GetDoublev) /* 260 */
ICD_ENTRY(GetError) /* 261 */
ICD_ENTRY(GetFloatv) /* 262 */
ICD_ENTRY(GetIntegerv) /* 263 */
ICD_ENTRY(GetLightfv) /* 264 */
ICD_ENTRY(GetLightiv) /* 265 */
ICD_ENTRY(GetMapdv) /* 266 */
ICD_ENTRY(GetMapfv) /* 267 */
ICD_ENTRY(GetMapiv) /* 268 */
ICD_ENTRY(GetMaterialfv) /* 269 */
ICD_ENTRY(GetMaterialiv) /* 270 */
ICD_ENTRY(GetPixelMapfv) /* 271 */
ICD_ENTRY(GetPixelMapuiv) /* 272 */
ICD_ENTRY(GetPixelMapusv) /* 273 */
ICD_ENTRY(GetPolygonStipple) /* 274 */
ICD_ENTRY(GetString) /* 275 */
ICD_ENTRY(GetTexEnvfv) /* 276 */
ICD_ENTRY(GetTexEnviv) /* 277 */
ICD_ENTRY(GetTexGendv) /* 278 */
ICD_ENTRY(GetTexGenfv) /* 279 */
ICD_ENTRY(GetTexGeniv) /* 280 */
ICD_ENTRY(GetTexImage) /* 281 */
ICD_ENTRY(GetTexParameterfv) /* 282 */
ICD_ENTRY(GetTexParameteriv) /* 283 */
ICD_ENTRY(GetTexLevelParameterfv) /* 284 */
ICD_ENTRY(GetTexLevelParameteriv) /* 285 */
ICD_ENTRY(IsEnabled) /* 286 */
ICD_ENTRY(IsList) /* 287 */
ICD_ENTRY(DepthRange) /* 288 */
ICD_ENTRY(Frustum) /* 289 */
ICD_ENTRY(LoadIdentity) /* 290 */
ICD_ENTRY(LoadMatrixf) /* 291 */
ICD_ENTRY(LoadMatrixd) /* 292 */
ICD_ENTRY(MatrixMode) /* 293 */
ICD_ENTRY(MultMatrixf) /* 294 */
ICD_ENTRY(MultMatrixd) /* 295 */
ICD_ENTRY(Ortho) /* 296 */
ICD_ENTRY(PopMatrix) /* 297 */
ICD_ENTRY(PushMatrix) /* 298 */
ICD_ENTRY(Rotated) /* 299 */
ICD_ENTRY(Rotatef) /* 300 */
ICD_ENTRY(Scaled) /* 301 */
ICD_ENTRY(Scalef) /* 302 */
ICD_ENTRY(Translated) /* 303 */
ICD_ENTRY(Translatef) /* 304 */
ICD_ENTRY(Viewport) /* 305 */
ICD_ENTRY(ArrayElement) /* 306 */
ICD_ENTRY(BindTexture) /* 307 */
ICD_ENTRY(ColorPointer) /* 308 */
ICD_ENTRY(DisableClientState) /* 309 */
ICD_ENTRY(DrawArrays) /* 310 */
ICD_ENTRY(DrawElements) /* 311 */
ICD_ENTRY(EdgeFlagPointer) /* 312 */
ICD_ENTRY(EnableClientState) /* 313 */
ICD_ENTRY(IndexPointer) /* 314 */
ICD_ENTRY(Indexub) /* 315 */
ICD_ENTRY(Indexubv) /* 316 */
ICD_ENTRY(InterleavedArrays) /* 317 */
ICD_ENTRY(NormalPointer) /* 318 */
ICD_ENTRY(PolygonOffset) /* 319 */
ICD_ENTRY(TexCoordPointer) /* 320 */
ICD_ENTRY(VertexPointer) /* 321 */
ICD_ENTRY(AreTexturesResident) /* 322 */
ICD_ENTRY(CopyTexImage1D) /* 323 */
ICD_ENTRY(CopyTexImage2D) /* 324 */
ICD_ENTRY(CopyTexSubImage1D) /* 325 */
ICD_ENTRY(CopyTexSubImage2D) /* 326 */
ICD_ENTRY(DeleteTextures) /* 327 */
ICD_ENTRY(GenTextures) /* 328 */
ICD_ENTRY(GetPointerv) /* 329 */
ICD_ENTRY(IsTexture) /* 330 */
ICD_ENTRY(PrioritizeTextures) /* 331 */
ICD_ENTRY(TexSubImage1D) /* 332 */
ICD_ENTRY(TexSubImage2D) /* 333 */
ICD_ENTRY(PopClientAttrib) /* 334 */
ICD_ENTRY(PushClientAttrib) /* 335 */

View File

@ -0,0 +1,109 @@
DESCRIPTION 'Mesa (OpenGL driver) for Win32'
VERSION 6.1
EXPORTS
;
; ICD API
DrvCopyContext
DrvCreateContext
DrvCreateLayerContext
DrvDeleteContext
DrvDescribeLayerPlane
DrvDescribePixelFormat
DrvGetLayerPaletteEntries
DrvGetProcAddress
DrvReleaseContext
DrvRealizeLayerPalette
DrvSetContext
DrvSetLayerPaletteEntries
DrvSetPixelFormat
DrvShareLists
DrvSwapBuffers
DrvSwapLayerBuffers
DrvValidateVersion
;
; Mesa internals - mostly for OSMESA
_ac_CreateContext
_ac_DestroyContext
_ac_InvalidateState
_glapi_get_context
_glapi_get_proc_address
_mesa_buffer_data
_mesa_buffer_map
_mesa_buffer_subdata
_mesa_bzero
_mesa_calloc
_mesa_choose_tex_format
_mesa_compressed_texture_size
_mesa_create_framebuffer
_mesa_create_visual
_mesa_delete_buffer_object
_mesa_delete_texture_object
_mesa_destroy_framebuffer
_mesa_destroy_visual
_mesa_enable_1_3_extensions
_mesa_enable_1_4_extensions
_mesa_enable_1_5_extensions
_mesa_enable_sw_extensions
_mesa_error
_mesa_free
_mesa_free_context_data
_mesa_get_current_context
_mesa_init_default_imports
_mesa_initialize_context
_mesa_make_current
_mesa_memcpy
_mesa_memset
_mesa_new_buffer_object
_mesa_new_texture_object
_mesa_problem
_mesa_ResizeBuffersMESA
_mesa_store_compressed_teximage1d
_mesa_store_compressed_teximage2d
_mesa_store_compressed_teximage3d
_mesa_store_compressed_texsubimage1d
_mesa_store_compressed_texsubimage2d
_mesa_store_compressed_texsubimage3d
_mesa_store_teximage1d
_mesa_store_teximage2d
_mesa_store_teximage3d
_mesa_store_texsubimage1d
_mesa_store_texsubimage2d
_mesa_store_texsubimage3d
_mesa_strcmp
_mesa_test_proxy_teximage
_mesa_Viewport
_swrast_Accum
_swrast_alloc_buffers
_swrast_Bitmap
_swrast_CopyPixels
_swrast_DrawBuffer
_swrast_DrawPixels
_swrast_GetDeviceDriverReference
_swrast_Clear
_swrast_choose_line
_swrast_choose_triangle
_swrast_CopyColorSubTable
_swrast_CopyColorTable
_swrast_CopyConvolutionFilter1D
_swrast_CopyConvolutionFilter2D
_swrast_copy_teximage1d
_swrast_copy_teximage2d
_swrast_copy_texsubimage1d
_swrast_copy_texsubimage2d
_swrast_copy_texsubimage3d
_swrast_CreateContext
_swrast_DestroyContext
_swrast_InvalidateState
_swrast_ReadPixels
_swrast_zbuffer_address
_swsetup_Wakeup
_swsetup_CreateContext
_swsetup_DestroyContext
_swsetup_InvalidateState
_tnl_CreateContext
_tnl_DestroyContext
_tnl_InvalidateState
_tnl_MakeCurrent
_tnl_run_pipeline

View File

@ -85,16 +85,18 @@
#endif
#if !defined(OPENSTEP) && (defined(__WIN32__) && !defined(__CYGWIN__)) && !defined(BUILD_FOR_SNAP)
# pragma warning( disable : 4068 ) /* unknown pragma */
# pragma warning( disable : 4710 ) /* function 'foo' not inlined */
# pragma warning( disable : 4711 ) /* function 'foo' selected for automatic inline expansion */
# pragma warning( disable : 4127 ) /* conditional expression is constant */
# if defined(MESA_MINWARN)
# pragma warning( disable : 4244 ) /* '=' : conversion from 'const double ' to 'float ', possible loss of data */
# pragma warning( disable : 4018 ) /* '<' : signed/unsigned mismatch */
# pragma warning( disable : 4305 ) /* '=' : truncation from 'const double ' to 'float ' */
# pragma warning( disable : 4550 ) /* 'function' undefined; assuming extern returning int */
# pragma warning( disable : 4761 ) /* integral size mismatch in argument; conversion supplied */
# if !defined(__GNUC__) /* mingw environment */
# pragma warning( disable : 4068 ) /* unknown pragma */
# pragma warning( disable : 4710 ) /* function 'foo' not inlined */
# pragma warning( disable : 4711 ) /* function 'foo' selected for automatic inline expansion */
# pragma warning( disable : 4127 ) /* conditional expression is constant */
# if defined(MESA_MINWARN)
# pragma warning( disable : 4244 ) /* '=' : conversion from 'const double ' to 'float ', possible loss of data */
# pragma warning( disable : 4018 ) /* '<' : signed/unsigned mismatch */
# pragma warning( disable : 4305 ) /* '=' : truncation from 'const double ' to 'float ' */
# pragma warning( disable : 4550 ) /* 'function' undefined; assuming extern returning int */
# pragma warning( disable : 4761 ) /* integral size mismatch in argument; conversion supplied */
# endif
# endif
# if defined(_MSC_VER) && defined(BUILD_GL32) /* tag specify we're building mesa as a DLL */
# define GLAPI __declspec(dllexport)