Nifty controls invisible on GL1 (Regression in r9232)

I’m trying to get NiftyGUIs to work for my project on GL1 renderers but no images are being rendered by Nifty at all, except for text. Even images that are power-of-two will not render.



I looked through the source and tried to find a culprit and it seems that possibly the Additional RenderState is not being correctly set before renderImage or renderQuad in com.jme3.niftygui.RenderDeviceJme, but I tried fiddling with that and got no results, so I’m probably wrong.



No quads, gradient quads, or textures will draw, period, except for texts (which use BitmapFonts that already work as I have text nodes in the game scene). I sense a bug, considering there’s been a fair amount of work to get NiftyGUI working on GL11 already. My GPU is an Intel GMA945 which only supports OpenGL 1.4 and has no non-power-of-two texture support.



I’ll note that this also happened on an NVIDIA 9800GT with LWJGL_OPENGL1 set as opposed to LWJGL_OPENGL_ANY. So it’s not specific to this GPU.



NiftyGUI support is the last thing I need to get before I can declare this client completely FixedFunc compatible (that is to say, with some graphical flair missing), so it would be pretty awesome if we can get to the bottom of this.



EDIT: It appears this is a regression from recent commits. An earlier nightly I used for a prototype release of the project had GUIs working on OpenGL1. The recent commits r9229-9232 seem to have broken it, though I can’t put my finger on what necessarily did it. http://code.google.com/p/jmonkeyengine/source/list?path=/trunk/engine/src/niftygui/com/jme3/niftygui/RenderDeviceJme.java&start=9232



EDIT EDIT: Just tried r9231’s RenderDeviceJme.java and it worked fine. There is a regression in r9232.

mhhhh makes sense i created new shaders to make it faster with ogl2.

Ok…i don’t have a clue on how it’s implemented for ogl1, but i’ll look into it.



Thanks for cornering that up

1 Like