VolatileImage objects can take up valuable and extrememly limited resources
such as VRAM. For example, a typical laptop only has 4-8 Mb of VRAM
available, including that which the screen takes up. If an application
reallocates many VolatileImages (for example, a resizing window may trigger
recreating the back buffer many times) then the application may run out
of system resources for some VolatileImages even though there should be
enough resources to contain all current/valid VolatileImages.
Garbage collection handles this for us, but the non-deterministic nature
of the garbage collector plus the limited size of some VRAM pools makes
this an imperfect solution for some applications.
There should be a means by which an application can manually release resources
taken up by a VolatileImage object, thus providing some guarantee to the
user of the amount of resources available at any given time.
In addition to the disposal proposal above, we should also have a means
of inquiring how much accelerated memory is available. This would help
users of VolatileImage to determine how and when to allocate new objects
to most efficiently use the memory available.