#include "intel_batchbuffer.h"
#include "intel_buffers.h"
#include "intel_reg.h"
-#include "intel_span.h"
#include "i830_context.h"
#include "i830_reg.h"
#include "i915_context.h"
intel->no_batch_wrap = true;
- /*printf("%s *", __progname);*/
-
/* Emit a slot which will be filled with the inline primitive
* command later.
*/
} while (0)
-#define DEPTH_SCALE intel->polygon_offset_scale
+#define DEPTH_SCALE (ctx->DrawBuffer->Visual.depthBits == 16 ? 1.0 : 2.0)
#define UNFILLED_TRI unfilled_tri
#define UNFILLED_QUAD unfilled_quad
#define VERT_X(_v) _v->v.x
_swsetup_Translate(ctx, v0, &v[0]);
_swsetup_Translate(ctx, v1, &v[1]);
_swsetup_Translate(ctx, v2, &v[2]);
- intelSpanRenderStart(ctx);
+ _swrast_render_start(ctx);
_swrast_Triangle(ctx, &v[0], &v[1], &v[2]);
- intelSpanRenderFinish(ctx);
+ _swrast_render_finish(ctx);
}
_swsetup_Translate(ctx, v0, &v[0]);
_swsetup_Translate(ctx, v1, &v[1]);
- intelSpanRenderStart(ctx);
+ _swrast_render_start(ctx);
_swrast_Line(ctx, &v[0], &v[1]);
- intelSpanRenderFinish(ctx);
+ _swrast_render_finish(ctx);
}
static void
INTEL_FIREVERTICES(intel);
_swsetup_Translate(ctx, v0, &v[0]);
- intelSpanRenderStart(ctx);
+ _swrast_render_start(ctx);
_swrast_Point(ctx, &v[0]);
- intelSpanRenderFinish(ctx);
+ _swrast_render_finish(ctx);
}
/**********************************************************************/
+#define DD_TRI_LIGHT_TWOSIDE (1 << 1)
#define DD_TRI_UNFILLED (1 << 2)
#define DD_TRI_STIPPLE (1 << 4)
#define DD_TRI_OFFSET (1 << 5)
{
TNLcontext *tnl = TNL_CONTEXT(ctx);
struct intel_context *intel = intel_context(ctx);
- GLuint flags = ctx->_TriangleCaps |
+ GLuint flags =
+ ((ctx->Light.Enabled &&
+ ctx->Light.Model.TwoSide) ? DD_TRI_LIGHT_TWOSIDE : 0) |
((ctx->Polygon.FrontMode != GL_FILL ||
ctx->Polygon.BackMode != GL_FILL) ? DD_TRI_UNFILLED : 0) |
(ctx->Polygon.StippleFlag ? DD_TRI_STIPPLE : 0) |
intel->NewGLState = 0;
}
- intel_map_vertex_shader_textures(ctx);
intel->tnl_pipeline_running = true;
_tnl_run_pipeline(ctx);
intel->tnl_pipeline_running = false;
- intel_unmap_vertex_shader_textures(ctx);
_mesa_unlock_context_textures(ctx);
}
intelRenderPrimitive(struct gl_context * ctx, GLenum prim)
{
struct intel_context *intel = intel_context(ctx);
+ GLboolean unfilled = (ctx->Polygon.FrontMode != GL_FILL ||
+ ctx->Polygon.BackMode != GL_FILL);
if (0)
fprintf(stderr, "%s %s\n", __FUNCTION__, _mesa_lookup_enum_by_nr(prim));
* primitive will always be reset by lower level functions in that case,
* potentially pingponging the state:
*/
- if (reduced_prim[prim] == GL_TRIANGLES &&
- (ctx->_TriangleCaps & DD_TRI_UNFILLED))
+ if (reduced_prim[prim] == GL_TRIANGLES && unfilled)
return;
/* Set some primitive-dependent state and Start? a new primitive.