In the current CullState implementations in both LWJGL and JOGL, if the state is disabled then the polygon winding is set to the default of counter clockwise (GL_CCW).
if (isEnabled()) {
Face useCullMode = getCullFace();
switch (useCullMode) {
case Front:
setCull(GL11.GL_FRONT, record);
setCullEnabled(true, record);
break;
case Back:
setCull(GL11.GL_BACK, record);
setCullEnabled(true, record);
break;
case FrontAndBack:
setCull(GL11.GL_FRONT_AND_BACK, record);
setCullEnabled(true, record);
break;
case None:
setCullEnabled(false, record);
break;
}
setGLPolygonWind(getPolygonWind(), record);
} else {
setCullEnabled(false, record);
setGLPolygonWind(PolygonWind.CounterClockWise, record);
}
This seems odd, given that the polygon winding is set independently of the culling if the state is enabled. As an example, when getCullFace() returns None, polygon winding is set without using a default.