In talking to Jesse the areas where rendering are complicated boils down to...
Limit EMF use to Data Model
- The use of EObject in the execution model (RenderCreator and RenderExecutor) is not needed.
- We can restrict the use of EObject to where it pays off (where user interaction is involved).
- Actions: limit EMF use to Map / Viewport / Layer / Page / Box
Use a "command queue" rather than events.
- use of events use of events to pass control information (this results in an amazing number of opportunities to screw up and miss out on refreshing the screen).
- since we need to bounce between multiple rendering threads and the single display thread we have even more opportunities to freeze the screen!
- we should switch to a command queue style of interaction (as was done for arcsde)