Ever found your Roku app running sluggish or even crashing? If you’re building an image heavy application you may be bumping up against your texture memory limits. Since Roku introduced SceneGraph there have been massive improvements in memory handling and a visible reduction in crashes over apps that use SDK1 but have you ever wondered how to calculate how much texture memory an image will take? (Probably not you say? Well I’ll tell you how anyways).
It’s actually fairly simple and comes down to the dimensions of the image rather than any kind of compression technique.
To figure out how much texture memory an image will use in kilobytes just use the following formula (where numberOfChannels
is always 4
- RGB and alpha):
(width * height * numberOfChannels) / 1024
To get megabytes just divide by 1024
again.
So if you had an image of dimensions 1280
x 720
you can calculate that this will take up:
(1280 * 720 * 4) / 1024 = 3600 kBs (Approx 3.5 mBs)