mesa/main: Maintain compressed fog mode.
Signed-off-by: Gustaw Smolarczyk <wielkiegie@gmail.com> Signed-off-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
parent
c9b2938aec
commit
6fa34de830
|
@ -385,6 +385,7 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
|
|||
return;
|
||||
FLUSH_VERTICES(ctx, _NEW_FOG);
|
||||
ctx->Fog.Enabled = state;
|
||||
ctx->Fog._PackedEnabledMode = state ? ctx->Fog._PackedMode : FOG_NONE;
|
||||
break;
|
||||
case GL_LIGHT0:
|
||||
case GL_LIGHT1:
|
||||
|
|
|
@ -102,8 +102,13 @@ _mesa_Fogfv( GLenum pname, const GLfloat *params )
|
|||
m = (GLenum) (GLint) *params;
|
||||
switch (m) {
|
||||
case GL_LINEAR:
|
||||
ctx->Fog._PackedMode = FOG_LINEAR;
|
||||
break;
|
||||
case GL_EXP:
|
||||
ctx->Fog._PackedMode = FOG_EXP;
|
||||
break;
|
||||
case GL_EXP2:
|
||||
ctx->Fog._PackedMode = FOG_EXP2;
|
||||
break;
|
||||
default:
|
||||
_mesa_error( ctx, GL_INVALID_ENUM, "glFog" );
|
||||
|
@ -113,6 +118,8 @@ _mesa_Fogfv( GLenum pname, const GLfloat *params )
|
|||
return;
|
||||
FLUSH_VERTICES(ctx, _NEW_FOG);
|
||||
ctx->Fog.Mode = m;
|
||||
ctx->Fog._PackedEnabledMode = ctx->Fog.Enabled ?
|
||||
ctx->Fog._PackedMode : FOG_NONE;
|
||||
break;
|
||||
case GL_FOG_DENSITY:
|
||||
if (*params<0.0F) {
|
||||
|
@ -210,6 +217,8 @@ void _mesa_init_fog( struct gl_context * ctx )
|
|||
/* Fog group */
|
||||
ctx->Fog.Enabled = GL_FALSE;
|
||||
ctx->Fog.Mode = GL_EXP;
|
||||
ctx->Fog._PackedMode = FOG_EXP;
|
||||
ctx->Fog._PackedEnabledMode = FOG_NONE;
|
||||
ASSIGN_4V( ctx->Fog.Color, 0.0, 0.0, 0.0, 0.0 );
|
||||
ASSIGN_4V( ctx->Fog.ColorUnclamped, 0.0, 0.0, 0.0, 0.0 );
|
||||
ctx->Fog.Index = 0.0;
|
||||
|
|
|
@ -574,6 +574,18 @@ struct gl_eval_attrib
|
|||
};
|
||||
|
||||
|
||||
/**
|
||||
* Compressed fog mode.
|
||||
*/
|
||||
enum gl_fog_mode
|
||||
{
|
||||
FOG_NONE,
|
||||
FOG_LINEAR,
|
||||
FOG_EXP,
|
||||
FOG_EXP2,
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Fog attribute group (GL_FOG_BIT).
|
||||
*/
|
||||
|
@ -581,6 +593,8 @@ struct gl_fog_attrib
|
|||
{
|
||||
GLboolean Enabled; /**< Fog enabled flag */
|
||||
GLboolean ColorSumEnabled;
|
||||
uint8_t _PackedMode; /**< Fog mode as 2 bits */
|
||||
uint8_t _PackedEnabledMode; /**< Masked CompressedMode */
|
||||
GLfloat ColorUnclamped[4]; /**< Fog color */
|
||||
GLfloat Color[4]; /**< Fog color */
|
||||
GLfloat Density; /**< Density >= 0.0 */
|
||||
|
|
Loading…
Reference in New Issue