Hi
yeah - I made a new thread for this topic as Will suggested. And now I will post an idea of mine ;D
I think the problem splittes into two different sections:
[shadow=green,left]1.[/shadow]
telling the renderer not to do things (like glClear() )
[shadow=green,left]2.[/shadow]
We could make a Native-Wrapper-class which we can set in e.g. com.xith3d.render.RenderPeer.setDirectAcces(Wrapper w);
This Wrapper got methods that get called, when the rendering reaches specific steps.
Such a method could look like this:
public executeAddOn(<Parameters describing the circumstances of the position in the rendering process>);
These parameters could be an integer describing the position of the rendering process (e.g. init_done) and then maybe an allround parameter as type Object, whoose type is dependent on the position.
To get acess to jogl/lwjgl/(other not yet existing renderers) we simply could write methods that return instances needed for the direct acess. This will ofcourse make these Wrappers not anymore open to any other renderer, because then new functions would have to be added. But when such a renderer gets added to xith, we could simply change this wrapper. If it is some homebrewed renderer, which we don’t want to add to xith-core because of whatever reasons, it could simply get extended.
We could also make a major design change and put the rendering stuff also in such a Wrapper and then also have a list of Wrappers that get executed, and where it is easy to turn Wrappers on and off. This would somehow unite section 1 and 2 ofcourse
And there will be probably problems I don’t wan’t to think of for now 
So, what do you think?
Arne