Should LWJGLRenderState classes be package level not public

Instead of

public class LWJGLAlphaState extends AlphaState {

shouldn't we have

class LWJGLAlphaState extends AlphaState {

Along the same lines, LWJGLcamera and LWJGLTextureRenderer and so on shouldn't be visible outside the API either.

With some cleaver packaging, I'm pretty sure I could hide most of the LWJGL specific classes. What's everyone's idea on this? Their existance could definantly be a source of confusion for anyone learning jME.

Makes sense to me, and if we are going to make these kind of changes, we need to make them sooner rather than later. However, because LWJGLRenderer is the one creating the states, how do you propose we repackage to get them together?

public class LWJGLDisplaySystem extends DisplaySystem

It is the only public LWJGL class. All the rest are package access only.

Move LWJGLDisplaySystem, LWJGLRenderer, LWJGLRenderState, LWJGLFont, LWJGLCamera, LWJGLTextureRenderer all in the same directory of "LWJGLstuff".

Create directory "keyinput" and put inside it class keyinput and LWJGLKeyInput.

Create directory "mouseinput" and put inside it class mouseinput and LWJGLMouseInput.

Create directory "timer" and put inside it class Timer and LWJGLTimer

I think I got them all.

Well, you can still initialize the DisplaySystem by hand by passing in "LWJGL" during it creation.

It would need to public or I would have to put DisplaySystem in the same package as LWJGLDisplaySystem, which may cludder things if we decide to put in JOGLDisplaySystem in the future.

Ok, I just misunderstood you, I thought you meant LWJGLDisplaySystem should be package protected too.