Why is JMECanvasImplementor not an Interface?


Does anyone know why JMECanvasImplementor is not defined as interface? The definition of resizeCanvas and setBackground method is no reason to define JMECanvasImplementor as class in my opinion. Does anyone also argue in this way and could a JME developer consider changing this in future releases?

Thanks a lot.



You are right, it should be an interface. In fact, there are more places where abstract classes are used where interfaces should have been used. Unfortunately this is almost impossible to change at this point in time, as JME2 is used in lots of projects that would all have to be changed after such an architecture change. Your best hope is to use JME3 or Ardor3D, both are in development and make much better use of interfaces where appropriate.

"Unfortunately this is almost impossible to change at this point in time"

I wouldn't say that, nothing is set in stone in jme2.

The problem is there are not really many active jme2 developers, on the other hand everyone can be one :slight_smile: jME is a great opensource project where anyone can actively participate. (provide patches, become a contributor etc.)

You should either create a patch with a explanation why it would be good to have it and post it in the contribution depot, so it can be evalueted easier.

Or add this issue to the issue tracker and hope someone will pick it up eventualy (but that route is way slower and if its not needed by someone else, it propably wont be fixed).