LWJGL & JOGL Renderer Bug

(old topic : http://www.jmonkeyengine.com/forum/index.php?topic=9194.0)



In the predraw function, a loop active and desactive texture units :


            for (int i = 0; i < ts.getNumberOfSetTextures()
                    && i < TextureState.getNumberOfFragmentTexCoordUnits(); i++) {
[...]
                if (capabilities.GL_ARB_multitexture) {
                    ARBMultitexture
                            .glClientActiveTextureARB(ARBMultitexture.GL_TEXTURE0_ARB
                                    + i);
                }
[...]
                    GL11.glEnableClientState(GL11.GL_TEXTURE_COORD_ARRAY);
[...]
            }



After this loop, an other loop desactive unused texture unit like this :

            if (ts.getNumberOfSetTextures() < prevTextureNumber) {
                for (int i = ts.getNumberOfSetTextures(); i < prevTextureNumber; i++) {
                    if (capabilities.GL_ARB_multitexture) {
                        ARBMultitexture
                                .glClientActiveTextureARB(ARBMultitexture.GL_TEXTURE0_ARB
                                        + i);
                    }
                    GL11.glDisableClientState(GL11.GL_TEXTURE_COORD_ARRAY);
                }
            }
            prevTextureNumber = ts.getNumberOfSetTextures() < TextureState
                    .getNumberOfFixedUnits() ? ts.getNumberOfSetTextures()
                    : TextureState.getNumberOfFixedUnits();



So, in the compute of prevTextureNumber, we can see the maximum is getNumberOfFixedUnits, and in the first loop, the maximum is getNumberOfFragmentTexCoordUnits.
On NVidia 8800 GT, this difference create a javaw.exe crash.
In my mind, a good solution is to compute prevTextureNumber like this :

            prevTextureNumber = ts.getNumberOfSetTextures() < TextureState
                    .getNumberOfFragmentTexCoordUnits() ? ts.getNumberOfSetTextures()
                    : TextureState.getNumberOfFragmentTexCoordUnits();



So if you have few seconds to look that, thank you.
:D
Bye