summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Whitwell <keith@tungstengraphics.com>2005-11-01 17:29:46 +0000
committerKeith Whitwell <keith@tungstengraphics.com>2005-11-01 17:29:46 +0000
commitf4fbda35b001aac22342596f4beafd9539f2ebb9 (patch)
tree113f166779593ea538904c357b8200079146c062
parentc3626a91cee5034528f3f92c802a8e5947ea5f92 (diff)
Add a NotifyInputChanges() callback so that drivers (particularly tnl
drivers) can track when the sizes or strides of incoming VB->AttribPtr arrays have changed.
-rw-r--r--src/mesa/tnl/t_context.h5
-rw-r--r--src/mesa/tnl/t_pipeline.c4
2 files changed, 9 insertions, 0 deletions
diff --git a/src/mesa/tnl/t_context.h b/src/mesa/tnl/t_context.h
index f7a29f9e7e..9eaff95b73 100644
--- a/src/mesa/tnl/t_context.h
+++ b/src/mesa/tnl/t_context.h
@@ -643,6 +643,11 @@ struct tnl_device_driver
/* Alert tnl-aware drivers of changes to material.
*/
+ void (*NotifyInputChanges)(GLcontext *ctx, GLuint bitmask);
+ /* Alert tnl-aware drivers of changes to size and stride of input
+ * arrays.
+ */
+
GLboolean (*NotifyBegin)(GLcontext *ctx, GLenum p);
/* Allow drivers to hook in optimized begin/end engines.
* Return value: GL_TRUE - driver handled the begin
diff --git a/src/mesa/tnl/t_pipeline.c b/src/mesa/tnl/t_pipeline.c
index 61bfed290e..2a87f950ce 100644
--- a/src/mesa/tnl/t_pipeline.c
+++ b/src/mesa/tnl/t_pipeline.c
@@ -90,6 +90,10 @@ static GLuint check_input_changes( GLcontext *ctx )
}
}
+ if (tnl->pipeline.input_changes &&
+ tnl->Driver.NotifyInputChanges)
+ tnl->Driver.NotifyInputChanges( ctx, tnl->pipeline.input_changes );
+
return tnl->pipeline.input_changes;
}