Index: /trunk/nv/gfx/keyframed_mesh.hh
===================================================================
--- /trunk/nv/gfx/keyframed_mesh.hh	(revision 250)
+++ /trunk/nv/gfx/keyframed_mesh.hh	(revision 251)
@@ -45,5 +45,5 @@
 		virtual void set_frame( uint32 frame );
 		virtual void update( uint32 ms );
-		virtual void update( program* a_program );
+		virtual void update( program* a_program ) const;
 		virtual ~keyframed_mesh();
 	protected:
Index: /trunk/nv/interface/context.hh
===================================================================
--- /trunk/nv/interface/context.hh	(revision 250)
+++ /trunk/nv/interface/context.hh	(revision 251)
@@ -39,8 +39,8 @@
 		explicit mesh_interface( vertex_array* array ) : m_va( array ) {}
 		virtual void update( uint32 ) {}
-		virtual void update( program* ) {}
+		virtual void update( program* ) const {}
 		virtual nv::vertex_array* get_vertex_array() const { return m_va; }
 		virtual size_t get_index_count() const { return 0; }
-		virtual nv::primitive get_primitive_type() { return nv::TRIANGLES; }
+		virtual nv::primitive get_primitive_type() const { return nv::TRIANGLES; }
 		virtual ~mesh_interface() {}
 	protected:
@@ -62,9 +62,9 @@
 		virtual void draw( primitive prim, const render_state& rs, program* p, vertex_array* va, size_t count ) = 0;
 
-		virtual void draw( const render_state& rs, program* p, mesh_interface* mesh )
+		virtual void draw( const render_state& rs, program* p, const mesh_interface* mesh )
 		{
 			draw( mesh->get_primitive_type(), rs, p, mesh->get_vertex_array(), mesh->get_index_count() );
 		}
-		virtual void draw( const render_state& rs, const scene_state& s, program* p, mesh_interface* mesh )
+		virtual void draw( const render_state& rs, const scene_state& s, program* p, const mesh_interface* mesh )
 		{
 			p->apply_engine_uniforms( this, &s );
Index: /trunk/src/gfx/keyframed_mesh.cc
===================================================================
--- /trunk/src/gfx/keyframed_mesh.cc	(revision 250)
+++ /trunk/src/gfx/keyframed_mesh.cc	(revision 251)
@@ -106,5 +106,5 @@
 }
 
-void nv::keyframed_mesh::update( program* a_program )
+void nv::keyframed_mesh::update( program* a_program ) const
 {
 	a_program->set_opt_uniform( "nv_interpolate", m_interpolation );
