TestNiftyGui test class, why nifty always can be rendered in the top of the screen,in debug nifty 、StatsView Always first is displayed.
I want to know the nifty, rootnode, guinode rendering order.
RenderManager.render(float tpf, boolean mainFrameBufferActive) {
if (renderer instanceof NullRenderer) {
return;
}
this.shader = renderer.getCaps().contains(Caps.GLSL100);
for (int i = 0; i < preViewPorts.size(); i++) {
ViewPort vp = preViewPorts.get(i);
if (vp.getOutputFrameBuffer() != null || mainFrameBufferActive){
renderViewPort(vp, tpf);
}
}
for (int i = 0; i < viewPorts.size(); i++) {
ViewPort vp = viewPorts.get(i);
if (vp.getOutputFrameBuffer() != null || mainFrameBufferActive){
renderViewPort(vp, tpf);
}
}
for (int i = 0; i < postViewPorts.size(); i++) {
ViewPort vp = postViewPorts.get(i);
if (vp.getOutputFrameBuffer() != null || mainFrameBufferActive){
renderViewPort(vp, tpf);
}
}
}
}
rootnode in viewport ,guinode and nifty in postviewport ,I think, in accordance with the above order, box which in rootnode should first be rendering. But, the result is shown below:
The box did not appear,Until the second rendering cycle
http://i.imgur.com/6jf9t.png
what happen in SceneProcessor.postQueue
>nifty.render
>currentScreen.renderLayers()
>renderQuad()
and display.update()