- GLfloat color[4], texcoord[4], invq;
-
- color[0] = ctx->Current.RasterColor[0];
- color[1] = ctx->Current.RasterColor[1];
- color[2] = ctx->Current.RasterColor[2];
- color[3] = ctx->Current.RasterColor[3];
- if (ctx->Current.Texcoord[0][3] == 0.0)
- invq = 1.0F;
- else
- invq = 1.0F / ctx->Current.RasterTexCoord[3];
- texcoord[0] = ctx->Current.RasterTexCoord[0] * invq;
- texcoord[1] = ctx->Current.RasterTexCoord[1] * invq;
- texcoord[2] = ctx->Current.RasterTexCoord[2] * invq;
- texcoord[3] = ctx->Current.RasterTexCoord[3];
- FEEDBACK_TOKEN( ctx, (GLfloat) (GLint) GL_BITMAP_TOKEN );
- _mesa_feedback_vertex( ctx,
- ctx->Current.RasterPos,
- color, ctx->Current.RasterIndex, texcoord );
+ if (ctx->Current.RasterPosValid) {
+ FLUSH_CURRENT(ctx, 0);
+ FEEDBACK_TOKEN( ctx, (GLfloat) (GLint) GL_BITMAP_TOKEN );
+ _mesa_feedback_vertex( ctx,
+ ctx->Current.RasterPos,
+ ctx->Current.RasterColor,
+ ctx->Current.RasterIndex,
+ ctx->Current.RasterTexCoord );
+ }