I am making a game where the player can control multiple units of different sizes. I want little GUI rings around the feet of each unit that change colors to indicate things. I implemented this using MeshManager::createManual and programmatically creating ring meshes of different sizes. I gave the materials some self-illumination and gave them some depth-bias so that they can be located at the units' feet and still appear above the flat ground. It works and looks good. My first question is, is this a good approach or is there a better way to do simple GUI?
To work with the Ogre resource management, I thought I should make a ManualResourceLoader for these rings so they could be reloaded if necessary. To create rings of different sizes I thought I could pass the radius and thickness in the createParams argument of MeshManager::create() and then the ManualResourceLoader::loadResource() would retrieve them using Resource::getParameter(). However the parameters did not arrive and after a little digging it looks like only some subclasses of StringInterface create a ParamDictionary and Meshes do not. Am I misunderstanding the purpose of createParams? How can I pass info into the resource loader other than encoding it in the resource name?