mirror of
https://github.com/yquake2/yquake2remaster.git
synced 2024-11-10 07:12:07 +00:00
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:
parent
c68ffec274
commit
6869d7dddd
5 changed files with 16 additions and 73 deletions
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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: ");
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -365,7 +365,6 @@ typedef struct
|
|||
qboolean palettedtexture;
|
||||
qboolean pointparameters;
|
||||
qboolean multitexture;
|
||||
qboolean mtexcombine;
|
||||
|
||||
// ----
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue