summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/state.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/main/state.h')
-rw-r--r--src/mesa/main/state.h23
1 files changed, 22 insertions, 1 deletions
diff --git a/src/mesa/main/state.h b/src/mesa/main/state.h
index 6d81c3f421b..b719f392965 100644
--- a/src/mesa/main/state.h
+++ b/src/mesa/main/state.h
@@ -72,12 +72,19 @@ _mesa_need_secondary_color(const struct gl_context *ctx)
return GL_FALSE;
}
+static inline bool
+_mesa_arb_vertex_program_enabled(const struct gl_context *ctx)
+{
+ return ctx->VertexProgram.Enabled &&
+ ctx->VertexProgram.Current->arb.Instructions;
+}
+
/** 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)
+ _mesa_arb_vertex_program_enabled(ctx))
return ctx->VertexProgram.TwoSideEnabled;
return ctx->Light.Enabled && ctx->Light.Model.TwoSide;
@@ -93,4 +100,18 @@ _mesa_polygon_get_front_bit(const struct gl_context *ctx)
return ctx->Polygon.FrontFace == GL_CCW;
}
+static inline bool
+_mesa_arb_fragment_program_enabled(const struct gl_context *ctx)
+{
+ return ctx->FragmentProgram.Enabled &&
+ ctx->FragmentProgram.Current->arb.Instructions;
+}
+
+static inline bool
+_mesa_ati_fragment_shader_enabled(const struct gl_context *ctx)
+{
+ return ctx->ATIFragmentShader.Enabled &&
+ ctx->ATIFragmentShader.Current->Instructions[0];
+}
+
#endif