From the content scaling settings manual you linked:
zoomStretch
“Scales the content area to fill the entire screen on any device, ignoring the content aspect ratio. This mode should be used with caution since it will stretch/warp images and text if the device’s aspect ratio doesn’t exactly match the content area’s aspect ratio.”
This is the default stretch projection in the default render script. Use it by posting this message:
msg.post("@render:", "use_stretch_projection", { near = -1, far = 1 })
letterbox
“scales the content area to fill the screen while preserving the same aspect ratio. The entire content area will reside on the screen, but this might result in “black bars” on devices with aspect ratios that differ from your content aspect ratio.”
This is the fixed fit projection in the default render script. Use it by posting this message:
msg.post("@render:", "use_fixed_fit_projection", { near = -1, far = 1 })
zoomEven
“Scales the content area to fill the screen while preserving the same aspect ratio. Some content may “bleed” off the screen edges on devices with aspect ratios that differ from your content aspect ratio.”
This is not supported by the default render script but could quite easily be added. The projection wold be set like this:
local width = render.get_width()
local height = render.get_height()
local window_width = render.get_window_width()
local window_height = render.get_window_height()
local zoom = math.max(window_width / width, window_height / height)
return fixed_projection(near, far, zoom)
adaptive
“Instead of a static content area, a dynamic content width and height is chosen based on the device”
This is not really supported in Defold at all. Although it should be possible to add a similar kind of logic to pick an appropriate zoom level like Corona does and then apply that to both the game world and the ui.
I wonder under which circumstance you don’t want the content to be centered? If there’s a need for it it would be very easy to add support for.