GL1 multitexture combine removed

Applied too many OpenGL calls for an effect that could not be told
apart from normal GL_MODULATE; explains its absence from Q3A code.
Also, removed calls to glPixelStorei when no dynamic lights present.
This commit is contained in:
Jaime Moreira 2024-06-04 14:59:05 -04:00
parent c68ffec274
commit 6869d7dddd
5 changed files with 16 additions and 73 deletions

View file

@ -234,47 +234,14 @@ R_EnableMultitexture(qboolean enable)
{
glEnable(GL_TEXTURE_2D);
if (gl_config.mtexcombine)
if (gl_lightmap->value)
{
R_TexEnv(GL_COMBINE);
if (gl_lightmap->value)
{
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_REPLACE);
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_TEXTURE);
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_REPLACE);
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA, GL_TEXTURE);
}
else
{
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_MODULATE);
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_TEXTURE);
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_PREVIOUS);
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_MODULATE);
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA, GL_TEXTURE);
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_ALPHA, GL_PREVIOUS);
}
R_SelectTexture(GL_TEXTURE0);
R_TexEnv(GL_COMBINE);
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_REPLACE);
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_TEXTURE);
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_REPLACE);
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA, GL_TEXTURE);
return;
R_TexEnv(GL_REPLACE);
}
else
{
if (gl_lightmap->value)
{
R_TexEnv(GL_REPLACE);
}
else
{
R_TexEnv(GL_MODULATE);
}
R_TexEnv(GL_MODULATE);
}
}
else // disable multitexturing
{

View file

@ -1220,7 +1220,7 @@ R_Register(void)
gl1_palettedtexture = ri.Cvar_Get("r_palettedtextures", "0", CVAR_ARCHIVE);
gl1_pointparameters = ri.Cvar_Get("gl1_pointparameters", "1", CVAR_ARCHIVE);
gl1_multitexture = ri.Cvar_Get("gl1_multitexture", "2", CVAR_ARCHIVE);
gl1_multitexture = ri.Cvar_Get("gl1_multitexture", "1", CVAR_ARCHIVE);
gl1_biglightmaps = ri.Cvar_Get("gl1_biglightmaps", "1", CVAR_ARCHIVE);
gl_drawbuffer = ri.Cvar_Get("gl_drawbuffer", "GL_BACK", 0);
@ -1586,7 +1586,7 @@ RI_Init(void)
// ----
/* Multitexturing */
gl_config.multitexture = gl_config.mtexcombine = false;
gl_config.multitexture = false;
R_Printf(PRINT_ALL, " - Multitexturing: ");
@ -1621,29 +1621,6 @@ RI_Init(void)
// ----
/* Multi texturing combine */
R_Printf(PRINT_ALL, " - Multitexturing combine: ");
if ( ( strstr(gl_config.extensions_string, "GL_ARB_texture_env_combine")
|| strstr(gl_config.extensions_string, "GL_EXT_texture_env_combine") ) )
{
if (gl_config.multitexture && gl1_multitexture->value > 1)
{
gl_config.mtexcombine = true;
R_Printf(PRINT_ALL, "Okay\n");
}
else
{
R_Printf(PRINT_ALL, "Disabled\n");
}
}
else
{
R_Printf(PRINT_ALL, "Failed\n");
}
// ----
/* Big lightmaps */
R_Printf(PRINT_ALL, " - Big lightmaps: ");

View file

@ -746,7 +746,7 @@ static void
R_RegenAllLightmaps()
{
int i, map, smax, tmax, top, bottom, left, right, bt, bb, bl, br;
qboolean affected_lightmap;
qboolean affected_lightmap, pixelstore_set = false;
msurface_t *surf;
byte *base;
@ -755,8 +755,6 @@ R_RegenAllLightmaps()
return;
}
glPixelStorei(GL_UNPACK_ROW_LENGTH, gl_state.block_width);
for (i = 1; i < gl_state.max_lightmaps; i++)
{
if (!gl_lms.lightmap_surfaces[i] || !gl_lms.lightmap_buffer[i])
@ -816,6 +814,12 @@ R_RegenAllLightmaps()
continue;
}
if (!pixelstore_set)
{
glPixelStorei(GL_UNPACK_ROW_LENGTH, gl_state.block_width);
pixelstore_set = true;
}
base = gl_lms.lightmap_buffer[i];
base += (bt * gl_state.block_width + bl) * LIGHTMAP_BYTES;
@ -825,7 +829,10 @@ R_RegenAllLightmaps()
GL_LIGHTMAP_FORMAT, GL_UNSIGNED_BYTE, base);
}
glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
if (pixelstore_set)
{
glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
}
}
static void

View file

@ -365,7 +365,6 @@ typedef struct
qboolean palettedtexture;
qboolean pointparameters;
qboolean multitexture;
qboolean mtexcombine;
// ----

View file

@ -57,14 +57,7 @@
#define GL_TEXTURE1 0x84C1
#define GL_MULTISAMPLE 0x809D
#define GL_COMBINE 0x8570
#define GL_COMBINE_RGB 0x8571
#define GL_COMBINE_ALPHA 0x8572
#define GL_SOURCE0_RGB 0x8580
#define GL_SOURCE1_RGB 0x8581
#define GL_SOURCE0_ALPHA 0x8588
#define GL_SOURCE1_ALPHA 0x8589
#define GL_RGB_SCALE 0x8573
#define GL_PREVIOUS 0x8578
#endif
#ifndef GL_EXT_shared_texture_palette