For an roImageCanvas, I set my display area based on the Action Safe Zones defined in the
Roku Design Guidelines document, and the display type:
' Get the TV's display size
'
di = CreateObject ("roDeviceInfo")
displaySize = di.GetDisplaySize ()
displayMode = di.GetDisplayMode ()
' Make use of the 'Action Safe Zone' for display dimensions
' HD->1150x646 starting at (64, 35)
' SD->648x432, starting at (36, 24)
'
if displayMode = "720p"
displayH% = 646
displayW% = 1150
displayX% = 64
displayY% = 35
else if displayMode = "480i"
displayH% = 432
displayW% = 648
displayX% = 36
displayY% = 24
else ' Unknown display type
displayH% = displaySize.H * 0.9
displayW% = displaySize.W * 0.9
displayX% = (displaySize.W - displayW%) / 2
displayY% = (displaySize.H - displayH%) / 2
endif
All the other dimensions I use are based off those variables.
I haven't used an roScreen yet, so I have no idea in which cases that would be more suitable than an roImageCanvas. However, I don't think the roScreen is even implemented on the older (Roku 1) devices. I try to target all versions of Roku as far as possible.