fix crash on simple animations

This commit is contained in:
David Rose 2005-05-26 20:13:50 +00:00
parent d08a4bcd2b
commit 1ec142d675

View File

@ -64,11 +64,19 @@ munge_format_impl(const qpGeomVertexFormat *orig,
C_color, color_type->get_start());
}
if (animation.get_animation_type() == AT_hardware &&
animation.get_num_transforms() > 0) {
if (animation.get_animation_type() == AT_hardware) {
// If we want hardware animation, we need to reserve space for the
// blend weights.
// Make sure the old weights and indices are removed, just in
// case.
new_format->remove_column(InternalName::get_transform_weight());
new_format->remove_column(InternalName::get_transform_index());
// And we don't need the transform_blend table any more.
new_format->remove_column(InternalName::get_transform_blend());
if (animation.get_num_transforms() > 1) {
PT(qpGeomVertexArrayFormat) new_array_format = new qpGeomVertexArrayFormat;
new_array_format->add_column
(InternalName::get_transform_weight(), animation.get_num_transforms() - 1,
@ -88,16 +96,9 @@ munge_format_impl(const qpGeomVertexFormat *orig,
NT_uint8, C_index);
}
// Make sure the old weights and indices are removed, just in
// case.
new_format->remove_column(InternalName::get_transform_weight());
new_format->remove_column(InternalName::get_transform_index());
// And we don't need the transform_blend table any more.
new_format->remove_column(InternalName::get_transform_blend());
new_format->add_array(new_array_format);
}
}
/*
if (true) {