From f0f23aaba820d64d57b60e8bc113d15038e9f1b5 Mon Sep 17 00:00:00 2001 From: Daniel Borca Date: Sat, 19 Jun 2004 11:07:58 +0000 Subject: Hack for linear fogging. Added empty routines for WGL_ARB_pixel_format WGL_ARB_render_texture WGL_ARB_pbuffer --- docs/README.3DFX | 5 -- src/mesa/drivers/glide/fx.rc | 4 +- src/mesa/drivers/glide/fxapi.c | 3 +- src/mesa/drivers/glide/fxdd.c | 5 +- src/mesa/drivers/glide/fxsetup.c | 8 +++ src/mesa/drivers/glide/fxwgl.c | 135 ++++++++++++++++++++++++++++++++++++--- 6 files changed, 139 insertions(+), 21 deletions(-) diff --git a/docs/README.3DFX b/docs/README.3DFX index d9bf09604e..65bdbe50b0 100644 --- a/docs/README.3DFX +++ b/docs/README.3DFX @@ -185,11 +185,6 @@ MESA_FX_MAXLOD "9" - 512x512 textures "10" - 1024x1024 textures "11" - 2048x2048 textures -MESA_3DFX_STRING - OS: all - HW: all - Desc: advertise "3dfx" substring in GL_RENDERER - Note: used by some games aware by 3dfx hw limitations MESA_GLX_FX OS: linux HW: Voodoo1, Rush, Voodoo2 diff --git a/src/mesa/drivers/glide/fx.rc b/src/mesa/drivers/glide/fx.rc index 8c6dedff37..ebc80f0486 100644 --- a/src/mesa/drivers/glide/fx.rc +++ b/src/mesa/drivers/glide/fx.rc @@ -5,10 +5,10 @@ #define HWSTR "3dfx Voodoo Graphics, Voodoo^2, Voodoo Banshee, Velocity 100/200, Voodoo3, Voodoo4, Voodoo5" #define COPYRIGHTSTR "Copyright \251 Brian E. Paul" -#define VERSIONSTR "6.1.0.5" +#define VERSIONSTR "6.1.0.8" #define MANVERSION 6 #define MANREVISION 1 -#define BUILD_NUMBER 5 +#define BUILD_NUMBER 8 VS_VERSION_INFO VERSIONINFO FILEVERSION MANVERSION, MANREVISION, 0, BUILD_NUMBER diff --git a/src/mesa/drivers/glide/fxapi.c b/src/mesa/drivers/glide/fxapi.c index 016d968be0..0dccdc2093 100644 --- a/src/mesa/drivers/glide/fxapi.c +++ b/src/mesa/drivers/glide/fxapi.c @@ -644,9 +644,8 @@ fxMesaCreateContext(GLuint win, fxMesa->snapVertices ? "" : "no "); } - sprintf(fxMesa->rendererString, "Mesa %s v0.61 %s%s%s", + sprintf(fxMesa->rendererString, "Mesa %s v0.61 %s%s", grGetString(GR_RENDERER), - getenv("MESA_3DFX_STRING") ? "3dfx " : "", grGetString(GR_HARDWARE), ((fxMesa->type < GR_SSTTYPE_Voodoo4) && (voodoo->numChips > 1)) ? " SLI" : ""); diff --git a/src/mesa/drivers/glide/fxdd.c b/src/mesa/drivers/glide/fxdd.c index 7d4c168194..8315096a0b 100644 --- a/src/mesa/drivers/glide/fxdd.c +++ b/src/mesa/drivers/glide/fxdd.c @@ -1505,14 +1505,11 @@ fxDDInitExtensions(GLcontext * ctx) /* core-level extensions */ _mesa_enable_extension(ctx, "GL_EXT_multi_draw_arrays"); _mesa_enable_extension(ctx, "GL_IBM_multimode_draw_arrays"); + _mesa_enable_extension(ctx, "GL_ARB_vertex_buffer_object"); #if 0 /* not until texel fetchers are right */ _mesa_enable_extension(ctx, "GL_SGIS_generate_mipmap"); #endif -#if 0 - /* breaks UT2004 */ - _mesa_enable_extension(ctx, "GL_ARB_vertex_buffer_object"); -#endif #if 0 /* not just yet */ _mesa_enable_extension(ctx, "GL_ARB_fragment_program"); diff --git a/src/mesa/drivers/glide/fxsetup.c b/src/mesa/drivers/glide/fxsetup.c index 6ebdb717d0..abef71a35e 100644 --- a/src/mesa/drivers/glide/fxsetup.c +++ b/src/mesa/drivers/glide/fxsetup.c @@ -1802,6 +1802,14 @@ fxSetupFog(GLcontext * ctx) case GL_LINEAR: guFogGenerateLinear(fxMesa->fogTable, ctx->Fog.Start, ctx->Fog.End); + if (fxMesa->fogTable[0] > 63) { + /* [dBorca] Hack alert: + * As per Glide3 Programming Guide: + * The difference between consecutive fog values + * must be less than 64. + */ + fxMesa->fogTable[0] = 63; + } break; case GL_EXP: guFogGenerateExp(fxMesa->fogTable, ctx->Fog.Density); diff --git a/src/mesa/drivers/glide/fxwgl.c b/src/mesa/drivers/glide/fxwgl.c index 0b0197d3ec..9f032e9094 100644 --- a/src/mesa/drivers/glide/fxwgl.c +++ b/src/mesa/drivers/glide/fxwgl.c @@ -477,12 +477,117 @@ wglSetDeviceGammaRamp3DFX (HDC hdc, LPVOID arrays) return TRUE; } +typedef void *HPBUFFERARB; + +/* WGL_ARB_pixel_format */ +GLAPI BOOL GLAPIENTRY +wglGetPixelFormatAttribivARB (HDC hdc, + int iPixelFormat, + int iLayerPlane, + UINT nAttributes, + const int *piAttributes, + int *piValues) +{ + SetLastError(0); + return(FALSE); +} + +GLAPI BOOL GLAPIENTRY +wglGetPixelFormatAttribfvARB (HDC hdc, + int iPixelFormat, + int iLayerPlane, + UINT nAttributes, + const int *piAttributes, + FLOAT *pfValues) +{ + SetLastError(0); + return(FALSE); +} + +GLAPI BOOL GLAPIENTRY +wglChoosePixelFormatARB (HDC hdc, + const int *piAttribIList, + const FLOAT *pfAttribFList, + UINT nMaxFormats, + int *piFormats, + UINT *nNumFormats) +{ + SetLastError(0); + return(FALSE); +} + +/* WGL_ARB_render_texture */ +GLAPI BOOL GLAPIENTRY +wglBindTexImageARB (HPBUFFERARB hPbuffer, int iBuffer) +{ + SetLastError(0); + return(FALSE); +} + +GLAPI BOOL GLAPIENTRY +wglReleaseTexImageARB (HPBUFFERARB hPbuffer, int iBuffer) +{ + SetLastError(0); + return(FALSE); +} + +GLAPI BOOL GLAPIENTRY +wglSetPbufferAttribARB (HPBUFFERARB hPbuffer, + const int *piAttribList) +{ + SetLastError(0); + return(FALSE); +} + +/* WGL_ARB_pbuffer */ +GLAPI HPBUFFERARB GLAPIENTRY +wglCreatePbufferARB (HDC hDC, + int iPixelFormat, + int iWidth, + int iHeight, + const int *piAttribList) +{ + SetLastError(0); + return NULL; +} + +GLAPI HDC GLAPIENTRY +wglGetPbufferDCARB (HPBUFFERARB hPbuffer) +{ + SetLastError(0); + return NULL; +} + +GLAPI int GLAPIENTRY +wglReleasePbufferDCARB (HPBUFFERARB hPbuffer, HDC hDC) +{ + SetLastError(0); + return -1; +} + +GLAPI BOOL GLAPIENTRY +wglDestroyPbufferARB (HPBUFFERARB hPbuffer) +{ + SetLastError(0); + return(FALSE); +} + +GLAPI BOOL GLAPIENTRY +wglQueryPbufferARB (HPBUFFERARB hPbuffer, + int iAttribute, + int *piValue) +{ + SetLastError(0); + return(FALSE); +} + GLAPI const char * GLAPIENTRY wglGetExtensionsStringEXT (void) { return "WGL_3DFX_gamma_control " "WGL_EXT_swap_control " - "WGL_EXT_extensions_string WGL_ARB_extensions_string"; + "WGL_EXT_extensions_string WGL_ARB_extensions_string" + /*WGL_ARB_pixel_format WGL_ARB_render_texture WGL_ARB_pbuffer*/; } GLAPI const char * GLAPIENTRY @@ -495,12 +600,26 @@ static struct { const char *name; PROC func; } wgl_ext[] = { - {"wglGetExtensionsStringARB", wglGetExtensionsStringARB}, - {"wglGetExtensionsStringEXT", wglGetExtensionsStringEXT}, - {"wglSwapIntervalEXT", wglSwapIntervalEXT}, - {"wglGetSwapIntervalEXT", wglGetSwapIntervalEXT}, - {"wglGetDeviceGammaRamp3DFX", wglGetDeviceGammaRamp3DFX}, - {"wglSetDeviceGammaRamp3DFX", wglSetDeviceGammaRamp3DFX}, + {"wglGetExtensionsStringARB", wglGetExtensionsStringARB}, + {"wglGetExtensionsStringEXT", wglGetExtensionsStringEXT}, + {"wglSwapIntervalEXT", wglSwapIntervalEXT}, + {"wglGetSwapIntervalEXT", wglGetSwapIntervalEXT}, + {"wglGetDeviceGammaRamp3DFX", wglGetDeviceGammaRamp3DFX}, + {"wglSetDeviceGammaRamp3DFX", wglSetDeviceGammaRamp3DFX}, + /* WGL_ARB_pixel_format */ + {"wglGetPixelFormatAttribivARB", wglGetPixelFormatAttribivARB}, + {"wglGetPixelFormatAttribfvARB", wglGetPixelFormatAttribfvARB}, + {"wglChoosePixelFormatARB", wglChoosePixelFormatARB}, + /* WGL_ARB_render_texture */ + {"wglBindTexImageARB", wglBindTexImageARB}, + {"wglReleaseTexImageARB", wglReleaseTexImageARB}, + {"wglSetPbufferAttribARB", wglSetPbufferAttribARB}, + /* WGL_ARB_pbuffer */ + {"wglCreatePbufferARB", wglCreatePbufferARB}, + {"wglGetPbufferDCARB", wglGetPbufferDCARB}, + {"wglReleasePbufferDCARB", wglReleasePbufferDCARB}, + {"wglDestroyPbufferARB", wglDestroyPbufferARB}, + {"wglQueryPbufferARB", wglQueryPbufferARB}, {NULL, NULL} }; @@ -510,7 +629,7 @@ wglGetProcAddress(LPCSTR lpszProc) int i; PROC p = (PROC) _glapi_get_proc_address((const char *) lpszProc); - /* [dBorca] we can't do BlendColor... yet */ + /* [dBorca] we can't do BlendColor */ if (p && strcmp(lpszProc, "glBlendColor") && strcmp(lpszProc, "glBlendColorEXT")) return p; -- cgit v1.2.3