summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/README.3DFX4
-rw-r--r--src/mesa/drivers/glide/fxdd.c6
-rw-r--r--src/mesa/drivers/glide/fxsetup.h124
-rw-r--r--src/mesa/drivers/glide/fxwgl.c9
4 files changed, 76 insertions, 67 deletions
diff --git a/docs/README.3DFX b/docs/README.3DFX
index 4ad7c93658..4b8e13fb9c 100644
--- a/docs/README.3DFX
+++ b/docs/README.3DFX
@@ -117,7 +117,7 @@ MESA_FX_INFO
OS: all
HW: all
Desc: verbose to stderr
- Value: "r" to redirect stderr to MESA.LOG
+ Value: any; special value "r" to redirect stderr to MESA.LOG
MESA_FX_IGNORE_PALEXT
OS: all
HW: all
@@ -129,7 +129,7 @@ MESA_FX_IGNORE_PIXEXT
MESA_FX_IGNORE_TEXFMT
OS: all
HW: Napalm
- Desc: disable 32bit textures; also max texture is 256x256
+ Desc: disable 32bit textures
MESA_FX_IGNORE_CMBEXT
OS: all
HW: Napalm
diff --git a/src/mesa/drivers/glide/fxdd.c b/src/mesa/drivers/glide/fxdd.c
index 448fd043d0..2f0d4fc9b2 100644
--- a/src/mesa/drivers/glide/fxdd.c
+++ b/src/mesa/drivers/glide/fxdd.c
@@ -1502,11 +1502,15 @@ fxDDInitExtensions(GLcontext * ctx)
#if 1
_mesa_enable_extension(ctx, "GL_ARB_vertex_buffer_object");
#endif
- /* not just yet */
#if 0
+ /* not just yet */
_mesa_enable_extension(ctx, "GL_ARB_fragment_program");
_mesa_enable_extension(ctx, "GL_ARB_vertex_program");
#endif
+#if 0
+ /* not until texel fetchers are right */
+ _mesa_enable_extension(ctx, "GL_SGIS_generate_mipmaps");
+#endif
}
diff --git a/src/mesa/drivers/glide/fxsetup.h b/src/mesa/drivers/glide/fxsetup.h
index 236c983662..5cec362f61 100644
--- a/src/mesa/drivers/glide/fxsetup.h
+++ b/src/mesa/drivers/glide/fxsetup.h
@@ -385,61 +385,61 @@ fxSetupTextureEnvNapalm_NoLock(GLcontext * ctx, GLuint textureset, GLuint tmu, G
if (TDFX_DEBUG & (VERBOSE_DRIVER | VERBOSE_TEXTURE)) {
#if 1
fprintf(stderr, "COMBINE_EXT: %s + %s\n",
- _mesa_lookup_enum_by_nr(texUnit->CombineModeRGB),
- _mesa_lookup_enum_by_nr(texUnit->CombineModeA));
+ _mesa_lookup_enum_by_nr(texUnit->Combine.ModeRGB),
+ _mesa_lookup_enum_by_nr(texUnit->Combine.ModeA));
#else
fprintf(stderr, "Texture Unit %d\n", textureset);
fprintf(stderr, " GL_TEXTURE_ENV_MODE = %s\n", _mesa_lookup_enum_by_nr(texUnit->EnvMode));
- fprintf(stderr, " GL_COMBINE_RGB = %s\n", _mesa_lookup_enum_by_nr(texUnit->CombineModeRGB));
- fprintf(stderr, " GL_COMBINE_ALPHA = %s\n", _mesa_lookup_enum_by_nr(texUnit->CombineModeA));
- fprintf(stderr, " GL_SOURCE0_RGB = %s\n", _mesa_lookup_enum_by_nr(texUnit->CombineSourceRGB[0]));
- fprintf(stderr, " GL_SOURCE1_RGB = %s\n", _mesa_lookup_enum_by_nr(texUnit->CombineSourceRGB[1]));
- fprintf(stderr, " GL_SOURCE2_RGB = %s\n", _mesa_lookup_enum_by_nr(texUnit->CombineSourceRGB[2]));
- fprintf(stderr, " GL_SOURCE0_ALPHA = %s\n", _mesa_lookup_enum_by_nr(texUnit->CombineSourceA[0]));
- fprintf(stderr, " GL_SOURCE1_ALPHA = %s\n", _mesa_lookup_enum_by_nr(texUnit->CombineSourceA[1]));
- fprintf(stderr, " GL_SOURCE2_ALPHA = %s\n", _mesa_lookup_enum_by_nr(texUnit->CombineSourceA[2]));
- fprintf(stderr, " GL_OPERAND0_RGB = %s\n", _mesa_lookup_enum_by_nr(texUnit->CombineOperandRGB[0]));
- fprintf(stderr, " GL_OPERAND1_RGB = %s\n", _mesa_lookup_enum_by_nr(texUnit->CombineOperandRGB[1]));
- fprintf(stderr, " GL_OPERAND2_RGB = %s\n", _mesa_lookup_enum_by_nr(texUnit->CombineOperandRGB[2]));
- fprintf(stderr, " GL_OPERAND0_ALPHA = %s\n", _mesa_lookup_enum_by_nr(texUnit->CombineOperandA[0]));
- fprintf(stderr, " GL_OPERAND1_ALPHA = %s\n", _mesa_lookup_enum_by_nr(texUnit->CombineOperandA[1]));
- fprintf(stderr, " GL_OPERAND2_ALPHA = %s\n", _mesa_lookup_enum_by_nr(texUnit->CombineOperandA[2]));
- fprintf(stderr, " GL_RGB_SCALE = %d\n", 1 << texUnit->CombineScaleShiftRGB);
- fprintf(stderr, " GL_ALPHA_SCALE = %d\n", 1 << texUnit->CombineScaleShiftA);
+ fprintf(stderr, " GL_COMBINE_RGB = %s\n", _mesa_lookup_enum_by_nr(texUnit->Combine.ModeRGB));
+ fprintf(stderr, " GL_COMBINE_ALPHA = %s\n", _mesa_lookup_enum_by_nr(texUnit->Combine.ModeA));
+ fprintf(stderr, " GL_SOURCE0_RGB = %s\n", _mesa_lookup_enum_by_nr(texUnit->Combine.SourceRGB[0]));
+ fprintf(stderr, " GL_SOURCE1_RGB = %s\n", _mesa_lookup_enum_by_nr(texUnit->Combine.SourceRGB[1]));
+ fprintf(stderr, " GL_SOURCE2_RGB = %s\n", _mesa_lookup_enum_by_nr(texUnit->Combine.SourceRGB[2]));
+ fprintf(stderr, " GL_SOURCE0_ALPHA = %s\n", _mesa_lookup_enum_by_nr(texUnit->Combine.SourceA[0]));
+ fprintf(stderr, " GL_SOURCE1_ALPHA = %s\n", _mesa_lookup_enum_by_nr(texUnit->Combine.SourceA[1]));
+ fprintf(stderr, " GL_SOURCE2_ALPHA = %s\n", _mesa_lookup_enum_by_nr(texUnit->Combine.SourceA[2]));
+ fprintf(stderr, " GL_OPERAND0_RGB = %s\n", _mesa_lookup_enum_by_nr(texUnit->Combine.OperandRGB[0]));
+ fprintf(stderr, " GL_OPERAND1_RGB = %s\n", _mesa_lookup_enum_by_nr(texUnit->Combine.OperandRGB[1]));
+ fprintf(stderr, " GL_OPERAND2_RGB = %s\n", _mesa_lookup_enum_by_nr(texUnit->Combine.OperandRGB[2]));
+ fprintf(stderr, " GL_OPERAND0_ALPHA = %s\n", _mesa_lookup_enum_by_nr(texUnit->Combine.OperandA[0]));
+ fprintf(stderr, " GL_OPERAND1_ALPHA = %s\n", _mesa_lookup_enum_by_nr(texUnit->Combine.OperandA[1]));
+ fprintf(stderr, " GL_OPERAND2_ALPHA = %s\n", _mesa_lookup_enum_by_nr(texUnit->Combine.OperandA[2]));
+ fprintf(stderr, " GL_RGB_SCALE = %d\n", 1 << texUnit->Combine.ScaleShiftRGB);
+ fprintf(stderr, " GL_ALPHA_SCALE = %d\n", 1 << texUnit->Combine.ScaleShiftA);
fprintf(stderr, " GL_TEXTURE_ENV_COLOR = (%f, %f, %f, %f)\n", envColor[0], envColor[1], envColor[2], envColor[3]);
#endif
}
- alphaComb.Shift = texUnit->CombineScaleShiftA;
- colorComb.Shift = texUnit->CombineScaleShiftRGB;
+ alphaComb.Shift = texUnit->Combine.ScaleShiftA;
+ colorComb.Shift = texUnit->Combine.ScaleShiftRGB;
- switch (texUnit->CombineModeRGB) {
+ switch (texUnit->Combine.ModeRGB) {
case GL_MODULATE:
/* Arg0 * Arg1 == (A + 0) * C + 0 */
TEXENV_SETUP_ARG_RGB(colorComb.SourceA,
- texUnit->CombineSourceRGB[0],
- texUnit->CombineOperandRGB[0],
+ texUnit->Combine.SourceRGB[0],
+ texUnit->Combine.OperandRGB[0],
localc, locala);
TEXENV_SETUP_MODE_RGB(colorComb.ModeA,
- texUnit->CombineOperandRGB[0]);
+ texUnit->Combine.OperandRGB[0]);
colorComb.SourceB = GR_CMBX_ZERO;
colorComb.ModeB = GR_FUNC_MODE_ZERO;
TEXENV_SETUP_ARG_RGB(colorComb.SourceC,
- texUnit->CombineSourceRGB[1],
- texUnit->CombineOperandRGB[1],
+ texUnit->Combine.SourceRGB[1],
+ texUnit->Combine.OperandRGB[1],
localc, locala);
colorComb.InvertC = TEXENV_OPERAND_INVERTED(
- texUnit->CombineOperandRGB[1]);
+ texUnit->Combine.OperandRGB[1]);
colorComb.SourceD = GR_CMBX_ZERO;
break;
case GL_REPLACE:
/* Arg0 == (A + 0) * 1 + 0 */
TEXENV_SETUP_ARG_RGB(colorComb.SourceA,
- texUnit->CombineSourceRGB[0],
- texUnit->CombineOperandRGB[0],
+ texUnit->Combine.SourceRGB[0],
+ texUnit->Combine.OperandRGB[0],
localc, locala);
TEXENV_SETUP_MODE_RGB(colorComb.ModeA,
- texUnit->CombineOperandRGB[0]);
+ texUnit->Combine.OperandRGB[0]);
colorComb.SourceB = GR_CMBX_ZERO;
colorComb.ModeB = GR_FUNC_MODE_ZERO;
colorComb.SourceC = GR_CMBX_ZERO;
@@ -449,17 +449,17 @@ fxSetupTextureEnvNapalm_NoLock(GLcontext * ctx, GLuint textureset, GLuint tmu, G
case GL_ADD:
/* Arg0 + Arg1 = (A + B) * 1 + 0 */
TEXENV_SETUP_ARG_RGB(colorComb.SourceA,
- texUnit->CombineSourceRGB[0],
- texUnit->CombineOperandRGB[0],
+ texUnit->Combine.SourceRGB[0],
+ texUnit->Combine.OperandRGB[0],
localc, locala);
TEXENV_SETUP_MODE_RGB(colorComb.ModeA,
- texUnit->CombineOperandRGB[0]);
+ texUnit->Combine.OperandRGB[0]);
TEXENV_SETUP_ARG_RGB(colorComb.SourceB,
- texUnit->CombineSourceRGB[1],
- texUnit->CombineOperandRGB[1],
+ texUnit->Combine.SourceRGB[1],
+ texUnit->Combine.OperandRGB[1],
localc, locala);
TEXENV_SETUP_MODE_RGB(colorComb.ModeB,
- texUnit->CombineOperandRGB[1]);
+ texUnit->Combine.OperandRGB[1]);
colorComb.SourceC = GR_CMBX_ZERO;
colorComb.InvertC = FXTRUE;
colorComb.SourceD = GR_CMBX_ZERO;
@@ -469,16 +469,16 @@ fxSetupTextureEnvNapalm_NoLock(GLcontext * ctx, GLuint textureset, GLuint tmu, G
* (Arg0 - Arg1) * Arg2 + Arg1 == (A - B) * C + D
*/
TEXENV_SETUP_ARG_RGB(colorComb.SourceA,
- texUnit->CombineSourceRGB[0],
- texUnit->CombineOperandRGB[0],
+ texUnit->Combine.SourceRGB[0],
+ texUnit->Combine.OperandRGB[0],
localc, locala);
TEXENV_SETUP_MODE_RGB(colorComb.ModeA,
- texUnit->CombineOperandRGB[0]);
+ texUnit->Combine.OperandRGB[0]);
TEXENV_SETUP_ARG_RGB(colorComb.SourceB,
- texUnit->CombineSourceRGB[1],
- texUnit->CombineOperandRGB[1],
+ texUnit->Combine.SourceRGB[1],
+ texUnit->Combine.OperandRGB[1],
localc, locala);
- if (TEXENV_OPERAND_INVERTED(texUnit->CombineOperandRGB[1])) {
+ if (TEXENV_OPERAND_INVERTED(texUnit->Combine.OperandRGB[1])) {
/* Hack alert!!! This case is wrong!!! */
fprintf(stderr, "COMBINE_EXT_color: WRONG!!!\n");
colorComb.ModeB = GR_FUNC_MODE_NEGATIVE_X;
@@ -490,44 +490,44 @@ fxSetupTextureEnvNapalm_NoLock(GLcontext * ctx, GLuint textureset, GLuint tmu, G
* specify some kind of alpha value.
*/
TEXENV_SETUP_ARG_A(colorComb.SourceC,
- texUnit->CombineSourceRGB[2],
- texUnit->CombineOperandRGB[2],
+ texUnit->Combine.SourceRGB[2],
+ texUnit->Combine.OperandRGB[2],
locala);
colorComb.InvertC = FXFALSE;
colorComb.SourceD = GR_CMBX_B;
break;
default:
fprintf(stderr, "COMBINE_EXT_color: %s\n",
- _mesa_lookup_enum_by_nr(texUnit->CombineModeRGB));
+ _mesa_lookup_enum_by_nr(texUnit->Combine.ModeRGB));
}
- switch (texUnit->CombineModeA) {
+ switch (texUnit->Combine.ModeA) {
case GL_MODULATE:
/* Arg0 * Arg1 == (A + 0) * C + 0 */
TEXENV_SETUP_ARG_A(alphaComb.SourceA,
- texUnit->CombineSourceA[0],
- texUnit->CombineOperandA[0],
+ texUnit->Combine.SourceA[0],
+ texUnit->Combine.OperandA[0],
locala);
TEXENV_SETUP_MODE_A(alphaComb.ModeA,
- texUnit->CombineOperandA[0]);
+ texUnit->Combine.OperandA[0]);
alphaComb.SourceB = GR_CMBX_ZERO;
alphaComb.ModeB = GR_FUNC_MODE_ZERO;
TEXENV_SETUP_ARG_A(alphaComb.SourceC,
- texUnit->CombineSourceA[1],
- texUnit->CombineOperandA[1],
+ texUnit->Combine.SourceA[1],
+ texUnit->Combine.OperandA[1],
locala);
alphaComb.InvertC = TEXENV_OPERAND_INVERTED(
- texUnit->CombineOperandA[1]);
+ texUnit->Combine.OperandA[1]);
alphaComb.SourceD = GR_CMBX_ZERO;
break;
case GL_REPLACE:
/* Arg0 == (A + 0) * 1 + 0 */
TEXENV_SETUP_ARG_A(alphaComb.SourceA,
- texUnit->CombineSourceA[0],
- texUnit->CombineOperandA[0],
+ texUnit->Combine.SourceA[0],
+ texUnit->Combine.OperandA[0],
locala);
TEXENV_SETUP_MODE_A(alphaComb.ModeA,
- texUnit->CombineOperandA[0]);
+ texUnit->Combine.OperandA[0]);
alphaComb.SourceB = GR_CMBX_ZERO;
alphaComb.ModeB = GR_FUNC_MODE_ZERO;
alphaComb.SourceC = GR_CMBX_ZERO;
@@ -537,24 +537,24 @@ fxSetupTextureEnvNapalm_NoLock(GLcontext * ctx, GLuint textureset, GLuint tmu, G
case GL_ADD:
/* Arg0 + Arg1 = (A + B) * 1 + 0 */
TEXENV_SETUP_ARG_A(alphaComb.SourceA,
- texUnit->CombineSourceA[0],
- texUnit->CombineOperandA[0],
+ texUnit->Combine.SourceA[0],
+ texUnit->Combine.OperandA[0],
locala);
TEXENV_SETUP_MODE_A(alphaComb.ModeA,
- texUnit->CombineOperandA[0]);
+ texUnit->Combine.OperandA[0]);
TEXENV_SETUP_ARG_A(alphaComb.SourceB,
- texUnit->CombineSourceA[1],
- texUnit->CombineOperandA[1],
+ texUnit->Combine.SourceA[1],
+ texUnit->Combine.OperandA[1],
locala);
TEXENV_SETUP_MODE_A(alphaComb.ModeB,
- texUnit->CombineOperandA[1]);
+ texUnit->Combine.OperandA[1]);
alphaComb.SourceC = GR_CMBX_ZERO;
alphaComb.InvertC = FXTRUE;
alphaComb.SourceD = GR_CMBX_ZERO;
break;
default:
fprintf(stderr, "COMBINE_EXT_alpha: %s\n",
- _mesa_lookup_enum_by_nr(texUnit->CombineModeA));
+ _mesa_lookup_enum_by_nr(texUnit->Combine.ModeA));
}
fxMesa->Glide.grConstantColorValueExt(tmu,
diff --git a/src/mesa/drivers/glide/fxwgl.c b/src/mesa/drivers/glide/fxwgl.c
index f8450b1b01..c70bb3b892 100644
--- a/src/mesa/drivers/glide/fxwgl.c
+++ b/src/mesa/drivers/glide/fxwgl.c
@@ -345,8 +345,13 @@ wglCreateContext(HDC hdc)
ShowWindow(hWnd, SW_SHOWNORMAL);
SetForegroundWindow(hWnd);
Sleep(100); /* a hack for win95 */
- GetClientRect(hWnd, &cliRect);
- error = !(ctx = fxMesaCreateBestContext((GLuint) hWnd, cliRect.right, cliRect.bottom, pix[curPFD - 1].mesaAttr));
+ if (0 && !(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 {
+ GetClientRect(hWnd, &cliRect);
+ error = !(ctx = fxMesaCreateBestContext((GLuint) hWnd, cliRect.right, cliRect.bottom, pix[curPFD - 1].mesaAttr));
+ }
}
/*if (getenv("SST_DUALHEAD"))