///Обновление void Update () { buffer_size = 0; PropertyDesc* desc = &properties [0]; for (size_t i=0; i<properties.size (); i++, desc++) { desc->name = 0; desc->offset = buffer_size; buffer_size += get_size (desc->type) * desc->elements_count; } hash = crc32 (&properties [0], properties.size () * sizeof (PropertyDesc), crc32 (names.Buffer (), names.BufferSize ())); desc = &properties [0]; for (size_t i=0; i<properties.size (); i++, desc++) desc->name = names [i]; need_update = false; }