/*
* Mesa 3-D graphics library
- * Version: 6.1
+ * Version: 6.5.1
*
- * Copyright (C) 1999-2004 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2006 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
*/
-/* Template for render stages which build and emit vertices directly
+/**
+ * \file t_dd_dmatmp.h
+ * Template for render stages which build and emit vertices directly
* to fixed-size dma buffers. Useful for rendering strips and other
* native primitives where clipping and per-vertex tweaks such as
* those in t_dd_tritmp.h are not required.
FLUSH();
}
- else if (HAVE_TRI_FANS && !(ctx->_TriangleCaps & DD_FLATSHADE)) {
+ else if (HAVE_TRI_FANS && ctx->Light.ShadeModel == GL_SMOOTH) {
TAG(render_tri_fan_verts)( ctx, start, count, flags );
} else {
fprintf(stderr, "%s - cannot draw primitive\n", __FUNCTION__);
FLUSH();
} else if (HAVE_TRI_STRIPS &&
- (ctx->_TriangleCaps & DD_FLATSHADE) &&
- TNL_CONTEXT(ctx)->vb.ColorPtr[0]->stride) {
+ ctx->Light.ShadeModel == GL_FLAT &&
+ TNL_CONTEXT(ctx)->vb.AttribPtr[_TNL_ATTRIB_COLOR0]->stride) {
if (HAVE_ELTS) {
LOCAL_VARS;
int dmasz = GET_SUBSEQUENT_VB_MAX_ELTS();
INIT(GL_TRIANGLES);
- for (j = start; j < count; j += 4) {
+ for (j = start; j < count-3; j += 4) {
void *tmp = ALLOC_VERTS( 6 );
/* Send v0, v1, v3
*/
FLUSH();
currentsz = dmasz;
}
- } else if (HAVE_TRI_FANS && !(ctx->_TriangleCaps & DD_FLATSHADE)) {
+ } else if (HAVE_TRI_FANS && ctx->Light.ShadeModel == GL_SMOOTH) {
TAG(render_tri_fan_verts)( ctx, start, count, flags );
} else {
fprintf(stderr, "%s - cannot draw primitive\n", __FUNCTION__);
if (currentsz < 12)
currentsz = dmasz;
- if (ctx->_TriangleCaps & DD_FLATSHADE) {
+ if (ctx->Light.ShadeModel == GL_FLAT) {
ELT_INIT( GL_TRIANGLES );
currentsz = currentsz/6*2;
if (HAVE_POLYGONS) {
ok = GL_TRUE;
}
- else
- ok = (HAVE_TRI_FANS && !(ctx->_TriangleCaps & DD_FLATSHADE));
+ else {
+ ok = (HAVE_TRI_FANS && ctx->Light.ShadeModel == GL_SMOOTH);
+ }
break;
case GL_QUAD_STRIP:
if (VB->Elts) {
else if (HAVE_QUAD_STRIPS) {
ok = GL_TRUE;
} else if (HAVE_TRI_STRIPS &&
- (ctx->_TriangleCaps & DD_FLATSHADE) &&
- VB->ColorPtr[0]->stride != 0) {
+ ctx->Light.ShadeModel == GL_FLAT &&
+ VB->AttribPtr[_TNL_ATTRIB_COLOR0]->stride != 0) {
if (HAVE_ELTS) {
ok = (GLint) count < GET_SUBSEQUENT_VB_MAX_ELTS();
}
ok = (GLint) count < GET_SUBSEQUENT_VB_MAX_ELTS();
}
else {
- ok = HAVE_TRIANGLES; /* for gears... */
+ ok = HAVE_TRIANGLES; /* flatshading is ok. */
}
break;
default: