(6) There's a real danger of external projects compiling successfully with this change, and then crashing with out-of-bounds array accesses:
127 - uint32_t current_output_format;
128 + MirPixelFormat current_output_format;
because we kept the same name and both are int-compatible but have different meanings. To remove the risk of such regressions, I suggest renaming fields; something like "current_format".
(6) There's a real danger of external projects compiling successfully with this change, and then crashing with out-of-bounds array accesses: output_ format; output_ format;
127 - uint32_t current_
128 + MirPixelFormat current_
because we kept the same name and both are int-compatible but have different meanings. To remove the risk of such regressions, I suggest renaming fields; something like "current_format".