If you need a particular target format, why not create it with bmap_create in sufficient size so that you don't need to recreate it when the resolution changes? This seems to me the logical way, rather than adding an array of formats to the view struct.