initialize_global_viewport = function() local minx, miny, maxx, maxy = surface_bounds(Definitions) -- ensure 1px of white background all around -- just in case the viewport ever goes -- outside canvas bounds while animating minx,miny, maxx,maxy = minx-1,miny-1, maxx+2,maxy+1 local zoomx = App.screen.width/(maxx-minx) local zoomy = App.screen.height/(maxy-miny) local zoom, cw, ch if zoomx < zoomy then zoom = zoomx cw = maxx-minx ch = cw*App.screen.height/App.screen.width else zoom = zoomy ch = maxy-miny cw = ch*App.screen.width/App.screen.height end Global_viewport = {x=minx, y=miny, w=cw, h=ch, zoom=zoom} end