0b1049b41d
Fixes #115776 Create a minimal structure that contains the instructions necessary to copy from one custom data format to another. This structure is similar to the one used indfacaf4f40. It should have been used in9175d9b7c2, which instead introduced quadratic performance relative to the number of layers when copying every element. In this commit, copying the entire mesh and adding new custom data are explicitly changed to use the new map to speed up copying many elements at a time. The non-map attribute copy functions are also changed to check for when the source and result BMeshes are the same. In that case it's much faster to call the "same format" function from9175d9b7c2. For numbers, the timings are arbitrarily influenced by how many layers I add in my testing. With 50 or so layers, a 10x difference is easily observable though. Pull Request: https://projects.blender.org/blender/blender/pulls/115824