@XenonBL - actually, dynamic content scaling DOES work in both the up and down directions (I’ll explain below why it doesn’t seem that way).
To see an example of dynamic content scaling using a large content size and then DOWNscaling to smaller screens, check out the “SimplePool” sample project. Its config.lua file establishes the iPad as the base content size for the app:
application =
{
content =
{
width = 768,
height = 1024,
scale = "letterbox"
}
}
…but then the game downscales nicely to iPhone3, iPhone4, Droid, Nexus One, etc.
However, here’s the potential gotcha: there is a Corona “safety feature” that autoscales larger images by default – this is discussed in the documentation for the display.newImage() API:
http://developer.anscamobile.com/content/display-objects#Image_Autoscaling
Specifically, the “safety feature” scales all images down to the next power-of-2 in each dimension, relative to the native screen size of the current hardware. So, for example, on iPhone3, all large images will be downscaled to no larger than 512 x 512.
Normally, this is harmless, and actually helpful, since it prevents users from accidentally blowing up all their graphics memory by loading a single large camera image. However, if you’re trying to globally scale your entire project DOWN from iPad or iPhone4 to iPhone3, then you’ll find that you’re tripping the safety feature on iPhone3 by accident, since all large assets will be bigger than 512 x 512.
The fix is easy: just add the optional “true” parameter when loading large images, since this overrides the safety feature. In SimplePool, for example, you can see it in use here:
local tabletop = display.newImage( "table\_bkg.png", true )
-- "true" overrides Corona's downsizing of large images on smaller devices
In other words, you should be able to do what you want: size everything for iPhone4, and then globally scale the app down to iPhone3.
One caveat, though: remember that iPhone3 (pre-3GS) only has half as much texture memory as iPhone4 – roughly 10MB vs 20MB – so it is literally not possible to fully use the 20MB graphics memory of the iPhone4 AND still target the iPhone3. You’ll need to keep that in mind, and watch your texture memory consumption to make sure the app still works on your lowest-common-denominator device targets.
To see how much texture memory is currently being used by your app, you can check the parameter named “textureMemoryUsed” in the system.getInfo() function, as documented here:
http://developer.anscamobile.com/content/system-os
[import]uid: 3007 topic_id: 1361 reply_id: 10520[/import]