Browse Source

Replace GL_POLYGON+1 with PRIM_OUTSIDE_BEGIN_END

tags/mesa_20060201
Brian Paul 20 years ago
parent
commit
738f501f73
3 changed files with 13 additions and 10 deletions
  1. 2
    2
      src/mesa/tnl/t_array_api.c
  2. 10
    7
      src/mesa/tnl/t_vtx_api.c
  3. 1
    1
      src/mesa/tnl/t_vtx_exec.c

+ 2
- 2
src/mesa/tnl/t_array_api.c View File

@@ -51,7 +51,7 @@ static void fallback_drawarrays( GLcontext *ctx, GLenum mode, GLint start,
GLint i;

assert(!ctx->CompileFlag);
assert(ctx->Driver.CurrentExecPrimitive == GL_POLYGON+1);
assert(ctx->Driver.CurrentExecPrimitive == PRIM_OUTSIDE_BEGIN_END);

CALL_Begin(GET_DISPATCH(), (mode));
for (i = 0; i < count; i++)
@@ -66,7 +66,7 @@ static void fallback_drawelements( GLcontext *ctx, GLenum mode, GLsizei count,
GLint i;

assert(!ctx->CompileFlag);
assert(ctx->Driver.CurrentExecPrimitive == GL_POLYGON+1);
assert(ctx->Driver.CurrentExecPrimitive == PRIM_OUTSIDE_BEGIN_END);

/* Here, indices will already reflect the buffer object if active */


+ 10
- 7
src/mesa/tnl/t_vtx_api.c View File

@@ -68,7 +68,7 @@ static void _tnl_wrap_buffers( GLcontext *ctx )
GLuint last_prim = tnl->vtx.prim[tnl->vtx.prim_count-1].mode;
GLuint last_count;

if (ctx->Driver.CurrentExecPrimitive != GL_POLYGON+1) {
if (ctx->Driver.CurrentExecPrimitive != PRIM_OUTSIDE_BEGIN_END) {
GLint i = tnl->vtx.prim_count - 1;
assert(i >= 0);
tnl->vtx.prim[i].count = ((tnl->vtx.initial_counter -
@@ -91,7 +91,7 @@ static void _tnl_wrap_buffers( GLcontext *ctx )
*/
assert(tnl->vtx.prim_count == 0);

if (ctx->Driver.CurrentExecPrimitive != GL_POLYGON+1) {
if (ctx->Driver.CurrentExecPrimitive != PRIM_OUTSIDE_BEGIN_END) {
tnl->vtx.prim[0].mode = ctx->Driver.CurrentExecPrimitive;
tnl->vtx.prim[0].start = 0;
tnl->vtx.prim[0].count = 0;
@@ -735,7 +735,8 @@ static void GLAPIENTRY _tnl_Begin( GLenum mode )
{
GET_CURRENT_CONTEXT( ctx );

if (ctx->Driver.CurrentExecPrimitive == GL_POLYGON+1) {
if (ctx->Driver.CurrentExecPrimitive == PRIM_OUTSIDE_BEGIN_END) {
/* we're not inside a glBegin/End pair */
TNLcontext *tnl = TNL_CONTEXT(ctx);
int i;

@@ -768,16 +769,18 @@ static void GLAPIENTRY _tnl_Begin( GLenum mode )

ctx->Driver.CurrentExecPrimitive = mode;
}
else
else {
/* already inside glBegin/End */
_mesa_error( ctx, GL_INVALID_OPERATION, "glBegin" );
}
}


static void GLAPIENTRY _tnl_End( void )
{
GET_CURRENT_CONTEXT( ctx );

if (ctx->Driver.CurrentExecPrimitive != GL_POLYGON+1) {
if (ctx->Driver.CurrentExecPrimitive != PRIM_OUTSIDE_BEGIN_END) {
TNLcontext *tnl = TNL_CONTEXT(ctx);
int idx = tnl->vtx.initial_counter - tnl->vtx.counter;
int i = tnl->vtx.prim_count - 1;
@@ -785,7 +788,7 @@ static void GLAPIENTRY _tnl_End( void )
tnl->vtx.prim[i].mode |= PRIM_END;
tnl->vtx.prim[i].count = idx - tnl->vtx.prim[i].start;

ctx->Driver.CurrentExecPrimitive = GL_POLYGON+1;
ctx->Driver.CurrentExecPrimitive = PRIM_OUTSIDE_BEGIN_END;

/* Two choices which effect the way vertex attributes are
* carried over (or not) between adjacent primitives.

+ 1
- 1
src/mesa/tnl/t_vtx_exec.c View File

@@ -248,7 +248,7 @@ static GLuint _tnl_copy_vertices( GLcontext *ctx )
for (i = 0 ; i < ovf ; i++)
_mesa_memcpy( dst+i*sz, src+(nr-ovf+i)*sz, sz * sizeof(GLfloat) );
return i;
case GL_POLYGON+1:
case PRIM_OUTSIDE_BEGIN_END:
return 0;
default:
assert(0);

Loading…
Cancel
Save