Well, it sounds like there’s two ways of doing it. The gentlemen above gave you the easiest way of doing it.
Keeping track of each symbol and echo in a state flag (array maybe?) is by far the easiest way to do this, and every time a piece of information changes, you update the entire screen. Clean, efficient, and real-time.
The second way, at least as I can see which seems to be the way you want to do it, you use a textured primitive (quad) carrying your symbol and another on to of it carrying your echo. If you want the ‘object’ (loosely - the symbol, or the echo, or both) to disappear, you would just draw a black (or whatever background color) quad over the top of the ‘object’ at that location. This would have very negative effects, however. First, you’d constantly be adding polys to your scene, so in the long run it would get really slow. Second, if you have some sort of grid pattern or background pattern, and your ‘object’ lies over the top of a segement or similar, then trying to draw a black poly over the top would begin to erase and corrupt your grid.
I’d opt for the first method, as described by the others that posted. There is no way to ‘delete’ an object in OpenGL from a scene once it has been rendered, unless you rerender the scene again without (thereby ‘deleting’) the object. ->Leads to state flags for your objects.
Long winded, but that should answer your question.