summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/README.3DFX9
-rw-r--r--src/mesa/drivers/glide/fxwgl.c14
-rw-r--r--src/mesa/tnl/t_vtx_x86.c22
3 files changed, 31 insertions, 14 deletions
diff --git a/docs/README.3DFX b/docs/README.3DFX
index b1145b7f80..120e3ea23f 100644
--- a/docs/README.3DFX
+++ b/docs/README.3DFX
@@ -185,6 +185,15 @@ MESA_FX_MAXLOD
"9" - 512x512 textures
"10" - 1024x1024 textures
"11" - 2048x2048 textures
+MESA_GLX_FX
+ OS: win32, linux
+ HW: selective
+ Desc: force display mode
+ Note: (!) experimental!
+ Value:
+ "w" - windowed mode (linux: V1/2/Rush, win32: all except V1/V2)
+ "f" - fullscreen mode (linux: V1/V2/Rush)
+ "d" - disable glide driver (linux: V1/V2/Rush)
diff --git a/src/mesa/drivers/glide/fxwgl.c b/src/mesa/drivers/glide/fxwgl.c
index b87f60282c..cb098fa2ef 100644
--- a/src/mesa/drivers/glide/fxwgl.c
+++ b/src/mesa/drivers/glide/fxwgl.c
@@ -240,6 +240,12 @@ static BITMAPINFO *dibBMI;
static HBITMAP dibHBM;
static HWND dibWnd;
+static int env_check (const char *var, int val)
+{
+ const char *env = getenv(var);
+ return (env && (env[0] == val));
+}
+
static LRESULT APIENTRY
__wglMonitor(HWND hwnd, UINT message, UINT wParam, LONG lParam)
{
@@ -331,10 +337,8 @@ wglCreateContext(HDC hdc)
SetWindowLong(hWnd, GWL_WNDPROC, (LONG) __wglMonitor);
}
- {
- char *env;
- /* always log when debugging, or if user demands */
- if (TDFX_DEBUG || ((env = getenv("MESA_FX_INFO")) && env[0] == 'r'))
+ /* always log when debugging, or if user demands */
+ if (TDFX_DEBUG || env_check("MESA_FX_INFO", 'r')) {
freopen("MESA.LOG", "w", stderr);
}
@@ -343,7 +347,7 @@ wglCreateContext(HDC hdc)
ShowWindow(hWnd, SW_SHOWNORMAL);
SetForegroundWindow(hWnd);
Sleep(100); /* a hack for win95 */
- if (0 && !(GetWindowLong (hWnd, GWL_STYLE) & WS_POPUP)) {
+ if (env_check("MESA_GLX_FX", 'w') && !(GetWindowLong (hWnd, GWL_STYLE) & WS_POPUP)) {
/* [dBorca] Hack alert: unfinished business! */
error = !(ctx = fxMesaCreateContext((GLuint) hWnd, GR_RESOLUTION_NONE, GR_REFRESH_NONE, pix[curPFD - 1].mesaAttr));
} else {
diff --git a/src/mesa/tnl/t_vtx_x86.c b/src/mesa/tnl/t_vtx_x86.c
index 5d7f95e98b..53265d2375 100644
--- a/src/mesa/tnl/t_vtx_x86.c
+++ b/src/mesa/tnl/t_vtx_x86.c
@@ -176,15 +176,19 @@ static struct _tnl_dynfn *makeX86Vertex3fv( GLcontext *ctx, int vertex_size )
TNLcontext *tnl = TNL_CONTEXT(ctx);
DFN ( _tnl_x86_Vertex3fv, tnl->vtx.cache.Vertex[3-1], vertex_size );
- FIXUP(dfn->code, 0, 0, (int)&tnl->vtx.vbptr);
- FIXUP(dfn->code, 0, 1, vertex_size - 3);
- FIXUP(dfn->code, 0, 2, (int)&tnl->vtx.vertex[3]);
- FIXUP(dfn->code, 0, 0, (int)&tnl->vtx.vbptr);
- FIXUP(dfn->code, 0, 3, (int)&tnl->vtx.counter);
- FIXUP(dfn->code, 0, 3, (int)&tnl->vtx.counter);
- FIXUP(dfn->code, 0, 4, (int)ctx);
- FIXUPREL(dfn->code, 0, 5, (int)&_tnl_wrap_filled_vertex);
- return dfn;
+ switch (vertex_size) {
+ default: {
+ FIXUP(dfn->code, 0, 0, (int)&tnl->vtx.vbptr);
+ FIXUP(dfn->code, 0, 1, vertex_size - 3);
+ FIXUP(dfn->code, 0, 2, (int)&tnl->vtx.vertex[3]);
+ FIXUP(dfn->code, 0, 0, (int)&tnl->vtx.vbptr);
+ FIXUP(dfn->code, 0, 3, (int)&tnl->vtx.counter);
+ FIXUP(dfn->code, 0, 3, (int)&tnl->vtx.counter);
+ FIXUP(dfn->code, 0, 4, (int)ctx);
+ FIXUPREL(dfn->code, 0, 5, (int)&_tnl_wrap_filled_vertex);
+ return dfn;
+ }
+ }
}
static struct _tnl_dynfn *makeX86Vertex4fv( GLcontext *ctx, int vertex_size )