vbo: Make no_current_update an argument to vbo_save_NotifyBegin.
Instead of coding additional information into the primitive mode, make the only remaining flag there a direct argument to vbo_save_NotifyBegin. v2: Fix incorrect no_current_update in glRectf. Reviewed-by: Brian Paul <brianp@vmware.com> Signed-off-by: Mathias Fröhlich <Mathias.Froehlich@web.de>
This commit is contained in:
@@ -6094,7 +6094,7 @@ save_Begin(GLenum mode)
|
||||
else {
|
||||
ctx->Driver.CurrentSavePrimitive = mode;
|
||||
|
||||
vbo_save_NotifyBegin(ctx, mode);
|
||||
vbo_save_NotifyBegin(ctx, mode, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-1
@@ -100,7 +100,8 @@ void
|
||||
vbo_save_SaveFlushVertices(struct gl_context *ctx);
|
||||
|
||||
void
|
||||
vbo_save_NotifyBegin(struct gl_context *ctx, GLenum mode);
|
||||
vbo_save_NotifyBegin(struct gl_context *ctx, GLenum mode,
|
||||
bool no_current_update);
|
||||
|
||||
void
|
||||
vbo_save_NewList(struct gl_context *ctx, GLuint list, GLenum mode);
|
||||
|
||||
@@ -137,7 +137,6 @@ _vbo_save_get_vertex_count(const struct vbo_save_vertex_list *node)
|
||||
#define VBO_SAVE_BUFFER_SIZE (256*1024) /* dwords */
|
||||
#define VBO_SAVE_PRIM_SIZE 128
|
||||
#define VBO_SAVE_PRIM_MODE_MASK 0x3f
|
||||
#define VBO_SAVE_PRIM_NO_CURRENT_UPDATE 0x80
|
||||
|
||||
struct vbo_save_vertex_store {
|
||||
struct gl_buffer_object *bufferobj;
|
||||
|
||||
@@ -1193,7 +1193,8 @@ _save_CallLists(GLsizei n, GLenum type, const GLvoid * v)
|
||||
* Updating of ctx->Driver.CurrentSavePrimitive is already taken care of.
|
||||
*/
|
||||
void
|
||||
vbo_save_NotifyBegin(struct gl_context *ctx, GLenum mode)
|
||||
vbo_save_NotifyBegin(struct gl_context *ctx, GLenum mode,
|
||||
bool no_current_update)
|
||||
{
|
||||
struct vbo_save_context *save = &vbo_context(ctx)->save;
|
||||
const GLuint i = save->prim_count++;
|
||||
@@ -1209,8 +1210,7 @@ vbo_save_NotifyBegin(struct gl_context *ctx, GLenum mode)
|
||||
save->prims[i].base_instance = 0;
|
||||
save->prims[i].is_indirect = 0;
|
||||
|
||||
save->no_current_update =
|
||||
(mode & VBO_SAVE_PRIM_NO_CURRENT_UPDATE) ? 1 : 0;
|
||||
save->no_current_update = no_current_update;
|
||||
|
||||
if (save->out_of_memory) {
|
||||
_mesa_install_save_vtxfmt(ctx, &save->vtxfmt_noop);
|
||||
@@ -1280,7 +1280,7 @@ _save_PrimitiveRestartNV(void)
|
||||
|
||||
/* restart primitive */
|
||||
CALL_End(GET_DISPATCH(), ());
|
||||
vbo_save_NotifyBegin(ctx, curPrim);
|
||||
vbo_save_NotifyBegin(ctx, curPrim, false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1294,7 +1294,7 @@ static void GLAPIENTRY
|
||||
_save_OBE_Rectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
vbo_save_NotifyBegin(ctx, GL_QUADS);
|
||||
vbo_save_NotifyBegin(ctx, GL_QUADS, false);
|
||||
CALL_Vertex2f(GET_DISPATCH(), (x1, y1));
|
||||
CALL_Vertex2f(GET_DISPATCH(), (x2, y1));
|
||||
CALL_Vertex2f(GET_DISPATCH(), (x2, y2));
|
||||
@@ -1327,7 +1327,7 @@ _save_OBE_DrawArrays(GLenum mode, GLint start, GLsizei count)
|
||||
|
||||
_ae_map_vbos(ctx);
|
||||
|
||||
vbo_save_NotifyBegin(ctx, (mode | VBO_SAVE_PRIM_NO_CURRENT_UPDATE));
|
||||
vbo_save_NotifyBegin(ctx, mode, true);
|
||||
|
||||
for (i = 0; i < count; i++)
|
||||
CALL_ArrayElement(GET_DISPATCH(), (start + i));
|
||||
@@ -1410,7 +1410,7 @@ _save_OBE_DrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type,
|
||||
indices =
|
||||
ADD_POINTERS(indexbuf->Mappings[MAP_INTERNAL].Pointer, indices);
|
||||
|
||||
vbo_save_NotifyBegin(ctx, (mode | VBO_SAVE_PRIM_NO_CURRENT_UPDATE));
|
||||
vbo_save_NotifyBegin(ctx, mode, true);
|
||||
|
||||
switch (type) {
|
||||
case GL_UNSIGNED_BYTE:
|
||||
|
||||
Reference in New Issue
Block a user