mesa: replace ctx->VertexProgram._TwoSideEnabled with a helper function
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com> Reviewed-by: Brian Paul <brianp@vmware.com> Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
This commit is contained in:
@@ -34,6 +34,7 @@
|
||||
#include "main/mtypes.h"
|
||||
#include "main/enums.h"
|
||||
#include "main/fbobject.h"
|
||||
#include "main/state.h"
|
||||
|
||||
#include "intel_batchbuffer.h"
|
||||
|
||||
@@ -152,8 +153,7 @@ brw_upload_sf_prog(struct brw_context *brw)
|
||||
}
|
||||
|
||||
/* _NEW_LIGHT | _NEW_PROGRAM */
|
||||
key.do_twoside_color = ((ctx->Light.Enabled && ctx->Light.Model.TwoSide) ||
|
||||
ctx->VertexProgram._TwoSideEnabled);
|
||||
key.do_twoside_color = _mesa_vertex_program_two_side_enabled(ctx);
|
||||
|
||||
/* _NEW_POLYGON */
|
||||
if (key.do_twoside_color) {
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
#include "main/context.h"
|
||||
#include "main/enums.h"
|
||||
#include "main/macros.h"
|
||||
#include "main/state.h"
|
||||
|
||||
#include "brw_context.h"
|
||||
#if GEN_GEN == 6
|
||||
@@ -1117,7 +1118,7 @@ genX(calculate_attr_overrides)(const struct brw_context *brw,
|
||||
genX(get_attr_override)(&attribute,
|
||||
&brw->vue_map_geom_out,
|
||||
*urb_entry_read_offset, attr,
|
||||
brw->ctx.VertexProgram._TwoSideEnabled,
|
||||
_mesa_vertex_program_two_side_enabled(ctx),
|
||||
&max_source_attr);
|
||||
}
|
||||
|
||||
|
||||
@@ -2255,8 +2255,6 @@ struct gl_vertex_program_state
|
||||
GLboolean _Enabled; /**< Enabled and _valid_ user program? */
|
||||
GLboolean PointSizeEnabled; /**< GL_VERTEX_PROGRAM_POINT_SIZE_ARB/NV */
|
||||
GLboolean TwoSideEnabled; /**< GL_VERTEX_PROGRAM_TWO_SIDE_ARB/NV */
|
||||
/** Computed two sided lighting for fixed function/programs. */
|
||||
GLboolean _TwoSideEnabled;
|
||||
struct gl_program *Current; /**< User-bound vertex program */
|
||||
|
||||
/** Currently enabled and valid vertex program (including internal
|
||||
|
||||
@@ -289,22 +289,6 @@ update_frontbit(struct gl_context *ctx)
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Update the ctx->VertexProgram._TwoSideEnabled flag.
|
||||
*/
|
||||
static void
|
||||
update_twoside(struct gl_context *ctx)
|
||||
{
|
||||
if (ctx->_Shader->CurrentProgram[MESA_SHADER_VERTEX] ||
|
||||
ctx->VertexProgram._Enabled) {
|
||||
ctx->VertexProgram._TwoSideEnabled = ctx->VertexProgram.TwoSideEnabled;
|
||||
} else {
|
||||
ctx->VertexProgram._TwoSideEnabled = (ctx->Light.Enabled &&
|
||||
ctx->Light.Model.TwoSide);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Compute derived GL state.
|
||||
* If __struct gl_contextRec::NewState is non-zero then this function \b must
|
||||
@@ -376,9 +360,6 @@ _mesa_update_state_locked( struct gl_context *ctx )
|
||||
if (new_state & _NEW_LIGHT)
|
||||
_mesa_update_lighting( ctx );
|
||||
|
||||
if (new_state & (_NEW_LIGHT | _NEW_PROGRAM))
|
||||
update_twoside( ctx );
|
||||
|
||||
if (new_state & _NEW_PIXEL)
|
||||
_mesa_update_pixel( ctx );
|
||||
|
||||
|
||||
@@ -72,4 +72,15 @@ _mesa_need_secondary_color(const struct gl_context *ctx)
|
||||
return GL_FALSE;
|
||||
}
|
||||
|
||||
/** Compute two sided lighting state for fixed function or programs. */
|
||||
static inline bool
|
||||
_mesa_vertex_program_two_side_enabled(const struct gl_context *ctx)
|
||||
{
|
||||
if (ctx->_Shader->CurrentProgram[MESA_SHADER_VERTEX] ||
|
||||
ctx->VertexProgram._Enabled)
|
||||
return ctx->VertexProgram.TwoSideEnabled;
|
||||
|
||||
return ctx->Light.Enabled && ctx->Light.Model.TwoSide;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
|
||||
#include "main/macros.h"
|
||||
#include "main/framebuffer.h"
|
||||
#include "main/state.h"
|
||||
#include "st_context.h"
|
||||
#include "st_atom.h"
|
||||
#include "st_debug.h"
|
||||
@@ -99,7 +100,7 @@ void st_update_rasterizer( struct st_context *st )
|
||||
GL_FIRST_VERTEX_CONVENTION_EXT;
|
||||
|
||||
/* _NEW_LIGHT | _NEW_PROGRAM */
|
||||
raster->light_twoside = ctx->VertexProgram._TwoSideEnabled;
|
||||
raster->light_twoside = _mesa_vertex_program_two_side_enabled(ctx);
|
||||
|
||||
/*_NEW_LIGHT | _NEW_BUFFERS */
|
||||
raster->clamp_vertex_color = !st->clamp_vert_color_in_shader &&
|
||||
|
||||
Reference in New Issue
Block a user