Are you running of CPU or GPU side memory?
I maybe wrong, but my test device (iphone 6s) share ram between cpu and gpu (2gb total). I uses this to test low preset of quality with 0.25x scale of spine objects.
Could you please post the exact error you get?
No, I don't have any error. Firstly I thought, nothing happen at all, but with more deeply digging I make it work (not 100% sure
However, if you want to selectively "dispose" of only a subset of resources, just removing all restorables from the context will not work. You will have to only remove the textures of the atlas pages of the atlas you want to remove.
Currently I clearing cache looping through all Phaser cache, looking for source I load with the keys.
this.load.spineBinary("all_chars_binary", 'assets/sprites/spine/allchars_spine4/all_chars_3chapters.skel');
this.load.spineAtlas("all_chars_atlas", 'assets/sprites/spine/allchars_spine4/all_chars_3chapters' + CurrentScale + 'x' + '.atlas', true);
As I see, on spine plugin end, you use different Phaser's cache, and use phases's cache. The files can be accessed here:
custom cache ["esotericsoftware.spine.atlas.cache"]
custom cache ["esotericsoftware.spine.skeletonFile.cache"]
textures cache
Strange moment is, if I removed those source with phaser's methods, I can easily recreate spine objects without loading it again (I guess it stay somewhere on memory, on spine side) until I remove the rest cache (below)
binary ("all_chars_binary")
text ("all_chars_atlas")
Though, after I've found cache here and removed it, I see, files need to load again to add spine object. But, that removing by hand is not what I expected honestly. I Think since you use Phaser's cache, and use custom cache key, you could provide method to clear cache by key (dispose it completely, the very right way). I spent some hours to realised how I should remove it completely, but still not sure I remove all of cache plugin creates and which he potentially could create. And to remove this, I need to loop through all the caches files (which isn't effective anyway) Would be nice to have one function instead. Something like spine.disposeBinary("all_chars_binary") and spine.disposeAtlas("all_chars_atlas)